Moved sensitivity adjustment to some other function

This commit is contained in:
oshaboy 2024-02-03 19:01:01 +02:00
parent 91613a47b3
commit ac21e7d2fc
2 changed files with 28 additions and 23 deletions

View file

@ -4416,7 +4416,6 @@ static float udev_input_get_sensor_input(void *data, unsigned port, unsigned id)
const udev_input_t *udev = (const udev_input_t *)data;
const udev_input_device_t * device;
const udev_input_sensor_t * sensor;
const float sensitivity=8.f; /*Hardcode for now*/
float sensor_value;
udev_input_sensor_limits_t limits;
if (udev->devices == NULL) return 0.f;
@ -4449,15 +4448,13 @@ static float udev_input_get_sensor_input(void *data, unsigned port, unsigned id)
sensor_value,
limits.min,
limits.max,
(((sensor_value-limits.min)/(limits.max-limits.min))-0.5f)*2.f*sensitivity
(((sensor_value-limits.min)/(limits.max-limits.min))-0.5f)*2.f
);
return (
/*clamp it to the 0 to 1 range*/
((sensor_value-limits.min)/(limits.max-limits.min))
/*convert to the -1 to 1 range*/
-0.5f)*2.f
/*multiply by sensitivity adjustment*/
*sensitivity;
-0.5f)*2.f;
}

View file

@ -3772,8 +3772,15 @@ float input_get_sensor_state(unsigned port, unsigned id)
{
settings_t *settings = config_get_ptr();
bool input_sensors_enable = settings->bools.input_sensors_enable;
return input_driver_get_sensor(port, input_sensors_enable, id);
float sensitivity;
if (id >= RETRO_SENSOR_ACCELEROMETER_X && id <= RETRO_SENSOR_ACCELEROMETER_Z)
sensitivity=settings->floats.input_sensor_accelerometer_sensitivity;
else if (id >= RETRO_SENSOR_GYROSCOPE_X && id <= RETRO_SENSOR_GYROSCOPE_Z)
sensitivity=settings->floats.input_sensor_gyroscope_sensitivity;
else
sensitivity=1.f;
return input_driver_get_sensor(port, input_sensors_enable, id)*sensitivity;
}
/**
@ -4246,35 +4253,36 @@ const char *input_config_get_sensor_display_name(unsigned port)
return NULL;
return input_st->input_sensor_info[port].display_name;
}
void input_config_set_mouse_display_name(unsigned port, const char *name)
enum aux_device_type{
MOUSE_AUX_DEVICE,
SENSOR_AUX_DEVICE
};
static void input_config_set_auxiliary_device_display_name(unsigned port, const char *name, enum aux_device_type aux_device_type)
{
char name_ascii[NAME_MAX_LENGTH];
input_driver_state_t *input_st = &input_driver_st;
input_mouse_info_t * aux_device_info;
name_ascii[0] = '\0';
/* Strip non-ASCII characters */
if (!string_is_empty(name))
string_copy_only_ascii(name_ascii, name);
if (aux_device_type == SENSOR_AUX_DEVICE)
aux_device_info=&input_st->input_sensor_info[port];
else /*(aux_device_type == MOUSE_AUX_DEVICE)*/
aux_device_info=&input_st->input_mouse_info[port];
if (!string_is_empty(name_ascii))
strlcpy(input_st->input_mouse_info[port].display_name, name_ascii,
sizeof(input_st->input_mouse_info[port].display_name));
strlcpy(aux_device_info->display_name, name_ascii,
sizeof(aux_device_info->display_name));
}
void input_config_set_sensor_display_name(unsigned port, const char *name)
{
char name_ascii[NAME_MAX_LENGTH];
input_driver_state_t *input_st = &input_driver_st;
name_ascii[0] = '\0';
/* Strip non-ASCII characters */
if (!string_is_empty(name))
string_copy_only_ascii(name_ascii, name);
if (!string_is_empty(name_ascii))
strlcpy(input_st->input_sensor_info[port].display_name, name_ascii,
sizeof(input_st->input_sensor_info[port].display_name));
input_config_set_auxiliary_device_display_name(port, name, SENSOR_AUX_DEVICE);
}
void input_config_set_mouse_display_name(unsigned port, const char *name)
{
input_config_set_auxiliary_device_display_name(port, name, MOUSE_AUX_DEVICE);
}
void input_keyboard_mapping_bits(unsigned mode, unsigned key)
{