From b7fddb4c0ea2a7d4fcf512ca2ddfd82afd13d6a5 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 26 Sep 2022 14:39:51 -0700 Subject: [PATCH] Minor tweaks --- src/joystick/hidapi/SDL_hidapi_ps4.c | 4 ++-- src/joystick/hidapi/SDL_hidapi_ps5.c | 4 ++-- src/joystick/hidapi/SDL_hidapi_switch.c | 4 ++-- src/joystick/hidapi/SDL_hidapijoystick.c | 8 ++++++++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/joystick/hidapi/SDL_hidapi_ps4.c b/src/joystick/hidapi/SDL_hidapi_ps4.c index 6925be4ae..c9c24a381 100644 --- a/src/joystick/hidapi/SDL_hidapi_ps4.c +++ b/src/joystick/hidapi/SDL_hidapi_ps4.c @@ -958,8 +958,8 @@ HIDAPI_DriverPS4_UpdateDevice(SDL_HIDAPI_Device *device) int packet_count = 0; /* Reconnect the Bluetooth device once the USB device is gone */ - if (device->is_bluetooth && - device->num_joysticks == 0 && + if (device->num_joysticks == 0 && + device->is_bluetooth && !HIDAPI_HasConnectedUSBDevice(device->serial)) { HIDAPI_JoystickConnected(device, NULL); } diff --git a/src/joystick/hidapi/SDL_hidapi_ps5.c b/src/joystick/hidapi/SDL_hidapi_ps5.c index 390a9c20e..423d4e9ed 100644 --- a/src/joystick/hidapi/SDL_hidapi_ps5.c +++ b/src/joystick/hidapi/SDL_hidapi_ps5.c @@ -1266,8 +1266,8 @@ HIDAPI_DriverPS5_UpdateDevice(SDL_HIDAPI_Device *device) int packet_count = 0; /* Reconnect the Bluetooth device once the USB device is gone */ - if (device->is_bluetooth && - device->num_joysticks == 0 && + if (device->num_joysticks == 0 && + device->is_bluetooth && !HIDAPI_HasConnectedUSBDevice(device->serial)) { HIDAPI_JoystickConnected(device, NULL); } diff --git a/src/joystick/hidapi/SDL_hidapi_switch.c b/src/joystick/hidapi/SDL_hidapi_switch.c index b2cbcd1b1..86f8638d3 100644 --- a/src/joystick/hidapi/SDL_hidapi_switch.c +++ b/src/joystick/hidapi/SDL_hidapi_switch.c @@ -2077,8 +2077,8 @@ HIDAPI_DriverSwitch_UpdateDevice(SDL_HIDAPI_Device *device) Uint32 now; /* Reconnect the Bluetooth device once the USB device is gone */ - if (device->is_bluetooth && - device->num_joysticks == 0 && + if (device->num_joysticks == 0 && + device->is_bluetooth && !HIDAPI_HasConnectedUSBDevice(device->serial)) { HIDAPI_JoystickConnected(device, NULL); } diff --git a/src/joystick/hidapi/SDL_hidapijoystick.c b/src/joystick/hidapi/SDL_hidapijoystick.c index 4900b38ea..e3db2cfc5 100644 --- a/src/joystick/hidapi/SDL_hidapijoystick.c +++ b/src/joystick/hidapi/SDL_hidapijoystick.c @@ -535,6 +535,10 @@ HIDAPI_HasConnectedUSBDevice(const char *serial) SDL_HIDAPI_Device *device; for (device = SDL_HIDAPI_devices; device; device = device->next) { + if (!device->driver) { + continue; + } + if (device->is_bluetooth) { continue; } @@ -552,6 +556,10 @@ HIDAPI_DisconnectBluetoothDevice(const char *serial) SDL_HIDAPI_Device *device; for (device = SDL_HIDAPI_devices; device; device = device->next) { + if (!device->driver) { + continue; + } + if (!device->is_bluetooth) { continue; }