Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/sdl/patches/0007-shield-duplicate-macos.patch
21807 views
1
diff --git a/thirdparty/sdl/joystick/apple/SDL_mfijoystick.m b/thirdparty/sdl/joystick/apple/SDL_mfijoystick.m
2
index 48e9051798..3e8f4a8bab 100644
3
--- a/thirdparty/sdl/joystick/apple/SDL_mfijoystick.m
4
+++ b/thirdparty/sdl/joystick/apple/SDL_mfijoystick.m
5
@@ -158,6 +158,13 @@ static bool IsControllerSwitchJoyConPair(GCController *controller)
6
}
7
return false;
8
}
9
+static bool IsControllerNVIDIASHIELD(GCController *controller)
10
+{
11
+ if ([controller.vendorName hasPrefix:@"NVIDIA Controller"]) {
12
+ return true;
13
+ }
14
+ return false;
15
+}
16
static bool IsControllerStadia(GCController *controller)
17
{
18
if ([controller.vendorName hasPrefix:@"Stadia"]) {
19
@@ -339,6 +346,7 @@ static bool IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
20
device->is_ps5 = IsControllerPS5(controller);
21
device->is_switch_pro = IsControllerSwitchPro(controller);
22
device->is_switch_joycon_pair = IsControllerSwitchJoyConPair(controller);
23
+ device->is_shield = IsControllerNVIDIASHIELD(controller);
24
device->is_stadia = IsControllerStadia(controller);
25
device->is_backbone_one = IsControllerBackboneOne(controller);
26
device->is_switch_joyconL = IsControllerSwitchJoyConL(controller);
27
@@ -350,6 +358,7 @@ static bool IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
28
(device->is_ps5 && HIDAPI_IsDeviceTypePresent(SDL_GAMEPAD_TYPE_PS5)) ||
29
(device->is_switch_pro && HIDAPI_IsDeviceTypePresent(SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO)) ||
30
(device->is_switch_joycon_pair && HIDAPI_IsDevicePresent(USB_VENDOR_NINTENDO, USB_PRODUCT_NINTENDO_SWITCH_JOYCON_PAIR, 0, "")) ||
31
+ (device->is_shield && HIDAPI_IsDevicePresent(USB_VENDOR_NVIDIA, USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V104, 0, "")) ||
32
(device->is_stadia && HIDAPI_IsDevicePresent(USB_VENDOR_GOOGLE, USB_PRODUCT_GOOGLE_STADIA_CONTROLLER, 0, "")) ||
33
(device->is_switch_joyconL && HIDAPI_IsDevicePresent(USB_VENDOR_NINTENDO, USB_PRODUCT_NINTENDO_SWITCH_JOYCON_LEFT, 0, "")) ||
34
(device->is_switch_joyconR && HIDAPI_IsDevicePresent(USB_VENDOR_NINTENDO, USB_PRODUCT_NINTENDO_SWITCH_JOYCON_RIGHT, 0, ""))) {
35
@@ -486,7 +495,7 @@ static bool IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
36
subtype = 4;
37
38
#ifdef DEBUG_CONTROLLER_PROFILE
39
- NSLog(@"Elements used:\n", controller.vendorName);
40
+ NSLog(@"Elements used:\n");
41
for (id key in device->buttons) {
42
NSLog(@"\tButton: %@ (%s)\n", key, elements[key].analog ? "analog" : "digital");
43
}
44
diff --git a/thirdparty/sdl/joystick/apple/SDL_mfijoystick_c.h b/thirdparty/sdl/joystick/apple/SDL_mfijoystick_c.h
45
index 783b3f488c..dfa7615964 100644
46
--- a/thirdparty/sdl/joystick/apple/SDL_mfijoystick_c.h
47
+++ b/thirdparty/sdl/joystick/apple/SDL_mfijoystick_c.h
48
@@ -53,6 +53,7 @@ typedef struct joystick_hwdata
49
bool is_switch_joycon_pair;
50
bool is_switch_joyconL;
51
bool is_switch_joyconR;
52
+ bool is_shield;
53
bool is_stadia;
54
bool is_backbone_one;
55
int is_siri_remote;
56
57