Browse Source

Fixed detecting the Steam virtual gamepad when HIDAPI is disabled

(cherry picked from commit ec0066aa0b8de1e8fca9e179ad3e33c0607e9a97)
Sam Lantinga 1 ngày trước cách đây
mục cha
commit
bfdd7ee8b4

+ 5 - 0
src/joystick/apple/SDL_mfijoystick.m

@@ -1773,6 +1773,11 @@ bool IOS_SupportedHIDDevice(IOHIDDeviceRef device)
         return false;
         return false;
     }
     }
 
 
+    if (IOHIDDeviceGetProperty(device, CFSTR(kIOHIDVirtualHIDevice)) == kCFBooleanTrue) {
+        // Steam virtual gamepads always have kIOHIDVirtualHIDevice property unlike real devices, and are also not exposed as GCController
+        return false;
+    }
+
     if (@available(macOS 11.0, *)) {
     if (@available(macOS 11.0, *)) {
         const int MAX_ATTEMPTS = 3;
         const int MAX_ATTEMPTS = 3;
         for (int attempt = 0; attempt < MAX_ATTEMPTS; ++attempt) {
         for (int attempt = 0; attempt < MAX_ATTEMPTS; ++attempt) {