mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-01 23:07:45 +08:00
fix off by one with tilt on ps3 guitars (#15144)
This commit is contained in:
@@ -347,6 +347,11 @@ static float HIDAPI_DriverPS3_ScaleAccel(Sint16 value)
|
|||||||
return ((float)(value - 511) / 113.0f) * SDL_STANDARD_GRAVITY;
|
return ((float)(value - 511) / 113.0f) * SDL_STANDARD_GRAVITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static float HIDAPI_DriverPS3ThirdParty_ScaleAccel(Sint16 value)
|
||||||
|
{
|
||||||
|
return ((float)(value - 512) / 113.0f) * SDL_STANDARD_GRAVITY;
|
||||||
|
}
|
||||||
|
|
||||||
static void HIDAPI_DriverPS3_HandleMiniStatePacket(SDL_Joystick *joystick, SDL_DriverPS3_Context *ctx, Uint8 *data, int size)
|
static void HIDAPI_DriverPS3_HandleMiniStatePacket(SDL_Joystick *joystick, SDL_DriverPS3_Context *ctx, Uint8 *data, int size)
|
||||||
{
|
{
|
||||||
Sint16 axis;
|
Sint16 axis;
|
||||||
@@ -1020,9 +1025,9 @@ static void HIDAPI_DriverPS3ThirdParty_HandleStatePacket19(SDL_Joystick *joystic
|
|||||||
if (ctx->report_sensors) {
|
if (ctx->report_sensors) {
|
||||||
float sensor_data[3];
|
float sensor_data[3];
|
||||||
|
|
||||||
sensor_data[0] = -HIDAPI_DriverPS3_ScaleAccel(LOAD16(data[20], data[19]));
|
sensor_data[0] = -HIDAPI_DriverPS3ThirdParty_ScaleAccel(LOAD16(data[19], data[20]));
|
||||||
sensor_data[1] = -HIDAPI_DriverPS3_ScaleAccel(LOAD16(data[22], data[21]));
|
sensor_data[1] = -HIDAPI_DriverPS3ThirdParty_ScaleAccel(LOAD16(data[21], data[22]));
|
||||||
sensor_data[2] = -HIDAPI_DriverPS3_ScaleAccel(LOAD16(data[24], data[23]));
|
sensor_data[2] = -HIDAPI_DriverPS3ThirdParty_ScaleAccel(LOAD16(data[23], data[24]));
|
||||||
SDL_SendJoystickSensor(timestamp, joystick, SDL_SENSOR_ACCEL, timestamp, sensor_data, SDL_arraysize(sensor_data));
|
SDL_SendJoystickSensor(timestamp, joystick, SDL_SENSOR_ACCEL, timestamp, sensor_data, SDL_arraysize(sensor_data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user