From: Biswapriyo Nath nathbappai@gmail.com
Signed-off-by: Biswapriyo Nath nathbappai@gmail.com Signed-off-by: Rémi Bernon rbernon@codeweavers.com ---
Supersedes: 233098
include/windows.gaming.input.idl | 93 ++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+)
diff --git a/include/windows.gaming.input.idl b/include/windows.gaming.input.idl index 4e9bb6e2465..d5a652f9532 100644 --- a/include/windows.gaming.input.idl +++ b/include/windows.gaming.input.idl @@ -33,12 +33,17 @@ import "windows.devices.power.idl"; #endif
namespace Windows.Gaming.Input { + typedef enum ArcadeStickButtons ArcadeStickButtons; typedef enum GamepadButtons GamepadButtons; typedef enum GameControllerButtonLabel GameControllerButtonLabel; typedef enum GameControllerSwitchKind GameControllerSwitchKind; typedef enum GameControllerSwitchPosition GameControllerSwitchPosition; + typedef struct ArcadeStickReading ArcadeStickReading; typedef struct GamepadReading GamepadReading; typedef struct GamepadVibration GamepadVibration; + interface IArcadeStick; + interface IArcadeStickStatics; + interface IArcadeStickStatics2; interface IGameController; interface IGameControllerBatteryInfo; interface IGamepad; @@ -47,15 +52,20 @@ namespace Windows.Gaming.Input { interface IGamepadStatics2; interface IRawGameController; interface IRawGameController2; + runtimeclass ArcadeStick; runtimeclass Gamepad; runtimeclass Headset; 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.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.IIterator<Windows.Gaming.Input.ArcadeStick *>; + interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.ArcadeStick *>; + interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ArcadeStick *>; interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.Gamepad *>; interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.Gamepad *>; interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.Gamepad *>; @@ -66,6 +76,27 @@ namespace Windows.Gaming.Input { interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.RawGameController *>; }
+ [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + flags + ] + enum ArcadeStickButtons + { + None = 0x0, + StickUp = 0x1, + StickDown = 0x2, + StickLeft = 0x4, + StickRight = 0x8, + Action1 = 0x10, + Action2 = 0x20, + Action3 = 0x40, + Action4 = 0x80, + Action5 = 0x100, + Action6 = 0x200, + Special1 = 0x400, + Special2 = 0x800 + }; + [ contract(Windows.Foundation.UniversalApiContract, 1.0), flags @@ -193,6 +224,13 @@ namespace Windows.Gaming.Input { UpLeft = 8 };
+ [contract(Windows.Foundation.UniversalApiContract, 3.0)] + struct ArcadeStickReading + { + UINT64 Timestamp; + Windows.Gaming.Input.ArcadeStickButtons Buttons; + }; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] struct GamepadReading { @@ -215,6 +253,47 @@ namespace Windows.Gaming.Input { DOUBLE RightTrigger; };
+ [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + exclusiveto(Windows.Gaming.Input.ArcadeStick), + uuid(b14a539d-befb-4c81-8051-15ecf3b13036) + ] + interface IArcadeStick : IInspectable + requires Windows.Gaming.Input.IGameController + { + HRESULT GetButtonLabel([in] Windows.Gaming.Input.ArcadeStickButtons button, + [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value); + HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.ArcadeStickReading *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + exclusiveto(Windows.Gaming.Input.ArcadeStick), + uuid(5c37b8c8-37b1-4ad8-9458-200f1a30018e) + ] + interface IArcadeStickStatics : IInspectable + { + [eventadd] HRESULT ArcadeStickAdded([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *> *value, + [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT ArcadeStickAdded([in] EventRegistrationToken token); + [eventadd] HRESULT ArcadeStickRemoved([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *> *value, + [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT ArcadeStickRemoved([in] EventRegistrationToken token); + [propget] HRESULT ArcadeSticks([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ArcadeStick *> **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 4.0), + exclusiveto(Windows.Gaming.Input.ArcadeStick), + uuid(52b5d744-bb86-445a-b59c-596f0e2a49df) + ] + interface IArcadeStickStatics2 : IInspectable + requires Windows.Gaming.Input.IArcadeStickStatics + { + HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller, + [out, retval] Windows.Gaming.Input.ArcadeStick **value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), uuid(1baf6522-5f64-42c5-8267-b9fe2215bfbd) @@ -345,6 +424,20 @@ namespace Windows.Gaming.Input { HRESULT TryGetBatteryReport([out, retval] Windows.Devices.Power.BatteryReport **value); }
+ [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + marshaling_behavior(agile), + static(Windows.Gaming.Input.IArcadeStickStatics, Windows.Foundation.UniversalApiContract, 3.0), + static(Windows.Gaming.Input.IArcadeStickStatics2, Windows.Foundation.UniversalApiContract, 4.0), + threading(both) + ] + runtimeclass ArcadeStick + { + [default] interface Windows.Gaming.Input.IArcadeStick; + interface Windows.Gaming.Input.IGameController; + [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo; + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile),
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- include/windows.gaming.input.idl | 113 +++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+)
diff --git a/include/windows.gaming.input.idl b/include/windows.gaming.input.idl index d5a652f9532..6f557883167 100644 --- a/include/windows.gaming.input.idl +++ b/include/windows.gaming.input.idl @@ -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),
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=112981
Your paranoid android.
=== debian11 (build log) ===
error: patch failed: include/windows.gaming.input.idl:33 error: patch failed: include/windows.gaming.input.idl:38 Task: Patch failed to apply
=== debian11 (build log) ===
error: patch failed: include/windows.gaming.input.idl:33 error: patch failed: include/windows.gaming.input.idl:38 Task: Patch failed to apply
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- .../windows.gaming.input.forcefeedback.idl | 150 ++++++++---------- 1 file changed, 64 insertions(+), 86 deletions(-)
diff --git a/include/windows.gaming.input.forcefeedback.idl b/include/windows.gaming.input.forcefeedback.idl index da153a3285a..39705918b6e 100644 --- a/include/windows.gaming.input.forcefeedback.idl +++ b/include/windows.gaming.input.forcefeedback.idl @@ -26,91 +26,69 @@ import "eventtoken.idl"; import "windowscontracts.idl"; import "windows.foundation.idl";
-namespace Windows { - namespace Gaming { - namespace Input { - namespace ForceFeedback { - typedef enum ForceFeedbackEffectAxes ForceFeedbackEffectAxes; - typedef enum ForceFeedbackLoadEffectResult ForceFeedbackLoadEffectResult; - interface IForceFeedbackEffect; - runtimeclass ForceFeedbackMotor; - } - } - } -} - -namespace Windows { - namespace Gaming { - namespace Input { - namespace ForceFeedback { - declare { - interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult>; - interface Windows.Foundation.IAsyncOperation<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult>; - interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor*>; - } - } - } - } -} - -namespace Windows { - namespace Gaming { - namespace Input { - namespace ForceFeedback { - [ - contract(Windows.Foundation.UniversalApiContract, 3.0), - flags - ] - enum ForceFeedbackEffectAxes - { - None = 0x0, - X = 0x1, - Y = 0x2, - Z = 0x4 - }; - - [contract(Windows.Foundation.UniversalApiContract, 3.0)] - enum ForceFeedbackLoadEffectResult - { - Succeeded = 0, - EffectStorageFull = 1, - EffectNotSupported = 2 - }; - - [ - contract(Windows.Foundation.UniversalApiContract, 3.0), - exclusiveto(Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor), - uuid(8d3d417c-a5ea-4516-8026-2b00f74ef6e5) - ] - interface IForceFeedbackMotor : IInspectable - { - [propget] HRESULT AreEffectsPaused([out, retval] boolean* value); - [propget] HRESULT MasterGain([out, retval] DOUBLE* value); - [propput] HRESULT MasterGain([in] DOUBLE value); - [propget] HRESULT IsEnabled([out, retval] boolean* value); - [propget] HRESULT SupportedAxes([out, retval] Windows.Gaming.Input.ForceFeedback.ForceFeedbackEffectAxes* value); - HRESULT LoadEffectAsync([in] Windows.Gaming.Input.ForceFeedback.IForceFeedbackEffect* effect, - [out, retval] Windows.Foundation.IAsyncOperation<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult>** async_op); - HRESULT PauseAllEffects(); - HRESULT ResumeAllEffects(); - HRESULT StopAllEffects(); - HRESULT TryDisableAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean>** async_op); - HRESULT TryEnableAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean>** async_op); - HRESULT TryResetAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean>** async_op); - HRESULT TryUnloadEffectAsync([in] Windows.Gaming.Input.ForceFeedback.IForceFeedbackEffect* effect, - [out, retval] Windows.Foundation.IAsyncOperation<boolean>** async_op); - } - - [ - contract(Windows.Foundation.UniversalApiContract, 3.0), - marshaling_behavior(agile), - threading(both) - ] - runtimeclass ForceFeedbackMotor - { - [default] interface Windows.Gaming.Input.ForceFeedback.IForceFeedbackMotor; - } - } - } +namespace Windows.Gaming.Input.ForceFeedback { + typedef enum ForceFeedbackEffectAxes ForceFeedbackEffectAxes; + typedef enum ForceFeedbackLoadEffectResult ForceFeedbackLoadEffectResult; + interface IForceFeedbackEffect; + runtimeclass ForceFeedbackMotor; + + declare { + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult>; + interface Windows.Foundation.IAsyncOperation<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult>; + interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor *>; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + flags + ] + enum ForceFeedbackEffectAxes + { + None = 0x0, + X = 0x1, + Y = 0x2, + Z = 0x4 + }; + + [contract(Windows.Foundation.UniversalApiContract, 3.0)] + enum ForceFeedbackLoadEffectResult + { + Succeeded = 0, + EffectStorageFull = 1, + EffectNotSupported = 2 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + exclusiveto(Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor), + uuid(8d3d417c-a5ea-4516-8026-2b00f74ef6e5) + ] + interface IForceFeedbackMotor : IInspectable + { + [propget] HRESULT AreEffectsPaused([out, retval] boolean *value); + [propget] HRESULT MasterGain([out, retval] DOUBLE *value); + [propput] HRESULT MasterGain([in] DOUBLE value); + [propget] HRESULT IsEnabled([out, retval] boolean *value); + [propget] HRESULT SupportedAxes([out, retval] Windows.Gaming.Input.ForceFeedback.ForceFeedbackEffectAxes *value); + HRESULT LoadEffectAsync([in] Windows.Gaming.Input.ForceFeedback.IForceFeedbackEffect *effect, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult> **async_op); + HRESULT PauseAllEffects(); + HRESULT ResumeAllEffects(); + HRESULT StopAllEffects(); + HRESULT TryDisableAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean> **async_op); + HRESULT TryEnableAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean> **async_op); + HRESULT TryResetAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean> **async_op); + HRESULT TryUnloadEffectAsync([in] Windows.Gaming.Input.ForceFeedback.IForceFeedbackEffect *effect, + [out, retval] Windows.Foundation.IAsyncOperation<boolean> **async_op); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass ForceFeedbackMotor + { + [default] interface Windows.Gaming.Input.ForceFeedback.IForceFeedbackMotor; } }
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=112982
Your paranoid android.
=== debian11 (build log) ===
error: patch failed: include/windows.gaming.input.idl:33 error: patch failed: include/windows.gaming.input.idl:38 error: patch failed: include/windows.gaming.input.forcefeedback.idl:26 Task: Patch failed to apply
=== debian11 (build log) ===
error: patch failed: include/windows.gaming.input.idl:33 error: patch failed: include/windows.gaming.input.idl:38 error: patch failed: include/windows.gaming.input.forcefeedback.idl:26 Task: Patch failed to apply
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- .../windows.gaming.input.forcefeedback.idl | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+)
diff --git a/include/windows.gaming.input.forcefeedback.idl b/include/windows.gaming.input.forcefeedback.idl index 39705918b6e..432b60a5592 100644 --- a/include/windows.gaming.input.forcefeedback.idl +++ b/include/windows.gaming.input.forcefeedback.idl @@ -28,6 +28,7 @@ import "windows.foundation.idl";
namespace Windows.Gaming.Input.ForceFeedback { typedef enum ForceFeedbackEffectAxes ForceFeedbackEffectAxes; + typedef enum ForceFeedbackEffectState ForceFeedbackEffectState; typedef enum ForceFeedbackLoadEffectResult ForceFeedbackLoadEffectResult; interface IForceFeedbackEffect; runtimeclass ForceFeedbackMotor; @@ -50,6 +51,15 @@ namespace Windows.Gaming.Input.ForceFeedback { Z = 0x4 };
+ [contract(Windows.Foundation.UniversalApiContract, 3.0)] + enum ForceFeedbackEffectState + { + Stopped = 0, + Running = 1, + Paused = 2, + Faulted = 3, + }; + [contract(Windows.Foundation.UniversalApiContract, 3.0)] enum ForceFeedbackLoadEffectResult { @@ -58,6 +68,19 @@ namespace Windows.Gaming.Input.ForceFeedback { EffectNotSupported = 2 };
+ [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + uuid(a17fba0c-2ae4-48c2-8063-eabd0777cb89) + ] + interface IForceFeedbackEffect : IInspectable + { + [propget] HRESULT Gain([out, retval] DOUBLE *value); + [propput] HRESULT Gain([in] DOUBLE value); + [propget] HRESULT State([out, retval] Windows.Gaming.Input.ForceFeedback.ForceFeedbackEffectState *value); + HRESULT Start(); + HRESULT Stop(); + } + [ contract(Windows.Foundation.UniversalApiContract, 3.0), exclusiveto(Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor),
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=112983
Your paranoid android.
=== debian11 (build log) ===
error: patch failed: include/windows.gaming.input.idl:33 error: patch failed: include/windows.gaming.input.idl:38 error: patch failed: include/windows.gaming.input.forcefeedback.idl:26 error: patch failed: include/windows.gaming.input.forcefeedback.idl:28 Task: Patch failed to apply
=== debian11 (build log) ===
error: patch failed: include/windows.gaming.input.idl:33 error: patch failed: include/windows.gaming.input.idl:38 error: patch failed: include/windows.gaming.input.forcefeedback.idl:26 error: patch failed: include/windows.gaming.input.forcefeedback.idl:28 Task: Patch failed to apply
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=112980
Your paranoid android.
=== debian11 (build log) ===
error: patch failed: include/windows.gaming.input.idl:33 Task: Patch failed to apply
=== debian11 (build log) ===
error: patch failed: include/windows.gaming.input.idl:33 Task: Patch failed to apply