Commit e9f567c707931cb9dd9946e5bd49c24796a35f2f

Sam Lantinga 2020-05-27T10:14:08

Fixed building on iOS with MFI controllers disabled

diff --git a/src/joystick/iphoneos/SDL_sysjoystick.m b/src/joystick/iphoneos/SDL_sysjoystick.m
index 12657ff..4f413e9 100644
--- a/src/joystick/iphoneos/SDL_sysjoystick.m
+++ b/src/joystick/iphoneos/SDL_sysjoystick.m
@@ -393,8 +393,6 @@ static int
 IOS_JoystickInit(void)
 {
     @autoreleasepool {
-        NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
-
 #if !TARGET_OS_TV
         if (SDL_GetHintBoolean(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, SDL_TRUE)) {
             /* Default behavior, accelerometer as joystick */
@@ -417,6 +415,8 @@ IOS_JoystickInit(void)
                             SDL_AppleTVRemoteRotationHintChanged, NULL);
 #endif /* TARGET_OS_TV */
 
+        NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
+
         connectObserver = [center addObserverForName:GCControllerDidConnectNotification
                                               object:nil
                                                queue:nil
@@ -466,17 +466,24 @@ IOS_JoystickGetDeviceName(int device_index)
 static int
 IOS_JoystickGetDevicePlayerIndex(int device_index)
 {
+#ifdef SDL_JOYSTICK_MFI
     SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index);
-    return device ? (int)device->controller.playerIndex : -1;
+    if (device && device->controller) {
+        return (int)device->controller.playerIndex;
+    }
+#endif
+    return -1;
 }
 
 static void
 IOS_JoystickSetDevicePlayerIndex(int device_index, int player_index)
 {
+#ifdef SDL_JOYSTICK_MFI
     SDL_JoystickDeviceItem *device = GetDeviceForIndex(device_index);
-    if (device) {
+    if (device && device->controller) {
         device->controller.playerIndex = player_index;
     }
+#endif
 }
 
 static SDL_JoystickGUID