Don't try to map the touchpad button, since we don't have any art for that at the moment.

This commit is contained in:
Sam Lantinga 2021-03-26 13:01:06 -07:00
parent 3377861ab1
commit 8b87b438b4
1 changed files with 15 additions and 6 deletions

View File

@ -53,7 +53,7 @@ static struct
double angle; double angle;
int marker; int marker;
} s_arrBindingDisplay[BINDING_COUNT] = { } s_arrBindingDisplay[] = {
{ 387, 167, 0.0, MARKER_BUTTON }, /* SDL_CONTROLLER_BUTTON_A */ { 387, 167, 0.0, MARKER_BUTTON }, /* SDL_CONTROLLER_BUTTON_A */
{ 431, 132, 0.0, MARKER_BUTTON }, /* SDL_CONTROLLER_BUTTON_B */ { 431, 132, 0.0, MARKER_BUTTON }, /* SDL_CONTROLLER_BUTTON_B */
{ 342, 132, 0.0, MARKER_BUTTON }, /* SDL_CONTROLLER_BUTTON_X */ { 342, 132, 0.0, MARKER_BUTTON }, /* SDL_CONTROLLER_BUTTON_X */
@ -86,8 +86,9 @@ static struct
{ 91, -20, 180.0, MARKER_AXIS }, /* SDL_CONTROLLER_BINDING_AXIS_TRIGGERLEFT */ { 91, -20, 180.0, MARKER_AXIS }, /* SDL_CONTROLLER_BINDING_AXIS_TRIGGERLEFT */
{ 375, -20, 180.0, MARKER_AXIS }, /* SDL_CONTROLLER_BINDING_AXIS_TRIGGERRIGHT */ { 375, -20, 180.0, MARKER_AXIS }, /* SDL_CONTROLLER_BINDING_AXIS_TRIGGERRIGHT */
}; };
SDL_COMPILE_TIME_ASSERT(s_arrBindingDisplay, SDL_arraysize(s_arrBindingDisplay) == BINDING_COUNT);
static int s_arrBindingOrder[BINDING_COUNT] = { static int s_arrBindingOrder[] = {
SDL_CONTROLLER_BUTTON_A, SDL_CONTROLLER_BUTTON_A,
SDL_CONTROLLER_BUTTON_B, SDL_CONTROLLER_BUTTON_B,
SDL_CONTROLLER_BUTTON_Y, SDL_CONTROLLER_BUTTON_Y,
@ -118,7 +119,9 @@ static int s_arrBindingOrder[BINDING_COUNT] = {
SDL_CONTROLLER_BUTTON_PADDLE2, SDL_CONTROLLER_BUTTON_PADDLE2,
SDL_CONTROLLER_BUTTON_PADDLE3, SDL_CONTROLLER_BUTTON_PADDLE3,
SDL_CONTROLLER_BUTTON_PADDLE4, SDL_CONTROLLER_BUTTON_PADDLE4,
-1,
}; };
SDL_COMPILE_TIME_ASSERT(s_arrBindingOrder, SDL_arraysize(s_arrBindingOrder) == BINDING_COUNT);
typedef struct typedef struct
{ {
@ -224,6 +227,12 @@ SetCurrentBinding(int iBinding)
return; return;
} }
if (s_arrBindingOrder[iBinding] == -1)
{
SetCurrentBinding(iBinding + 1);
return;
}
s_iCurrentBinding = iBinding; s_iCurrentBinding = iBinding;
pBinding = &s_arrBindings[s_arrBindingOrder[s_iCurrentBinding]]; pBinding = &s_arrBindings[s_arrBindingOrder[s_iCurrentBinding]];
@ -412,10 +421,10 @@ WatchJoystick(SDL_Joystick * joystick)
s_nNumAxes = SDL_JoystickNumAxes(joystick); s_nNumAxes = SDL_JoystickNumAxes(joystick);
s_arrAxisState = (AxisState *)SDL_calloc(s_nNumAxes, sizeof(*s_arrAxisState)); s_arrAxisState = (AxisState *)SDL_calloc(s_nNumAxes, sizeof(*s_arrAxisState));
/* Skip any spurious events at start */ /* Skip any spurious events at start */
while (SDL_PollEvent(&event) > 0) { while (SDL_PollEvent(&event) > 0) {
continue; continue;
} }
/* Loop, getting joystick events! */ /* Loop, getting joystick events! */
while (!done && !s_bBindingComplete) { while (!done && !s_bBindingComplete) {