diff --git a/Makefile b/Makefile index 4a65b97bf3..e60c849f83 100644 --- a/Makefile +++ b/Makefile @@ -95,7 +95,7 @@ ifneq ($(findstring Linux,$(OS)),) endif ifeq ($(HAVE_RGUI), 1) - OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_navigation.o frontend/menu/menu_settings.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o + OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_navigation.o frontend/menu/menu_settings.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o DEFINES += -DHAVE_MENU ifeq ($(HAVE_LAKKA), 1) OBJ += frontend/menu/disp/lakka.o diff --git a/Makefile.emscripten b/Makefile.emscripten index 91e19b6ddc..3bba31462c 100644 --- a/Makefile.emscripten +++ b/Makefile.emscripten @@ -70,7 +70,7 @@ endif ifeq ($(HAVE_RGUI), 1) DEFINES += -DHAVE_MENU -DHAVE_RGUI - OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_settings.o frontend/menu/menu_navigation.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o + OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_settings.o frontend/menu/menu_navigation.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o endif ifeq ($(HAVE_SDL), 1) diff --git a/Makefile.win b/Makefile.win index dafc6589cb..4dab33afd5 100644 --- a/Makefile.win +++ b/Makefile.win @@ -114,7 +114,7 @@ JLIBS = ifeq ($(HAVE_RGUI), 1) DEFINES += -DHAVE_RGUI -DHAVE_MENU - OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_settings.o frontend/menu/menu_navigation.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o + OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_settings.o frontend/menu/menu_navigation.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o endif ifeq ($(HAVE_SDL), 1) diff --git a/driver.c b/driver.c index e9f1e4ac67..b43188ebb6 100644 --- a/driver.c +++ b/driver.c @@ -1647,5 +1647,92 @@ void uninit_video_input(void) compute_monitor_fps_statistics(); } +#ifdef HAVE_MENU +static const menu_ctx_driver_t *menu_ctx_drivers[] = { +#if defined(HAVE_RMENU) + &menu_ctx_rmenu, +#endif +#if defined(HAVE_RMENU_XUI) + &menu_ctx_rmenu_xui, +#endif +#if defined(HAVE_RGUI) + &menu_ctx_rgui, +#endif +#if defined(HAVE_LAKKA) + &menu_ctx_lakka, +#endif + NULL // zero length array is not valid +}; + +const void *menu_ctx_find_driver(const char *ident) +{ + unsigned i; + for (i = 0; menu_ctx_drivers[i]; i++) + { + if (strcmp(menu_ctx_drivers[i]->ident, ident) == 0) + return menu_ctx_drivers[i]; + } + + return NULL; +} + +static int find_menu_driver_index(const char *driver) +{ + unsigned i; + for (i = 0; menu_ctx_drivers[i]; i++) + if (strcasecmp(driver, menu_ctx_drivers[i]->ident) == 0) + return i; + return -1; +} + +void find_prev_menu_driver(void) +{ + int i = find_menu_driver_index(g_settings.menu.driver); + if (i > 0) + { + strlcpy(g_settings.menu.driver, menu_ctx_drivers[i - 1]->ident, sizeof(g_settings.menu.driver)); + driver.menu_ctx = (menu_ctx_driver_t*)menu_ctx_drivers[i - 1]; + } + else + RARCH_WARN("Couldn't find any previous menu driver (current one: \"%s\").\n", g_settings.menu.driver); +} + +void find_next_menu_driver(void) +{ + int i = find_menu_driver_index(g_settings.menu.driver); + if (i >= 0 && menu_ctx_drivers[i + 1]) + { + strlcpy(g_settings.menu.driver, menu_ctx_drivers[i + 1]->ident, sizeof(g_settings.menu.driver)); + driver.menu_ctx = (menu_ctx_driver_t*)menu_ctx_drivers[i + 1]; + } + else + RARCH_WARN("Couldn't find any next menu driver (current one: \"%s\").\n", g_settings.menu.driver); +} + +bool menu_ctx_init_first(const void **driver_data, void **data) +{ + unsigned i; + const menu_ctx_driver_t **driver = (const menu_ctx_driver_t**)driver_data; + + if (!menu_ctx_drivers[0]) + return false; + + for (i = 0; menu_ctx_drivers[i]; i++) + { + void *h = menu_ctx_drivers[i]->init(); + + if (h) + { + *driver = menu_ctx_drivers[i]; + *data = (void*)h; + strlcpy(g_settings.menu.driver, menu_ctx_drivers[i]->ident, sizeof(g_settings.menu.driver)); + return true; + } + } + + return false; +} +#endif + driver_t driver; diff --git a/frontend/menu/disp/lakka.c b/frontend/menu/disp/lakka.c index f8e71d7720..9e6d799b07 100644 --- a/frontend/menu/disp/lakka.c +++ b/frontend/menu/disp/lakka.c @@ -22,7 +22,6 @@ #include #include "../menu_common.h" -#include "../menu_context.h" #include "../file_list.h" #include "../../../general.h" #include "../../../gfx/gfx_common.h" diff --git a/frontend/menu/menu_context.c b/frontend/menu/menu_context.c deleted file mode 100644 index 5a1236b712..0000000000 --- a/frontend/menu/menu_context.c +++ /dev/null @@ -1,105 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2010-2014 - Hans-Kristian Arntzen - * - * RetroArch is free software: you can redistribute it and/or modify it under the terms - * of the GNU General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with RetroArch. - * If not, see . - */ - -#include "menu_common.h" - -#ifdef HAVE_CONFIG_H -#include "../../config.h" -#endif - -static const menu_ctx_driver_t *menu_ctx_drivers[] = { -#if defined(HAVE_RMENU) - &menu_ctx_rmenu, -#endif -#if defined(HAVE_RMENU_XUI) - &menu_ctx_rmenu_xui, -#endif -#if defined(HAVE_RGUI) - &menu_ctx_rgui, -#endif -#if defined(HAVE_LAKKA) - &menu_ctx_lakka, -#endif - NULL // zero length array is not valid -}; - -const void *menu_ctx_find_driver(const char *ident) -{ - unsigned i; - for (i = 0; menu_ctx_drivers[i]; i++) - { - if (strcmp(menu_ctx_drivers[i]->ident, ident) == 0) - return menu_ctx_drivers[i]; - } - - return NULL; -} - -static int find_menu_driver_index(const char *driver) -{ - unsigned i; - for (i = 0; menu_ctx_drivers[i]; i++) - if (strcasecmp(driver, menu_ctx_drivers[i]->ident) == 0) - return i; - return -1; -} - -void find_prev_menu_driver(void) -{ - int i = find_menu_driver_index(g_settings.menu.driver); - if (i > 0) - { - strlcpy(g_settings.menu.driver, menu_ctx_drivers[i - 1]->ident, sizeof(g_settings.menu.driver)); - driver.menu_ctx = (menu_ctx_driver_t*)menu_ctx_drivers[i - 1]; - } - else - RARCH_WARN("Couldn't find any previous menu driver (current one: \"%s\").\n", g_settings.menu.driver); -} - -void find_next_menu_driver(void) -{ - int i = find_menu_driver_index(g_settings.menu.driver); - if (i >= 0 && menu_ctx_drivers[i + 1]) - { - strlcpy(g_settings.menu.driver, menu_ctx_drivers[i + 1]->ident, sizeof(g_settings.menu.driver)); - driver.menu_ctx = (menu_ctx_driver_t*)menu_ctx_drivers[i + 1]; - } - else - RARCH_WARN("Couldn't find any next menu driver (current one: \"%s\").\n", g_settings.menu.driver); -} - -bool menu_ctx_init_first(const void **driver_data, void **data) -{ - unsigned i; - const menu_ctx_driver_t **driver = (const menu_ctx_driver_t**)driver_data; - - if (!menu_ctx_drivers[0]) - return false; - - for (i = 0; menu_ctx_drivers[i]; i++) - { - void *h = menu_ctx_drivers[i]->init(); - - if (h) - { - *driver = menu_ctx_drivers[i]; - *data = (void*)h; - strlcpy(g_settings.menu.driver, menu_ctx_drivers[i]->ident, sizeof(g_settings.menu.driver)); - return true; - } - } - - return false; -} diff --git a/griffin/griffin.c b/griffin/griffin.c index 161321aa63..13049c9193 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -577,7 +577,6 @@ MENU #include "../frontend/menu/menu_input_line_cb.c" #include "../frontend/menu/menu_common.c" #include "../frontend/menu/menu_navigation.c" -#include "../frontend/menu/menu_context.c" #include "../frontend/menu/menu_settings.c" #include "../frontend/menu/history.c" #include "../frontend/menu/file_list.c" diff --git a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj index cf3475095c..d9ebd61a89 100644 --- a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj +++ b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj @@ -222,7 +222,6 @@ - diff --git a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters index 2f0fee94d8..d5c0eb24ad 100644 --- a/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters +++ b/msvc/msvc-2010/RetroArch-msvc2010.vcxproj.filters @@ -38,9 +38,6 @@ frontend\menu - - frontend\menu - frontend\menu