Tim Schumacher : dinput: Check for wheel axes/ buttons when finding joysticks.

Alexandre Julliard julliard at winehq.org
Fri May 31 15:53:31 CDT 2019


Module: wine
Branch: master
Commit: 66462cb7dcff05df68edf398e42641b24c940d99
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=66462cb7dcff05df68edf398e42641b24c940d99

Author: Tim Schumacher <timschumi at gmx.de>
Date:   Fri May 31 16:42:00 2019 +0200

dinput: Check for wheel axes/buttons when finding joysticks.

Signed-off-by: Tim Schumacher <timschumi at gmx.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dinput/joystick_linuxinput.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c
index e4f5db8..8d80b34 100644
--- a/dlls/dinput/joystick_linuxinput.c
+++ b/dlls/dinput/joystick_linuxinput.c
@@ -234,10 +234,16 @@ static void find_joydevs(void)
 
         /* A true joystick has at least axis X and Y, and at least 1
          * button. copied from linux/drivers/input/joydev.c */
-        if (!test_bit(joydev.absbits, ABS_X) || !test_bit(joydev.absbits, ABS_Y) ||
+        if (((!test_bit(joydev.absbits, ABS_X) || !test_bit(joydev.absbits, ABS_Y)) &&
+             !test_bit(joydev.absbits, ABS_WHEEL) &&
+             !test_bit(joydev.absbits, ABS_GAS) &&
+             !test_bit(joydev.absbits, ABS_BRAKE)) ||
             !(test_bit(joydev.keybits, BTN_TRIGGER) ||
               test_bit(joydev.keybits, BTN_A) ||
-              test_bit(joydev.keybits, BTN_1)))
+              test_bit(joydev.keybits, BTN_1) ||
+              test_bit(joydev.keybits, BTN_BASE) ||
+              test_bit(joydev.keybits, BTN_GEAR_UP) ||
+              test_bit(joydev.keybits, BTN_GEAR_DOWN)))
         {
             close(fd);
             continue;
@@ -259,6 +265,8 @@ static void find_joydevs(void)
             test_bit(joydev.keybits, BTN_BASE4) ||
             test_bit(joydev.keybits, BTN_BASE5) ||
             test_bit(joydev.keybits, BTN_BASE6) ||
+            test_bit(joydev.keybits, BTN_GEAR_UP) ||
+            test_bit(joydev.keybits, BTN_GEAR_DOWN) ||
             test_bit(joydev.keybits, BTN_DEAD);
 
         if (!(joydev.device = HeapAlloc(GetProcessHeap(), 0, strlen(buf) + 1)))




More information about the wine-cvs mailing list