From dd0ebfdf8b63ebdae32af36c004e572d03cfaca3 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 7 Feb 2020 11:45:32 -0800 Subject: [PATCH] Use the triggers to test rumble for more fine grained vibration feedback --- test/testgamecontroller.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/test/testgamecontroller.c b/test/testgamecontroller.c index 085f5e5ff4ff0..6ed31051af4ad 100644 --- a/test/testgamecontroller.c +++ b/test/testgamecontroller.c @@ -114,11 +114,6 @@ loop(void *arg) case SDL_CONTROLLERBUTTONDOWN: case SDL_CONTROLLERBUTTONUP: SDL_Log("Controller button %s %s\n", SDL_GameControllerGetStringForButton((SDL_GameControllerButton)event.cbutton.button), event.cbutton.state ? "pressed" : "released"); - /* First button triggers a 0.5 second full strength rumble */ - if (event.type == SDL_CONTROLLERBUTTONDOWN && - event.cbutton.button == SDL_CONTROLLER_BUTTON_A) { - SDL_GameControllerRumble(gamecontroller, 0xFFFF, 0xFFFF, 500); - } break; case SDL_KEYDOWN: if (event.key.keysym.sym != SDLK_ESCAPE) { @@ -155,6 +150,13 @@ 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; + SDL_GameControllerRumble(gamecontroller, low_frequency_rumble, high_frequency_rumble, 250); + } + SDL_RenderPresent(screen); if (!SDL_GameControllerGetAttached(gamecontroller)) {