Commit Graph

66 Commits

Author SHA1 Message Date
Rémi Bernon 26c1131201 dinput: Use a single list for all acquired devices.
Instead of going through devices list of dinputs list, and checking
their acquired field, which is not CPU friendly.

This also removes the now unused IDirectInputImpl critical section and
devices list.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Brendan Shanks d2d3959d3d dinput: Add "PIDVID" guidProduct and use for non-keyboards/mice.
Windows uses an undocumented GUID (ending in ASCII "PIDVID") for
non-keyboard/mouse devices. Various games (DiRT Rally 2) and libraries
(SDL, GLFW) look for this GUID to match specific devices or know that
the PID/VID can be extracted.

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-20 21:29:37 +02:00
Alexey Prokhin f55ce610b2 dinput: Return fake DIPROP_GUIDANDPATH property for OSX joysticks.
Signed-off-by: Alexey Prokhin <alexey@prokhin.ru>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-10 20:25:35 +02:00
Aric Stewart c5283300e1 dinput: Handle case where IOHIDDeviceGetValue fails.
This prevents crashes if a controller disconnects from OS/X.

Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-04 23:05:26 +02:00
Alistair Leslie-Hughes fe4db5309e dinput: Allow enumeration of joysticks with DirectX 3.
Star Wars: Rogue 3D requests a DirectX 3.0 version
0108:trace:dinput:DirectInputCreateEx (0x400000,0300,{9a4cb684-236d-11d3-8e9d-00c04f6844ae},0x7acfa0,(nil))
and then tries to interate over all Joysticks.

When using modern windows, the current tests show that this is the correct behaviour.

