sdlxGetGamepadSensorData function gamepad

bool sdlxGetGamepadSensorData(
  1. Pointer<SdlGamepad> gamepad,
  2. int type,
  3. SdlxSensorData data, {
  4. int numValues = 3,
})

Get the current state of a gamepad sensor.

The number of values and interpretation of the data is sensor dependent. See the remarks in SDL_SensorType for details for each type of sensor.

\param gamepad the gamepad to query. \param type the type of sensor to query. \param data a pointer filled with the current sensor state. \param num_values the number of values to write to data. \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.

extern SDL_DECLSPEC bool SDLCALL SDL_GetGamepadSensorData(SDL_Gamepad *gamepad, SDL_SensorType type, float *data, int num_values)

Implementation

bool sdlxGetGamepadSensorData(
  Pointer<SdlGamepad> gamepad,
  int type,
  SdlxSensorData data, {
  int numValues = 3,
}) {
  final dataPointer = ffi.calloc<Float>(numValues);
  final result = sdlGetGamepadSensorData(gamepad, type, dataPointer, numValues);
  if (result) {
    for (var i = 0; i < numValues; i++) {
      data.data.add(dataPointer[i]);
    }
  }
  dataPointer.callocFree();
  return result;
}