Skip to content

Commit 9601119

Browse files
committed
Added support for the Flydigi Apex 5 controller
1 parent ab76f04 commit 9601119

File tree

6 files changed

+316
-36
lines changed

6 files changed

+316
-36
lines changed

src/hidapi/SDL_hidapi.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1068,7 +1068,13 @@ bool SDL_HIDAPI_ShouldIgnoreDevice(int bus, Uint16 vendor_id, Uint16 product_id,
10681068
(usage == USB_USAGE_GENERIC_KEYBOARD || usage == USB_USAGE_GENERIC_MOUSE)) {
10691069
return true;
10701070
}
1071-
} else if (vendor_id == USB_VENDOR_FLYDIGI && product_id == USB_PRODUCT_FLYDIGI_GAMEPAD) {
1071+
} else if (vendor_id == USB_VENDOR_FLYDIGI_V1 && product_id == USB_PRODUCT_FLYDIGI_V1_GAMEPAD) {
1072+
if (usage_page == USB_USAGEPAGE_VENDOR_FLYDIGI) {
1073+
return false;
1074+
}
1075+
return true;
1076+
} else if (vendor_id == USB_VENDOR_FLYDIGI_V2 &&
1077+
(product_id == USB_PRODUCT_FLYDIGI_V2_APEX || product_id == USB_PRODUCT_FLYDIGI_V2_VADER)) {
10721078
if (usage_page == USB_USAGEPAGE_VENDOR_FLYDIGI) {
10731079
return false;
10741080
}

src/joystick/SDL_gamepad.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,6 +1238,9 @@ static GamepadMapping_t *SDL_CreateMappingForHIDAPIGamepad(SDL_GUID guid)
12381238
if (guid.data[15] >= SDL_FLYDIGI_VADER2) {
12391239
// Vader series of controllers have C/Z buttons
12401240
SDL_strlcat(mapping_string, "misc2:b15,misc3:b16,", sizeof(mapping_string));
1241+
} else if (guid.data[15] == SDL_FLYDIGI_APEX5) {
1242+
// Apex 5 has additional shoulder macro buttons
1243+
SDL_strlcat(mapping_string, "misc2:b15,misc3:b16,", sizeof(mapping_string));
12411244
}
12421245
} else if (vendor == USB_VENDOR_8BITDO && product == USB_PRODUCT_8BITDO_ULTIMATE2_WIRELESS) {
12431246
SDL_strlcat(mapping_string, "paddle1:b12,paddle2:b11,paddle3:b14,paddle4:b13,", sizeof(mapping_string));

src/joystick/SDL_joystick.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3234,7 +3234,17 @@ bool SDL_IsJoystickSInputController(Uint16 vendor_id, Uint16 product_id)
32343234

32353235
bool SDL_IsJoystickFlydigiController(Uint16 vendor_id, Uint16 product_id)
32363236
{
3237-
return vendor_id == USB_VENDOR_FLYDIGI && product_id == USB_PRODUCT_FLYDIGI_GAMEPAD;
3237+
if (vendor_id == USB_VENDOR_FLYDIGI_V1) {
3238+
if (product_id == USB_PRODUCT_FLYDIGI_V1_GAMEPAD) {
3239+
return true;
3240+
}
3241+
}
3242+
if (vendor_id == USB_VENDOR_FLYDIGI_V2) {
3243+
if (product_id == USB_PRODUCT_FLYDIGI_V2_APEX || product_id == USB_PRODUCT_FLYDIGI_V2_VADER) {
3244+
return true;
3245+
}
3246+
}
3247+
return false;
32383248
}
32393249

32403250
bool SDL_IsJoystickSteamDeck(Uint16 vendor_id, Uint16 product_id)

0 commit comments

Comments
 (0)