Add extended button support with Sunshine

This commit is contained in:
Cameron Gutman
2023-06-18 14:32:18 -05:00
parent 68daa90b7e
commit e42de9d155
3 changed files with 13 additions and 3 deletions

View File

@@ -27,7 +27,10 @@ const int SdlInputHandler::k_ButtonMap[] = {
BACK_FLAG, SPECIAL_FLAG, PLAY_FLAG,
LS_CLK_FLAG, RS_CLK_FLAG,
LB_FLAG, RB_FLAG,
UP_FLAG, DOWN_FLAG, LEFT_FLAG, RIGHT_FLAG
UP_FLAG, DOWN_FLAG, LEFT_FLAG, RIGHT_FLAG,
MISC_FLAG,
PADDLE1_FLAG, PADDLE2_FLAG, PADDLE3_FLAG, PADDLE4_FLAG,
TOUCHPAD_FLAG,
};
GamepadState*
@@ -162,6 +165,13 @@ void SdlInputHandler::handleControllerAxisEvent(SDL_ControllerAxisEvent* event)
void SdlInputHandler::handleControllerButtonEvent(SDL_ControllerButtonEvent* event)
{
if (event->button >= SDL_arraysize(k_ButtonMap)) {
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
"No mapping for gamepad button: %u",
event->button);
return;
}
GamepadState* state = findStateForGamepad(event->which);
if (state == NULL) {
return;

View File

@@ -19,7 +19,7 @@ struct GamepadState {
SDL_TimerID mouseEmulationTimer;
uint32_t lastStartDownTime;
short buttons;
int buttons;
short lsX, lsY;
short rsX, rsY;
unsigned char lt, rt;