include: Add RawGameController runtimeclass to windows.gaming.input.idl.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com> Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
ef5b724fac
commit
3a7d95135f
|
@ -20,14 +20,21 @@
|
||||||
#pragma winrt ns_prefix
|
#pragma winrt ns_prefix
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
import "eventtoken.idl";
|
|
||||||
import "inspectable.idl";
|
import "inspectable.idl";
|
||||||
|
import "asyncinfo.idl";
|
||||||
|
import "eventtoken.idl";
|
||||||
|
import "windowscontracts.idl";
|
||||||
import "windows.foundation.idl";
|
import "windows.foundation.idl";
|
||||||
|
import "windows.gaming.input.forcefeedback.idl";
|
||||||
|
import "windows.system.idl";
|
||||||
|
|
||||||
namespace Windows {
|
namespace Windows {
|
||||||
namespace Gaming {
|
namespace Gaming {
|
||||||
namespace Input {
|
namespace Input {
|
||||||
typedef enum GamepadButtons GamepadButtons;
|
typedef enum GamepadButtons GamepadButtons;
|
||||||
|
typedef enum GameControllerButtonLabel GameControllerButtonLabel;
|
||||||
|
typedef enum GameControllerSwitchKind GameControllerSwitchKind;
|
||||||
|
typedef enum GameControllerSwitchPosition GameControllerSwitchPosition;
|
||||||
typedef struct GamepadReading GamepadReading;
|
typedef struct GamepadReading GamepadReading;
|
||||||
typedef struct GamepadVibration GamepadVibration;
|
typedef struct GamepadVibration GamepadVibration;
|
||||||
interface IGameController;
|
interface IGameController;
|
||||||
|
@ -36,7 +43,11 @@ namespace Windows {
|
||||||
interface IGamepad2;
|
interface IGamepad2;
|
||||||
interface IGamepadStatics;
|
interface IGamepadStatics;
|
||||||
interface IGamepadStatics2;
|
interface IGamepadStatics2;
|
||||||
|
interface IRawGameController;
|
||||||
|
interface IRawGameController2;
|
||||||
runtimeclass Gamepad;
|
runtimeclass Gamepad;
|
||||||
|
runtimeclass Headset;
|
||||||
|
runtimeclass RawGameController;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,7 +57,11 @@ namespace Windows {
|
||||||
namespace Input {
|
namespace Input {
|
||||||
declare {
|
declare {
|
||||||
interface Windows.Foundation.EventHandler<Windows.Gaming.Input.Gamepad*>;
|
interface Windows.Foundation.EventHandler<Windows.Gaming.Input.Gamepad*>;
|
||||||
|
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*>;
|
||||||
interface Windows.Foundation.Collections.IVectorView<Gamepad*>;
|
interface Windows.Foundation.Collections.IVectorView<Gamepad*>;
|
||||||
|
interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RawGameController*>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,6 +101,102 @@ namespace Windows {
|
||||||
Paddle4 = 0x20000
|
Paddle4 = 0x20000
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[contract(Windows.Foundation.UniversalApiContract, 3.0)]
|
||||||
|
enum GameControllerButtonLabel
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
XboxBack = 1,
|
||||||
|
XboxStart = 2,
|
||||||
|
XboxMenu = 3,
|
||||||
|
XboxView = 4,
|
||||||
|
XboxUp = 5,
|
||||||
|
XboxDown = 6,
|
||||||
|
XboxLeft = 7,
|
||||||
|
XboxRight = 8,
|
||||||
|
XboxA = 9,
|
||||||
|
XboxB = 10,
|
||||||
|
XboxX = 11,
|
||||||
|
XboxY = 12,
|
||||||
|
XboxLeftBumper = 13,
|
||||||
|
XboxLeftTrigger = 14,
|
||||||
|
XboxLeftStickButton = 15,
|
||||||
|
XboxRightBumper = 16,
|
||||||
|
XboxRightTrigger = 17,
|
||||||
|
XboxRightStickButton = 18,
|
||||||
|
XboxPaddle1 = 19,
|
||||||
|
XboxPaddle2 = 20,
|
||||||
|
XboxPaddle3 = 21,
|
||||||
|
XboxPaddle4 = 22,
|
||||||
|
Mode = 23,
|
||||||
|
Select = 24,
|
||||||
|
Menu = 25,
|
||||||
|
View = 26,
|
||||||
|
Back = 27,
|
||||||
|
Start = 28,
|
||||||
|
Options = 29,
|
||||||
|
Share = 30,
|
||||||
|
Up = 31,
|
||||||
|
Down = 32,
|
||||||
|
Left = 33,
|
||||||
|
Right = 34,
|
||||||
|
LetterA = 35,
|
||||||
|
LetterB = 36,
|
||||||
|
LetterC = 37,
|
||||||
|
LetterL = 38,
|
||||||
|
LetterR = 39,
|
||||||
|
LetterX = 40,
|
||||||
|
LetterY = 41,
|
||||||
|
LetterZ = 42,
|
||||||
|
Cross = 43,
|
||||||
|
Circle = 44,
|
||||||
|
Square = 45,
|
||||||
|
Triangle = 46,
|
||||||
|
LeftBumper = 47,
|
||||||
|
LeftTrigger = 48,
|
||||||
|
LeftStickButton = 49,
|
||||||
|
Left1 = 50,
|
||||||
|
Left2 = 51,
|
||||||
|
Left3 = 52,
|
||||||
|
RightBumper = 53,
|
||||||
|
RightTrigger = 54,
|
||||||
|
RightStickButton = 55,
|
||||||
|
Right1 = 56,
|
||||||
|
Right2 = 57,
|
||||||
|
Right3 = 58,
|
||||||
|
Paddle1 = 59,
|
||||||
|
Paddle2 = 60,
|
||||||
|
Paddle3 = 61,
|
||||||
|
Paddle4 = 62,
|
||||||
|
Plus = 63,
|
||||||
|
Minus = 64,
|
||||||
|
DownLeftArrow = 65,
|
||||||
|
DialLeft = 66,
|
||||||
|
DialRight = 67,
|
||||||
|
Suspension = 68
|
||||||
|
};
|
||||||
|
|
||||||
|
[contract(Windows.Foundation.UniversalApiContract, 4.0)]
|
||||||
|
enum GameControllerSwitchKind
|
||||||
|
{
|
||||||
|
TwoWay = 0,
|
||||||
|
FourWay = 1,
|
||||||
|
EightWay = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
[contract(Windows.Foundation.UniversalApiContract, 4.0)]
|
||||||
|
enum GameControllerSwitchPosition
|
||||||
|
{
|
||||||
|
Center = 0,
|
||||||
|
Up = 1,
|
||||||
|
UpRight = 2,
|
||||||
|
Right = 3,
|
||||||
|
DownRight = 4,
|
||||||
|
Down = 5,
|
||||||
|
DownLeft = 6,
|
||||||
|
Left = 7,
|
||||||
|
UpLeft = 8
|
||||||
|
};
|
||||||
|
|
||||||
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
||||||
struct GamepadReading
|
struct GamepadReading
|
||||||
{
|
{
|
||||||
|
@ -108,6 +219,26 @@ namespace Windows {
|
||||||
DOUBLE RightTrigger;
|
DOUBLE RightTrigger;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
||||||
|
uuid(1baf6522-5f64-42c5-8267-b9fe2215bfbd)
|
||||||
|
]
|
||||||
|
interface IGameController : IInspectable
|
||||||
|
{
|
||||||
|
[eventadd] HRESULT HeadsetConnected([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController*, Windows.Gaming.Input.Headset*>* handler,
|
||||||
|
[out, retval] EventRegistrationToken* token);
|
||||||
|
[eventremove] HRESULT HeadsetConnected([in] EventRegistrationToken token);
|
||||||
|
[eventadd] HRESULT HeadsetDisconnected([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController*, Windows.Gaming.Input.Headset*>* handler,
|
||||||
|
[out, retval] EventRegistrationToken* token);
|
||||||
|
[eventremove] HRESULT HeadsetDisconnected([in] EventRegistrationToken token);
|
||||||
|
[eventadd] HRESULT UserChanged([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController*, Windows.System.UserChangedEventArgs*>* handler,
|
||||||
|
[out, retval] EventRegistrationToken* token);
|
||||||
|
[eventremove] HRESULT UserChanged([in] EventRegistrationToken token);
|
||||||
|
[propget] HRESULT Headset([out, retval] Windows.Gaming.Input.Headset** value);
|
||||||
|
[propget] HRESULT IsWireless([out, retval] boolean* value);
|
||||||
|
[propget] HRESULT User([out, retval] Windows.System.User** value);
|
||||||
|
}
|
||||||
|
|
||||||
[
|
[
|
||||||
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
||||||
exclusiveto(Windows.Gaming.Input.Gamepad),
|
exclusiveto(Windows.Gaming.Input.Gamepad),
|
||||||
|
@ -121,6 +252,28 @@ namespace Windows {
|
||||||
HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.GamepadReading* value);
|
HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.GamepadReading* value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
contract(Windows.Foundation.UniversalApiContract, 4.0),
|
||||||
|
exclusiveto(Windows.Gaming.Input.RawGameController),
|
||||||
|
uuid(7cad6d91-a7e1-4f71-9a78-33e9c5dfea62)
|
||||||
|
]
|
||||||
|
interface IRawGameController : IInspectable
|
||||||
|
requires Windows.Gaming.Input.IGameController
|
||||||
|
{
|
||||||
|
[propget] HRESULT AxisCount([out, retval] INT32* value);
|
||||||
|
[propget] HRESULT ButtonCount([out, retval] INT32* value);
|
||||||
|
[propget] HRESULT ForceFeedbackMotors([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor*>** value);
|
||||||
|
[propget] HRESULT HardwareProductId([out, retval] UINT16* value);
|
||||||
|
[propget] HRESULT HardwareVendorId([out, retval] UINT16* value);
|
||||||
|
[propget] HRESULT SwitchCount([out, retval] INT32* value);
|
||||||
|
HRESULT GetButtonLabel([in] INT32 index, [out, retval] Windows.Gaming.Input.GameControllerButtonLabel* value);
|
||||||
|
HRESULT GetCurrentReading([in] UINT32 buttons_size, [out, size_is(buttons_size)] boolean* buttons,
|
||||||
|
[in] UINT32 switches_size, [out, size_is(switches_size)] Windows.Gaming.Input.GameControllerSwitchPosition* switches,
|
||||||
|
[in] UINT32 axes_size, [out, size_is(axes_size)] DOUBLE* axes,
|
||||||
|
[out, retval] UINT64* timestamp);
|
||||||
|
HRESULT GetSwitchKind([in] INT32 index, [out, retval] Windows.Gaming.Input.GameControllerSwitchKind* value);
|
||||||
|
}
|
||||||
|
|
||||||
[
|
[
|
||||||
object,
|
object,
|
||||||
uuid(8bbce529-d49c-39e9-9560-e47dde96b7c8)
|
uuid(8bbce529-d49c-39e9-9560-e47dde96b7c8)
|
||||||
|
@ -134,6 +287,33 @@ namespace Windows {
|
||||||
[propget] HRESULT Gamepads([out, retval] Windows.Foundation.Collections.IVectorView<Gamepad*> **value);
|
[propget] HRESULT Gamepads([out, retval] Windows.Foundation.Collections.IVectorView<Gamepad*> **value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
||||||
|
exclusiveto(Windows.Gaming.Input.Headset),
|
||||||
|
uuid(3fd156ef-6925-3fa8-9181-029c5223ae3b)
|
||||||
|
]
|
||||||
|
interface IHeadset : IInspectable
|
||||||
|
{
|
||||||
|
[propget] HRESULT CaptureDeviceId([out, retval] HSTRING* value);
|
||||||
|
[propget] HRESULT RenderDeviceId([out, retval] HSTRING* value);
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(eb8d0792-e95a-4b19-afc7-0a59f8bf759e)
|
||||||
|
]
|
||||||
|
interface IRawGameControllerStatics : IInspectable
|
||||||
|
{
|
||||||
|
[eventadd] HRESULT RawGameControllerAdded([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController*> *handler,
|
||||||
|
[out, retval] EventRegistrationToken* token);
|
||||||
|
[eventremove] HRESULT RawGameControllerAdded([in] EventRegistrationToken token);
|
||||||
|
[eventadd] HRESULT RawGameControllerRemoved([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController*> *handler,
|
||||||
|
[out, retval] EventRegistrationToken* token);
|
||||||
|
[eventremove] HRESULT RawGameControllerRemoved([in] EventRegistrationToken token);
|
||||||
|
[propget] HRESULT RawGameControllers([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RawGameController*> **value);
|
||||||
|
HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *game_controller, [out, retval] Windows.Gaming.Input.RawGameController **value);
|
||||||
|
}
|
||||||
|
|
||||||
[
|
[
|
||||||
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
||||||
marshaling_behavior(agile),
|
marshaling_behavior(agile),
|
||||||
|
@ -148,6 +328,31 @@ namespace Windows {
|
||||||
[contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Gaming.Input.IGamepad2;
|
[contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Gaming.Input.IGamepad2;
|
||||||
[contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
|
[contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
||||||
|
marshaling_behavior(agile),
|
||||||
|
threading(both)
|
||||||
|
]
|
||||||
|
runtimeclass Headset
|
||||||
|
{
|
||||||
|
[default] interface Windows.Gaming.Input.IHeadset;
|
||||||
|
[contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
contract(Windows.Foundation.UniversalApiContract, 4.0),
|
||||||
|
marshaling_behavior(agile),
|
||||||
|
static(Windows.Gaming.Input.IRawGameControllerStatics, Windows.Foundation.UniversalApiContract, 4.0),
|
||||||
|
threading(both)
|
||||||
|
]
|
||||||
|
runtimeclass RawGameController
|
||||||
|
{
|
||||||
|
[default] interface Windows.Gaming.Input.IRawGameController;
|
||||||
|
interface Windows.Gaming.Input.IGameController;
|
||||||
|
interface Windows.Gaming.Input.IGameControllerBatteryInfo;
|
||||||
|
[contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Gaming.Input.IRawGameController2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue