Re-enumerate devices if a read fails

This allows combined Joy-Con devices to immediately separate if one of them is disconnected
This commit is contained in:
Sam Lantinga 2022-08-09 14:06:49 -07:00
parent da50f1bd3e
commit 5d63a3d435
1 changed files with 4 additions and 1 deletions

View File

@ -1003,7 +1003,10 @@ HIDAPI_UpdateDevices(void)
if (device->driver) { if (device->driver) {
if (SDL_TryLockMutex(device->dev_lock) == 0) { if (SDL_TryLockMutex(device->dev_lock) == 0) {
device->updating = SDL_TRUE; 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; device->updating = SDL_FALSE;
SDL_UnlockMutex(device->dev_lock); SDL_UnlockMutex(device->dev_lock);
} }