Commit graph

93 commits

Author SHA1 Message Date
Rémi Bernon 2692e59f46 windows.gaming.input: Implement stub IGamepad2 interface.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
2022-06-08 15:04:56 +02:00
Rémi Bernon 622d98b74a windows.gaming.input: Consistently use FIXME for E_NOINTERFACE messages.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
2022-06-08 15:04:55 +02:00
Nikolay Sivov ea4c506cd7 windows.gaming.input: Fix a leak on error path (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-06-06 12:13:25 +02:00
Rémi Bernon 3c304287e7 windows.gaming.input: Ignore IDirectInputDevice8_GetDeviceState failures.
We will get hotplug notifications asynchronously, and returning an error
here can cause uncaught C++ exceptions in games.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-19 18:30:46 +02:00
Rémi Bernon b7f51783bb windows.gaming.input: Implement IForceFeedbackEffect_get_State.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-19 18:30:45 +02:00
Rémi Bernon b2b1e6a438 windows.gaming.input: Implement IForceFeedbackEffect_(Start|Stop).
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-19 18:30:43 +02:00
Rémi Bernon 37abfa73f2 windows.gaming.input: Implement IConditionForceEffect_SetParameters.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-18 21:46:33 +02:00
Rémi Bernon 84fe8c2246 windows.gaming.input: Implement IPeriodicForceEffect_SetParameters(WithEnvelope).
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-18 21:46:32 +02:00
Rémi Bernon 081a289126 windows.gaming.input: Implement IRampForceEffect_SetParameters(WithEnvelope).
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-18 21:46:31 +02:00
Rémi Bernon aba20b0624 windows.gaming.input: Implement IConstantForceEffect_SetParameters(WithEnvelope).
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-18 21:46:29 +02:00
Rémi Bernon bc6df7ca57 windows.gaming.input: Implement IForceFeedbackEffect_(get|put)_Gain.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-18 21:46:28 +02:00
Rémi Bernon c578aa7cd3 windows.gaming.input: Always assume at least two force feedback axes.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-18 21:46:27 +02:00
Rémi Bernon 4e04446c9b windows.gaming.input: Implement Windows.Gaming.Input.ConditionForceEffect runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 20:46:52 +02:00
Rémi Bernon 8d45305400 windows.gaming.input: Implement Windows.Gaming.Input.PeriodicForceEffect runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 20:46:51 +02:00
Rémi Bernon 569036b1f0 windows.gaming.input: Implement Windows.Gaming.Input.RampForceEffect runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 20:46:49 +02:00
Rémi Bernon ee937e8e4b windows.gaming.input: Implement IForceFeedbackMotor_TryUnloadEffectAsync.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-16 11:21:43 +02:00
Rémi Bernon 7259346ab0 windows.gaming.input: Implement IForceFeedbackMotor_LoadEffectAsync.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-16 11:21:42 +02:00
Rémi Bernon 7a82be5d97 windows.gaming.input: Add a type parameter to force_feedback_effect_create.
And convert it to IDirectInputEffect type GUID.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-16 11:21:41 +02:00
Rémi Bernon d5edf656ef windows.gaming.input: Implement IForceFeedbackEffect interface for ConstantForceEffect.
Using COM aggregation and a new IWineForceFeedbackEffectImpl interface,
deriving from IUnknown as it is only used internally.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-16 11:21:39 +02:00
Rémi Bernon aa37aad2c8 windows.gaming.input: Implement and instantiate ConstantForceEffect runtimeclass stubs.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-16 11:21:38 +02:00
Rémi Bernon b1306875ff windows.gaming.input: Implement stub ConstantForceEffect runtimeclass factory.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-11 11:40:43 +02:00
Rémi Bernon 922cf81c91 windows.gaming.input: Register Windows.Gaming.Input.ForceFeedback classes.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-11 11:40:41 +02:00
Rémi Bernon 5912d0fa00 windows.gaming.input: Use case insensitive compare when looking for devices.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-11 11:40:40 +02:00
Rémi Bernon c3c11d0803 windows.gaming.input: Reset spare CS pointer before deleting it.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-11 11:40:38 +02:00
Rémi Bernon d7701deddc windows.gaming.input: AddRef on the returned async handler in get_Completed.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-11 11:40:37 +02:00
Rémi Bernon 7b3a669ee3 windows.gaming.input: Use IUnknown invoker instead of IInspectable and add a parameter.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-05 20:57:54 +02:00
Rémi Bernon c30c0abd24 windows.gaming.input: Split IAsyncInfo interface to a separate struct.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-05 20:57:53 +02:00
Rémi Bernon b985fe6362 windows.gaming.input: Use a PROPVARIANT as async operation result.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-05 20:57:51 +02:00
Rémi Bernon d99ee0273b windows.gaming.input: Introduce a new type-pruning WineAsyncOperationCompletedHandler.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-05 20:57:50 +02:00
Rémi Bernon cb2f3f76ee windows.gaming.input: Set get_AreEffectsPaused value to FALSE when dinput fails.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-05 20:57:46 +02:00
Rémi Bernon 730b35ba46 windows.gaming.input: Import IAsyncOperation from windows.media.speech.
Adapting it for the IAsyncOperation_boolean interface and use it to
implement IForceFeedbackMotor_Try(Enable|Disable|Reset)Async.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-26 22:21:04 +02:00
Rémi Bernon 78261e08bf windows.gaming.input: Implement IForceFeedbackMotor_(Pause|Resume|StopAll)Effects.
And IForceFeedbackMotor_get_AreEffectsPaused.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 20:34:14 +02:00
Rémi Bernon fec8aae236 windows.gaming.input: Implement IForceFeedbackMotor_(get|put)_MasterGain.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 20:34:11 +02:00
Rémi Bernon cd24005266 windows.gaming.input: Acquire the device exclusively when creating ForceFeedbackMotor.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 20:34:07 +02:00
Rémi Bernon 69745cc12d windows.gaming.input: Implement ForceFeedbackMotor stub runtimeclass.
And create it for RawGameController and RacingWheel motors.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 20:34:04 +02:00
Rémi Bernon 5c88fea5e7 windows.gaming.input: Return an empty vector from RawGameController_get_ForceFeedbackMotors.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 20:34:00 +02:00
Rémi Bernon b12c74e435 windows.gaming.input: Implement RacingWheel runtimeclass stub.
And instantiate the class for DI8DEVTYPE_DRIVING devices.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-22 13:20:09 +02:00
Rémi Bernon e2e038e231 windows.gaming.input: Implement IRacingWheelStatics2 interface for RacingWheel.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-22 13:20:06 +02:00
Rémi Bernon acc2b32a5e windows.gaming.input: Implement ICustomGameControllerFactory interface for RacingWheel.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-22 13:20:04 +02:00
Rémi Bernon d1bf6e7e37 windows.gaming.input: Implement IRacingWheelStatics interface for RacingWheel.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-22 13:20:01 +02:00
Rémi Bernon 9f5dc12a07 windows.gaming.input: Introduce Windows.Gaming.Input.RacingWheel activation factory.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-22 13:19:58 +02:00
Rémi Bernon d99101977d windows.gaming.input: Fix vector InsertAt / RemoveAt copy sizes.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-18 17:29:53 +01:00
Rémi Bernon befeea424e windows.gaming.input: Implement HID simple haptics controllers support.
Adding support for trigger rumble on supported controllers and drivers.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-15 12:48:11 +01:00
Rémi Bernon 0fb4c0519b windows.gaming.input: Fix IIterator_IInspectable trace messages.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-14 18:30:41 +01:00
Rémi Bernon ace5d0adb8 windows.gaming.input: Fix IIterator_IInspectable_MoveNext returne value.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-14 18:30:39 +01:00
Rémi Bernon 0fc5a07770 windows.gaming.input: Always return S_OK from TryGetFactoryControllerFromGameController.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 19:23:28 +01:00
Rémi Bernon 6ebdf1bab9 windows.gaming.input: Return correct error from DllGetActivationFactory.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 19:23:28 +01:00
Rémi Bernon c2e2e919bc windows.gaming.input: Implement GetCurrentReading for the Gamepad runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 18:27:44 +01:00
Rémi Bernon bd628ba8c7 windows.gaming.input: Implement GetCurrentReading for the RawGameController runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 18:27:44 +01:00
Rémi Bernon 5fa86231f7 windows.gaming.input: Return object counts and VID/PID for RawGameController.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-10 18:27:44 +01:00