Get rid of label hashes in menu_cbs_title.c

This commit is contained in:
twinaphex 2020-03-26 17:36:05 +01:00
parent 6f6a4e59df
commit 4646da6df8
3 changed files with 61 additions and 82 deletions

View File

@ -645,7 +645,7 @@ static int action_get_title_input_binds_list(const char *path, const char *label
}
static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
const char *label, uint32_t label_hash)
const char *label)
{
unsigned i;
typedef struct title_info_list
@ -902,6 +902,40 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
action_get_download_core_content_list},
{MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_LIST,
action_get_user_accounts_list},
{MENU_ENUM_LABEL_VIDEO_FONT_PATH,
action_get_title_font_path},
{MENU_ENUM_LABEL_XMB_FONT,
action_get_title_font_path},
{MENU_ENUM_LABEL_VIDEO_FILTER,
action_get_title_video_filter},
{MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN,
action_get_title_audio_filter},
{MENU_ENUM_LABEL_CHEAT_DATABASE_PATH,
action_get_title_cheat_directory},
{MENU_ENUM_LABEL_LIBRETRO_DIR_PATH,
action_get_title_core_directory},
{MENU_ENUM_LABEL_LIBRETRO_INFO_PATH,
action_get_title_core_info_directory},
#if defined(HAVE_LAKKA_SWITCH) || defined(HAVE_LIBNX)
{MENU_ENUM_LABEL_SWITCH_CPU_PROFILE,
action_get_title_switch_cpu_profile},
#endif
#ifdef HAVE_LAKKA_SWITCH
{MENU_ENUM_LABEL_SWITCH_GPU_PROFILE,
action_get_title_switch_gpu_profile},
{MENU_ENUM_LABEL_SWITCH_BACKLIGHT_CONTROL,
action_get_title_switch_backlight_control},
#endif
{MENU_ENUM_LABEL_DEFERRED_MANUAL_CONTENT_SCAN_LIST,
action_get_title_manual_content_scan_list},
{MENU_ENUM_LABEL_MANUAL_CONTENT_SCAN_DIR,
action_get_title_manual_content_scan_dir},
{MENU_ENUM_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ELSPA_RATING,
action_get_title_list_rdb_entry_elspa_rating},
{MENU_ENUM_LABEL_DEFERRED_CORE_LIST,
action_get_title_deferred_core_list},
{MENU_ENUM_LABEL_DEFERRED_CORE_LIST_SET,
action_get_title_deferred_core_list},
};
if (cbs->setting)
@ -962,7 +996,7 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ESRB_RATING:
BIND_ACTION_GET_TITLE(cbs, action_get_title_list_rdb_entry_esrb_rating);
break;
case MENU_ENUM_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ELSPA_RATING:
case MENU_ENUM_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ELSPA_RATING: /* TODO/FIXME - doesn't work */
BIND_ACTION_GET_TITLE(cbs, action_get_title_list_rdb_entry_elspa_rating);
break;
case MENU_ENUM_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PEGI_RATING:
@ -1282,59 +1316,6 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
return -1;
}
}
else
{
switch (label_hash)
{
case MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ELSPA_RATING:
BIND_ACTION_GET_TITLE(cbs, action_get_title_list_rdb_entry_elspa_rating);
break;
case MENU_LABEL_DEFERRED_CORE_LIST:
case MENU_LABEL_DEFERRED_CORE_LIST_SET:
BIND_ACTION_GET_TITLE(cbs, action_get_title_deferred_core_list);
break;
case MENU_LABEL_VIDEO_FONT_PATH:
case MENU_LABEL_XMB_FONT:
BIND_ACTION_GET_TITLE(cbs, action_get_title_font_path);
break;
case MENU_LABEL_VIDEO_FILTER:
BIND_ACTION_GET_TITLE(cbs, action_get_title_video_filter);
break;
case MENU_LABEL_AUDIO_DSP_PLUGIN:
BIND_ACTION_GET_TITLE(cbs, action_get_title_audio_filter);
break;
case MENU_LABEL_CHEAT_DATABASE_PATH:
BIND_ACTION_GET_TITLE(cbs, action_get_title_cheat_directory);
break;
case MENU_LABEL_LIBRETRO_DIR_PATH:
BIND_ACTION_GET_TITLE(cbs, action_get_title_core_directory);
break;
case MENU_LABEL_LIBRETRO_INFO_PATH:
BIND_ACTION_GET_TITLE(cbs, action_get_title_core_info_directory);
break;
#if defined(HAVE_LAKKA_SWITCH) || defined(HAVE_LIBNX)
case MENU_ENUM_LABEL_SWITCH_CPU_PROFILE:
BIND_ACTION_GET_TITLE(cbs, action_get_title_switch_cpu_profile);
break;
#endif
#ifdef HAVE_LAKKA_SWITCH
case MENU_ENUM_LABEL_SWITCH_GPU_PROFILE:
BIND_ACTION_GET_TITLE(cbs, action_get_title_switch_gpu_profile);
break;
case MENU_ENUM_LABEL_SWITCH_BACKLIGHT_CONTROL:
BIND_ACTION_GET_TITLE(cbs, action_get_title_switch_backlight_control);
break;
#endif
case MENU_LABEL_DEFERRED_MANUAL_CONTENT_SCAN_LIST:
BIND_ACTION_GET_TITLE(cbs, action_get_title_manual_content_scan_list);
break;
case MENU_LABEL_MANUAL_CONTENT_SCAN_DIR:
BIND_ACTION_GET_TITLE(cbs, action_get_title_manual_content_scan_dir);
break;
default:
return -1;
}
}
return 0;
}
@ -1362,8 +1343,7 @@ static int menu_cbs_init_bind_title_compare_type(menu_file_list_cbs_t *cbs,
}
int menu_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx,
uint32_t label_hash)
const char *path, const char *label, unsigned type, size_t idx)
{
unsigned i;
typedef struct title_info_list
@ -1405,7 +1385,7 @@ int menu_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
BIND_ACTION_GET_TITLE(cbs, action_get_title_default);
if (cbs->enum_idx != MENU_ENUM_LABEL_PLAYLIST_ENTRY &&
menu_cbs_init_bind_title_compare_label(cbs, label, label_hash) == 0)
menu_cbs_init_bind_title_compare_label(cbs, label) == 0)
return 0;
if (menu_cbs_init_bind_title_compare_type(cbs, type) == 0)

View File

@ -323,7 +323,7 @@ void menu_cbs_init(void *data,
/* It will try to find a corresponding callback function inside
* menu_cbs_title.c, then map this callback to the entry. */
menu_cbs_init_bind_title(cbs, path, label, type, idx, label_hash);
menu_cbs_init_bind_title(cbs, path, label, type, idx);
menu_cbs_init_log(repr_label, "GET TITLE", cbs->action_get_title_ident);

View File

@ -292,8 +292,7 @@ int menu_cbs_init_bind_scan(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx);
int menu_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx,
uint32_t label_hash);
const char *path, const char *label, unsigned type, size_t idx);
#ifdef HAVE_LIBRETRODB
int action_scan_directory(const char *path,