Browse Source

Skip PS4/PS5 probe message if we already know it's a supported controller

Sam Lantinga 2 years ago
parent
commit
899a1e7cba
2 changed files with 12 additions and 2 deletions
  1. 6 1
      src/joystick/hidapi/SDL_hidapi_ps4.c
  2. 6 1
      src/joystick/hidapi/SDL_hidapi_ps5.c

+ 6 - 1
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

+ 6 - 1
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