Commit Graph

51 Commits

Author SHA1 Message Date
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
Rémi Bernon 1e9b83a440 windows.gaming.input: Implement Controller(Added|Removed) event support.
Using a generic EventHandler<IInspectable *> implementation.

This adds several todo_wine because we currently do not implement custom
game controller factories.

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 e609c640a2 windows.gaming.input: Implement IGamepadStatics_get_Gamepads.
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 1ca51d33c2 windows.gaming.input: Implement IRawGameControllerStatics_get_RawGameControllers.
It is important to add RawGameController instances to the vector in the
initialization callback, because some games check the vector, as well
as the Gamepad class vector in the OnGameControllerAdded callback.

This also removes the OnGameControllerAdded failure case, to avoid
leaking controllers that were already added to the controller vector,
and instead rely on the OnGameControllerRemoved call to do the cleanup.

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 e3b1d818af windows.gaming.input: Implement IIterable<T> and IIterator<T> interfaces.
For the generic vector implementation.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:16 +01:00
Rémi Bernon b98b9ce74f windows.gaming.input: Implement CreateGameController for Gamepad runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:16 +01:00
Rémi Bernon 47610b5461 windows.gaming.input: Implement CreateGameController for RawGameController runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 20:54:16 +01:00
Rémi Bernon da745fee16 windows.gaming.input: Implement IGamepadStatics2_FromGameController.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Rémi Bernon 5518b29cfa windows.gaming.input: Check the controller type and create Gamepad instances.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Rémi Bernon d45a2a14cd windows.gaming.input: Implement IRawGameControllerStatics_FromGameController.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Rémi Bernon 09cb88e91b windows.gaming.input: Instantiate IGameController(BatteryInfo) stub from providers.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 22:43:36 +01:00
Francois Gouget ea79e50f98 windows.gaming.input: Add a linefeed to a TRACE() message.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 16:31:36 +01:00
Rémi Bernon aca853c73e windows.gaming.input: Add IGameControllerImpl undocumented interface declaration.
This is more likely some specialized interface of a parameterized type,
used to create mixin types, but we have no way and no clue where it
comes from or how it should be declared.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Rémi Bernon 00ff428b30 windows.gaming.input: Stub ICustomGameControllerFactory for Gamepad.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Rémi Bernon 5adbc011d9 windows.gaming.input: Stub ICustomGameControllerFactory for RawGameController.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Rémi Bernon 0d3c026bdb windows.gaming.input: Make QueryInterface implementations consistent.
When COM aggregation is involved it is important to add a reference to
the returned iface and not to the inner object.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-07 11:23:42 +01:00
Rémi Bernon e171b58aae windows.gaming.input: Instantiate the WineGameControllerProvider runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:16:40 +01:00
Rémi Bernon d6be529ce8 windows.gaming.input: Start a thread to monitor HID device addition and removal.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:16:40 +01:00
Rémi Bernon afaf061ede windows.gaming.input: Add an internal WineGameControllerProvider runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 19:16:39 +01:00
Rémi Bernon 1f694c7f79 include: Add Windows.Gaming.Input.IGameControllerBatteryInfo interface definition.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 20:18:06 +01:00
Rémi Bernon 350c8ec3ba windows.gaming.input: Register Windows.Gaming.Input.Custom classes.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 20:18:00 +01:00
Rémi Bernon 435ac84c21 windows.gaming.input: Stub GameControllerFactoryManager runtimeclass.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 20:17:57 +01:00
Rémi Bernon 45eb5d0909 windows.gaming.input: Introduce helpers to define IInspectable interface boilerplate.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 20:17:55 +01:00
Rémi Bernon 46f4975b05 windows.gaming.input: Introduce a generic IVector<IInspectable *> implementation.
And use it to factor all the IVectorView<T> stubs.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-28 21:31:56 +01:00
Rémi Bernon c565d0035e windows.gaming.input: Split Gamepad runtimeclass to a separate source.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-28 21:31:56 +01:00
Rémi Bernon e8219b5989 windows.gaming.input: Split RawGameController runtimeclass to separate source.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-28 21:31:56 +01:00
Rémi Bernon c91dacca9c windows.gaming.input/tests: Fix printf warnings with long types.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-31 18:38:54 +01:00
Rémi Bernon ad060ae862 windows.gaming.input: Fix printf format warnings with long types.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Alexandre Julliard f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Alexandre Julliard 088a787a2c makefiles: Make -mno-cygwin the default.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Michael Stefaniuc 07ecdf6ce2 windows.gaming.input/tests: Test the correct return value.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-26 22:10:21 +02:00
Alexandre Julliard bd6b53740c winecrt0: Add a default implementation for DllCanUnloadNow().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Zebediah Figura ac1c347153 windows.gaming.input: Link directly to combase.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-22 10:21:15 +02:00
Rémi Bernon a29a12135a include: Use UINT32 for IVectorView<T> index/size arguments.
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>
2021-03-23 20:52:39 +01:00
Rémi Bernon 03e3bf5324 include: Add missing items_size parameter to GetMany.
For IVectorView and IIterator interfaces.

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>
2021-03-23 20:52:22 +01:00
Rémi Bernon e2189f588f windows.gaming.input: Fake IEventHandler_RawGameController support.
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>
2021-03-22 18:52:57 +01:00
Rémi Bernon 5f4c28ea4b windows.gaming.input: Fake empty IRawGameControllerStatics::RawGameControllers vector.
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>
2021-03-22 18:52:57 +01:00
Rémi Bernon f32584544d windows.gaming.input: Implement IRawGameControllerStatics::RawGameControllers stubs.
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>
2021-03-22 18:52:57 +01:00
Rémi Bernon 21c8a30906 windows.gaming.input: Implement IRawGameControllerStatics stubs.
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>
2021-03-22 18:52:57 +01:00
Rémi Bernon 3728a81389 windows.gaming.input: Fake IEventHandler_Gamepad support.
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>
2021-03-22 18:52:57 +01:00
Rémi Bernon ae69092491 windows.gaming.input: Fake empty IGamepadStatics::Gamepads vector.
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>
2021-03-22 18:52:57 +01:00
Rémi Bernon 4a4d5a6f3d windows.gaming.input: Implement IGamepadStatics::Gamepads stubs.
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>
2021-03-18 22:04:01 +01:00
Rémi Bernon 800bbece78 windows.gaming.input: Implement IGamepadStatics stubs.
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>
2021-03-18 22:04:01 +01:00