Browse Source

Re-enumerate devices if a read fails

This allows combined Joy-Con devices to immediately separate if one of them is disconnected
Sam Lantinga 2 years ago
parent
commit
5d63a3d435
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/joystick/hidapi/SDL_hidapijoystick.c

+ 4 - 1
src/joystick/hidapi/SDL_hidapijoystick.c

@@ -1003,7 +1003,10 @@ HIDAPI_UpdateDevices(void)
             if (device->driver) {
                 if (SDL_TryLockMutex(device->dev_lock) == 0) {
                     device->updating = SDL_TRUE;
-                    device->driver->UpdateDevice(device);
+                    if (!device->driver->UpdateDevice(device)) {
+                        /* Try re-enumerating the device if it fails */
+                        SDL_HIDAPI_change_count = 0;
+                    }
                     device->updating = SDL_FALSE;
                     SDL_UnlockMutex(device->dev_lock);
                 }