Avoid some pretty nasty switch mess.

This commit is contained in:
Themaister 2014-06-01 19:55:53 +02:00
parent a71d9d2811
commit 6ee535eafd
2 changed files with 465 additions and 577 deletions

View File

@ -4715,6 +4715,30 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
static void menu_common_setting_set_label(char *type_str, size_t type_str_size, unsigned *w, unsigned type)
{
if (type >= RGUI_SETTINGS_PERF_COUNTERS_BEGIN && type <= RGUI_SETTINGS_PERF_COUNTERS_END)
{
#ifdef PERF_TEST
const struct retro_perf_counter **counters = (const struct retro_perf_counter**)perf_counters_rarch;
if (counters[type])
{
snprintf(type_str, type_str_size, PERF_LOG_FMT,
((unsigned long long)counters[type]->total / (unsigned long long)counters[type]->call_cnt),
(unsigned long long)counters[type]->call_cnt);
}
else
#endif
{
*type_str = '\0';
*w = 0;
}
}
else if (type >= RGUI_SETTINGS_BIND_BEGIN && type <= RGUI_SETTINGS_BIND_ALL_LAST)
{
input_get_bind_string(type_str, &g_settings.input.binds[driver.menu->current_pad][type - RGUI_SETTINGS_BIND_BEGIN], type_str_size);
}
else
{
switch (type)
{
case RGUI_SETTINGS_VIDEO_ROTATION:
@ -5106,63 +5130,6 @@ static void menu_common_setting_set_label(char *type_str, size_t type_str_size,
case RGUI_SETTINGS_CUSTOM_BIND_MODE:
strlcpy(type_str, driver.menu->bind_mode_keyboard ? "Keyboard" : "Joypad", type_str_size);
break;
case RGUI_SETTINGS_BIND_UP:
case RGUI_SETTINGS_BIND_DOWN:
case RGUI_SETTINGS_BIND_LEFT:
case RGUI_SETTINGS_BIND_RIGHT:
case RGUI_SETTINGS_BIND_A:
case RGUI_SETTINGS_BIND_B:
case RGUI_SETTINGS_BIND_X:
case RGUI_SETTINGS_BIND_Y:
case RGUI_SETTINGS_BIND_START:
case RGUI_SETTINGS_BIND_SELECT:
case RGUI_SETTINGS_BIND_L:
case RGUI_SETTINGS_BIND_R:
case RGUI_SETTINGS_BIND_L2:
case RGUI_SETTINGS_BIND_R2:
case RGUI_SETTINGS_BIND_L3:
case RGUI_SETTINGS_BIND_R3:
case RGUI_SETTINGS_BIND_TURBO_ENABLE:
case RGUI_SETTINGS_BIND_ANALOG_LEFT_X_PLUS:
case RGUI_SETTINGS_BIND_ANALOG_LEFT_X_MINUS:
case RGUI_SETTINGS_BIND_ANALOG_LEFT_Y_PLUS:
case RGUI_SETTINGS_BIND_ANALOG_LEFT_Y_MINUS:
case RGUI_SETTINGS_BIND_ANALOG_RIGHT_X_PLUS:
case RGUI_SETTINGS_BIND_ANALOG_RIGHT_X_MINUS:
case RGUI_SETTINGS_BIND_ANALOG_RIGHT_Y_PLUS:
case RGUI_SETTINGS_BIND_ANALOG_RIGHT_Y_MINUS:
case RGUI_SETTINGS_BIND_FAST_FORWARD_KEY:
case RGUI_SETTINGS_BIND_FAST_FORWARD_HOLD_KEY:
case RGUI_SETTINGS_BIND_LOAD_STATE_KEY:
case RGUI_SETTINGS_BIND_SAVE_STATE_KEY:
case RGUI_SETTINGS_BIND_FULLSCREEN_TOGGLE_KEY:
case RGUI_SETTINGS_BIND_QUIT_KEY:
case RGUI_SETTINGS_BIND_STATE_SLOT_PLUS:
case RGUI_SETTINGS_BIND_STATE_SLOT_MINUS:
case RGUI_SETTINGS_BIND_REWIND:
case RGUI_SETTINGS_BIND_MOVIE_RECORD_TOGGLE:
case RGUI_SETTINGS_BIND_PAUSE_TOGGLE:
case RGUI_SETTINGS_BIND_FRAMEADVANCE:
case RGUI_SETTINGS_BIND_RESET:
case RGUI_SETTINGS_BIND_SHADER_NEXT:
case RGUI_SETTINGS_BIND_SHADER_PREV:
case RGUI_SETTINGS_BIND_CHEAT_INDEX_PLUS:
case RGUI_SETTINGS_BIND_CHEAT_INDEX_MINUS:
case RGUI_SETTINGS_BIND_CHEAT_TOGGLE:
case RGUI_SETTINGS_BIND_SCREENSHOT:
case RGUI_SETTINGS_BIND_MUTE:
case RGUI_SETTINGS_BIND_NETPLAY_FLIP:
case RGUI_SETTINGS_BIND_SLOWMOTION:
case RGUI_SETTINGS_BIND_ENABLE_HOTKEY:
case RGUI_SETTINGS_BIND_VOLUME_UP:
case RGUI_SETTINGS_BIND_VOLUME_DOWN:
case RGUI_SETTINGS_BIND_OVERLAY_NEXT:
case RGUI_SETTINGS_BIND_DISK_EJECT_TOGGLE:
case RGUI_SETTINGS_BIND_DISK_NEXT:
case RGUI_SETTINGS_BIND_GRAB_MOUSE_TOGGLE:
case RGUI_SETTINGS_BIND_MENU_TOGGLE:
input_get_bind_string(type_str, &g_settings.input.binds[driver.menu->current_pad][type - RGUI_SETTINGS_BIND_BEGIN], type_str_size);
break;
case RGUI_SETTINGS_AUDIO_DSP_EFFECT:
#ifdef RARCH_CONSOLE
strlcpy(type_str, (g_extern.console.sound.volume_level) ? "Loud" : "Normal", type_str_size);
@ -5239,93 +5206,12 @@ static void menu_common_setting_set_label(char *type_str, size_t type_str_size,
case RGUI_SETTINGS_LOAD_DUMMY_ON_CORE_SHUTDOWN:
snprintf(type_str, type_str_size, g_settings.load_dummy_on_core_shutdown ? "ON" : "OFF");
break;
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 1:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 2:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 3:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 4:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 5:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 6:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 7:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 8:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 9:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 10:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 11:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 12:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 13:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 14:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 15:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 16:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 17:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 18:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 19:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 20:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 21:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 22:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 23:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 24:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 25:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 26:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 27:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 28:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 29:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 30:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 31:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 32:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 33:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 34:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 35:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 36:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 37:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 38:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 39:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 40:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 41:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 42:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 43:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 44:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 45:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 46:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 47:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 48:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 49:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 50:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 51:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 52:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 53:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 54:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 55:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 56:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 57:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 58:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 59:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 60:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 61:
case RGUI_SETTINGS_PERF_COUNTERS_BEGIN + 62:
case RGUI_SETTINGS_PERF_COUNTERS_END:
{
#ifdef PERF_TEST
const struct retro_perf_counter **counters = (const struct retro_perf_counter**)perf_counters_rarch;
if (counters[type])
{
snprintf(type_str, type_str_size, PERF_LOG_FMT,
((unsigned long long)counters[type]->total / (unsigned long long)counters[type]->call_cnt),
(unsigned long long)counters[type]->call_cnt);
}
else
#endif
{
*type_str = '\0';
*w = 0;
}
}
break;
default:
*type_str = '\0';
*w = 0;
break;
}
}
}
const menu_ctx_driver_backend_t menu_ctx_backend_common = {

View File

@ -234,6 +234,8 @@ typedef enum
RGUI_SETTINGS_BIND_DISK_NEXT,
RGUI_SETTINGS_BIND_GRAB_MOUSE_TOGGLE,
RGUI_SETTINGS_BIND_MENU_TOGGLE,
RGUI_SETTINGS_BIND_ALL_LAST = RGUI_SETTINGS_BIND_MENU_TOGGLE,
RGUI_SETTINGS_CUSTOM_BIND_MODE,
RGUI_SETTINGS_CUSTOM_BIND,
RGUI_SETTINGS_CUSTOM_BIND_KEYBOARD,