Refactor menu_displaylist_ctl

This commit is contained in:
twinaphex 2016-02-24 23:05:54 +01:00
parent 7968914453
commit e8eaa54218
9 changed files with 32 additions and 35 deletions

View File

@ -47,7 +47,7 @@ enum
static int deferred_push_dlist(menu_displaylist_info_t *info, unsigned val)
{
if (menu_displaylist_ctl(val, info) != 0)
if (!menu_displaylist_ctl(val, info))
return menu_cbs_exit();
menu_displaylist_push_list_process(info);
return 0;

View File

@ -28,7 +28,6 @@
static int action_info_default(unsigned type, const char *label)
{
int ret;
size_t selection = 0;
menu_displaylist_info_t info = {0};
file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0);
@ -42,15 +41,13 @@ static int action_info_default(unsigned type, const char *label)
menu_hash_to_str(MENU_LABEL_INFO_SCREEN),
sizeof(info.label));
ret = menu_displaylist_ctl(DISPLAYLIST_HELP, &info);
if (ret == 0)
if (menu_displaylist_ctl(DISPLAYLIST_HELP, &info))
{
menu_displaylist_push_list_process(&info);
return 0;
}
return ret;
return -1;
}
int menu_cbs_init_bind_info(menu_file_list_cbs_t *cbs,

View File

@ -111,10 +111,9 @@ int generic_action_ok_displaylist_push(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx,
unsigned action_type)
{
int ret;
char tmp[PATH_MAX_LENGTH];
char action_path[PATH_MAX_LENGTH];
unsigned dl_type = DISPLAYLIST_GENERIC;
enum menu_displaylist_ctl_state dl_type = DISPLAYLIST_GENERIC;
menu_displaylist_info_t info = {0};
const char *menu_label = NULL;
const char *menu_path = NULL;
@ -432,8 +431,7 @@ int generic_action_ok_displaylist_push(const char *path,
if (info_path)
strlcpy(info.path, info_path, sizeof(info.path));
ret = menu_displaylist_ctl(dl_type, &info);
if (ret != 0)
if (!menu_displaylist_ctl(dl_type, &info))
return menu_cbs_exit();
menu_displaylist_push_list_process(&info);

View File

@ -397,9 +397,9 @@ bool generic_menu_init_list(void *data)
info.label, info.type, info.flags, 0);
info.list = selection_buf;
menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info);
menu_displaylist_push_list_process(&info);
if (menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info))
menu_displaylist_push_list_process(&info);
return true;
}

View File

@ -1079,7 +1079,7 @@ static void xmb_init_horizontal_list(xmb_handle_t *xmb)
strlcpy(info.path, settings->playlist_directory, sizeof(info.path));
strlcpy(info.exts, "lpl", sizeof(info.exts));
if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info) == 0)
if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info))
menu_displaylist_push_list_process(&info);
}
@ -2688,10 +2688,9 @@ static void xmb_toggle(void *userdata, bool menu_on)
static int deferred_push_content_actions(menu_displaylist_info_t *info)
{
int ret = menu_displaylist_ctl(
DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info);
if (ret != 0)
return ret;
if (!menu_displaylist_ctl(
DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info))
return -1;
menu_displaylist_push_list_process(info);
return 0;
}

View File

