From 5563b32cc4b7e4cdf1181426a86e1c646e4930bb Mon Sep 17 00:00:00 2001 From: oshaboy Date: Fri, 17 Jan 2025 03:07:06 +0200 Subject: [PATCH] More menu stuff --- configuration.c | 11 +-- configuration.h | 1 - intl/msg_hash_lbl.h | 48 ++--------- intl/msg_hash_us.h | 37 ++------- menu/menu_setting.c | 123 ++++++++++++++++++++++++---- msg_hash.h | 24 +++--- pkg/android/phoenix-legacy/.project | 11 +++ setting_list.h | 2 + 8 files changed, 144 insertions(+), 113 deletions(-) diff --git a/configuration.c b/configuration.c index f017c8ed758..e87e176ef3d 100644 --- a/configuration.c +++ b/configuration.c @@ -6009,13 +6009,11 @@ bool input_remapping_load_file(void *data, const char *path) { "accel_x","accel_y", "accel_z", "gyro_x","gyro_y","gyro_z" - /*,"light"*/ }; static const char * sensor_strings_flip[RETROPAD_RETRO_SENSOR_LAST] = { "accel_x_flip","accel_y_flip", "accel_z_flip", "gyro_x_flip","gyro_y_flip","gyro_z_flip" - /*,"light_flip"*/ }; for (j = 0; j < RETROPAD_RETRO_SENSOR_LAST; j++){ @@ -6032,12 +6030,6 @@ bool input_remapping_load_file(void *data, const char *path) configuration_set_uint(settings, settings->uints.input_sensor_ids[i][j], sensor_remap); - - config_get_bool(conf, sensor_flip_ident, &sensor_flip_remap); - - configuration_set_bool(settings, - settings->bools.input_sensor_flip_axis[i][j], sensor_flip_remap); - } } @@ -6079,13 +6071,11 @@ bool input_remapping_save_file(const char *path) { "accel_x","accel_y", "accel_z", "gyro_x","gyro_y","gyro_z" - /*,"light" */ }; static const char * sensor_strings_flip[RETROPAD_RETRO_SENSOR_LAST] = { "accel_x_flip","accel_y_flip", "accel_z_flip", "gyro_x_flip","gyro_y_flip","gyro_z_flip" - /*,"light_flip"*/ }; config_file_t *conf = NULL; runloop_state_t *runloop_st = runloop_state_get_ptr(); @@ -6418,6 +6408,7 @@ uint8_t input_config_bind_map_get_retro_key(unsigned bind_index) return keybind->retro_key; } + void input_config_reset_autoconfig_binds(unsigned port) { unsigned i; diff --git a/configuration.h b/configuration.h index 33cf37a6b6a..a2cdaf64259 100644 --- a/configuration.h +++ b/configuration.h @@ -725,7 +725,6 @@ typedef struct settings bool input_touch_vmouse_trackball; bool input_touch_vmouse_gesture; #endif - bool input_sensor_flip_axis[MAX_USERS][RETROPAD_RETRO_SENSOR_LAST]; /* Frame time counter */ bool frame_time_counter_reset_after_fastforwarding; diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 2f77660ffe8..6df26945ecd 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -2009,65 +2009,29 @@ MSG_HASH( "input_player%u_sensor_index" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_MAPPINGS, - "input_player%u_sensor_mappings" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_X, + MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_X, "input_player%u_accelerometer_x_binding" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_X_FLIP, - "input_player%u_accelerometer_x_flip" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Y, + MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_Y, "input_player%u_accelerometer_y_binding" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Y_FLIP, - "input_player%u_accelerometer_y_flip" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Z, + MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_Z, "input_player%u_accelerometer_z_binding" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Z_FLIP, - "input_player%u_accelerometer_z_flip" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_X, + MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_X, "input_player%u_gyroscope_x" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_X_FLIP, - "input_player%u_gyroscope_x_flip" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Y, + MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_Y, "input_player%u_gyroscope_y" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Y_FLIP, - "input_player%u_gyroscope_y_flip" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Z, + MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_Z, "input_player%u_gyroscope_z" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Z_FLIP, - "input_player%u_gyroscope_z_flip" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_LIGHT, - "input_player%u_light" - ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_LIGHT_FLIP, - "input_player%u_light_flip" -) MSG_HASH( MENU_ENUM_LABEL_INPUT_JOYPAD_INDEX, "input_player%u_joypad_index" diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index c3b9b0fe702..fc68fbb9964 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -4371,66 +4371,39 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_INDEX, "Sensor Index" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_MAPPINGS, - "Sensor Mappings" - ) + MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_X, "Accelerometer X Binding" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_X_FLIP, - "Accelerometer X Flip" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Y, "Accelerometer Y Binding" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Y_FLIP, - "Accelerometer Y Flip" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Z, "Accelerometer Z Binding" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Z_FLIP, - "Accelerometer Z Flip" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_X, "Gyroscope X Binding" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_X_FLIP, - "Gyroscope X Flip" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Y, "Gyroscope Y Binding" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Y_FLIP, - "Gyroscope Y Flip" - ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Z, "Gyroscope Z Binding" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Z_FLIP, - "Gyroscope Z Flip" + MENU_ENUM_LABEL_INPUT_ABS_SOURCE_VALUE, + "ABS Source %u Value" ) MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_LIGHT, - "Light Binding" + MENU_ENUM_LABEL_INPUT_ABS_SOURCE, + "ABS Source %u" ) -MSG_HASH( - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_LIGHT_FLIP, - "Light Flip" -) MSG_HASH( MENU_ENUM_SUBLABEL_INPUT_MOUSE_INDEX, "The physical mouse as recognized by RetroArch." diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 7a3278066ce..3919f9f530d 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -192,6 +192,10 @@ if (SETTINGS_LIST_APPEND(a, b)) \ config_float(a, b, c, d, e, f, g, h, i, j, k, l) +#define CONFIG_FLOAT_ALT(a, b, c, d, e, f, g, h, i, j, k, l) \ + if (SETTINGS_LIST_APPEND(a, b)) \ + config_float_alt(a, b, c, d, e, f, g, h, i, j, k, l) + #define CONFIG_DIR(a, b, c, d, e, f, g, h, i, j, k, l, m) \ if (SETTINGS_LIST_APPEND(a, b)) \ config_dir(a, b, c, d, e, f, g, h, i, j, k, l, m) @@ -2323,6 +2327,29 @@ static void config_float( MENU_SETTINGS_LIST_CURRENT_ADD_ENUM_VALUE_IDX(list, list_info, SHORT_enum_idx); } +static void config_float_alt( + rarch_setting_t **list, + rarch_setting_info_t *list_info, + float *target, + const char *name, const char *SHORT, + float default_value, const char *rounding, + rarch_setting_group_info_t *group_info, + rarch_setting_group_info_t *subgroup_info, + const char *parent_group, + change_handler_t change_handler, change_handler_t read_handler) +{ + (*list)[list_info->index++] = setting_float_setting( + name, + SHORT, target, default_value, rounding, + group_info->name, subgroup_info->name, parent_group, + change_handler, read_handler, false); + (*list)[list_info->index - 1].ui_type = ST_UI_TYPE_FLOAT_SPINBOX; + /* + MENU_SETTINGS_LIST_CURRENT_ADD_ENUM_IDX_PTR(list, list_info, name_enum_idx); + MENU_SETTINGS_LIST_CURRENT_ADD_ENUM_VALUE_IDX(list, list_info, SHORT_enum_idx); + */ +} + static void config_path( rarch_setting_t **list, rarch_setting_info_t *list_info, @@ -8242,6 +8269,19 @@ setting_get_string_representation_st_float_video_refresh_rate_auto( else strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE), len); } +static void +setting_get_string_representation_st_float_sensor_auto( + rarch_setting_t *setting, char *s, size_t len){ + + settings_t * settings = config_get_ptr(); + int remapped_port = settings->uints.input_sensor_index[setting->index_offset]; + int sensor_poll=input_driver_get_sensor( + remapped_port,settings->bools.input_sensors_enable,setting->retropad_sensor_index); + if (settings->bools.input_sensors_enable) + snprintf(s,len,"%.0f", 100.f*sensor_poll); + else + strlcpy(s, "Disabled", len); +} #ifdef HAVE_LIBNX static void get_string_representation_split_joycon(rarch_setting_t *setting, char *s, @@ -8396,6 +8436,11 @@ static void get_string_representation_input_sensor_index( if (string_is_empty(s)) strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISABLED), len); } +static void get_string_representation_of_abs_device( + rarch_setting_t *setting, char *s, size_t len) +{ + snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_ABS_SOURCE),setting->retropad_sensor_index); +} static void read_handler_audio_rate_control_delta(rarch_setting_t *setting) { settings_t *settings = config_get_ptr(); @@ -8416,6 +8461,7 @@ static void read_handler_audio_rate_control_delta(rarch_setting_t *setting) } } + static void general_read_handler(rarch_setting_t *setting) { settings_t *settings = config_get_ptr(); @@ -10034,25 +10080,68 @@ static bool setting_append_list_input_player_options( parent_group); (*list)[list_info->index - 1].bind_type = i + MENU_SETTINGS_BIND_BEGIN; } - for (j = 0; j < RETROPAD_RETRO_SENSOR_LAST; j++){ - //TODO Retro Sensor + if (settings->bools.input_sensors_enable){ + for (j = 0; j < RETROPAD_RETRO_SENSOR_LAST; j++){ + /* TODO Retro Sensor */ - char label[NAME_MAX_LENGTH]; - char name[NAME_MAX_LENGTH]; - snprintf(label,NAME_MAX_LENGTH, "test label %d", j); - snprintf(name,NAME_MAX_LENGTH, "test name %d", j); + char label[NAME_MAX_LENGTH]; + char name[NAME_MAX_LENGTH]; + strlcpy(label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_FIRST+j),NAME_MAX_LENGTH); + //snprintf(label,NAME_MAX_LENGTH, input_config_sensor_map_get_desc(j),user+1); + snprintf(name,NAME_MAX_LENGTH, "tmp name sensor bind %d", j); + CONFIG_UINT_ALT( + list, list_info, + &settings->uints.input_sensor_ids[user][j], + strdup(name), + strdup(label), + user, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].index = user + 1; + (*list)[list_info->index - 1].index_offset = user; + (*list)[list_info->index - 1].retropad_sensor_index = j; + (*list)[list_info->index - 1].get_string_representation = + &get_string_representation_of_abs_device; + //(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + //menu_settings_list_current_add_range(list, list_info, 0, RETROPAD_RETRO_SENSOR_LAST - 1, 1, true, true); + } - CONFIG_BIND_ALT( - list, list_info, - &input_config_binds[user][i], - user + 1, - user, - strdup(name), - strdup(label), - &defaults[i], - &group_info, - &subgroup_info, - parent_group); + //static float dummy[RETROPAD_RETRO_SENSOR_LAST]; + for (j = 0; j < RETROPAD_RETRO_SENSOR_LAST; j++){ + /* TODO Retro Sensor */ + char name[NAME_MAX_LENGTH]; + char label[NAME_MAX_LENGTH]; + + static float dummy[6]; + snprintf( + label, + NAME_MAX_LENGTH, + msg_hash_to_str(MENU_ENUM_LABEL_INPUT_ABS_SOURCE_VALUE), + j + ); + RARCH_DBG("label: %s\n",label); + snprintf(name,NAME_MAX_LENGTH, "tmp name sensor poll %d", j); + CONFIG_FLOAT_ALT( + list, list_info, + &dummy[j], + strdup(name), + strdup(label), + 0.f, + "%.3f", + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].index = user + 1; + (*list)[list_info->index - 1].index_offset = user; + (*list)[list_info->index - 1].retropad_sensor_index = j; + (*list)[list_info->index - 1].get_string_representation = + &setting_get_string_representation_st_float_sensor_auto; + } } } diff --git a/msg_hash.h b/msg_hash.h index faad5812a68..7b6fe35a748 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1169,24 +1169,26 @@ enum msg_hash_enums MENU_ENUM_LABEL_VALUE_INPUT_BIND_DEFAULT_ALL, MENU_ENUM_LABEL_VALUE_INPUT_SAVE_AUTOCONFIG, MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_INDEX, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_INDEX, MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_MAPPINGS, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_X, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_X_FLIP, + MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_FIRST, + MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_X= + MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_FIRST, MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Y, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Y_FLIP, MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Z, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_Z_FLIP, MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_X, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_X_FLIP, MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Y, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Y_FLIP, MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Z, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_Z_FLIP, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_LIGHT, - MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_LIGHT_FLIP, - + MENU_ENUM_LABEL_INPUT_SENSOR_FIRST, + MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_X= + MENU_ENUM_LABEL_INPUT_SENSOR_FIRST, + MENU_ENUM_LABEL_INPUT_ABS_SOURCE, + MENU_ENUM_LABEL_INPUT_ABS_SOURCE_VALUE, + MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_Y, + MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_Z, + MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_X, + MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_Y, + MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_Z, MENU_ENUM_LABEL_INPUT_JOYPAD_INDEX, MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_RESERVED_DEVICE_NAME, MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_RESERVATION_TYPE, diff --git a/pkg/android/phoenix-legacy/.project b/pkg/android/phoenix-legacy/.project index 4af1961cac4..75f405b8b11 100644 --- a/pkg/android/phoenix-legacy/.project +++ b/pkg/android/phoenix-legacy/.project @@ -30,4 +30,15 @@ com.android.ide.eclipse.adt.AndroidNature org.eclipse.jdt.core.javanature + + + 1737004363294 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/setting_list.h b/setting_list.h index 40f467ca237..f33b87d8454 100644 --- a/setting_list.h +++ b/setting_list.h @@ -200,6 +200,8 @@ struct rarch_setting int16_t offset_by; uint8_t free_flags; uint8_t index; + uint8_t retropad_sensor_index; + }; RETRO_END_DECLS