From e9f567c707931cb9dd9946e5bd49c24796a35f2f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 27 May 2020 10:14:08 -0700 Subject: [PATCH] Fixed building on iOS with MFI controllers disabled --- src/joystick/iphoneos/SDL_sysjoystick.m | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/joystick/iphoneos/SDL_sysjoystick.m b/src/joystick/iphoneos/SDL_sysjoystick.m index 12657ff10..4f413e976 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