From 15e9c6615c304b5d66365be0005cdcb3d4a55aa0 Mon Sep 17 00:00:00 2001 From: uramer Date: Wed, 19 Jan 2022 21:32:46 +0100 Subject: [PATCH] Disable controller gyro with older SDL --- apps/openmw/mwinput/controllermanager.cpp | 26 +++++++++++++---------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/apps/openmw/mwinput/controllermanager.cpp b/apps/openmw/mwinput/controllermanager.cpp index 8753344373..6c6549face 100644 --- a/apps/openmw/mwinput/controllermanager.cpp +++ b/apps/openmw/mwinput/controllermanager.cpp @@ -406,14 +406,16 @@ namespace MWInput void ControllerManager::enableGyroSensor() { mGyroAvailable = false; - SDL_GameController* cntrl = mBindingsManager->getControllerOrNull(); - if (!cntrl) - return; - if (!SDL_GameControllerHasSensor(cntrl, SDL_SENSOR_GYRO)) - return; - if (SDL_GameControllerSetSensorEnabled(cntrl, SDL_SENSOR_GYRO, SDL_TRUE) < 0) - return; - mGyroAvailable = true; + #if SDL_VERSION_ATLEAST(2, 0, 14) + SDL_GameController* cntrl = mBindingsManager->getControllerOrNull(); + if (!cntrl) + return; + if (!SDL_GameControllerHasSensor(cntrl, SDL_SENSOR_GYRO)) + return; + if (SDL_GameControllerSetSensorEnabled(cntrl, SDL_SENSOR_GYRO, SDL_TRUE) < 0) + return; + mGyroAvailable = true; + #endif } bool ControllerManager::isGyroAvailable() const @@ -424,9 +426,11 @@ namespace MWInput std::array ControllerManager::getGyroValues() const { float gyro[3] = { 0.f }; - SDL_GameController* cntrl = mBindingsManager->getControllerOrNull(); - if (cntrl && mGyroAvailable) - SDL_GameControllerGetSensorData(cntrl, SDL_SENSOR_GYRO, gyro, 3); + #if SDL_VERSION_ATLEAST(2, 0, 14) + SDL_GameController* cntrl = mBindingsManager->getControllerOrNull(); + if (cntrl && mGyroAvailable) + SDL_GameControllerGetSensorData(cntrl, SDL_SENSOR_GYRO, gyro, 3); + #endif return std::array({gyro[0], gyro[1], gyro[2]}); } }