sdlRumbleJoystickTriggers function joystick

bool sdlRumbleJoystickTriggers(
  1. Pointer<SdlJoystick> joystick,
  2. int leftRumble,
  3. int rightRumble,
  4. int durationMs,
)

Start a rumble effect in the joystick'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 game controller as a whole. This is currently only supported on Xbox One controllers. If you want the (more common) whole-controller rumble, use SDL_RumbleJoystick() instead.

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

\param joystick the joystick 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.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.2.0.

\sa SDL_RumbleJoystick

extern SDL_DECLSPEC bool SDLCALL SDL_RumbleJoystickTriggers(SDL_Joystick *joystick, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms)

Implementation

bool sdlRumbleJoystickTriggers(
  Pointer<SdlJoystick> joystick,
  int leftRumble,
  int rightRumble,
  int durationMs,
) {
  final sdlRumbleJoystickTriggersLookupFunction = _libSdl
      .lookupFunction<
        Uint8 Function(
          Pointer<SdlJoystick> joystick,
          Uint16 leftRumble,
          Uint16 rightRumble,
          Uint32 durationMs,
        ),
        int Function(
          Pointer<SdlJoystick> joystick,
          int leftRumble,
          int rightRumble,
          int durationMs,
        )
      >('SDL_RumbleJoystickTriggers');
  return sdlRumbleJoystickTriggersLookupFunction(
        joystick,
        leftRumble,
        rightRumble,
        durationMs,
      ) ==
      1;
}