[PATCH 3/5] winebus.sys: Stop enforcing input number for gamepads.

Rémi Bernon rbernon at codeweavers.com
Wed Aug 18 02:31:12 CDT 2021


The &IG_00 suffix is now automatically added by xinput.sys, and we use
a compatible id instead to match devices.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 dlls/winebus.sys/bus_iohid.c | 5 +----
 dlls/winebus.sys/bus_sdl.c   | 5 +----
 dlls/winebus.sys/bus_udev.c  | 2 --
 3 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/dlls/winebus.sys/bus_iohid.c b/dlls/winebus.sys/bus_iohid.c
index 4eb0ea0e4b3..8ba90714071 100644
--- a/dlls/winebus.sys/bus_iohid.c
+++ b/dlls/winebus.sys/bus_iohid.c
@@ -289,7 +289,6 @@ static void handle_DeviceMatchingCallback(void *context, IOReturn result, void *
     CFStringRef str = NULL;
     WCHAR serial_string[256];
     BOOL is_gamepad = FALSE;
-    WORD input = -1;
 
     TRACE("OS/X IOHID Device Added %p\n", IOHIDDevice);
 
@@ -351,10 +350,8 @@ static void handle_DeviceMatchingCallback(void *context, IOReturn result, void *
             is_gamepad = (axes == 6  && buttons >= 14);
         }
     }
-    if (is_gamepad)
-        input = 0;
 
-    device = bus_create_hid_device(busidW, vid, pid, input,
+    device = bus_create_hid_device(busidW, vid, pid, -1,
             version, uid, str ? serial_string : NULL, is_gamepad,
             &iohid_vtbl, sizeof(struct platform_private));
     if (!device)
diff --git a/dlls/winebus.sys/bus_sdl.c b/dlls/winebus.sys/bus_sdl.c
index 84e3ef20664..c2b0ad17c95 100644
--- a/dlls/winebus.sys/bus_sdl.c
+++ b/dlls/winebus.sys/bus_sdl.c
@@ -735,7 +735,6 @@ static void try_add_device(unsigned int index)
     WCHAR serial[34] = {0};
     char guid_str[34];
     BOOL is_xbox_gamepad;
-    WORD input = -1;
 
     SDL_Joystick* joystick;
     SDL_JoystickID id;
@@ -786,10 +785,8 @@ static void try_add_device(unsigned int index)
         button_count = pSDL_JoystickNumButtons(joystick);
         is_xbox_gamepad = (axis_count == 6  && button_count >= 14);
     }
-    if (is_xbox_gamepad)
-        input = 0;
 
-    device = bus_create_hid_device(sdl_busidW, vid, pid, input, version, index,
+    device = bus_create_hid_device(sdl_busidW, vid, pid, -1, version, index,
             serial, is_xbox_gamepad, &sdl_vtbl, sizeof(struct platform_private));
 
     if (device)
diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c
index 77a242a6087..1a51a813a35 100644
--- a/dlls/winebus.sys/bus_udev.c
+++ b/dlls/winebus.sys/bus_udev.c
@@ -1118,8 +1118,6 @@ static void try_add_device(struct udev_device *dev)
         is_gamepad = (axes == 6  && buttons >= 14);
     }
 #endif
-    if (input == (WORD)-1 && is_gamepad)
-        input = 0;
 
     TRACE("Found udev device %s (vid %04x, pid %04x, version %04x, input %d, serial %s)\n",
           debugstr_a(devnode), vid, pid, version, input, debugstr_w(serial));
-- 
2.32.0




More information about the wine-devel mailing list