summaryrefslogtreecommitdiff
path: root/test/testgamecontroller.c
diff options
context:
space:
mode:
authorSam Lantinga <slouken@libsdl.org>2020-11-13 18:01:29 -0800
committerSam Lantinga <slouken@libsdl.org>2020-11-13 18:01:29 -0800
commitf38ac2e419dfb124f0f31a86a13f5fc9e07874aa (patch)
tree937866fbd899f2f9b91c249a7d369ac1fb2a2a04 /test/testgamecontroller.c
parentfa972b544407720daa36cc2dcd45fcec1682b044 (diff)
downloadsdl-f38ac2e419dfb124f0f31a86a13f5fc9e07874aa.tar.gz
Added support for the touchpad on PS4 and PS5 controllers
Diffstat (limited to 'test/testgamecontroller.c')
-rw-r--r--test/testgamecontroller.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/test/testgamecontroller.c b/test/testgamecontroller.c
index 676af8b57..910231460 100644
--- a/test/testgamecontroller.c
+++ b/test/testgamecontroller.c
@@ -157,13 +157,29 @@ loop(void *arg)
}
break;
+ case SDL_CONTROLLERTOUCHPADDOWN:
+ case SDL_CONTROLLERTOUCHPADMOTION:
+ case SDL_CONTROLLERTOUCHPADUP:
+ SDL_Log("Controller touchpad %d finger %d %s %.2f, %.2f, %.2f\n",
+ event.ctouchpad.touchpad,
+ event.ctouchpad.finger,
+ (event.type == SDL_CONTROLLERTOUCHPADDOWN ? "pressed at" :
+ (event.type == SDL_CONTROLLERTOUCHPADUP ? "released at" :
+ "moved to")),
+ event.ctouchpad.x,
+ event.ctouchpad.y,
+ event.ctouchpad.pressure);
+ break;
+
case SDL_CONTROLLERAXISMOTION:
SDL_Log("Controller axis %s changed to %d\n", SDL_GameControllerGetStringForAxis((SDL_GameControllerAxis)event.caxis.axis), event.caxis.value);
break;
+
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");
break;
+
case SDL_KEYDOWN:
if (event.key.keysym.sym != SDLK_ESCAPE) {
break;
@@ -194,7 +210,7 @@ loop(void *arg)
if (gamecontroller) {
/* Update visual controller state */
- for (i = 0; i < SDL_CONTROLLER_BUTTON_MAX; ++i) {
+ for (i = 0; i < SDL_CONTROLLER_BUTTON_TOUCHPAD; ++i) {
if (SDL_GameControllerGetButton(gamecontroller, (SDL_GameControllerButton)i) == SDL_PRESSED) {
SDL_bool on_front = (i < SDL_CONTROLLER_BUTTON_PADDLE1 || i > SDL_CONTROLLER_BUTTON_PADDLE4);
if (on_front == showing_front) {