From acfa43dfe96826529d6954cad813faf17dc5a8cc Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 17 Aug 2015 22:46:27 +0200 Subject: [PATCH] Make iterate no longer a function pointer --- Makefile.common | 2 +- griffin/griffin.c | 2 +- menu/menu.h | 3 ++ menu/menu_cbs.c | 4 -- menu/menu_cbs.h | 5 --- menu/menu_entry.c | 7 +-- .../menu_cbs_iterate.c => menu_iterate.c} | 43 +++++++------------ menu/menu_setting.c | 1 - menu/menu_setting.h | 2 - 9 files changed, 21 insertions(+), 48 deletions(-) rename menu/{cbs/menu_cbs_iterate.c => menu_iterate.c} (95%) diff --git a/Makefile.common b/Makefile.common index 636ef28685..a6fcc81d02 100644 --- a/Makefile.common +++ b/Makefile.common @@ -418,7 +418,7 @@ ifeq ($(HAVE_MENU_COMMON), 1) menu/cbs/menu_cbs_deferred_push.o \ menu/cbs/menu_cbs_scan.o \ menu/cbs/menu_cbs_get_value.o \ - menu/cbs/menu_cbs_iterate.o \ + menu/menu_iterate.o \ menu/cbs/menu_cbs_title.o \ menu/cbs/menu_cbs_up.o \ menu/cbs/menu_cbs_down.o \ diff --git a/griffin/griffin.c b/griffin/griffin.c index 36dd9c0a78..08cb6a547f 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -767,7 +767,7 @@ MENU #include "../menu/cbs/menu_cbs_deferred_push.c" #include "../menu/cbs/menu_cbs_scan.c" #include "../menu/cbs/menu_cbs_get_value.c" -#include "../menu/cbs/menu_cbs_iterate.c" +#include "../menu/menu_iterate.c" #include "../menu/cbs/menu_cbs_up.c" #include "../menu/cbs/menu_cbs_down.c" #include "../menu/cbs/menu_cbs_contentlist_switch.c" diff --git a/menu/menu.h b/menu/menu.h index 9e78d876ea..db914eb16c 100644 --- a/menu/menu.h +++ b/menu/menu.h @@ -177,6 +177,9 @@ void *menu_init(const void *data); int menu_iterate(retro_input_t input, retro_input_t old_input, retro_input_t trigger_input); +int menu_iterate_main(const char *label, + unsigned action); + /** * menu_free: * @menu : Menu handle. diff --git a/menu/menu_cbs.c b/menu/menu_cbs.c index c00bdfc6d1..2af38718fb 100644 --- a/menu/menu_cbs.c +++ b/menu/menu_cbs.c @@ -149,10 +149,6 @@ void menu_cbs_init(void *data, menu_cbs_init_log(ret, "REFRESH", label, elem0, elem1, type); - ret = menu_cbs_init_bind_iterate(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash); - - menu_cbs_init_log(ret, "ITERATE", label, elem0, elem1, type); - ret = menu_cbs_init_bind_get_string_representation(cbs, path, label, type, idx, elem0, elem1, label_hash, menu_label_hash); menu_cbs_init_log(ret, "REPRESENTATION", label, elem0, elem1, type); diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index d82b9b2655..076a943d3a 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -107,11 +107,6 @@ int menu_cbs_init_bind_ok(menu_file_list_cbs_t *cbs, const char *elem0, const char *elem1, const char *menu_label, uint32_t label_hash, uint32_t menu_label_hash); -int menu_cbs_init_bind_iterate(menu_file_list_cbs_t *cbs, - const char *path, const char *label, unsigned type, size_t idx, - const char *elem0, const char *elem1, - uint32_t label_hash, uint32_t menu_label_hash); - int menu_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx, const char *elem0, const char *elem1, diff --git a/menu/menu_entry.c b/menu/menu_entry.c index d98239917d..ec2ff51364 100644 --- a/menu/menu_entry.c +++ b/menu/menu_entry.c @@ -393,14 +393,9 @@ int menu_entry_iterate(unsigned action) if (action != MENU_ACTION_NOOP || menu_entries_needs_refresh() || menu_display_update_pending()) menu_display_fb_set_dirty(); - cbs = (menu_file_list_cbs_t*)menu_list_get_last_stack_actiondata(menu_list); - menu_list_get_last_stack(menu_list, NULL, &label, NULL, NULL); - if (cbs && cbs->action_iterate) - return cbs->action_iterate(label, action); - - return -1; + return menu_iterate_main(label, action); } int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action) diff --git a/menu/cbs/menu_cbs_iterate.c b/menu/menu_iterate.c similarity index 95% rename from menu/cbs/menu_cbs_iterate.c rename to menu/menu_iterate.c index 77cfaf71e7..eafaa3a0b8 100644 --- a/menu/cbs/menu_cbs_iterate.c +++ b/menu/menu_iterate.c @@ -17,21 +17,21 @@ #include #include -#include "../menu.h" -#include "../menu_cbs.h" -#include "../menu_display.h" -#include "../menu_hash.h" -#include "../menu_entry.h" -#include "../menu_setting.h" -#include "../menu_input.h" -#include "../menu_shader.h" -#include "../menu_navigation.h" +#include "menu.h" +#include "menu_cbs.h" +#include "menu_display.h" +#include "menu_hash.h" +#include "menu_entry.h" +#include "menu_setting.h" +#include "menu_input.h" +#include "menu_shader.h" +#include "menu_navigation.h" -#include "../../general.h" -#include "../../performance.h" -#include "../../retroarch.h" -#include "../../input/input_common.h" -#include "../../input/input_autodetect.h" +#include "../general.h" +#include "../performance.h" +#include "../retroarch.h" +#include "../input/input_common.h" +#include "../input/input_autodetect.h" static int action_iterate_help(char *s, size_t len, const char *label) { @@ -412,7 +412,7 @@ static enum action_iterate_type action_iterate_type(uint32_t hash) return ITERATE_TYPE_DEFAULT; } -static int action_iterate_main(const char *label, unsigned action) +int menu_iterate_main(const char *label, unsigned action) { menu_entry_t entry; char msg[PATH_MAX_LENGTH] = {0}; @@ -521,16 +521,3 @@ static int action_iterate_main(const char *label, unsigned action) return ret; } - -int menu_cbs_init_bind_iterate(menu_file_list_cbs_t *cbs, - const char *path, const char *label, unsigned type, size_t idx, - const char *elem0, const char *elem1, - uint32_t label_hash, uint32_t menu_label_hash) -{ - if (!cbs) - return -1; - - cbs->action_iterate = action_iterate_main; - - return -1; -} diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 79406805d6..d72976e0de 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -1458,7 +1458,6 @@ static rarch_setting_t setting_action_setting(const char* name, result.read_handler = NULL; result.get_string_representation = &setting_get_string_representation_default; result.action_start = NULL; - result.action_iterate = NULL; result.action_left = NULL; result.action_right = NULL; result.action_ok = setting_action_action_ok; diff --git a/menu/menu_setting.h b/menu/menu_setting.h index d52a27ad5b..313ef53b18 100644 --- a/menu/menu_setting.h +++ b/menu/menu_setting.h @@ -106,7 +106,6 @@ typedef int (*action_right_handler_t )(void *data, bool wraparound); typedef int (*action_up_handler_t )(void *data); typedef int (*action_down_handler_t )(void *data); typedef int (*action_start_handler_t )(void *data); -typedef int (*action_iterate_handler_t )(unsigned action); typedef int (*action_cancel_handler_t )(void *data); typedef int (*action_ok_handler_t )(void *data, bool wraparound); typedef int (*action_select_handler_t )(void *data, bool wraparound); @@ -148,7 +147,6 @@ typedef struct rarch_setting change_handler_t change_handler; change_handler_t read_handler; action_start_handler_t action_start; - action_iterate_handler_t action_iterate; action_left_handler_t action_left; action_right_handler_t action_right; action_up_handler_t action_up;