Path: blob/master/thirdparty/sdl/patches/0007-shield-duplicate-macos.patch
21807 views
diff --git a/thirdparty/sdl/joystick/apple/SDL_mfijoystick.m b/thirdparty/sdl/joystick/apple/SDL_mfijoystick.m1index 48e9051798..3e8f4a8bab 1006442--- a/thirdparty/sdl/joystick/apple/SDL_mfijoystick.m3+++ b/thirdparty/sdl/joystick/apple/SDL_mfijoystick.m4@@ -158,6 +158,13 @@ static bool IsControllerSwitchJoyConPair(GCController *controller)5}6return false;7}8+static bool IsControllerNVIDIASHIELD(GCController *controller)9+{10+ if ([controller.vendorName hasPrefix:@"NVIDIA Controller"]) {11+ return true;12+ }13+ return false;14+}15static bool IsControllerStadia(GCController *controller)16{17if ([controller.vendorName hasPrefix:@"Stadia"]) {18@@ -339,6 +346,7 @@ static bool IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle19device->is_ps5 = IsControllerPS5(controller);20device->is_switch_pro = IsControllerSwitchPro(controller);21device->is_switch_joycon_pair = IsControllerSwitchJoyConPair(controller);22+ device->is_shield = IsControllerNVIDIASHIELD(controller);23device->is_stadia = IsControllerStadia(controller);24device->is_backbone_one = IsControllerBackboneOne(controller);25device->is_switch_joyconL = IsControllerSwitchJoyConL(controller);26@@ -350,6 +358,7 @@ static bool IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle27(device->is_ps5 && HIDAPI_IsDeviceTypePresent(SDL_GAMEPAD_TYPE_PS5)) ||28(device->is_switch_pro && HIDAPI_IsDeviceTypePresent(SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO)) ||29(device->is_switch_joycon_pair && HIDAPI_IsDevicePresent(USB_VENDOR_NINTENDO, USB_PRODUCT_NINTENDO_SWITCH_JOYCON_PAIR, 0, "")) ||30+ (device->is_shield && HIDAPI_IsDevicePresent(USB_VENDOR_NVIDIA, USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V104, 0, "")) ||31(device->is_stadia && HIDAPI_IsDevicePresent(USB_VENDOR_GOOGLE, USB_PRODUCT_GOOGLE_STADIA_CONTROLLER, 0, "")) ||32(device->is_switch_joyconL && HIDAPI_IsDevicePresent(USB_VENDOR_NINTENDO, USB_PRODUCT_NINTENDO_SWITCH_JOYCON_LEFT, 0, "")) ||33(device->is_switch_joyconR && HIDAPI_IsDevicePresent(USB_VENDOR_NINTENDO, USB_PRODUCT_NINTENDO_SWITCH_JOYCON_RIGHT, 0, ""))) {34@@ -486,7 +495,7 @@ static bool IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle35subtype = 4;3637#ifdef DEBUG_CONTROLLER_PROFILE38- NSLog(@"Elements used:\n", controller.vendorName);39+ NSLog(@"Elements used:\n");40for (id key in device->buttons) {41NSLog(@"\tButton: %@ (%s)\n", key, elements[key].analog ? "analog" : "digital");42}43diff --git a/thirdparty/sdl/joystick/apple/SDL_mfijoystick_c.h b/thirdparty/sdl/joystick/apple/SDL_mfijoystick_c.h44index 783b3f488c..dfa7615964 10064445--- a/thirdparty/sdl/joystick/apple/SDL_mfijoystick_c.h46+++ b/thirdparty/sdl/joystick/apple/SDL_mfijoystick_c.h47@@ -53,6 +53,7 @@ typedef struct joystick_hwdata48bool is_switch_joycon_pair;49bool is_switch_joyconL;50bool is_switch_joyconR;51+ bool is_shield;52bool is_stadia;53bool is_backbone_one;54int is_siri_remote;555657