1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2024-11-17 21:10:39 +02:00

InputManager: Handle joystick hat events

This commit is contained in:
Paul Cercueil 2013-12-30 15:41:52 +01:00
parent 53ba01c40a
commit c8cf37787b

View File

@ -151,6 +151,23 @@ bool InputManager::getButton(Button *button, bool wait) {
source = KEYBOARD; source = KEYBOARD;
break; break;
#ifndef SDL_JOYSTICK_DISABLED #ifndef SDL_JOYSTICK_DISABLED
case SDL_JOYHATMOTION:
switch (event.jhat.value) {
case SDL_HAT_CENTERED:
return false;
case SDL_HAT_UP:
*button = UP;
break;
case SDL_HAT_DOWN:
*button = DOWN;
break;
case SDL_HAT_LEFT:
*button = LEFT;
break;
case SDL_HAT_RIGHT:
*button = RIGHT;
break;
}
case SDL_JOYBUTTONDOWN: case SDL_JOYBUTTONDOWN:
source = JOYSTICK; source = JOYSTICK;
break; break;
@ -222,7 +239,7 @@ bool InputManager::getButton(Button *button, bool wait) {
} }
} }
#ifndef SDL_JOYSTICK_DISABLED #ifndef SDL_JOYSTICK_DISABLED
} else if (source == JOYSTICK && event.type != SDL_JOYAXISMOTION) { } else if (source == JOYSTICK && event.type == SDL_JOYBUTTONDOWN) {
for (i = 0; i < BUTTON_TYPE_SIZE; i++) { for (i = 0; i < BUTTON_TYPE_SIZE; i++) {
if (buttonMap[i].source == JOYSTICK if (buttonMap[i].source == JOYSTICK
&& (unsigned int)event.jbutton.button == buttonMap[i].code) { && (unsigned int)event.jbutton.button == buttonMap[i].code) {