From 0b4b1db9fe9ddafb1c93d5f7338cc78243736a4e Mon Sep 17 00:00:00 2001 From: Er2 Date: Sat, 20 Aug 2022 10:44:34 +0300 Subject: [PATCH] SDL 2.24.0 support --- src/modules/joystick/Joystick.h | 4 ++++ src/modules/joystick/sdl/Joystick.cpp | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/modules/joystick/Joystick.h b/src/modules/joystick/Joystick.h index 4ca9d26e2..40002b460 100644 --- a/src/modules/joystick/Joystick.h +++ b/src/modules/joystick/Joystick.h @@ -68,6 +68,10 @@ public: GAMEPAD_TYPE_AMAZON_LUNA, GAMEPAD_TYPE_STADIA, GAMEPAD_TYPE_VIRTUAL, + GAMEPAD_TYPE_NVIDIA_SHIELD, + GAMEPAD_TYPE_JOYCON_LEFT, + GAMEPAD_TYPE_JOYCON_RIGHT, + GAMEPAD_TYPE_JOYCON_PAIR, GAMEPAD_TYPE_MAX_ENUM }; diff --git a/src/modules/joystick/sdl/Joystick.cpp b/src/modules/joystick/sdl/Joystick.cpp index 3a43f7190..db8b47e2c 100644 --- a/src/modules/joystick/sdl/Joystick.cpp +++ b/src/modules/joystick/sdl/Joystick.cpp @@ -260,6 +260,12 @@ Joystick::GamepadType Joystick::getGamepadType() const #if SDL_VERSION_ATLEAST(2, 0, 16) case SDL_CONTROLLER_TYPE_AMAZON_LUNA: return GAMEPAD_TYPE_AMAZON_LUNA; case SDL_CONTROLLER_TYPE_GOOGLE_STADIA: return GAMEPAD_TYPE_STADIA; +#endif +#if SDL_VERSION_ATLEAST(2, 24, 0) + case SDL_CONTROLLER_TYPE_NVIDIA_SHIELD: return GAMEPAD_TYPE_NVIDIA_SHIELD; + case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT: return GAMEPAD_TYPE_JOYCON_LEFT; + case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT: return GAMEPAD_TYPE_JOYCON_RIGHT; + case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: return GAMEPAD_TYPE_JOYCON_PAIR; #endif } #endif @@ -509,7 +515,7 @@ bool Joystick::setVibration(float left, float right, float duration) Uint32 length = SDL_HAPTIC_INFINITY; if (duration >= 0.0f) { - float maxduration = std::numeric_limits::max() / 1000.0f; + float maxduration = std::numeric_limits::max() / 1000; length = Uint32(std::min(duration, maxduration) * 1000); }