Piotr Caban : winebus.sys: Restore IG_ substring in gamepads endpoint path.

Alexandre Julliard julliard at winehq.org
Thu May 16 16:26:59 CDT 2019


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu May 16 15:47:51 2019 +0200

winebus.sys: Restore IG_ substring in gamepads endpoint path.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47209
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Aric Stewart <aric at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winebus.sys/bus_iohid.c | 8 ++++++--
 dlls/winebus.sys/bus_sdl.c   | 8 ++++++--
 dlls/winebus.sys/bus_udev.c  | 2 ++
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/dlls/winebus.sys/bus_iohid.c b/dlls/winebus.sys/bus_iohid.c
index 86f32b6..9b7cc35 100644
--- a/dlls/winebus.sys/bus_iohid.c
+++ b/dlls/winebus.sys/bus_iohid.c
@@ -290,6 +290,7 @@ 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);
 
@@ -344,9 +345,12 @@ 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(iohid_driver_obj, busidW, vid, pid, -1, version, uid, str?serial_string:NULL,
-            is_gamepad, &GUID_DEVCLASS_IOHID, &iohid_vtbl, sizeof(struct platform_private));
+    device = bus_create_hid_device(iohid_driver_obj, busidW, vid, pid, input,
+            version, uid, str?serial_string:NULL, is_gamepad, &GUID_DEVCLASS_IOHID,
+            &iohid_vtbl, sizeof(struct platform_private));
     if (!device)
         ERR("Failed to create device\n");
     else
diff --git a/dlls/winebus.sys/bus_sdl.c b/dlls/winebus.sys/bus_sdl.c
index e669b36..d79c200 100644
--- a/dlls/winebus.sys/bus_sdl.c
+++ b/dlls/winebus.sys/bus_sdl.c
@@ -891,6 +891,7 @@ static void try_add_device(SDL_JoystickID index)
     WCHAR serial[34] = {0};
     char guid_str[34];
     BOOL is_xbox_gamepad;
+    WORD input = -1;
 
     SDL_Joystick* joystick;
     SDL_JoystickID id;
@@ -941,9 +942,12 @@ static void try_add_device(SDL_JoystickID 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_driver_obj, sdl_busidW, vid, pid, -1, version, id, serial,
-            is_xbox_gamepad, &GUID_DEVCLASS_SDL, &sdl_vtbl, sizeof(struct platform_private));
+    device = bus_create_hid_device(sdl_driver_obj, sdl_busidW, vid, pid,
+            input, version, id, serial, is_xbox_gamepad, &GUID_DEVCLASS_SDL,
+            &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 bb6c932..a37f7bd 100644
--- a/dlls/winebus.sys/bus_udev.c
+++ b/dlls/winebus.sys/bus_udev.c
@@ -1205,6 +1205,8 @@ 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 %u, serial %s)\n",




More information about the wine-cvs mailing list