Rémi Bernon
e4766cad6d
dinput: Remove unusual HID joystick button count FIXMEs.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:06:46 +02:00
Rémi Bernon
5732347cbe
dinput: Implement HID joystick DIPROP_AUTOCENTER property.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:06:44 +02:00
Rémi Bernon
5eb65418eb
dinput: Implement HID joystick DIPROP_(DEADZONE|SATURATION|GRANULARITY).
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:06:42 +02:00
Rémi Bernon
9646873d63
dinput: Scale HID joystick axis values according to their center point.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:06:39 +02:00
Rémi Bernon
3886634c82
dinput: Reset the HID joystick state values on DIPROP_RANGE changes.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:06:36 +02:00
Rémi Bernon
844db6e53e
dinput: Check that DIPROP_RANGE lMin and lMax are ordered.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:06:32 +02:00
Rémi Bernon
5d1f3baacd
dinput: Return DIERR_UNSUPPORTED when reading DIPROP_RANGE with DIPH_DEVICE mode.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:06:27 +02:00
Rémi Bernon
50c1f45441
dinput: Return DIERR_NOTFOUND when DIPROP_RANGE object isn't found.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 10:06:22 +02:00
Rémi Bernon
42ba8f605d
dinput: Compute HID joystick object offsets dynamically.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:34:43 +02:00
Rémi Bernon
85d7c56a83
dinput: Convert DIPH_BYOFFSET filter to use current data format offsets.
...
Instead of hardcoded DIJOYSTATE2 offsets.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:34:43 +02:00
Rémi Bernon
e990e4b232
dinput: Return proper error status from HID joystick GetObjectInfo.
...
When no object matched the enumeration or when DIPH_DEVICE is used.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:34:43 +02:00
Rémi Bernon
1f8487e2f0
dinput: Enumerate all HID joystick objects at once.
...
Instead of using individual helpers.
The force-feedback EnumObjects test shows that we should enumerate the
output objects in their original order in the HID report descriptor, not
depending on their button/value nature.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:34:43 +02:00
Rémi Bernon
d682b3a9d3
dinput: Use a custom HID joystick state instead of DIJOYSTATE2.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:34:43 +02:00
Rémi Bernon
6217705391
dinput: Open the WINEXINPUT interface when the override key is set.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-24 21:55:19 +02:00
Rémi Bernon
5c18aa58d3
dinput: Report HID joystick wheel usage as a Z axis.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:11:43 +02:00
Rémi Bernon
a12b2dec4f
dinput: Count all HID joystick button objects.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:11:33 +02:00
Rémi Bernon
1316142b62
dinput: Use fixed axis object instance number for common axes.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:11:29 +02:00
Rémi Bernon
eab7819d7a
dinput: Add an instance number to HID joystick collection objects.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:11:23 +02:00
Rémi Bernon
aa60766259
dinput: Set HID joystick objects wCollectionNumber field.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 18:11:19 +02:00
Rémi Bernon
54b2fc3553
dinput: Return correct errors from HID joystick IDirectInputDevice8_Poll.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:47 +02:00
Rémi Bernon
aa43d24cd8
dinput: Return correct errors from HID joystick IDirectInputDevice8_GetDeviceState.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:44 +02:00
Rémi Bernon
78f04ca082
dinput: Return correct errors from HID joystick IDirectInputDevice8_SetProperty.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:42 +02:00
Rémi Bernon
b4dfa8ff7b
dinput: Check sizes in HID joystick IDirectInputDevice8_GetProperty.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:37 +02:00
Rémi Bernon
0daf841712
dinput: Fix HID joystick DIPH_BYUSAGE object enumeration.
...
This adds some todo_wine because we now get the correct object, but it
has incorrect offset and instance number.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:30 +02:00
Rémi Bernon
7c4941d0ec
dinput: Implement more accurate HID joystick device subtypes.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:49 +02:00
Rémi Bernon
d47ec6502b
dinput: Pass output instance to get_object_info HID joystick callback.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:49 +02:00
Rémi Bernon
91d9819c95
dinput: Fire the notification only after all events have been queued.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 10:48:34 +02:00
Rémi Bernon
df0e491cb1
dinput: Don't disable HID joysticks by default.
...
Although not completely correct it should be usable already, and running
the tests would require setting the registry key before and cleaning it
up after otherwise.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 19:34:21 +02:00
Rémi Bernon
d1e0c5a732
dinput: Read HID reports from the internal thread.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
1117f9f072
dinput: Implement HID joystick IDirectInputDevice8_EnumObjects.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
ef7432d86e
dinput: Implement HID joystick IDirectInputDevice8_GetObjectInfo.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
2681caa3f8
dinput: Implement HID joystick IDirectInputDevice8_SetProperty.
...
For DIPROP_RANGE property on POVs and Axes, and initialize it on
creation.
This uses the value caps physical range, as it's exactly the purpose and
we don't use it for anything else otherwise.
We'll scale values from their logical range directly anyway to save a
conversion.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
81c15d2d81
dinput: Enumerate HID collections, input buttons and values.
...
And initialize data format from them.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
10a812fb7d
dinput: Implement HID joystick IDirectInputDevice8_GetCapabilities.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
91f4af3418
dinput: Implement HID joystick IDirectInputDevice8_GetDeviceState.
...
Removing the trace as it can get pretty verbose otherwise.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
6ba3a54842
dinput: Implement HID joystick IDirectInputDevice8_GetProperty.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
787d4af53b
dinput: Implement HID joystick IDirectInputDevice8_GetDeviceInfo.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Rémi Bernon
afa1e60b27
dinput: Introduce new HID joystick backend.
...
This adds a new joystick backend, implemented on top of HID and without
any host dependencies. This will be progressively implementated, and
it's not going to be usable until at least a few more patches.
Because of that, and because it may also introduce regressions compared
to the existing backends, it is disabled by default and is optionally
enabled using the following global registry key:
[HKCU\\Software\\Wine\\DirectInput\\Joysticks]
"HID"="enabled"
Or using the corresponding AppDefaults registry key:
[HKCU\\Software\\Wine\\AppDefaults\\<app.exe>\\DirectInput\\Joysticks]
"HID"="enabled"
This setting will be removed later, when it becomes usable enough, to
use the individual device disable mechanism available in joy.cpl.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-26 21:49:09 +02:00