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
16a11d0c90
dinput: Return fake DIPROP_GUIDANDPATH property for linux joysticks.
...
Some Ubisoft titles use the property to check if a dinput gamepad is
also an xinput device.
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:29 +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
Tim Schumacher
1a6458bad8
dinput: Map wheel, gas, and brake axes as well.
...
The axes wheel, gas, and brake are just differently named replacements
for X, Y, and Z when using wheel-like joysticks.
Make those accessible by remapping them to X, Y, and Z internally.
Signed-off-by: Tim Schumacher <timschumi@gmx.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-01 11:22:51 +02: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
Bruno Jesus
b50d1fa314
dinput: Limit axes while remaping broken devices.
...
Signed-off-by: Bruno Jesus <bjesus@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-13 20:56:19 +02:00
Bruno Jesus
e87ccb8b05
dinput: Assume a 1-to-1 axes map when no axes match.
...
The wiimote is a well known problematic device, mainly because it is not
a joystick. It is a USB device. But the classic controller is at least
advertised as a joystick with 6 axes and 11 buttons (js driver only, NO
event).
Signed-off-by: Bruno Jesus <bjesus@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-10 21:51:40 +02:00
Nikolay Sivov
3605cde8ea
dinput: Explicitly check for -1 as open() failure code.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-23 12:17:26 +09:00
Bruno Jesus
6b44c4f5cc
dinput: Get the controller type from the device instance for Linux drivers.
...
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-22 12:40:58 +09:00
Bruno Jesus
738e17b2d7
dinput: Properly fill the HID information for the controller in the js driver.
...
Even the Xbox 360 controller which does not use HID has the same flags
and usage page set on Windows.
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-17 13:17:54 +09:00
Bruno Jesus
cfd3076c31
dinput: Implement GetDeviceInfo(A) using the W version in the js driver.
...
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-17 13:17:54 +09:00
Bruno Jesus
7439f7948c
dinput: Use a helper to read information files for the js device.
...
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-17 13:17:54 +09:00
Bruno Jesus
58937117fb
dinput: Add support for DIPROP_VIDPID property in Linux js implementation.
...
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 12:56:31 +09:00
Bruno Jesus
63284bf9b5
dinput: Fix some debug output.
...
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 12:55:39 +09:00
Corentin Rossignon
081930e70b
dinput: Fix product GUID generation in Linux joystick and event API.
...
Signed-off-by: Corentin Rossignon <corossig@gmail.com>
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-25 14:28:37 +09:00
Corentin Rossignon
4f01bcb85f
dinput: Retrieve vendor ID and product ID in Linux joystick API.
...
Signed-off-by: Corentin Rossignon <corossig@gmail.com>
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-25 14:28:24 +09:00
Andrey Gusev
3321a7faec
dinput: Fix a typo in WARN() messages.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-23 20:26:18 +09:00
Charles Davis
4dba8a4e27
dinput: Don't define a debug channel when it isn't used.
...
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-18 00:22:04 +09:00
Alexandre Julliard
93f40b2ecc
dinput: Implement GetDeviceInfo for Linux joystick.
2015-02-24 21:55:47 +09:00
André Hentschel
c440168e53
dinput: Remove unused functions (Clang).
2014-11-25 19:49:40 +01:00
Bruno Jesus
7e2f26d6fa
dinput: Ensure variable is initialized when #define is not found (Cppcheck).
2014-11-04 13:31:59 +09:00
Austin English
bfafb1ffc5
dinput: Consistently use GetCurrentTime().
2013-12-11 16:26:01 +01:00
Andrew Eikum
3486a35ad8
dinput: Fix copy-paste typo.
2013-11-01 20:01:30 +01:00
Andrew Eikum
0ba314ebfa
dinput: Enumerate devices past the first non-matching device.
2013-05-21 12:08:01 +02:00
Marcus Meissner
1c3b1c3fec
dinput: Added a missing close(fd) in disabled case (Coverity).
2012-09-17 12:05:40 +02:00
Lucas Zawacki
3da6f1754e
dinput: Disable linuxinput or linux joysticks based on registry key.
2012-08-24 11:19:38 +02:00
Lucas Zawacki
8bfb125617
dinput: Append driver name to dinput joysticks on Linux.
2012-08-24 11:16:53 +02:00
Lucas Zawacki
fbfdc6db65
dinput: Implement GetProperty for JOYSTICKID (Linux driver).
2012-05-30 11:31:49 +02:00
Francois Gouget
c7cb3e6cb2
configure: Use errno.h instead of the non-standard sys/errno.h header.
2011-12-15 17:46:38 +01:00
Lucas Fialho Zawacki
dc044e156d
dinput: BuildActionMap and SetActionMap stubs for generic joystick.
2011-07-12 11:37:23 +02: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
e6a8aa67d0
dinput: Explicitly define ASCII and Unicode methods in joydev joystick.
2011-01-10 11:04:07 +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
a1b08e5d04
dinput: COM cleanup - use helper function instead of direct typecast in Linux joystick.
2011-01-10 11:01:55 +01:00
Vitaliy Margolen
0b99bf3edb
dinput: COM cleanup - use proper interface instead of typecasting This when calling queue_event.
2011-01-10 10:58:26 +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
Vitaliy Margolen
2665272d6c
dinput: Pass event instance ID to queue_event instead of offset.
2009-11-30 12:49:11 +01:00
Vitaliy Margolen
8c279bb80b
dinput: Fix POV for programs that use buffered events.
2009-09-11 12:14:25 +02:00
Vitaliy Margolen
9d86110327
dinput: Convert axis mapping array to int instead of BYTE. BYTE is unsigned and char isn't enough to store all possible axis values.
2009-09-08 13:07:09 +02:00
Vitaliy Margolen
f6351117f1
dinput: Move axes and buttons queries into initial joystick discovery for joydev driver.
2009-09-08 13:07:01 +02:00
Vitaliy Margolen
0932f4a113
dinput: Get default axes configuration from the device for joydev.
2009-08-19 12:26:03 +02:00
Vitaliy Margolen
9a73798af8
dinput: Expand joydev joystick discovery to query joystick name as well.
2009-08-19 12:25:55 +02:00
Vitaliy Margolen
fa9c11dad3
dinput: Let driver specify default axis mapping.
2009-08-19 12:25:27 +02:00