Browse Source

SDL 2.24.0 support

Er2 3 years ago
parent
commit
0b4b1db9fe
2 changed files with 11 additions and 1 deletions
  1. 4 0
      src/modules/joystick/Joystick.h
  2. 7 1
      src/modules/joystick/sdl/Joystick.cpp

+ 4 - 0
src/modules/joystick/Joystick.h

@@ -68,6 +68,10 @@ public:
 		GAMEPAD_TYPE_AMAZON_LUNA,
 		GAMEPAD_TYPE_AMAZON_LUNA,
 		GAMEPAD_TYPE_STADIA,
 		GAMEPAD_TYPE_STADIA,
 		GAMEPAD_TYPE_VIRTUAL,
 		GAMEPAD_TYPE_VIRTUAL,
+		GAMEPAD_TYPE_NVIDIA_SHIELD,
+		GAMEPAD_TYPE_JOYCON_LEFT,
+		GAMEPAD_TYPE_JOYCON_RIGHT,
+		GAMEPAD_TYPE_JOYCON_PAIR,
 		GAMEPAD_TYPE_MAX_ENUM
 		GAMEPAD_TYPE_MAX_ENUM
 	};
 	};
 
 

+ 7 - 1
src/modules/joystick/sdl/Joystick.cpp

@@ -260,6 +260,12 @@ Joystick::GamepadType Joystick::getGamepadType() const
 #if SDL_VERSION_ATLEAST(2, 0, 16)
 #if SDL_VERSION_ATLEAST(2, 0, 16)
 		case SDL_CONTROLLER_TYPE_AMAZON_LUNA: return GAMEPAD_TYPE_AMAZON_LUNA;
 		case SDL_CONTROLLER_TYPE_AMAZON_LUNA: return GAMEPAD_TYPE_AMAZON_LUNA;
 		case SDL_CONTROLLER_TYPE_GOOGLE_STADIA: return GAMEPAD_TYPE_STADIA;
 		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
 	}
 	}
 #endif
 #endif
@@ -509,7 +515,7 @@ bool Joystick::setVibration(float left, float right, float duration)
 	Uint32 length = SDL_HAPTIC_INFINITY;
 	Uint32 length = SDL_HAPTIC_INFINITY;
 	if (duration >= 0.0f)
 	if (duration >= 0.0f)
 	{
 	{
-		float maxduration = std::numeric_limits<Uint32>::max() / 1000.0f;
+		float maxduration = std::numeric_limits<Uint32>::max() / 1000;
 		length = Uint32(std::min(duration, maxduration) * 1000);
 		length = Uint32(std::min(duration, maxduration) * 1000);
 	}
 	}