@ -2571,7 +2571,7 @@ static void menu_displaylist_parse_playlist_associations(menu_displaylist_info_t
string_list_free(stcores);
}
int menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_info_t *info)
bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_info_t *info)
{
size_t i;
menu_ctx_displaylist_t disp_list;
@ -2585,7 +2585,7 @@ int menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_
settings_t *settings = NULL;
if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu))
return -1;
return false;
settings = config_get_ptr();
@ -2596,7 +2596,7 @@ int menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_
disp_list.type = type;
if (menu_driver_ctl(RARCH_MENU_CTL_LIST_PUSH, &disp_list))
return 0;
return true;
switch (type)
{
@ -3061,7 +3061,7 @@ int menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_
struct string_list *str_list = string_split(info->label, "|");
if (!str_list)
return -1;
return false;
strlcpy(info->path_b, str_list->elems[1].data, sizeof(info->path_b));
strlcpy(info->label, str_list->elems[0].data, sizeof(info->label));
@ -3110,9 +3110,9 @@ int menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_
case DISPLAYLIST_PLAYLIST_COLLECTION:
if (string_is_equal(info->path, "content_history.lpl"))
{
if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, info) == 0)
if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, info))
menu_displaylist_push_list_process(info);
return 0;
return true;
}
else
{
@ -3426,7 +3426,10 @@ int menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_
break;
}
return ret;
if (ret != 0)
return false;
return true;
}
void menu_displaylist_push_list_process(menu_displaylist_info_t *info)
@ -3474,22 +3477,22 @@ int menu_displaylist_push(file_list_t *list, file_list_t *menu_list)
switch (hash_label)
{
case MENU_VALUE_MAIN_MENU:
if (menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info) != 0)
if (!menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info))
return -1;
menu_displaylist_push_list_process(&info);
return 0;
case MENU_VALUE_SETTINGS_TAB:
if (menu_displaylist_ctl(DISPLAYLIST_SETTINGS_ALL, &info) != 0)
if (!menu_displaylist_ctl(DISPLAYLIST_SETTINGS_ALL, &info))
return -1;
menu_displaylist_push_list_process(&info);
return 0;
case MENU_VALUE_HISTORY_TAB:
if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, &info) != 0)
if (!menu_displaylist_ctl(DISPLAYLIST_HISTORY, &info))
return -1;
menu_displaylist_push_list_process(&info);
return 0;
case MENU_VALUE_ADD_TAB:
if (menu_displaylist_ctl(DISPLAYLIST_SCAN_DIRECTORY_LIST, &info) != 0)
if (!menu_displaylist_ctl(DISPLAYLIST_SCAN_DIRECTORY_LIST, &info))
return -1;
menu_displaylist_push_list_process(&info);
return 0;
@ -3513,13 +3516,13 @@ int menu_displaylist_push(file_list_t *list, file_list_t *menu_list)
{
strlcpy(info.path, settings->playlist_directory,
sizeof(info.path));
if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info) != 0)
if (!menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info))
return -1;
}
menu_displaylist_push_list_process(&info);
return 0;
case MENU_VALUE_HORIZONTAL_MENU:
if (menu_displaylist_ctl(DISPLAYLIST_HORIZONTAL, &info) != 0)
if (!menu_displaylist_ctl(DISPLAYLIST_HORIZONTAL, &info))
return -1;
menu_displaylist_push_list_process(&info);
return 0;

View File

@ -136,7 +136,7 @@ typedef struct menu_displaylist_info
rarch_setting_t *setting;
} menu_displaylist_info_t;
int menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_info_t *info);
bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_info_t *info);
void menu_displaylist_push_list_process(menu_displaylist_info_t *info);

View File

@ -663,7 +663,7 @@ static int menu_input_key_bind_set_mode_common(
strlcpy(info.label,
menu_hash_to_str(MENU_LABEL_CUSTOM_BIND), sizeof(info.label));
if (menu_displaylist_ctl(DISPLAYLIST_INFO, &info) == 0)
if (menu_displaylist_ctl(DISPLAYLIST_INFO, &info))
menu_displaylist_push_list_process(&info);
break;
case MENU_INPUT_BIND_ALL:
@ -679,7 +679,7 @@ static int menu_input_key_bind_set_mode_common(
menu_hash_to_str(MENU_LABEL_CUSTOM_BIND_ALL),
sizeof(info.label));
if (menu_displaylist_ctl(DISPLAYLIST_INFO, &info) == 0)
if (menu_displaylist_ctl(DISPLAYLIST_INFO, &info))
menu_displaylist_push_list_process(&info);
break;
}

View File

@ -1784,7 +1784,7 @@ int menu_action_handle_setting(rarch_setting_t *setting,
strlcpy(info.path, setting->default_value.string, sizeof(info.path));
strlcpy(info.label, name, sizeof(info.label));
if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info) == 0)
if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info))
menu_displaylist_push_list_process(&info);
}
/* fall-through. */
@ -2877,7 +2877,7 @@ void general_write_handler(void *data)
strlcpy(info.label,
menu_hash_to_str(MENU_LABEL_HELP), sizeof(info.label));
if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info) == 0)
if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info))
menu_displaylist_push_list_process(&info);
menu_setting_set_with_string_representation(setting, "false");
}