Aric Stewart : winebus: Properly identify SDL joysticks index when hot-plugged.

Alexandre Julliard julliard at winehq.org
Tue May 8 15:58:58 CDT 2018


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

Author: Aric Stewart <aric at codeweavers.com>
Date:   Tue May  8 10:57:29 2018 -0500

winebus: Properly identify SDL joysticks index when hot-plugged.

Signed-off-by: Aric Stewart <aric at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winebus.sys/bus_sdl.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/dlls/winebus.sys/bus_sdl.c b/dlls/winebus.sys/bus_sdl.c
index e666d04..03e7cb3 100644
--- a/dlls/winebus.sys/bus_sdl.c
+++ b/dlls/winebus.sys/bus_sdl.c
@@ -817,7 +817,7 @@ static void try_add_device(SDL_JoystickID index)
     if (map_controllers && pSDL_IsGameController(index))
         controller = pSDL_GameControllerOpen(index);
 
-    id = index;
+    id = pSDL_JoystickInstanceID(joystick);
     if (controller)
     {
         vid = VID_MICROSOFT;
@@ -846,7 +846,7 @@ static void try_add_device(SDL_JoystickID index)
     if (controller)
     {
         TRACE("Found sdl game controller %i (vid %04x, pid %04x, version %u, serial %s)\n",
-              index, vid, pid, version, debugstr_w(serial));
+              id, vid, pid, version, debugstr_w(serial));
         is_xbox_gamepad = TRUE;
     }
     else
@@ -854,14 +854,14 @@ static void try_add_device(SDL_JoystickID index)
         int button_count, axis_count;
 
         TRACE("Found sdl device %i (vid %04x, pid %04x, version %u, serial %s)\n",
-              index, vid, pid, version, debugstr_w(serial));
+              id, vid, pid, version, debugstr_w(serial));
 
         axis_count = pSDL_JoystickNumAxes(joystick);
         button_count = pSDL_JoystickNumAxes(joystick);
         is_xbox_gamepad = (axis_count == 6  && button_count >= 14);
     }
 
-    device = bus_create_hid_device(sdl_driver_obj, sdl_busidW, vid, pid, version, 0, 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, version, id, serial, is_xbox_gamepad, &GUID_DEVCLASS_SDL, &sdl_vtbl, sizeof(struct platform_private));
 
     if (device)
     {
@@ -885,7 +885,7 @@ static void try_add_device(SDL_JoystickID index)
     }
     else
     {
-        WARN("Ignoring device %i\n", index);
+        WARN("Ignoring device %i\n", id);
     }
 }
 




More information about the wine-cvs mailing list