(menu_entries_cbs_ok.c) Simplify

This commit is contained in:
twinaphex 2015-06-07 17:16:21 +02:00
parent 18d2f1fd63
commit 4fbab060ff
1 changed files with 140 additions and 137 deletions

View File

@ -1575,138 +1575,153 @@ static int menu_entries_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs
static int menu_entries_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, static int menu_entries_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
uint32_t label_hash, uint32_t menu_label_hash, unsigned type) uint32_t label_hash, uint32_t menu_label_hash, unsigned type)
{ {
switch (type) if (type == MENU_SETTINGS_CUSTOM_BIND_KEYBOARD ||
type == MENU_SETTINGS_CUSTOM_BIND)
cbs->action_ok = action_ok_lookup_setting;
else if (type >= MENU_SETTINGS_SHADER_PARAMETER_0
&& type <= MENU_SETTINGS_SHADER_PARAMETER_LAST)
cbs->action_ok = NULL;
else if (type >= MENU_SETTINGS_SHADER_PRESET_PARAMETER_0
&& type <= MENU_SETTINGS_SHADER_PRESET_PARAMETER_LAST)
cbs->action_ok = NULL;
else if (type >= MENU_SETTINGS_CHEAT_BEGIN
&& type <= MENU_SETTINGS_CHEAT_END)
cbs->action_ok = action_ok_cheat;
else
{ {
case MENU_SETTINGS_VIDEO_RESOLUTION: switch (type)
cbs->action_ok = action_ok_video_resolution; {
break; case MENU_SETTINGS_VIDEO_RESOLUTION:
case MENU_FILE_PLAYLIST_ENTRY: cbs->action_ok = action_ok_video_resolution;
cbs->action_ok = action_ok_playlist_entry; break;
break; case MENU_FILE_PLAYLIST_ENTRY:
case MENU_FILE_PLAYLIST_COLLECTION: cbs->action_ok = action_ok_playlist_entry;
cbs->action_ok = action_ok_playlist_collection; break;
break; case MENU_FILE_PLAYLIST_COLLECTION:
case MENU_FILE_CONTENTLIST_ENTRY: cbs->action_ok = action_ok_playlist_collection;
cbs->action_ok = action_ok_push_generic_list; break;
break; case MENU_FILE_CONTENTLIST_ENTRY:
case MENU_FILE_CHEAT: cbs->action_ok = action_ok_push_generic_list;
cbs->action_ok = action_ok_cheat_file_load; break;
break; case MENU_FILE_CHEAT:
case MENU_FILE_RECORD_CONFIG: cbs->action_ok = action_ok_cheat_file_load;
cbs->action_ok = action_ok_record_configfile_load; break;
break; case MENU_FILE_RECORD_CONFIG:
case MENU_FILE_REMAP: cbs->action_ok = action_ok_record_configfile_load;
cbs->action_ok = action_ok_remap_file_load; break;
break; case MENU_FILE_REMAP:
case MENU_FILE_SHADER_PRESET: cbs->action_ok = action_ok_remap_file_load;
cbs->action_ok = action_ok_shader_preset_load; break;
break; case MENU_FILE_SHADER_PRESET:
case MENU_FILE_SHADER: cbs->action_ok = action_ok_shader_preset_load;
cbs->action_ok = action_ok_shader_pass_load; break;
break; case MENU_FILE_SHADER:
case MENU_FILE_IMAGE: cbs->action_ok = action_ok_shader_pass_load;
cbs->action_ok = action_ok_menu_wallpaper_load; break;
break; case MENU_FILE_IMAGE:
case MENU_FILE_USE_DIRECTORY: cbs->action_ok = action_ok_menu_wallpaper_load;
cbs->action_ok = action_ok_path_use_directory; break;
break; case MENU_FILE_USE_DIRECTORY:
case MENU_FILE_CONFIG: cbs->action_ok = action_ok_path_use_directory;
cbs->action_ok = action_ok_config_load; break;
break; case MENU_FILE_CONFIG:
case MENU_FILE_DIRECTORY: cbs->action_ok = action_ok_config_load;
cbs->action_ok = action_ok_directory_push; break;
break; case MENU_FILE_DIRECTORY:
case MENU_FILE_CARCHIVE: cbs->action_ok = action_ok_directory_push;
cbs->action_ok = action_ok_compressed_archive_push; break;
break; case MENU_FILE_CARCHIVE:
case MENU_FILE_CORE: cbs->action_ok = action_ok_compressed_archive_push;
if (label_hash == MENU_LABEL_DEFERRED_CORE_LIST) break;
cbs->action_ok = action_ok_core_load_deferred; case MENU_FILE_CORE:
else if (label_hash == MENU_LABEL_DEFERRED_CORE_LIST)
{ cbs->action_ok = action_ok_core_load_deferred;
else
{
switch (menu_label_hash)
{
case MENU_LABEL_DEFERRED_CORE_LIST_SET:
cbs->action_ok = action_ok_core_deferred_set;
break;
case MENU_LABEL_CORE_LIST:
cbs->action_ok = action_ok_core_load;
break;
case MENU_LABEL_CORE_UPDATER_LIST:
cbs->action_ok = action_ok_core_download;
break;
}
}
break;
case MENU_FILE_DOWNLOAD_CORE:
cbs->action_ok = action_ok_core_updater_download;
break;
case MENU_FILE_DOWNLOAD_CORE_INFO:
break;
case MENU_FILE_RDB:
switch (menu_label_hash) switch (menu_label_hash)
{ {
case MENU_LABEL_DEFERRED_CORE_LIST_SET: case MENU_LABEL_DEFERRED_DATABASE_MANAGER_LIST:
cbs->action_ok = action_ok_core_deferred_set; cbs->action_ok = action_ok_database_manager_list_deferred;
break; break;
case MENU_LABEL_CORE_LIST: case MENU_LABEL_DATABASE_MANAGER_LIST:
cbs->action_ok = action_ok_core_load; case MENU_VALUE_HORIZONTAL_MENU:
break; cbs->action_ok = action_ok_database_manager_list;
case MENU_LABEL_CORE_UPDATER_LIST:
cbs->action_ok = action_ok_core_download;
break; break;
} }
} break;
break; case MENU_FILE_RDB_ENTRY:
case MENU_FILE_DOWNLOAD_CORE: cbs->action_ok = action_ok_rdb_entry;
cbs->action_ok = action_ok_core_updater_download; break;
break; case MENU_FILE_CURSOR:
case MENU_FILE_DOWNLOAD_CORE_INFO: switch (menu_label_hash)
break; {
case MENU_FILE_RDB: case MENU_LABEL_DEFERRED_DATABASE_MANAGER_LIST:
switch (menu_label_hash) cbs->action_ok = action_ok_cursor_manager_list_deferred;
{ break;
case MENU_LABEL_DEFERRED_DATABASE_MANAGER_LIST: case MENU_LABEL_CURSOR_MANAGER_LIST:
cbs->action_ok = action_ok_database_manager_list_deferred; cbs->action_ok = action_ok_cursor_manager_list;
break; break;
case MENU_LABEL_DATABASE_MANAGER_LIST: }
case MENU_VALUE_HORIZONTAL_MENU: break;
cbs->action_ok = action_ok_database_manager_list; case MENU_FILE_FONT:
break; case MENU_FILE_OVERLAY:
} case MENU_FILE_AUDIOFILTER:
break; cbs->action_ok = action_ok_set_path;
case MENU_FILE_RDB_ENTRY: break;
cbs->action_ok = action_ok_rdb_entry; case MENU_FILE_VIDEOFILTER:
break; cbs->action_ok = action_ok_video_filter_file_load;
case MENU_FILE_CURSOR: break;
switch (menu_label_hash)
{
case MENU_LABEL_DEFERRED_DATABASE_MANAGER_LIST:
cbs->action_ok = action_ok_cursor_manager_list_deferred;
break;
case MENU_LABEL_CURSOR_MANAGER_LIST:
cbs->action_ok = action_ok_cursor_manager_list;
break;
}
break;
case MENU_FILE_FONT:
case MENU_FILE_OVERLAY:
case MENU_FILE_AUDIOFILTER:
cbs->action_ok = action_ok_set_path;
break;
case MENU_FILE_VIDEOFILTER:
cbs->action_ok = action_ok_video_filter_file_load;
break;
#ifdef HAVE_COMPRESSION #ifdef HAVE_COMPRESSION
case MENU_FILE_IN_CARCHIVE: case MENU_FILE_IN_CARCHIVE:
#endif #endif
case MENU_FILE_PLAIN: case MENU_FILE_PLAIN:
switch (menu_label_hash) switch (menu_label_hash)
{ {
case MENU_LABEL_DETECT_CORE_LIST: case MENU_LABEL_DETECT_CORE_LIST:
cbs->action_ok = action_ok_file_load_with_detect_core; cbs->action_ok = action_ok_file_load_with_detect_core;
break; break;
case MENU_LABEL_DISK_IMAGE_APPEND: case MENU_LABEL_DISK_IMAGE_APPEND:
cbs->action_ok = action_ok_disk_image_append; cbs->action_ok = action_ok_disk_image_append;
break; break;
default: default:
cbs->action_ok = action_ok_file_load; cbs->action_ok = action_ok_file_load;
break; break;
} }
break; break;
case MENU_SETTINGS_CUSTOM_VIEWPORT: case MENU_SETTINGS_CUSTOM_VIEWPORT:
cbs->action_ok = action_ok_custom_viewport; cbs->action_ok = action_ok_custom_viewport;
break; break;
case MENU_SETTINGS: case MENU_SETTINGS:
case MENU_SETTING_GROUP: case MENU_SETTING_GROUP:
case MENU_SETTING_SUBGROUP: case MENU_SETTING_SUBGROUP:
cbs->action_ok = action_ok_push_default; cbs->action_ok = action_ok_push_default;
break; break;
case MENU_SETTINGS_CORE_DISK_OPTIONS_DISK_CYCLE_TRAY_STATUS: case MENU_SETTINGS_CORE_DISK_OPTIONS_DISK_CYCLE_TRAY_STATUS:
cbs->action_ok = action_ok_disk_cycle_tray_status; cbs->action_ok = action_ok_disk_cycle_tray_status;
break; break;
default: default:
return -1; return -1;
}
} }
return 0; return 0;
@ -1744,19 +1759,7 @@ void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs,
} }
if (type == MENU_SETTINGS_CUSTOM_BIND_KEYBOARD || if (menu_entries_cbs_init_bind_ok_compare_label(cbs, label_hash) == 0)
type == MENU_SETTINGS_CUSTOM_BIND)
cbs->action_ok = action_ok_lookup_setting;
else if (type >= MENU_SETTINGS_SHADER_PARAMETER_0
&& type <= MENU_SETTINGS_SHADER_PARAMETER_LAST)
cbs->action_ok = NULL;
else if (type >= MENU_SETTINGS_SHADER_PRESET_PARAMETER_0
&& type <= MENU_SETTINGS_SHADER_PRESET_PARAMETER_LAST)
cbs->action_ok = NULL;
else if (type >= MENU_SETTINGS_CHEAT_BEGIN
&& type <= MENU_SETTINGS_CHEAT_END)
cbs->action_ok = action_ok_cheat;
else if (menu_entries_cbs_init_bind_ok_compare_label(cbs, label_hash) == 0)
return; return;
menu_entries_cbs_init_bind_ok_compare_type(cbs, label_hash, menu_label_hash, type); menu_entries_cbs_init_bind_ok_compare_type(cbs, label_hash, menu_label_hash, type);