Skip PS4/PS5 probe message if we already know it's a supported controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
diff --git a/src/joystick/hidapi/SDL_hidapi_ps4.c b/src/joystick/hidapi/SDL_hidapi_ps4.c
index fcc4cca..216a37f 100644
--- a/src/joystick/hidapi/SDL_hidapi_ps4.c
+++ b/src/joystick/hidapi/SDL_hidapi_ps4.c
@@ -181,13 +181,18 @@ HIDAPI_DriverPS4_IsSupportedDevice(SDL_HIDAPI_Device *device, const char *name,
Uint8 data[USB_PACKET_LENGTH];
int size;
+ if (type == SDL_CONTROLLER_TYPE_PS4) {
+ return SDL_TRUE;
+ }
+
if (device && SONY_THIRDPARTY_VENDOR(device->vendor_id) &&
(size = ReadFeatureReport(device->dev, k_ePS4FeatureReportIdCapabilities, data, sizeof(data))) == 48 &&
data[2] == 0x27) {
/* Supported third party controller */
return SDL_TRUE;
}
- return (type == SDL_CONTROLLER_TYPE_PS4) ? SDL_TRUE : SDL_FALSE;
+
+ return SDL_FALSE;
}
static void
diff --git a/src/joystick/hidapi/SDL_hidapi_ps5.c b/src/joystick/hidapi/SDL_hidapi_ps5.c
index e128eda..187bfb2 100644
--- a/src/joystick/hidapi/SDL_hidapi_ps5.c
+++ b/src/joystick/hidapi/SDL_hidapi_ps5.c
@@ -263,13 +263,18 @@ HIDAPI_DriverPS5_IsSupportedDevice(SDL_HIDAPI_Device *device, const char *name,
Uint8 data[USB_PACKET_LENGTH];
int size;
+ if (type == SDL_CONTROLLER_TYPE_PS5) {
+ return SDL_TRUE;
+ }
+
if (device && SONY_THIRDPARTY_VENDOR(device->vendor_id) &&
(size = ReadFeatureReport(device->dev, k_EPS5FeatureReportIdCapabilities, data, sizeof(data))) == 48 &&
data[2] == 0x28) {
/* Supported third party controller */
return SDL_TRUE;
}
- return (type == SDL_CONTROLLER_TYPE_PS5) ? SDL_TRUE : SDL_FALSE;
+
+ return SDL_FALSE;
}
static void