Camilla Löwy 8 年之前
父節點
當前提交
ea6c50d9e2
共有 1 個文件被更改,包括 20 次插入28 次删除
  1. 20 28
      src/cocoa_joystick.m

+ 20 - 28
src/cocoa_joystick.m

@@ -196,39 +196,31 @@ static void matchCallback(void* context,
         }
 
         CFMutableArrayRef target = NULL;
-        const uint32_t usage = IOHIDElementGetUsage(native);
 
-        switch (IOHIDElementGetUsagePage(native))
+        const uint32_t usage = IOHIDElementGetUsage(native);
+        const uint32_t page = IOHIDElementGetUsagePage(native);
+        if (page == kHIDPage_GenericDesktop)
         {
-            case kHIDPage_GenericDesktop:
+            switch (usage)
             {
-                switch (usage)
-                {
-                    case kHIDUsage_GD_X:
-                    case kHIDUsage_GD_Y:
-                    case kHIDUsage_GD_Z:
-                    case kHIDUsage_GD_Rx:
-                    case kHIDUsage_GD_Ry:
-                    case kHIDUsage_GD_Rz:
-                    case kHIDUsage_GD_Slider:
-                    case kHIDUsage_GD_Dial:
-                    case kHIDUsage_GD_Wheel:
-                        target = axes;
-                        break;
-                    case kHIDUsage_GD_Hatswitch:
-                        target = hats;
-                        break;
-                }
-
-                break;
+                case kHIDUsage_GD_X:
+                case kHIDUsage_GD_Y:
+                case kHIDUsage_GD_Z:
+                case kHIDUsage_GD_Rx:
+                case kHIDUsage_GD_Ry:
+                case kHIDUsage_GD_Rz:
+                case kHIDUsage_GD_Slider:
+                case kHIDUsage_GD_Dial:
+                case kHIDUsage_GD_Wheel:
+                    target = axes;
+                    break;
+                case kHIDUsage_GD_Hatswitch:
+                    target = hats;
+                    break;
             }
-
-            case kHIDPage_Button:
-                target = buttons;
-                break;
-            default:
-                break;
         }
+        else if (page == kHIDPage_Button)
+            target = buttons;
 
         if (target)
         {