Skip to content

Commit

Permalink
Now SDL Sensor gives names.
Browse files Browse the repository at this point in the history
  • Loading branch information
oshaboy committed Feb 5, 2024
1 parent 809d53f commit 1a30370
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
6 changes: 0 additions & 6 deletions config.def.h
Original file line number Diff line number Diff line change
Expand Up @@ -1517,12 +1517,6 @@
#define DEFAULT_ANALOG_SENSITIVITY 1.0f
#define DEFAULT_SENSOR_ACCELEROMETER_SENSITIVITY 1.0f
#define DEFAULT_SENSOR_GYROSCOPE_SENSITIVITY 1.0f
#define DEFAULT_SENSOR_AXIS_ACCELEROMETER_X 0
#define DEFAULT_SENSOR_AXIS_ACCELEROMETER_Y 1
#define DEFAULT_SENSOR_AXIS_ACCELEROMETER_Z 2
#define DEFAULT_SENSOR_AXIS_GYROSCOPE_X 3
#define DEFAULT_SENSOR_AXIS_GYROSCOPE_Y 4
#define DEFAULT_SENSOR_AXIS_GYROSCOPE_Z 5


/* Describes speed of which turbo-enabled buttons toggle. */
Expand Down
17 changes: 12 additions & 5 deletions input/drivers/sdl_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ static void *sdl_input_init(const char *joypad_driver)
#ifdef HAVE_SDL2
{
int numJoysticks,numTouchDevices,numSensors;
int i;
int i; int sensor_count=0;

SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER);
RARCH_DBG(
Expand Down Expand Up @@ -136,7 +136,12 @@ static void *sdl_input_init(const char *joypad_driver)
dev.sensor=SDL_SensorOpen(i);
sdl->auxiliary_devices[sdl->auxiliary_device_number].
type=SDL_AUXILIARY_DEVICE_TYPE_SENSOR;
input_config_set_sensor_display_name(
sensor_count++,
SDL_SensorGetName(sdl->auxiliary_devices[sdl->auxiliary_device_number].dev.sensor)
);
sdl->auxiliary_device_number++;

}
for (i=0; i<numJoysticks; i++){
SDL_GameController * gamepad=SDL_GameControllerOpen(i);
Expand Down Expand Up @@ -177,6 +182,7 @@ static void *sdl_input_init(const char *joypad_driver)
sdl->auxiliary_devices[sdl->auxiliary_device_number].
type=SDL_AUXILIARY_DEVICE_TYPE_GAMECONTROLLER;
sdl->auxiliary_device_number++;
input_config_set_sensor_display_name(sensor_count++,SDL_GameControllerName(gamepad));
}
}
}
Expand Down Expand Up @@ -352,7 +358,7 @@ static int16_t sdl_input_state(
case RETRO_DEVICE_ID_POINTER_Y:
return (int16_t)((finger->y-0.5f)*65535);
case RETRO_DEVICE_ID_POINTER_PRESSED:
return finger->pressure>0.0f;
return finger->pressure>0.f;

}
} else if (
Expand All @@ -377,7 +383,7 @@ static int16_t sdl_input_state(
case RETRO_DEVICE_ID_POINTER_Y:
return (int16_t)((y-0.5f)*65535);
case RETRO_DEVICE_ID_POINTER_PRESSED:
return pressure>0.0f;
return pressure>0.f;

}
}
Expand Down Expand Up @@ -623,6 +629,7 @@ static float sdl_input_get_sensor_input (void *data, unsigned port, unsigned id)
(id == RETRO_SENSOR_GYROSCOPE_Y) |
(id == RETRO_SENSOR_GYROSCOPE_Z)
) sensor_type=SDL_SENSOR_GYRO;
else return 0.f; /*Unimplemented*/
for (i=0; i<(int)sdl->auxiliary_device_number;i++){
if (
sdl->auxiliary_devices[i].type == SDL_AUXILIARY_DEVICE_TYPE_GAMECONTROLLER &&
Expand All @@ -646,7 +653,7 @@ static float sdl_input_get_sensor_input (void *data, unsigned port, unsigned id)
if (!gamepad && !sensor){
RARCH_ERR("[sdl]: sdl_input_get_sensor_input recieved a "
"device where none of it's children are sensors\n");
return 0.0f;
return 0.f;
}

if (gamepad)
Expand All @@ -659,7 +666,7 @@ static float sdl_input_get_sensor_input (void *data, unsigned port, unsigned id)
} else if (id>=RETRO_SENSOR_GYROSCOPE_X && id <= RETRO_SENSOR_GYROSCOPE_Z){
sensor_value=sensor_data[id-RETRO_SENSOR_GYROSCOPE_X];
} else {
return 0.0f; /*UNIMPLEMENTED*/
return 0.f; /*UNIMPLEMENTED*/
}
RARCH_DBG(
"[udev] sensor:\n"
Expand Down
1 change: 1 addition & 0 deletions input/drivers/udev_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -3564,6 +3564,7 @@ static void udev_input_handle_hotplug(udev_input_t *udev)
for (i=0;i<(int)udev->num_devices;i++){
udev_input_device_t * cur_device=udev->devices[i];
if (cur_device->type == UDEV_INPUT_SENSOR){
/* Sensors */
input_config_set_sensor_display_name(sensor, cur_device->ident);
udev->sensors[sensor] = i;
sensor++;
Expand Down

0 comments on commit 1a30370

Please sign in to comment.