Refactor menu_common_settings_set

This commit is contained in:
twinaphex 2014-08-08 21:05:05 +02:00
parent 03f4cb48d1
commit a030547399

View File

@ -3324,24 +3324,24 @@ static bool osk_callback_enter_filename_init(void *data)
#endif #endif
static int menu_common_setting_set(unsigned setting, unsigned action) static int menu_common_setting_set(unsigned id, unsigned action)
{ {
rarch_setting_t *current_setting; rarch_setting_t *current_setting;
struct retro_perf_counter **counters; struct retro_perf_counter **counters;
unsigned port = driver.menu->current_pad; unsigned port = driver.menu->current_pad;
rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list(); rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
if (setting >= MENU_SETTINGS_PERF_COUNTERS_BEGIN && setting <= MENU_SETTINGS_PERF_COUNTERS_END) if (id >= MENU_SETTINGS_PERF_COUNTERS_BEGIN && id <= MENU_SETTINGS_PERF_COUNTERS_END)
{ {
counters = (struct retro_perf_counter**)perf_counters_rarch; counters = (struct retro_perf_counter**)perf_counters_rarch;
return menu_common_setting_set_perf(setting, action, counters, setting - MENU_SETTINGS_PERF_COUNTERS_BEGIN); return menu_common_setting_set_perf(id, action, counters, id - MENU_SETTINGS_PERF_COUNTERS_BEGIN);
} }
else if (setting >= MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN && setting <= MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_END) else if (id >= MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN && id <= MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_END)
{ {
counters = (struct retro_perf_counter**)perf_counters_libretro; counters = (struct retro_perf_counter**)perf_counters_libretro;
return menu_common_setting_set_perf(setting, action, counters, setting - MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN); return menu_common_setting_set_perf(id, action, counters, id - MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN);
} }
else if (setting >= MENU_SETTINGS_BIND_BEGIN && setting <= MENU_SETTINGS_BIND_ALL_LAST) else if (id >= MENU_SETTINGS_BIND_BEGIN && id <= MENU_SETTINGS_BIND_ALL_LAST)
{ {
if (driver.input->set_keybinds && !driver.input->get_joypad_driver) if (driver.input->set_keybinds && !driver.input->get_joypad_driver)
{ {
@ -3353,16 +3353,16 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
// FIXME: The array indices here look totally wrong ... Fixed it so it looks kind of sane for now. // FIXME: The array indices here look totally wrong ... Fixed it so it looks kind of sane for now.
if (keybind_action != KEYBINDS_ACTION_NONE) if (keybind_action != KEYBINDS_ACTION_NONE)
driver.input->set_keybinds(driver.input_data, g_settings.input.device[port], port, driver.input->set_keybinds(driver.input_data, g_settings.input.device[port], port,
setting - MENU_SETTINGS_BIND_BEGIN, keybind_action); id - MENU_SETTINGS_BIND_BEGIN, keybind_action);
} }
else else
{ {
struct retro_keybind *bind = (struct retro_keybind*)&g_settings.input.binds[port][setting - MENU_SETTINGS_BIND_BEGIN]; struct retro_keybind *bind = (struct retro_keybind*)&g_settings.input.binds[port][id - MENU_SETTINGS_BIND_BEGIN];
if (action == MENU_ACTION_OK) if (action == MENU_ACTION_OK)
{ {
driver.menu->binds.begin = setting; driver.menu->binds.begin = id;
driver.menu->binds.last = setting; driver.menu->binds.last = id;
driver.menu->binds.target = bind; driver.menu->binds.target = bind;
driver.menu->binds.player = port; driver.menu->binds.player = port;
file_list_push(driver.menu->menu_stack, "", "", file_list_push(driver.menu->menu_stack, "", "",
@ -3384,7 +3384,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
if (driver.menu->bind_mode_keyboard) if (driver.menu->bind_mode_keyboard)
{ {
const struct retro_keybind *def_binds = port ? retro_keybinds_rest : retro_keybinds_1; const struct retro_keybind *def_binds = port ? retro_keybinds_rest : retro_keybinds_1;
bind->key = def_binds[setting - MENU_SETTINGS_BIND_BEGIN].key; bind->key = def_binds[id - MENU_SETTINGS_BIND_BEGIN].key;
} }
else else
{ {
@ -3396,7 +3396,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
return 0; return 0;
} }
switch (setting) switch (id)
{ {
case MENU_START_SCREEN: case MENU_START_SCREEN:
if (action == MENU_ACTION_OK) if (action == MENU_ACTION_OK)
@ -3473,7 +3473,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
case MENU_SETTINGS_SAVESTATE_LOAD: case MENU_SETTINGS_SAVESTATE_LOAD:
if (action == MENU_ACTION_OK) if (action == MENU_ACTION_OK)
{ {
if (setting == MENU_SETTINGS_SAVESTATE_SAVE) if (id == MENU_SETTINGS_SAVESTATE_SAVE)
rarch_main_command(RARCH_CMD_SAVE_STATE); rarch_main_command(RARCH_CMD_SAVE_STATE);
else else
rarch_main_command(RARCH_CMD_LOAD_STATE); rarch_main_command(RARCH_CMD_LOAD_STATE);
@ -3636,12 +3636,12 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
#ifdef HAVE_OVERLAY #ifdef HAVE_OVERLAY
case MENU_SETTINGS_OVERLAY_PRESET: case MENU_SETTINGS_OVERLAY_PRESET:
if ((current_setting = setting_data_find_setting(setting_data, "input_overlay"))) if ((current_setting = setting_data_find_setting(setting_data, "input_overlay")))
menu_common_setting_set_current_path_selection(current_setting, g_extern.overlay_dir, setting, action); menu_common_setting_set_current_path_selection(current_setting, g_extern.overlay_dir, id, action);
break; break;
#endif #endif
case MENU_CONTENT_HISTORY_PATH: case MENU_CONTENT_HISTORY_PATH:
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "game_history_path"))) if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "game_history_path")))
menu_common_setting_set_current_path_selection(current_setting, "", setting, action); menu_common_setting_set_current_path_selection(current_setting, "", id, action);
break; break;
case MENU_SETTINGS_VIDEO_SOFTFILTER: case MENU_SETTINGS_VIDEO_SOFTFILTER:
switch (action) switch (action)
@ -3661,7 +3661,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
driver.menu_data_own = true; driver.menu_data_own = true;
rarch_main_command(RARCH_CMD_REINIT); rarch_main_command(RARCH_CMD_REINIT);
#elif defined(HAVE_DYLIB) #elif defined(HAVE_DYLIB)
file_list_push(driver.menu->menu_stack, g_settings.video.filter_dir, "", setting, driver.menu->selection_ptr); file_list_push(driver.menu->menu_stack, g_settings.video.filter_dir, "", id, driver.menu->selection_ptr);
menu_clear_navigation(driver.menu); menu_clear_navigation(driver.menu);
#endif #endif
driver.menu->need_refresh = true; driver.menu->need_refresh = true;
@ -3679,7 +3679,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
break; break;
case MENU_SETTINGS_AUDIO_DSP_FILTER: case MENU_SETTINGS_AUDIO_DSP_FILTER:
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "audio_dsp_plugin"))) if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "audio_dsp_plugin")))
menu_common_setting_set_current_path_selection(current_setting, g_settings.audio.filter_dir, setting, action); menu_common_setting_set_current_path_selection(current_setting, g_settings.audio.filter_dir, id, action);
break; break;
#ifdef HAVE_OVERLAY #ifdef HAVE_OVERLAY
case MENU_SETTINGS_OVERLAY_OPACITY: case MENU_SETTINGS_OVERLAY_OPACITY: