Module: wine
Branch: master
Commit: 1a6458bad8191a8188d76ba21b38ef457bfe1295
URL: https://source.winehq.org/git/wine.git/?a=commit;h=1a6458bad8191a8188d76ba2…
Author: Tim Schumacher <timschumi(a)gmx.de>
Date: Sun Mar 31 13:09:43 2019 +0200
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(a)gmx.de>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/dinput/joystick_linux.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c
index 736a06e..f93fc2f 100644
--- a/dlls/dinput/joystick_linux.c
+++ b/dlls/dinput/joystick_linux.c
@@ -239,6 +239,14 @@ static INT find_joystick_devices(void)
joydev.dev_axes_map[j] = j;
found_axes++;
}
+ else if (axes_map[j] <= 10)
+ {
+ /* Axes 8 through 10 are Wheel, Gas and Brake,
+ * remap to 0, 1 and 2
+ */
+ joydev.dev_axes_map[j] = axes_map[j] - 8;
+ found_axes++;
+ }
else if (axes_map[j] == 16 ||
axes_map[j] == 17)
{
Module: wine
Branch: master
Commit: 905e7b0e2ef99c7ccfa5a3dda0844d5ea40afc77
URL: https://source.winehq.org/git/wine.git/?a=commit;h=905e7b0e2ef99c7ccfa5a3dd…
Author: Tim Schumacher <timschumi(a)gmx.de>
Date: Sun Mar 31 13:02:27 2019 +0200
winejoystick: Add support for wheel axes.
Wheel, gas, and brake are replacements for X, Y and Z in wheel-like
joysticks. Remap them internally to send inputs as X, Y, and Z.
Signed-off-by: Tim Schumacher <timschumi(a)gmx.de>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/winejoystick.drv/joystick_linux.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/dlls/winejoystick.drv/joystick_linux.c b/dlls/winejoystick.drv/joystick_linux.c
index 85ad2fe..8d1a7b1 100644
--- a/dlls/winejoystick.drv/joystick_linux.c
+++ b/dlls/winejoystick.drv/joystick_linux.c
@@ -270,10 +270,13 @@ LRESULT driver_joyGetDevCaps(DWORD_PTR dwDevID, LPJOYCAPSW lpCaps, DWORD dwSize)
switch (jstck->axesMap[i]) {
case 0: /* X */
case 1: /* Y */
+ case 8: /* Wheel */
+ case 9: /* Gas */
lpCaps->wNumAxes++;
break;
case 2: /* Z */
case 6: /* Throttle */
+ case 10: /* Brake */
lpCaps->wNumAxes++;
lpCaps->wCaps |= JOYCAPS_HASZ;
break;
@@ -322,13 +325,16 @@ LRESULT driver_joyGetPosEx(DWORD_PTR dwDevID, LPJOYINFOEX lpInfo)
if (ev.type == (JS_EVENT_AXIS)) {
switch (jstck->axesMap[ev.number]) {
case 0: /* X */
+ case 8: /* Wheel */
jstck->x = ev.value;
break;
case 1: /* Y */
+ case 9: /* Gas */
jstck->y = ev.value;
break;
case 2: /* Z */
case 6: /* Throttle */
+ case 10: /* Brake */
jstck->z = ev.value;
break;
case 5: /* Rz */