Rémi Bernon : include: Add Gamepad runtimeclass in windows.gaming.input.idl.
Alexandre Julliard
julliard at winehq.org
Wed Mar 17 16:23:15 CDT 2021
Module: wine
Branch: master
Commit: 76998f82de110c7e6ca203435c079ce01c150444
URL: https://source.winehq.org/git/wine.git/?a=commit;h=76998f82de110c7e6ca203435c079ce01c150444
Author: Rémi Bernon <rbernon at codeweavers.com>
Date: Wed Mar 17 13:07:04 2021 +0100
include: Add Gamepad runtimeclass in windows.gaming.input.idl.
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
include/Makefile.in | 1 +
include/windows.gaming.input.idl | 153 +++++++++++++++++++++++++++++++++++++++
2 files changed, 154 insertions(+)
diff --git a/include/Makefile.in b/include/Makefile.in
index 6c98f6d6c8b..1c80421ef6f 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -750,6 +750,7 @@ SOURCES = \
windns.h \
windows.foundation.collections.idl \
windows.foundation.idl \
+ windows.gaming.input.idl \
windows.h \
windows.media.speechsynthesis.idl \
windowscontracts.idl \
diff --git a/include/windows.gaming.input.idl b/include/windows.gaming.input.idl
new file mode 100644
index 00000000000..1da22408eeb
--- /dev/null
+++ b/include/windows.gaming.input.idl
@@ -0,0 +1,153 @@
+/*
+ * Copyright 2021 Rémi Bernon for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif
+
+import "eventtoken.idl";
+import "inspectable.idl";
+import "windows.foundation.idl";
+
+namespace Windows {
+ namespace Gaming {
+ namespace Input {
+ typedef enum GamepadButtons GamepadButtons;
+ typedef struct GamepadReading GamepadReading;
+ typedef struct GamepadVibration GamepadVibration;
+ interface IGameController;
+ interface IGameControllerBatteryInfo;
+ interface IGamepad;
+ interface IGamepad2;
+ interface IGamepadStatics;
+ interface IGamepadStatics2;
+ runtimeclass Gamepad;
+ }
+ }
+}
+
+namespace Windows {
+ namespace Gaming {
+ namespace Input {
+ declare {
+ interface Windows.Foundation.EventHandler<Windows.Gaming.Input.Gamepad*>;
+ interface Windows.Foundation.Collections.IVectorView<Gamepad*>;
+ }
+ }
+ }
+}
+
+namespace Windows {
+ namespace Gaming {
+ namespace Input {
+ [
+ contract(Windows.Foundation.UniversalApiContract, 1.0),
+ flags
+ ]
+ enum GamepadButtons
+ {
+ None = 0x0,
+ Menu = 0x1,
+ View = 0x2,
+ A = 0x4,
+ B = 0x8,
+ X = 0x10,
+ Y = 0x20,
+ DPadUp = 0x40,
+ DPadDown = 0x80,
+ DPadLeft = 0x100,
+ DPadRight = 0x200,
+ LeftShoulder = 0x400,
+ RightShoulder = 0x800,
+ LeftThumbstick = 0x1000,
+ RightThumbstick = 0x2000,
+ [contract(Windows.Foundation.UniversalApiContract, 3.0)]
+ Paddle1 = 0x4000,
+ [contract(Windows.Foundation.UniversalApiContract, 3.0)]
+ Paddle2 = 0x8000,
+ [contract(Windows.Foundation.UniversalApiContract, 3.0)]
+ Paddle3 = 0x10000,
+ [contract(Windows.Foundation.UniversalApiContract, 3.0)]
+ Paddle4 = 0x20000
+ };
+
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+ struct GamepadReading
+ {
+ UINT64 Timestamp;
+ Windows.Gaming.Input.GamepadButtons Buttons;
+ DOUBLE LeftTrigger;
+ DOUBLE RightTrigger;
+ DOUBLE LeftThumbstickX;
+ DOUBLE LeftThumbstickY;
+ DOUBLE RightThumbstickX;
+ DOUBLE RightThumbstickY;
+ };
+
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+ struct GamepadVibration
+ {
+ DOUBLE LeftMotor;
+ DOUBLE RightMotor;
+ DOUBLE LeftTrigger;
+ DOUBLE RightTrigger;
+ };
+
+ [
+ contract(Windows.Foundation.UniversalApiContract, 1.0),
+ exclusiveto(Windows.Gaming.Input.Gamepad),
+ uuid(bc7bb43c-0a69-3903-9e9d-a50f86a45de5)
+ ]
+ interface IGamepad : IInspectable
+ requires Windows.Gaming.Input.IGameController
+ {
+ [propget] HRESULT Vibration([out, retval] Windows.Gaming.Input.GamepadVibration* value);
+ [propput] HRESULT Vibration([in] Windows.Gaming.Input.GamepadVibration value);
+ HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.GamepadReading* value);
+ }
+
+ [
+ object,
+ uuid(8bbce529-d49c-39e9-9560-e47dde96b7c8)
+ ]
+ interface IGamepadStatics : IInspectable
+ {
+ [eventadd] HRESULT GamepadAdded([in] Windows.Foundation.EventHandler<Gamepad*> *value, [out, retval] EventRegistrationToken* token);
+ [eventremove] HRESULT GamepadAdded([in] EventRegistrationToken token);
+ [eventadd] HRESULT GamepadRemoved([in] Windows.Foundation.EventHandler<Gamepad*> *value, [out, retval] EventRegistrationToken* token);
+ [eventremove] HRESULT GamepadRemoved([in] EventRegistrationToken token);
+ [propget] HRESULT Gamepads([out, retval] Windows.Foundation.Collections.IVectorView<Gamepad*> **value);
+ }
+
+ [
+ contract(Windows.Foundation.UniversalApiContract, 1.0),
+ marshaling_behavior(agile),
+ static(Windows.Gaming.Input.IGamepadStatics, Windows.Foundation.UniversalApiContract, 1.0),
+ static(Windows.Gaming.Input.IGamepadStatics2, Windows.Foundation.UniversalApiContract, 4.0),
+ threading(both)
+ ]
+ runtimeclass Gamepad
+ {
+ [default] interface Windows.Gaming.Input.IGamepad;
+ interface Windows.Gaming.Input.IGameController;
+ [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Gaming.Input.IGamepad2;
+ [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
+ }
+ }
+ }
+}
More information about the wine-cvs
mailing list