Просмотр исходного кода

add EVOTOP AXIS controller support (#16117)

zuiki_inn 1 месяц назад
Родитель
Сommit
f1c274038b
2 измененных файлов с 10 добавлено и 2 удалено
  1. 9 2
      src/joystick/hidapi/SDL_hidapi_zuiki.c
  2. 1 0
      src/joystick/usb_ids.h

+ 9 - 2
src/joystick/hidapi/SDL_hidapi_zuiki.c

@@ -98,6 +98,7 @@ static bool HIDAPI_DriverZUIKI_IsSupportedDevice(SDL_HIDAPI_Device *device, cons
         case USB_PRODUCT_ZUIKI_EVOTOP_UWB_DINPUT:
         case USB_PRODUCT_ZUIKI_EVOTOP_PC_DINPUT:
         case USB_PRODUCT_ZUIKI_EVOTOP_PC_BT:
+        case USB_PRODUCT_ZUIKI_EVOTOP_AXIS_DINPUT:
             return true;
         default:
             break;
@@ -149,6 +150,9 @@ static bool HIDAPI_DriverZUIKI_InitDevice(SDL_HIDAPI_Device *device)
             }
             HIDAPI_SetDeviceName(device, "ZUIKI EVOTOP");
             break;
+        case USB_PRODUCT_ZUIKI_EVOTOP_AXIS_DINPUT:
+            HIDAPI_SetDeviceName(device, "ZUIKI EVOTOP AXIS");
+            break;
         default:
             break;
     }
@@ -207,7 +211,9 @@ static bool HIDAPI_DriverZUIKI_RumbleJoystickTriggers(SDL_HIDAPI_Device *device,
 static Uint32 HIDAPI_DriverZUIKI_GetJoystickCapabilities(SDL_HIDAPI_Device *device, SDL_Joystick *joystick)
 {
     Uint32 caps = 0;
-    caps |= SDL_JOYSTICK_CAP_RUMBLE;
+    if (device->product_id != USB_PRODUCT_ZUIKI_EVOTOP_AXIS_DINPUT) {
+        caps |= SDL_JOYSTICK_CAP_RUMBLE;
+    }
     return caps;
 }
 
@@ -453,7 +459,8 @@ static bool HIDAPI_DriverZUIKI_UpdateDevice(SDL_HIDAPI_Device *device)
             HIDAPI_DriverZUIKI_Handle_EVOTOP_PCBT_StatePacket(joystick, ctx, data, size);
         } else if (device->product_id == USB_PRODUCT_ZUIKI_EVOTOP_PC_DINPUT
             || device->product_id == USB_PRODUCT_ZUIKI_MASCON_PRO
-            || device->product_id == USB_PRODUCT_ZUIKI_EVOTOP_UWB_DINPUT) {
+            || device->product_id == USB_PRODUCT_ZUIKI_EVOTOP_UWB_DINPUT
+            || device->product_id == USB_PRODUCT_ZUIKI_EVOTOP_AXIS_DINPUT) {
             HIDAPI_DriverZUIKI_HandleOldStatePacket(joystick, ctx, data, size);
         }
     }

+ 1 - 0
src/joystick/usb_ids.h

@@ -213,6 +213,7 @@
 #define USB_PRODUCT_ZUIKI_EVOTOP_UWB_DINPUT               0X001c
 #define USB_PRODUCT_ZUIKI_EVOTOP_PC_DINPUT                0X001d
 #define USB_PRODUCT_ZUIKI_EVOTOP_PC_BT                    0X0017
+#define USB_PRODUCT_ZUIKI_EVOTOP_AXIS_DINPUT              0X0020
 #define USB_PRODUCT_VOIDGAMING_PS4FIREBIRD                0x10e5
 #define USB_PRODUCT_VOIDGAMING_GENESIS_SINPUT             0x1014