sdlRumbleGamepadTriggers function

bool sdlRumbleGamepadTriggers(
  1. Pointer<SdlGamepad> gamepad,
  2. int leftRumble,
  3. int rightRumble,
  4. int durationMs,
)

Start a rumble effect in the gamepad's triggers.

Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling.

Note that this is rumbling of the triggers and not the gamepad as a whole. This is currently only supported on Xbox One gamepads. If you want the (more common) whole-gamepad rumble, use SDL_RumbleGamepad() instead.

This function requires you to process SDL events or call SDL_UpdateJoysticks() to update rumble state.

\param gamepad the gamepad to vibrate. \param left_rumble the intensity of the left trigger rumble motor, from 0 to 0xFFFF. \param right_rumble the intensity of the right trigger rumble motor, from 0 to 0xFFFF. \param duration_ms the duration of the rumble effect, in milliseconds. \returns true on success or false on failure; call SDL_GetError() for more information.

\since This function is available since SDL 3.1.3.

\sa SDL_RumbleGamepad

extern SDL_DECLSPEC bool SDLCALL SDL_RumbleGamepadTriggers(SDL_Gamepad *gamepad, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms)

Implementation

bool sdlRumbleGamepadTriggers(Pointer<SdlGamepad> gamepad, int leftRumble,
    int rightRumble, int durationMs) {
  final sdlRumbleGamepadTriggersLookupFunction = libSdl3.lookupFunction<
      Uint8 Function(Pointer<SdlGamepad> gamepad, Uint16 leftRumble,
          Uint16 rightRumble, Uint32 durationMs),
      int Function(Pointer<SdlGamepad> gamepad, int leftRumble, int rightRumble,
          int durationMs)>('SDL_RumbleGamepadTriggers');
  return sdlRumbleGamepadTriggersLookupFunction(
          gamepad, leftRumble, rightRumble, durationMs) ==
      1;
}