|
@@ -1986,6 +1986,14 @@ bool SDL_RumbleJoystickTriggers(SDL_Joystick *joystick, Uint16 left_rumble, Uint
|
|
result = true;
|
|
result = true;
|
|
} else {
|
|
} else {
|
|
result = joystick->driver->RumbleTriggers(joystick, left_rumble, right_rumble);
|
|
result = joystick->driver->RumbleTriggers(joystick, left_rumble, right_rumble);
|
|
|
|
+ if (result) {
|
|
|
|
+ joystick->trigger_rumble_resend = SDL_GetTicks() + SDL_RUMBLE_RESEND_MS;
|
|
|
|
+ if (joystick->trigger_rumble_resend == 0) {
|
|
|
|
+ joystick->trigger_rumble_resend = 1;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ joystick->trigger_rumble_resend = 0;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if (result) {
|
|
if (result) {
|
|
@@ -1996,6 +2004,7 @@ bool SDL_RumbleJoystickTriggers(SDL_Joystick *joystick, Uint16 left_rumble, Uint
|
|
joystick->trigger_rumble_expiration = SDL_GetTicks() + SDL_min(duration_ms, SDL_MAX_RUMBLE_DURATION_MS);
|
|
joystick->trigger_rumble_expiration = SDL_GetTicks() + SDL_min(duration_ms, SDL_MAX_RUMBLE_DURATION_MS);
|
|
} else {
|
|
} else {
|
|
joystick->trigger_rumble_expiration = 0;
|
|
joystick->trigger_rumble_expiration = 0;
|
|
|
|
+ joystick->trigger_rumble_resend = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -2651,6 +2660,15 @@ void SDL_UpdateJoysticks(void)
|
|
|
|
|
|
if (joystick->trigger_rumble_expiration && now >= joystick->trigger_rumble_expiration) {
|
|
if (joystick->trigger_rumble_expiration && now >= joystick->trigger_rumble_expiration) {
|
|
SDL_RumbleJoystickTriggers(joystick, 0, 0, 0);
|
|
SDL_RumbleJoystickTriggers(joystick, 0, 0, 0);
|
|
|
|
+ joystick->trigger_rumble_resend = 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (joystick->trigger_rumble_resend && now >= joystick->trigger_rumble_resend) {
|
|
|
|
+ joystick->driver->RumbleTriggers(joystick, joystick->left_trigger_rumble, joystick->right_trigger_rumble);
|
|
|
|
+ joystick->trigger_rumble_resend = now + SDL_RUMBLE_RESEND_MS;
|
|
|
|
+ if (joystick->trigger_rumble_resend == 0) {
|
|
|
|
+ joystick->trigger_rumble_resend = 1;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|