From ac1f896f89b5bea7a92e2a724c1c9ddbe1435299 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Thu, 16 Nov 2023 10:49:13 -0800
Subject: [PATCH] Fixed building with older macOS SDK
---
src/joystick/apple/SDL_mfijoystick.m | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/joystick/apple/SDL_mfijoystick.m b/src/joystick/apple/SDL_mfijoystick.m
index 1bdc9e17872a..29039d79a1c9 100644
--- a/src/joystick/apple/SDL_mfijoystick.m
+++ b/src/joystick/apple/SDL_mfijoystick.m
@@ -50,7 +50,6 @@
static id connectObserver = nil;
static id disconnectObserver = nil;
-static NSString *GCInputXboxShareButton = @"Button Share";
#include <Availability.h>
#include <objc/message.h>
@@ -420,7 +419,7 @@ static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
if (controller.physicalInputProfile.buttons[GCInputXboxPaddleOne] != nil) {
device->has_xbox_paddles = SDL_TRUE;
}
- if (controller.physicalInputProfile.buttons[GCInputXboxShareButton] != nil) {
+ if (controller.physicalInputProfile.buttons[@"Button Share"] != nil) {
device->has_xbox_share_button = SDL_TRUE;
}
}
@@ -627,7 +626,7 @@ static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
device->button_mask |= (1 << SDL_GAMEPAD_BUTTON_LEFT_PADDLE2);
++nbuttons;
}
- if (controller.physicalInputProfile.buttons[GCInputXboxShareButton] != nil) {
+ if (controller.physicalInputProfile.buttons[@"Button Share"] != nil) {
device->has_xbox_share_button = SDL_TRUE;
device->button_mask |= (1 << SDL_GAMEPAD_BUTTON_MISC1);
++nbuttons;
@@ -1271,7 +1270,7 @@ static void IOS_MFIJoystickUpdate(SDL_Joystick *joystick)
}
if (device->has_xbox_share_button) {
- buttons[button_count++] = controller.physicalInputProfile.buttons[GCInputXboxShareButton].isPressed;
+ buttons[button_count++] = controller.physicalInputProfile.buttons[@"Button Share"].isPressed;
}
#endif
#pragma clang diagnostic pop
@@ -1885,6 +1884,7 @@ static void IOS_JoystickQuit(void)
static SDL_bool IOS_JoystickGetGamepadMapping(int device_index, SDL_GamepadMapping *out)
{
+#ifdef ENABLE_PHYSICAL_INPUT_PROFILE
SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index);
if (device == NULL) {
return SDL_FALSE;
@@ -2019,6 +2019,9 @@ static SDL_bool IOS_JoystickGetGamepadMapping(int device_index, SDL_GamepadMappi
}
return SDL_TRUE;
+#else
+ return SDL_FALSE;
+#endif /* ENABLE_PHYSICAL_INPUT_PROFILE */
}
#if defined(SDL_JOYSTICK_MFI) && defined(__MACOS__)