sdlxSendJoystickVirtualSensorData function joystick
Send a sensor update for an opened virtual joystick.
Please note that values set here will not be applied until the next call to SDL_UpdateJoysticks, which can either be called directly, or can be called indirectly through various other SDL APIs, including, but not limited to the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent.
\param joystick the virtual joystick on which to set state.
\param type the type of the sensor on the virtual joystick to update.
\param sensor_timestamp a 64-bit timestamp in nanoseconds associated with
the sensor reading.
\param data the data associated with the sensor reading.
\param num_values the number of values pointed to by 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.
\sa SDL_SetJoystickVirtualAxis \sa SDL_SetJoystickVirtualButton \sa SDL_SetJoystickVirtualBall \sa SDL_SetJoystickVirtualHat \sa SDL_SetJoystickVirtualTouchpad
extern SDL_DECLSPEC bool SDLCALL SDL_SendJoystickVirtualSensorData(SDL_Joystick *joystick, SDL_SensorType type, Uint64 sensor_timestamp, const float *data, int num_values)
Implementation
bool sdlxSendJoystickVirtualSensorData(
Pointer<SdlJoystick> joystick,
int type,
int sensorTimestamp,
List<double> data,
) {
final dataPointer = ffi.calloc<Float>(data.length);
for (var i = 0; i < data.length; i++) {
dataPointer[i] = data[i];
}
final result = sdlSendJoystickVirtualSensorData(
joystick,
type,
sensorTimestamp,
dataPointer,
data.length,
);
dataPointer.callocFree();
return result;
}