Browse Source

Expose new gamepad buttons from SDL

Alex Szpakowski 4 years ago
parent
commit
5e411f607f

+ 6 - 0
src/modules/joystick/Joystick.cpp

@@ -97,6 +97,12 @@ STRINGMAP_CLASS_BEGIN(Joystick, Joystick::GamepadButton, Joystick::GAMEPAD_BUTTO
 	{ "dpdown",        Joystick::GAMEPAD_BUTTON_DPAD_DOWN     },
 	{ "dpdown",        Joystick::GAMEPAD_BUTTON_DPAD_DOWN     },
 	{ "dpleft",        Joystick::GAMEPAD_BUTTON_DPAD_LEFT     },
 	{ "dpleft",        Joystick::GAMEPAD_BUTTON_DPAD_LEFT     },
 	{ "dpright",       Joystick::GAMEPAD_BUTTON_DPAD_RIGHT    },
 	{ "dpright",       Joystick::GAMEPAD_BUTTON_DPAD_RIGHT    },
+	{ "misc1",         Joystick::GAMEPAD_BUTTON_MISC1         },
+	{ "paddle1",       Joystick::GAMEPAD_BUTTON_PADDLE1       },
+	{ "paddle2",       Joystick::GAMEPAD_BUTTON_PADDLE2       },
+	{ "paddle3",       Joystick::GAMEPAD_BUTTON_PADDLE3       },
+	{ "paddle4",       Joystick::GAMEPAD_BUTTON_PADDLE4       },
+	{ "touchpad",      Joystick::GAMEPAD_BUTTON_TOUCHPAD      },
 }
 }
 STRINGMAP_CLASS_END(Joystick, Joystick::GamepadButton, Joystick::GAMEPAD_BUTTON_MAX_ENUM, gpButton)
 STRINGMAP_CLASS_END(Joystick, Joystick::GamepadButton, Joystick::GAMEPAD_BUTTON_MAX_ENUM, gpButton)
 
 

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

@@ -101,6 +101,12 @@ public:
 		GAMEPAD_BUTTON_DPAD_DOWN,
 		GAMEPAD_BUTTON_DPAD_DOWN,
 		GAMEPAD_BUTTON_DPAD_LEFT,
 		GAMEPAD_BUTTON_DPAD_LEFT,
 		GAMEPAD_BUTTON_DPAD_RIGHT,
 		GAMEPAD_BUTTON_DPAD_RIGHT,
+		GAMEPAD_BUTTON_MISC1, // Xbox Series X share button, PS5 mic button, Switch Pro capture button
+		GAMEPAD_BUTTON_PADDLE1,
+		GAMEPAD_BUTTON_PADDLE2,
+		GAMEPAD_BUTTON_PADDLE3,
+		GAMEPAD_BUTTON_PADDLE4,
+		GAMEPAD_BUTTON_TOUCHPAD,
 		GAMEPAD_BUTTON_MAX_ENUM
 		GAMEPAD_BUTTON_MAX_ENUM
 	};
 	};
 
 

+ 8 - 0
src/modules/joystick/sdl/Joystick.cpp

@@ -660,6 +660,14 @@ EnumMap<Joystick::GamepadButton, SDL_GameControllerButton, Joystick::GAMEPAD_BUT
 	{Joystick::GAMEPAD_BUTTON_DPAD_DOWN, SDL_CONTROLLER_BUTTON_DPAD_DOWN},
 	{Joystick::GAMEPAD_BUTTON_DPAD_DOWN, SDL_CONTROLLER_BUTTON_DPAD_DOWN},
 	{Joystick::GAMEPAD_BUTTON_DPAD_LEFT, SDL_CONTROLLER_BUTTON_DPAD_LEFT},
 	{Joystick::GAMEPAD_BUTTON_DPAD_LEFT, SDL_CONTROLLER_BUTTON_DPAD_LEFT},
 	{Joystick::GAMEPAD_BUTTON_DPAD_RIGHT, SDL_CONTROLLER_BUTTON_DPAD_RIGHT},
 	{Joystick::GAMEPAD_BUTTON_DPAD_RIGHT, SDL_CONTROLLER_BUTTON_DPAD_RIGHT},
+#if SDL_VERSION_ATLEAST(2, 0, 14)
+	{Joystick::GAMEPAD_BUTTON_MISC1, SDL_CONTROLLER_BUTTON_MISC1},
+	{Joystick::GAMEPAD_BUTTON_PADDLE1, SDL_CONTROLLER_BUTTON_PADDLE1},
+	{Joystick::GAMEPAD_BUTTON_PADDLE2, SDL_CONTROLLER_BUTTON_PADDLE2},
+	{Joystick::GAMEPAD_BUTTON_PADDLE3, SDL_CONTROLLER_BUTTON_PADDLE3},
+	{Joystick::GAMEPAD_BUTTON_PADDLE4, SDL_CONTROLLER_BUTTON_PADDLE4},
+	{Joystick::GAMEPAD_BUTTON_TOUCHPAD, SDL_CONTROLLER_BUTTON_TOUCHPAD},
+#endif
 };
 };
 
 
 EnumMap<Joystick::GamepadButton, SDL_GameControllerButton, Joystick::GAMEPAD_BUTTON_MAX_ENUM> Joystick::gpButtons(Joystick::gpButtonEntries, sizeof(Joystick::gpButtonEntries));
 EnumMap<Joystick::GamepadButton, SDL_GameControllerButton, Joystick::GAMEPAD_BUTTON_MAX_ENUM> Joystick::gpButtons(Joystick::gpButtonEntries, sizeof(Joystick::gpButtonEntries));