Skip to content

Commit

Permalink
Don't send controller gyro and accelerometer updates if the values ha…
Browse files Browse the repository at this point in the history
…ven't changed.

This keeps SDL_PollEvent() from returning data continuously when polling controller state.
  • Loading branch information
slouken committed Nov 18, 2020
1 parent 463d84a commit 51ea6a6
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions src/joystick/SDL_joystick.c
Expand Up @@ -2569,26 +2569,26 @@ int SDL_PrivateJoystickSensor(SDL_Joystick *joystick, SDL_SensorType type, const

if (sensor->type == type) {
if (sensor->enabled) {
/* Allow duplicate events, for things like gyro updates */

/* Update internal sensor state */
num_values = SDL_min(num_values, SDL_arraysize(sensor->data));
SDL_memcpy(sensor->data, data, num_values*sizeof(*data));
if (SDL_memcmp(data, sensor->data, num_values*sizeof(*data)) != 0) {

/* Update internal sensor state */
SDL_memcpy(sensor->data, data, num_values*sizeof(*data));

/* Post the event, if desired */
posted = 0;
/* Post the event, if desired */
#if !SDL_EVENTS_DISABLED
if (SDL_GetEventState(SDL_CONTROLLERSENSORUPDATE) == SDL_ENABLE) {
SDL_Event event;
event.type = SDL_CONTROLLERSENSORUPDATE;
event.csensor.which = joystick->instance_id;
event.csensor.sensor = type;
num_values = SDL_min(num_values, SDL_arraysize(event.csensor.data));
SDL_memset(event.csensor.data, 0, sizeof(event.csensor.data));
SDL_memcpy(event.csensor.data, data, num_values*sizeof(*data));
posted = SDL_PushEvent(&event) == 1;
}
if (SDL_GetEventState(SDL_CONTROLLERSENSORUPDATE) == SDL_ENABLE) {
SDL_Event event;
event.type = SDL_CONTROLLERSENSORUPDATE;
event.csensor.which = joystick->instance_id;
event.csensor.sensor = type;
num_values = SDL_min(num_values, SDL_arraysize(event.csensor.data));
SDL_memset(event.csensor.data, 0, sizeof(event.csensor.data));
SDL_memcpy(event.csensor.data, data, num_values*sizeof(*data));
posted = SDL_PushEvent(&event) == 1;
}
#endif /* !SDL_EVENTS_DISABLED */
}
}
break;
}
Expand Down

0 comments on commit 51ea6a6

Please sign in to comment.