mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-07-09 02:39:42 +00:00
Fixed pressing back paddles and D-pad simultaneously on the GameSir-G7 Pro 8K controller
This commit is contained in:
@@ -38,7 +38,7 @@
|
||||
#define GAMESIR_IMU_RATE_HZ_WIRED 1000
|
||||
#define GAMESIR_IMU_RATE_HZ_WIRELESS 250
|
||||
// We can't tell whether it's connected via dongle or not...
|
||||
#define GAMESIR_IMU_RATE_HZ GAMESIR_IMU_RATE_HZ_WIRED
|
||||
#define GAMESIR_IMU_RATE_HZ GAMESIR_IMU_RATE_HZ_WIRED
|
||||
|
||||
#define BTN_A 0x01
|
||||
#define BTN_B 0x02
|
||||
@@ -599,26 +599,35 @@ static void HIDAPI_DriverGameSir_HandleStatePacket(SDL_Joystick *joystick, SDL_D
|
||||
// Handle the directional pad (D-pad)
|
||||
Uint8 hat = SDL_HAT_CENTERED;
|
||||
|
||||
if (buttons == BTN_UP_R) {
|
||||
switch (buttons & 0x0F) {
|
||||
case BTN_UP_R:
|
||||
hat = SDL_HAT_RIGHTUP;
|
||||
} else if (buttons == BTN_UP_L) {
|
||||
break;
|
||||
case BTN_UP_L:
|
||||
hat = SDL_HAT_LEFTUP;
|
||||
} else if (buttons == BTN_DOWN_R) {
|
||||
break;
|
||||
case BTN_DOWN_R:
|
||||
hat = SDL_HAT_RIGHTDOWN;
|
||||
} else if (buttons == BTN_DOWN_L) {
|
||||
break;
|
||||
case BTN_DOWN_L:
|
||||
hat = SDL_HAT_LEFTDOWN;
|
||||
} else if (buttons == BTN_UP) {
|
||||
break;
|
||||
case BTN_UP:
|
||||
hat = SDL_HAT_UP;
|
||||
} else if (buttons == BTN_DOWN) {
|
||||
break;
|
||||
case BTN_DOWN:
|
||||
hat = SDL_HAT_DOWN;
|
||||
} else if (buttons == BTN_LEFT) {
|
||||
break;
|
||||
case BTN_LEFT:
|
||||
hat = SDL_HAT_LEFT;
|
||||
} else if (buttons == BTN_RIGHT) {
|
||||
break;
|
||||
case BTN_RIGHT:
|
||||
hat = SDL_HAT_RIGHT;
|
||||
} else {
|
||||
break;
|
||||
default:
|
||||
hat = SDL_HAT_CENTERED;
|
||||
break;
|
||||
}
|
||||
|
||||
SDL_SendJoystickHat(timestamp, joystick, 0, hat);
|
||||
|
||||
// Handle other buttons
|
||||
|
||||
Reference in New Issue
Block a user