From 7843a3bec31cc0360fc15af132cd6c3b0e97840e Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 19 Nov 2013 06:35:11 +0100 Subject: [PATCH] (Menu) Add iterate to menu_ctx_driver_t - needed for RMenu XUI --- frontend/menu/disp/rgui.c | 1 + frontend/menu/disp/rmenu.c | 1 + frontend/menu/menu_common.c | 7 +++---- frontend/menu/menu_context.h | 1 + frontend/menu/rmenu_xui.cpp | 1 + 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/menu/disp/rgui.c b/frontend/menu/disp/rgui.c index 7851ad2ae1..9e5c2cf96d 100644 --- a/frontend/menu/disp/rgui.c +++ b/frontend/menu/disp/rgui.c @@ -582,5 +582,6 @@ const menu_ctx_driver_t menu_ctx_rgui = { NULL, NULL, NULL, + NULL, "rgui", }; diff --git a/frontend/menu/disp/rmenu.c b/frontend/menu/disp/rmenu.c index ea0405cb5f..8047b52eff 100644 --- a/frontend/menu/disp/rmenu.c +++ b/frontend/menu/disp/rmenu.c @@ -477,5 +477,6 @@ const menu_ctx_driver_t menu_ctx_rmenu = { rmenu_init_assets, rmenu_free_assets, NULL, + NULL, "rmenu", }; diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 33939fd9d3..12d4111171 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -37,10 +37,6 @@ const menu_ctx_driver_t *menu_ctx; //forward decl static int menu_iterate_func(void *data, unsigned action); -#if defined(HAVE_RMENU_XUI) -#define menu_iterate_func(a, b) rmenu_xui_iterate(a, b) -#endif - #ifdef HAVE_SHADER_MANAGER void shader_manager_init(void *data) { @@ -1355,6 +1351,9 @@ static int menu_iterate_func(void *data, unsigned action) menu_parse_and_resolve(rgui, menu_type); } + if (menu_ctx && menu_ctx->iterate) + menu_ctx->iterate(rgui, action); + if (menu_ctx && menu_ctx->render) menu_ctx->render(rgui); diff --git a/frontend/menu/menu_context.h b/frontend/menu/menu_context.h index 4437566bfa..ca98160182 100644 --- a/frontend/menu/menu_context.h +++ b/frontend/menu/menu_context.h @@ -34,6 +34,7 @@ typedef struct menu_ctx_driver void (*init_assets)(void*); void (*free_assets)(void*); void (*populate_entries)(void*, unsigned); + void (*iterate)(void*, unsigned); // Human readable string. const char *ident; diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp index dd3b946b24..0179f43877 100644 --- a/frontend/menu/rmenu_xui.cpp +++ b/frontend/menu/rmenu_xui.cpp @@ -1431,5 +1431,6 @@ const menu_ctx_driver_t menu_ctx_rmenu_xui = { NULL, NULL, rmenu_xui_populate_entries, + rmenu_xui_iterate, "rmenu_xui", };