summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSam Lantinga <slouken@libsdl.org>2020-11-25 16:05:15 -0800
committerSam Lantinga <slouken@libsdl.org>2020-11-25 16:05:15 -0800
commiteb52028b03a514ccc39dd68c509a0bf65e42606d (patch)
tree2cef6de5b204111645195e572fa3a5d97d571207 /test
parent4e1968ef6f01b2400d121f1c9083cba37c323a0f (diff)
downloadsdl-eb52028b03a514ccc39dd68c509a0bf65e42606d.tar.gz
Some controllers don't always reset their triggers to zero when they are released (e.g. Xbox One S in Bluetooth mode), so only trigger rumble if the trigger is pulled halfway or more.
Diffstat (limited to 'test')
-rw-r--r--test/testgamecontroller.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/test/testgamecontroller.c b/test/testgamecontroller.c
index d32148040..52d8eec84 100644
--- a/test/testgamecontroller.c
+++ b/test/testgamecontroller.c
@@ -308,17 +308,19 @@ loop(void *arg)
/* Update rumble based on trigger state */
{
- Uint16 low_frequency_rumble = SDL_GameControllerGetAxis(gamecontroller, SDL_CONTROLLER_AXIS_TRIGGERLEFT) * 2;
- Uint16 high_frequency_rumble = SDL_GameControllerGetAxis(gamecontroller, SDL_CONTROLLER_AXIS_TRIGGERRIGHT) * 2;
+ Sint16 left = SDL_GameControllerGetAxis(gamecontroller, SDL_CONTROLLER_AXIS_TRIGGERLEFT);
+ Sint16 right = SDL_GameControllerGetAxis(gamecontroller, SDL_CONTROLLER_AXIS_TRIGGERRIGHT);
+ Uint16 low_frequency_rumble = ConvertAxisToRumble(left);
+ Uint16 high_frequency_rumble = ConvertAxisToRumble(right);
SDL_GameControllerRumble(gamecontroller, low_frequency_rumble, high_frequency_rumble, 250);
}
/* Update trigger rumble based on thumbstick state */
{
- Sint16 left_y = SDL_GameControllerGetAxis(gamecontroller, SDL_CONTROLLER_AXIS_LEFTY);
- Sint16 right_y = SDL_GameControllerGetAxis(gamecontroller, SDL_CONTROLLER_AXIS_RIGHTY);
- Uint16 left_rumble = ConvertAxisToRumble(~left_y);
- Uint16 right_rumble = ConvertAxisToRumble(~right_y);
+ Sint16 left = SDL_GameControllerGetAxis(gamecontroller, SDL_CONTROLLER_AXIS_LEFTY);
+ Sint16 right = SDL_GameControllerGetAxis(gamecontroller, SDL_CONTROLLER_AXIS_RIGHTY);
+ Uint16 left_rumble = ConvertAxisToRumble(~left);
+ Uint16 right_rumble = ConvertAxisToRumble(~right);
SDL_GameControllerRumbleTriggers(gamecontroller, left_rumble, right_rumble, 250);
}