mirror of https://github.com/encounter/SDL.git
SDL: plumb previously unused digital trigger bits for PS4 controllers. Victrix fight stick only sets these bits and doesn't send the analog values
CR: SamL
This commit is contained in:
parent
f4a56d7e61
commit
3154d92473
|
@ -423,6 +423,15 @@ HIDAPI_DriverPS4_HandleStatePacket(SDL_Joystick *joystick, hid_device *dev, SDL_
|
||||||
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_RIGHTSTICK, (data & 0x80) ? SDL_PRESSED : SDL_RELEASED);
|
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_RIGHTSTICK, (data & 0x80) ? SDL_PRESSED : SDL_RELEASED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Some fightsticks, ex: Victrix FS Pro will only this these digital trigger bits and not the analog values so this needs to run whenever the
|
||||||
|
trigger is evaluated
|
||||||
|
*/
|
||||||
|
if ((packet->rgucButtonsHatAndCounter[1] & 0x0C) != 0) {
|
||||||
|
Uint8 data = packet->rgucButtonsHatAndCounter[1];
|
||||||
|
packet->ucTriggerLeft = (data & 0x04) ? 255 : packet->ucTriggerLeft;
|
||||||
|
packet->ucTriggerRight = (data & 0x08) ? 255 : packet->ucTriggerRight;
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx->last_state.rgucButtonsHatAndCounter[2] != packet->rgucButtonsHatAndCounter[2]) {
|
if (ctx->last_state.rgucButtonsHatAndCounter[2] != packet->rgucButtonsHatAndCounter[2]) {
|
||||||
Uint8 data = (packet->rgucButtonsHatAndCounter[2] & 0x03);
|
Uint8 data = (packet->rgucButtonsHatAndCounter[2] & 0x03);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue