From d94b944f914c442f5fd0a7d14ae1d5b1dafa75a0 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 10 Mar 2023 15:28:22 -0800
Subject: [PATCH] Added support for the trigger buttons on the Victrix Pro FS
for PS5
(cherry picked from commit 8d7e61ea42364c256b76e7f6f2b6d6f90742bcb7)
(cherry picked from commit ab1670386f8716db0d3a9c5d4b69c0435b6db025)
---
src/joystick/hidapi/SDL_hidapi_ps5.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/joystick/hidapi/SDL_hidapi_ps5.c b/src/joystick/hidapi/SDL_hidapi_ps5.c
index 85db2ed4661a..8f03245c2dfe 100644
--- a/src/joystick/hidapi/SDL_hidapi_ps5.c
+++ b/src/joystick/hidapi/SDL_hidapi_ps5.c
@@ -1178,9 +1178,17 @@ HIDAPI_DriverPS5_HandleStatePacketCommon(SDL_Joystick *joystick, SDL_hid_device
SDL_PrivateJoystickButton(joystick, 16, (data & 0x04) ? SDL_PRESSED : SDL_RELEASED);
}
- axis = ((int)packet->ucTriggerLeft * 257) - 32768;
+ if (packet->rgucButtonsAndHat[1] & 0x04) {
+ axis = SDL_JOYSTICK_AXIS_MAX;
+ } else {
+ axis = ((int)packet->ucTriggerLeft * 257) - 32768;
+ }
SDL_PrivateJoystickAxis(joystick, SDL_CONTROLLER_AXIS_TRIGGERLEFT, axis);
- axis = ((int)packet->ucTriggerRight * 257) - 32768;
+ if (packet->rgucButtonsAndHat[1] & 0x08) {
+ axis = SDL_JOYSTICK_AXIS_MAX;
+ } else {
+ axis = ((int)packet->ucTriggerRight * 257) - 32768;
+ }
SDL_PrivateJoystickAxis(joystick, SDL_CONTROLLER_AXIS_TRIGGERRIGHT, axis);
axis = ((int)packet->ucLeftJoystickX * 257) - 32768;
SDL_PrivateJoystickAxis(joystick, SDL_CONTROLLER_AXIS_LEFTX, axis);