From c024b30e9d3c8913b0138774a9b5ea9b073e8969 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sun, 9 Nov 2014 17:13:03 +0200 Subject: [PATCH] Availability of game controller API is now determined on runtime --- src/cocoa/i_joystick.cpp | 50 +++++++++++----------------------------- 1 file changed, 14 insertions(+), 36 deletions(-) diff --git a/src/cocoa/i_joystick.cpp b/src/cocoa/i_joystick.cpp index 889c38fed..4d983176d 100644 --- a/src/cocoa/i_joystick.cpp +++ b/src/cocoa/i_joystick.cpp @@ -33,7 +33,7 @@ #include "m_joy.h" -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 +#include #include "HID_Utilities_External.h" @@ -726,7 +726,19 @@ IOKitJoystickManager* s_joystickManager; void I_StartupJoysticks() { - s_joystickManager = new IOKitJoystickManager; + SInt32 majorVersion = 0; + SInt32 minorVersion = 0; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + Gestalt(gestaltSystemVersionMajor, &majorVersion); + Gestalt(gestaltSystemVersionMinor, &minorVersion); +#pragma clang diagnostic pop + + if (majorVersion >= 10 && minorVersion >= 5) + { + s_joystickManager = new IOKitJoystickManager; + } } void I_ShutdownJoysticks() @@ -776,37 +788,3 @@ void I_ProcessJoysticks() s_joystickManager->Update(); } } - -#else // prior to 10.5 - -void I_StartupJoysticks() -{ -} - -void I_ShutdownJoysticks() -{ -} - -void I_GetJoysticks(TArray& sticks) -{ - sticks.Clear(); -} - -void I_GetAxes(float axes[NUM_JOYAXIS]) -{ - for (size_t i = 0; i < NUM_JOYAXIS; ++i) - { - axes[i] = 0.0f; - } -} - -IJoystickConfig *I_UpdateDeviceList() -{ - return NULL; -} - -void I_ProcessJoysticks() -{ -} - -#endif // 10.5 or higher