Now SDL Sensor gives names.

This commit is contained in:
oshaboy 2024-02-05 04:35:22 +02:00
parent 809d53f92f
commit 1a30370efe
3 changed files with 13 additions and 11 deletions

View file

@ -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. */

View file

@ -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(
@ -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);
@ -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));
}
}
}
@ -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 (
@ -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;
}
}
@ -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 &&
@ -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)
@ -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"

View file

@ -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++;