However, it's possible to use a shim to allow older games, like the
one above, to interate over joysticks.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 13:29:43 +02:00
Alistair Leslie-Hughes 52deca4900 dinput: Trace This pointer in a consistent way.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-09 11:39:52 -05:00
Andrew Eikum ae84957916 dinput: Use heuristics to guess if a device is a gamepad or a joystick.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47123
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-07 09:21:21 -05:00
Alistair Leslie-Hughes 1daeef7332 dinput: Use a helper function to get device type.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-06 09:15:34 -05:00
Andrew Eikum 085e58878f dinput: Report controllers as gamepads, not joysticks.
This matches what Windows does with common controllers like xbox 360.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-18 23:37:55 +02:00
Michael Stefaniuc 6710a0485d dinput: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:56:16 +02:00
Andrew Eikum 565c2dcf2a dinput: Fix mac build.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 20:55:10 +02:00
Andrew Eikum 27ffb662ce dinput: Use vid/pid for first chunk of product guid on OSX, too.
This is already done on the linux backends.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 13:55:55 +02:00
Bob Ziuchkovski 221708d64e dinput: Ignore vendor-specific usage pages for joystick elements on Mac.
Signed-off-by: Bob Ziuchkovski <bob.ziuchkovski@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-09 21:34:50 +01:00
Bruno Jesus f051de0d37 dinput: Return the correct error when CreateEffect is not supported.
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-22 12:40:34 +09:00
David Lawrie 49bf4f7eb6 dinput: Sort virtual joysticks by name on the Mac.
Signed-off-by: David Lawrie <david.dljunk@gmail.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-25 14:22:14 +09:00
David Lawrie c543c603a5 dinput: Alter function name and code style.
Signed-off-by: David Lawrie <david.dljunk@gmail.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-14 17:40:11 +09:00
David Lawrie 33c43473c0 dinput: Sort devices by location ID on the Mac.
Signed-off-by: David Lawrie <david.dljunk@gmail.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-14 17:40:11 +09:00
David Lawrie fef170af85 dinput: Print location ID in debugstr_device on the Mac.
Signed-off-by: David Lawrie <david.dljunk@gmail.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-14 17:40:10 +09:00
Michael Stefaniuc 48bf99ea89 dinput: Support IUnknown in the IDirectInputEffect COM object.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-15 21:07:17 +09:00
Ken Thomases 7367c68cc9 dinput: Add additional debug logging to Mac code. 2014-04-14 10:25:19 +02:00
Ken Thomases 180b9e63d9 dinput: Fix numerous leaks. 2014-04-14 10:25:04 +02:00
Ken Thomases 2d809218a9 dinput: Check array indexes to avoid exceeding array bounds. 2014-04-14 10:24:58 +02:00
Ken Thomases ab872f2f36 dinput: Overhaul how the array of Mac device elements is built and sorted.
Use three separate arrays instead of one array with three sections that are
separately tracked.  Use the Core Foundation sort function rather than
implementing a clumsy sort of our own.
2014-04-14 10:24:53 +02:00
Ken Thomases bf938311a2 dinput: Use the proper mutable Core Foundation types for mutable collections and avoid casting. 2014-04-14 10:24:40 +02:00
Ken Thomases 4637b607b2 dinput: Fix check of wrong result value due to copy/paste error. 2014-04-14 10:24:26 +02:00
Ken Thomases d053533444 dinput: Rename identifiers to get rid of Hungarian notation and deceptive names in Mac code. 2014-04-14 10:24:21 +02:00
Frédéric Delanoy 25f3356906 dinput: Use BOOL type where appropriate. 2013-10-04 12:46:26 +02:00
Andrew Eikum 51f97bb3f9 dinput: Support DIPROP_FFGAIN for OSX joysticks. 2013-05-24 11:01:45 +02:00
Andrew Eikum 0ba2a2f70b dinput: Support DIPROP_AUTOCENTER for OSX joysticks. 2013-05-24 11:01:42 +02:00
Andrew Eikum 4ce1da041f dinput: Report axes that support FF for OSX joysticks. 2013-05-24 11:01:40 +02:00
Andrew Eikum 1b0b0ab9a5 dinput: Support SendForceFeedbackCommand for OSX joysticks. 2013-05-24 11:01:36 +02:00
Andrew Eikum 5135f80a27 dinput: Debug print DIEFFECT structure. 2013-05-24 11:01:33 +02:00
Andrew Eikum 44a2d36f70 dinput: Translate OSX errors to win32 errors. 2013-05-24 11:01:28 +02:00
Andrew Eikum 3de75b1e95 dinput: Implement force feedback functions for OSX joysticks. 2013-05-21 12:09:25 +02:00
Andrew Eikum e6450b4ea4 dinput: Determine if OSX devices support force feedback. 2013-05-21 12:09:22 +02:00
Andrew Eikum 0ba314ebfa dinput: Enumerate devices past the first non-matching device. 2013-05-21 12:08:01 +02:00
Andrew Talbot bf3d67c460 dinput: Qualify use of WINE_DEFAULT_DEBUG_CHANNEL. 2011-11-14 15:25:21 +01:00
Frédéric Delanoy f932abf326 dlls: Assorted spelling fixes. 2011-08-01 18:26:27 +02:00
Lucas Fialho Zawacki dc044e156d dinput: BuildActionMap and SetActionMap stubs for generic joystick. 2011-07-12 11:37:23 +02:00
Jonas Maebe 90d8608185 dinput: Hook up joysticks to DirectInput event queue on Mac OS X. 2011-06-17 11:09:00 +02:00
Charles Davis a2e11b452a dinput: Don't link to/include Carbon on Mac OS X. 2011-01-25 12:45:44 +01:00
Vitaliy Margolen 0ac5c60374 dinput: Combine ASCII and Unicode device create callbacks. Add tests. 2011-01-24 14:43:09 +01:00
Vitaliy Margolen 9441d898f7 dinput: Make newly created device append itself to Direct Input's list. 2011-01-19 12:58:01 +01:00
Vitaliy Margolen 6b30480021 dinput: COM cleanup - use interfaces instead of vtbl. Combine both Unicode and ASCII interfaces into the same classes. 2011-01-10 12:41:20 +01:00
Vitaliy Margolen 6a07885029 dinput: Explicitly define ASCII and Unicode methods in joystick base class. Use new methods in child classes. 2011-01-10 11:03:49 +01:00
Vitaliy Margolen 0f24b9e86f dinput: Explicitly define ASCII and Unicode methods in DirectInputDevice base class. Make ASCII methods call Unicode. Use new methods in child classes. 2011-01-10 11:03:17 +01:00
Vitaliy Margolen 399be3455a dinput: COM cleanup - use helper function instead of direct typecast in OS/X joystick. 2011-01-10 11:02:04 +01:00
Vitaliy Margolen 15216098e0 dinput: COM cleanup - use proper DirectInput interface with IUknown calls. 2011-01-10 10:58:14 +01:00
Vitaliy Margolen 7d650d0b28 dinput: Pass interface instead of this pointer to joystick poll callback. 2011-01-03 16:48:16 +01:00
Zach Smith fa5f61f59d dinput: OSX joystick driver separate device for each top level HID collection. 2010-09-21 20:16:16 +02:00