Skip to content

Commit 1502c2f

Browse files
authored
Added support for the Flydigi Apex 5 controller (#14218)
1 parent 0d2f081 commit 1502c2f

File tree

6 files changed

+420
-44
lines changed

6 files changed

+420
-44
lines changed

src/hidapi/SDL_hidapi.c

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

src/joystick/SDL_gamepad.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,6 +1281,9 @@ static GamepadMapping_t *SDL_CreateMappingForHIDAPIGamepad(SDL_GUID guid)
12811281
if (guid.data[15] >= SDL_FLYDIGI_VADER2) {
12821282
// Vader series of controllers have C/Z buttons
12831283
SDL_strlcat(mapping_string, "misc2:b15,misc3:b16,", sizeof(mapping_string));
1284+
} else if (guid.data[15] == SDL_FLYDIGI_APEX5) {
1285+
// Apex 5 has additional shoulder macro buttons
1286+
SDL_strlcat(mapping_string, "misc2:b15,misc3:b16,", sizeof(mapping_string));
12841287
}
12851288
} else if (vendor == USB_VENDOR_8BITDO && product == USB_PRODUCT_8BITDO_ULTIMATE2_WIRELESS) {
12861289
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
@@ -3276,7 +3276,17 @@ bool SDL_IsJoystickSInputController(Uint16 vendor_id, Uint16 product_id)
32763276

32773277
bool SDL_IsJoystickFlydigiController(Uint16 vendor_id, Uint16 product_id)
32783278
{
3279-
return vendor_id == USB_VENDOR_FLYDIGI && product_id == USB_PRODUCT_FLYDIGI_GAMEPAD;
3279+
if (vendor_id == USB_VENDOR_FLYDIGI_V1) {
3280+
if (product_id == USB_PRODUCT_FLYDIGI_V1_GAMEPAD) {
3281+
return true;
3282+
}
3283+
}
3284+
if (vendor_id == USB_VENDOR_FLYDIGI_V2) {
3285+
if (product_id == USB_PRODUCT_FLYDIGI_V2_APEX || product_id == USB_PRODUCT_FLYDIGI_V2_VADER) {
3286+
return true;
3287+
}
3288+
}
3289+
return false;
32803290
}
32813291

32823292
bool SDL_IsJoystickSteamDeck(Uint16 vendor_id, Uint16 product_id)

0 commit comments

Comments
 (0)