(Menu) Refactor hardcoded input settings

This commit is contained in:
twinaphex 2014-09-08 22:30:09 +02:00
parent 1c1194cdca
commit c329501e2f
4 changed files with 61 additions and 66 deletions

View File

@ -672,11 +672,8 @@ static int menu_setting_set(unsigned id, const char *label,
}
}
else
else if (!strcmp(label, "input_bind_player_no"))
{
switch (id)
{
case MENU_SETTINGS_BIND_PLAYER:
if (action == MENU_ACTION_START)
driver.menu->current_pad = 0;
else if (action == MENU_ACTION_LEFT)
@ -692,8 +689,9 @@ static int menu_setting_set(unsigned id, const char *label,
if (port != driver.menu->current_pad)
driver.menu->need_refresh = true;
port = driver.menu->current_pad;
break;
case MENU_SETTINGS_BIND_ANALOG_MODE:
}
else if (!strcmp(label, "input_bind_analog_dpad_mode"))
{
switch (action)
{
case MENU_ACTION_START:
@ -716,7 +714,11 @@ static int menu_setting_set(unsigned id, const char *label,
default:
break;
}
break;
}
else
{
switch (id)
{
case MENU_SETTINGS_CUSTOM_BIND_MODE:
if (action == MENU_ACTION_LEFT || action == MENU_ACTION_RIGHT)
driver.menu->bind_mode_keyboard =

View File

@ -103,9 +103,6 @@ typedef enum
MENU_SETTINGS_SHADER_PASS_SCALE_0,
MENU_SETTINGS_SHADER_PASS_SCALE_LAST = MENU_SETTINGS_SHADER_PASS_SCALE_0 + (GFX_MAX_SHADERS - 1),
MENU_SETTINGS_BIND_PLAYER,
MENU_SETTINGS_BIND_ANALOG_MODE,
// Match up with libretro order for simplicity.
MENU_SETTINGS_BIND_BEGIN,
MENU_SETTINGS_BIND_LAST = MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_Y_MINUS,

View File

@ -440,12 +440,10 @@ int menu_entries_push_list(menu_handle_t *menu,
else if (!strcmp(label, "Input Options"))
{
file_list_clear(list);
file_list_push(list, "Player", "",
MENU_SETTINGS_BIND_PLAYER, 0);
file_list_push(list, "Player", "input_bind_player_no", 0, 0);
file_list_push(list, "Device", "input_bind_device_id", 0, 0);
file_list_push(list, "Device Type", "input_bind_device_type", 0, 0);
file_list_push(list, "Analog D-pad Mode", "",
MENU_SETTINGS_BIND_ANALOG_MODE, 0);
file_list_push(list, "Analog D-pad Mode", "input_bind_analog_dpad_mode", 0, 0);
add_setting_entry(menu,list,"input_axis_threshold", 0, setting_data);
add_setting_entry(menu,list,"input_autodetect_enable", 0, setting_data);
add_setting_entry(menu,list,"input_turbo_period", 0, setting_data);

View File

@ -1798,6 +1798,22 @@ void setting_data_get_label(char *type_str,
strlcpy(type_str, name, type_str_size);
}
else if (!strcmp(label, "input_bind_player_no"))
snprintf(type_str, type_str_size, "#%u",
driver.menu->current_pad + 1);
else if (!strcmp(label, "input_bind_analog_dpad_mode"))
{
static const char *modes[] = {
"None",
"Left Analog",
"Right Analog",
"Dual Analog",
};
strlcpy(type_str, modes[g_settings.input.analog_dpad_mode
[driver.menu->current_pad] % ANALOG_DPAD_LAST],
type_str_size);
}
else if (type >= MENU_SETTINGS_PERF_COUNTERS_BEGIN
&& type <= MENU_SETTINGS_PERF_COUNTERS_END)
menu_common_setting_set_label_perf(type_str, type_str_size, w, type,
@ -1868,24 +1884,6 @@ void setting_data_get_label(char *type_str,
case MENU_SETTINGS_CUSTOM_BIND_DEFAULT_ALL:
strlcpy(type_str, "...", type_str_size);
break;
case MENU_SETTINGS_BIND_PLAYER:
snprintf(type_str, type_str_size, "#%u",
driver.menu->current_pad + 1);
break;
case MENU_SETTINGS_BIND_ANALOG_MODE:
{
static const char *modes[] = {
"None",
"Left Analog",
"Right Analog",
"Dual Analog",
};
strlcpy(type_str, modes[g_settings.input.analog_dpad_mode
[driver.menu->current_pad] % ANALOG_DPAD_LAST],
type_str_size);
}
break;
case MENU_SETTINGS_CUSTOM_BIND_MODE:
strlcpy(type_str, driver.menu->bind_mode_keyboard ?
"RetroKeyboard" : "RetroPad", type_str_size);