include: Add Windows.Gaming.Input.RacingWheel runtimeclass declaration.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Rémi Bernon 2022-04-20 19:04:00 +02:00 committed by Alexandre Julliard
parent 38b140f69c
commit 8421f1ec8b
1 changed files with 113 additions and 0 deletions

View File

@ -38,9 +38,11 @@ namespace Windows.Gaming.Input {
typedef enum GameControllerButtonLabel GameControllerButtonLabel;
typedef enum GameControllerSwitchKind GameControllerSwitchKind;
typedef enum GameControllerSwitchPosition GameControllerSwitchPosition;
typedef enum RacingWheelButtons RacingWheelButtons;
typedef struct ArcadeStickReading ArcadeStickReading;
typedef struct GamepadReading GamepadReading;
typedef struct GamepadVibration GamepadVibration;
typedef struct RacingWheelReading RacingWheelReading;
interface IArcadeStick;
interface IArcadeStickStatics;
interface IArcadeStickStatics2;
@ -50,16 +52,21 @@ namespace Windows.Gaming.Input {
interface IGamepad2;
interface IGamepadStatics;
interface IGamepadStatics2;
interface IRacingWheel;
interface IRacingWheelStatics;
interface IRacingWheelStatics2;
interface IRawGameController;
interface IRawGameController2;
runtimeclass ArcadeStick;
runtimeclass Gamepad;
runtimeclass Headset;
runtimeclass RacingWheel;
runtimeclass RawGameController;
declare {
interface Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *>;
interface Windows.Foundation.EventHandler<Windows.Gaming.Input.Gamepad *>;
interface Windows.Foundation.EventHandler<Windows.Gaming.Input.RacingWheel *>;
interface Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController *>;
interface Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.Gaming.Input.Headset *>;
interface Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.System.UserChangedEventArgs *>;
@ -70,6 +77,10 @@ namespace Windows.Gaming.Input {
interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.Gamepad *>;
interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.Gamepad *>;
interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.Gamepad *>;
interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.RacingWheel *>;
interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.RacingWheel *>;
interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RacingWheel *>;
interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.RacingWheel *>;
interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.RawGameController *>;
interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.RawGameController *>;
interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RawGameController *>;
@ -224,6 +235,37 @@ namespace Windows.Gaming.Input {
UpLeft = 8
};
[
contract(Windows.Foundation.UniversalApiContract, 3.0),
flags
]
enum RacingWheelButtons
{
None = 0x0,
PreviousGear = 0x1,
NextGear = 0x2,
DPadUp = 0x4,
DPadDown = 0x8,
DPadLeft = 0x10,
DPadRight = 0x20,
Button1 = 0x40,
Button2 = 0x80,
Button3 = 0x100,
Button4 = 0x200,
Button5 = 0x400,
Button6 = 0x800,
Button7 = 0x1000,
Button8 = 0x2000,
Button9 = 0x4000,
Button10 = 0x8000,
Button11 = 0x10000,
Button12 = 0x20000,
Button13 = 0x40000,
Button14 = 0x80000,
Button15 = 0x100000,
Button16 = 0x200000,
};
[contract(Windows.Foundation.UniversalApiContract, 3.0)]
struct ArcadeStickReading
{
@ -253,6 +295,19 @@ namespace Windows.Gaming.Input {
DOUBLE RightTrigger;
};
[contract(Windows.Foundation.UniversalApiContract, 3.0)]
struct RacingWheelReading
{
UINT64 Timestamp;
Windows.Gaming.Input.RacingWheelButtons Buttons;
INT32 PatternShifterGear;
DOUBLE Wheel;
DOUBLE Throttle;
DOUBLE Brake;
DOUBLE Clutch;
DOUBLE Handbrake;
};
[
contract(Windows.Foundation.UniversalApiContract, 3.0),
exclusiveto(Windows.Gaming.Input.ArcadeStick),
@ -327,6 +382,50 @@ namespace Windows.Gaming.Input {
HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.GamepadReading *value);
}
[
contract(Windows.Foundation.UniversalApiContract, 3.0),
exclusiveto(Windows.Gaming.Input.RacingWheel),
uuid(f546656f-e106-4c82-a90f-554012904b85)
]
interface IRacingWheel : IInspectable
requires Windows.Gaming.Input.IGameController
{
[propget] HRESULT HasClutch([out, retval] boolean *value);
[propget] HRESULT HasHandbrake([out, retval] boolean *value);
[propget] HRESULT HasPatternShifter([out, retval] boolean *value);
[propget] HRESULT MaxPatternShifterGear([out, retval] INT32 *value);
[propget] HRESULT MaxWheelAngle([out, retval] DOUBLE *value);
[propget] HRESULT WheelMotor([out, retval] Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor **value);
HRESULT GetButtonLabel([in] Windows.Gaming.Input.RacingWheelButtons button, [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value);
HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.RacingWheelReading *value);
}
[
contract(Windows.Foundation.UniversalApiContract, 3.0),
exclusiveto(Windows.Gaming.Input.RacingWheel),
uuid(3ac12cd5-581b-4936-9f94-69f1e6514c7d)
]
interface IRacingWheelStatics : IInspectable
{
[eventadd] HRESULT RacingWheelAdded([in] Windows.Foundation.EventHandler<RacingWheel *> *value, [out, retval] EventRegistrationToken *token);
[eventremove] HRESULT RacingWheelAdded([in] EventRegistrationToken token);
[eventadd] HRESULT RacingWheelRemoved([in] Windows.Foundation.EventHandler<RacingWheel *> *value, [out, retval] EventRegistrationToken *token);
[eventremove] HRESULT RacingWheelRemoved([in] EventRegistrationToken token);
[propget] HRESULT RacingWheels([out, retval] Windows.Foundation.Collections.IVectorView<RacingWheel *> **value);
}
[
contract(Windows.Foundation.UniversalApiContract, 4.0),
exclusiveto(Windows.Gaming.Input.RacingWheel),
uuid(e666bcaa-edfd-4323-a9f6-3c384048d1ed)
]
interface IRacingWheelStatics2 : IInspectable
requires Windows.Gaming.Input.IRacingWheelStatics
{
HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller,
[out, retval] Windows.Gaming.Input.RacingWheel **value);
}
[
contract(Windows.Foundation.UniversalApiContract, 4.0),
exclusiveto(Windows.Gaming.Input.RawGameController),
@ -464,6 +563,20 @@ namespace Windows.Gaming.Input {
[contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
}
[
contract(Windows.Foundation.UniversalApiContract, 3.0),
marshaling_behavior(agile),
static(Windows.Gaming.Input.IRacingWheelStatics, Windows.Foundation.UniversalApiContract, 3.0),
static(Windows.Gaming.Input.IRacingWheelStatics2, Windows.Foundation.UniversalApiContract, 4.0),
threading(both)
]
runtimeclass RacingWheel
{
[default] interface Windows.Gaming.Input.IRacingWheel;
interface Windows.Gaming.Input.IGameController;
[contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
}
[
contract(Windows.Foundation.UniversalApiContract, 4.0),
marshaling_behavior(agile),