(Menu) Pass hash values to 'init_bind' functions

This commit is contained in:
twinaphex 2015-06-05 13:17:44 +02:00
parent f84af7ed8b
commit bb98e35cac
18 changed files with 101 additions and 82 deletions

View File

@ -14,6 +14,8 @@
*/ */
#include <file/file_path.h> #include <file/file_path.h>
#include <rhash.h>
#include "menu.h" #include "menu.h"
#include "menu_entries_cbs.h" #include "menu_entries_cbs.h"
#include "menu_setting.h" #include "menu_setting.h"
@ -231,6 +233,7 @@ void menu_entries_cbs_init(void *data,
menu_file_list_cbs_t *cbs = NULL; menu_file_list_cbs_t *cbs = NULL;
file_list_t *list = (file_list_t*)data; file_list_t *list = (file_list_t*)data;
menu_handle_t *menu = menu_driver_get_ptr(); menu_handle_t *menu = menu_driver_get_ptr();
uint32_t label_hash = 0, menu_label_hash = 0;
if (!menu) if (!menu)
return; return;
@ -259,20 +262,23 @@ void menu_entries_cbs_init(void *data,
str_list = NULL; str_list = NULL;
} }
menu_entries_cbs_init_bind_ok(cbs, path, label, type, idx, elem0, elem1, menu_label); label_hash = djb2_calculate(label);
menu_entries_cbs_init_bind_cancel(cbs, path, label, type, idx, elem0, elem1); menu_label_hash = djb2_calculate(menu_label);
menu_entries_cbs_init_bind_scan(cbs, path, label, type, idx, elem0, elem1);
menu_entries_cbs_init_bind_start(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_ok(cbs, path, label, type, idx, elem0, elem1, menu_label, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_select(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_cancel(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_info(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_scan(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_content_list_switch(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_start(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_up(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_select(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_down(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_info(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_left(cbs, path, label, type, idx, elem0, elem1, menu_label); menu_entries_cbs_init_bind_content_list_switch(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_right(cbs, path, label, type, idx, elem0, elem1, menu_label); menu_entries_cbs_init_bind_up(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_deferred_push(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_down(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_refresh(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_left(cbs, path, label, type, idx, elem0, elem1, menu_label, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_iterate(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_right(cbs, path, label, type, idx, elem0, elem1, menu_label, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_get_string_representation(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_deferred_push(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_title(cbs, path, label, type, idx, elem0, elem1); menu_entries_cbs_init_bind_refresh(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_iterate(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_get_string_representation(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
menu_entries_cbs_init_bind_title(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash);
} }

View File

@ -191,67 +191,83 @@ int menu_entries_common_is_settings_entry(const char *label);
void menu_entries_cbs_init_bind_left(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_left(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1, const char *menu_label); const char *elem0, const char *elem1, const char *menu_label,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_right(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_right(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1, const char *menu_label); const char *elem0, const char *elem1, const char *menu_label,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_refresh(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_refresh(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_get_string_representation(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_get_string_representation(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_up(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_up(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_down(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_down(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_info(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_info(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_start(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_start(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_content_list_switch(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_content_list_switch(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_cancel(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_cancel(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1, const char *menu_label); const char *elem0, const char *elem1, const char *menu_label,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_iterate(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_iterate(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_select(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_select(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_scan(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_scan(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
void menu_entries_cbs_init_bind_title(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1); const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash);
int deferred_push_content_list(void *data, void *userdata, int deferred_push_content_list(void *data, void *userdata,
const char *path, const char *label, unsigned type); const char *path, const char *label, unsigned type);

View File

@ -27,7 +27,8 @@ static int action_cancel_pop_default(const char *path,
void menu_entries_cbs_init_bind_cancel(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_cancel(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (!cbs) if (!cbs)
return; return;

View File

@ -18,7 +18,8 @@
void menu_entries_cbs_init_bind_content_list_switch(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_content_list_switch(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (!cbs) if (!cbs)
return; return;

View File

@ -14,7 +14,6 @@
*/ */
#include <file/file_path.h> #include <file/file_path.h>
#include <rhash.h>
#include "menu.h" #include "menu.h"
#include "menu_displaylist.h" #include "menu_displaylist.h"
@ -453,10 +452,10 @@ static int deferred_push_default(menu_displaylist_info_t *info)
void menu_entries_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
uint32_t hash = djb2_calculate(label);
if (!cbs) if (!cbs)
return; return;
@ -487,7 +486,7 @@ void menu_entries_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs,
cbs->action_deferred_push = deferred_push_rdb_collection; cbs->action_deferred_push = deferred_push_rdb_collection;
else else
{ {
switch (hash) switch (label_hash)
{ {
case MENU_LABEL_DEFERRED_CORE_UPDATER_LIST: case MENU_LABEL_DEFERRED_CORE_UPDATER_LIST:
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING

View File

@ -36,7 +36,8 @@ static int action_bind_down_generic(unsigned type, const char *label)
void menu_entries_cbs_init_bind_down(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_down(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (!cbs) if (!cbs)
return; return;

View File

@ -31,7 +31,8 @@ static int action_info_default(unsigned type, const char *label)
void menu_entries_cbs_init_bind_info(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_info(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (!cbs) if (!cbs)
return; return;

View File

@ -578,7 +578,8 @@ static int action_iterate_main(const char *label, unsigned action)
void menu_entries_cbs_init_bind_iterate(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_iterate(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (cbs) if (cbs)
cbs->action_iterate = action_iterate_main; cbs->action_iterate = action_iterate_main;

View File

@ -14,7 +14,6 @@
*/ */
#include <file/file_path.h> #include <file/file_path.h>
#include <rhash.h>
#include "menu.h" #include "menu.h"
#include "menu_entries_cbs.h" #include "menu_entries_cbs.h"
@ -352,11 +351,10 @@ static int bind_left_generic(unsigned type, const char *label,
void menu_entries_cbs_init_bind_left(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_left(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1, const char *menu_label) const char *elem0, const char *elem1, const char *menu_label,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
int i; int i;
uint32_t hash = djb2_calculate(label);
uint32_t menu_label_hash = djb2_calculate(menu_label);
if (!cbs) if (!cbs)
return; return;
@ -435,7 +433,7 @@ void menu_entries_cbs_init_bind_left(menu_file_list_cbs_t *cbs,
cbs->action_left = core_setting_left; cbs->action_left = core_setting_left;
else else
{ {
switch (hash) switch (label_hash)
{ {
case MENU_LABEL_SAVESTATE: case MENU_LABEL_SAVESTATE:
case MENU_LABEL_LOADSTATE: case MENU_LABEL_LOADSTATE:

View File

@ -14,7 +14,6 @@
*/ */
#include <file/file_path.h> #include <file/file_path.h>
#include <rhash.h>
#include "menu.h" #include "menu.h"
#include "menu_display.h" #include "menu_display.h"
@ -1401,9 +1400,9 @@ static int action_ok_video_resolution(const char *path,
return 0; return 0;
} }
static int is_rdb_entry(uint32_t hash) static int is_rdb_entry(uint32_t label_hash)
{ {
switch (hash) switch (label_hash)
{ {
case MENU_LABEL_RDB_ENTRY_PUBLISHER: case MENU_LABEL_RDB_ENTRY_PUBLISHER:
case MENU_LABEL_RDB_ENTRY_DEVELOPER: case MENU_LABEL_RDB_ENTRY_DEVELOPER:
@ -1562,7 +1561,7 @@ 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 hash, uint32_t menu_label_hash, unsigned type) uint32_t label_hash, uint32_t menu_label_hash, unsigned type)
{ {
switch (type) switch (type)
{ {
@ -1609,7 +1608,7 @@ static int menu_entries_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
cbs->action_ok = action_ok_compressed_archive_push; cbs->action_ok = action_ok_compressed_archive_push;
break; break;
case MENU_FILE_CORE: case MENU_FILE_CORE:
if (hash == MENU_LABEL_DEFERRED_CORE_LIST) if (label_hash == MENU_LABEL_DEFERRED_CORE_LIST)
cbs->action_ok = action_ok_core_load_deferred; cbs->action_ok = action_ok_core_load_deferred;
else else
{ {
@ -1703,16 +1702,13 @@ static int menu_entries_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1, const char *menu_label) const char *elem0, const char *elem1, const char *menu_label,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
rarch_setting_t *setting = menu_setting_find(label); rarch_setting_t *setting = menu_setting_find(label);
menu_handle_t *menu = menu_driver_get_ptr(); menu_handle_t *menu = menu_driver_get_ptr();
uint32_t hash = djb2_calculate(label);
uint32_t menu_label_hash = djb2_calculate(menu_label);
if (!cbs) if (!cbs || !menu)
return;
if (!menu)
return; return;
#if 0 #if 0
@ -1721,7 +1717,7 @@ void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs,
cbs->action_ok = action_ok_lookup_setting; cbs->action_ok = action_ok_lookup_setting;
if (elem0[0] != '\0' && (is_rdb_entry(hash) == 0)) if (elem0[0] != '\0' && (is_rdb_entry(label_hash) == 0))
{ {
cbs->action_ok = action_ok_rdb_entry_submenu; cbs->action_ok = action_ok_rdb_entry_submenu;
return; return;
@ -1746,8 +1742,8 @@ void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs,
else if (type >= MENU_SETTINGS_CHEAT_BEGIN else if (type >= MENU_SETTINGS_CHEAT_BEGIN
&& type <= MENU_SETTINGS_CHEAT_END) && type <= MENU_SETTINGS_CHEAT_END)
cbs->action_ok = action_ok_cheat; cbs->action_ok = action_ok_cheat;
else if (menu_entries_cbs_init_bind_ok_compare_label(cbs, hash) == 0) 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, hash, menu_label_hash, type); menu_entries_cbs_init_bind_ok_compare_type(cbs, label_hash, menu_label_hash, type);
} }

View File

@ -24,7 +24,8 @@ static int action_refresh_default(file_list_t *list, file_list_t *menu_list)
void menu_entries_cbs_init_bind_refresh(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_refresh(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (cbs) if (cbs)
cbs->action_refresh = action_refresh_default; cbs->action_refresh = action_refresh_default;

View File

@ -14,7 +14,6 @@
*/ */
#include <file/file_path.h> #include <file/file_path.h>
#include <rhash.h>
#include "menu.h" #include "menu.h"
#include "menu_entries_cbs.h" #include "menu_entries_cbs.h"
@ -788,9 +787,9 @@ static void menu_action_setting_disp_set_label(file_list_t* list,
} }
static int menu_entries_cbs_init_bind_get_string_representation_compare_label( static int menu_entries_cbs_init_bind_get_string_representation_compare_label(
menu_file_list_cbs_t *cbs, uint32_t hash) menu_file_list_cbs_t *cbs, uint32_t label_hash)
{ {
switch (hash) switch (label_hash)
{ {
case MENU_LABEL_CHEAT_NUM_PASSES: case MENU_LABEL_CHEAT_NUM_PASSES:
cbs->action_get_representation = cbs->action_get_representation =
@ -837,9 +836,9 @@ static int menu_entries_cbs_init_bind_get_string_representation_compare_label(
void menu_entries_cbs_init_bind_get_string_representation(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_get_string_representation(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
uint32_t hash = djb2_calculate(label);
if (!cbs) if (!cbs)
return; return;
@ -867,7 +866,7 @@ void menu_entries_cbs_init_bind_get_string_representation(menu_file_list_cbs_t *
&& type <= MENU_SETTINGS_SHADER_PARAMETER_LAST) && type <= MENU_SETTINGS_SHADER_PARAMETER_LAST)
cbs->action_get_representation = cbs->action_get_representation =
menu_action_setting_disp_set_label_shader_parameter; menu_action_setting_disp_set_label_shader_parameter;
else if (menu_entries_cbs_init_bind_get_string_representation_compare_label(cbs, hash) == 0) else if (menu_entries_cbs_init_bind_get_string_representation_compare_label(cbs, label_hash) == 0)
return; return;
switch (type) switch (type)

View File

@ -14,7 +14,6 @@
*/ */
#include <file/file_path.h> #include <file/file_path.h>
#include <rhash.h>
#include "menu.h" #include "menu.h"
#include "menu_entries_cbs.h" #include "menu_entries_cbs.h"
@ -355,11 +354,10 @@ static int bind_right_generic(unsigned type, const char *label,
void menu_entries_cbs_init_bind_right(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_right(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1, const char *menu_label) const char *elem0, const char *elem1, const char *menu_label,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
int i; int i;
uint32_t hash = djb2_calculate(label);
uint32_t menu_label_hash = djb2_calculate(menu_label);
if (!cbs) if (!cbs)
return; return;
@ -437,7 +435,7 @@ void menu_entries_cbs_init_bind_right(menu_file_list_cbs_t *cbs,
cbs->action_right = core_setting_right; cbs->action_right = core_setting_right;
else else
{ {
switch (hash) switch (label_hash)
{ {
case MENU_LABEL_SAVESTATE: case MENU_LABEL_SAVESTATE:
case MENU_LABEL_LOADSTATE: case MENU_LABEL_LOADSTATE:

View File

@ -42,7 +42,8 @@ static int action_scan_directory(const char *path,
void menu_entries_cbs_init_bind_scan(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_scan(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (!cbs) if (!cbs)
return; return;

View File

@ -59,7 +59,8 @@ static int action_select_directory(const char *path, const char *label, unsigned
void menu_entries_cbs_init_bind_select(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_select(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (!cbs) if (!cbs)
return; return;

View File

@ -13,8 +13,6 @@
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <rhash.h>
#include "menu.h" #include "menu.h"
#include "menu_entries_cbs.h" #include "menu_entries_cbs.h"
#include "menu_setting.h" #include "menu_setting.h"
@ -301,16 +299,15 @@ int menu_entries_cbs_init_bind_start_compare_label(menu_file_list_cbs_t *cbs,
void menu_entries_cbs_init_bind_start(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_start(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
uint32_t hash = djb2_calculate(label);
if (!cbs) if (!cbs)
return; return;
cbs->action_start = action_start_lookup_setting; cbs->action_start = action_start_lookup_setting;
if (menu_entries_cbs_init_bind_start_compare_label(cbs, hash) == 0) if (menu_entries_cbs_init_bind_start_compare_label(cbs, label_hash) == 0)
return; return;
if (type >= MENU_SETTINGS_SHADER_PARAMETER_0 if (type >= MENU_SETTINGS_SHADER_PARAMETER_0

View File

@ -314,7 +314,8 @@ static int action_get_title_default(const char *path, const char *label,
void menu_entries_cbs_init_bind_title(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (!cbs) if (!cbs)
return; return;

View File

@ -36,7 +36,8 @@ static int action_bind_up_generic(unsigned type, const char *label)
void menu_entries_cbs_init_bind_up(menu_file_list_cbs_t *cbs, void menu_entries_cbs_init_bind_up(menu_file_list_cbs_t *cbs,
const char *path, const char *label, unsigned type, size_t idx, const char *path, const char *label, unsigned type, size_t idx,
const char *elem0, const char *elem1) const char *elem0, const char *elem1,
uint32_t label_hash, uint32_t menu_label_hash)
{ {
if (!cbs) if (!cbs)
return; return;