From b2a7000519fa6561d22d976437186fe7446f73db Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 15 Jun 2015 02:08:25 +0200 Subject: [PATCH] Move more variables to menu_display_t --- menu/cbs/menu_cbs_iterate.c | 3 ++- menu/menu.c | 13 +++++++------ menu/menu_display.c | 11 ++++++++--- menu/menu_display.h | 10 ++++++++++ menu/menu_driver.h | 16 ++++------------ 5 files changed, 31 insertions(+), 22 deletions(-) diff --git a/menu/cbs/menu_cbs_iterate.c b/menu/cbs/menu_cbs_iterate.c index 4d02037ed7..11b29747e5 100644 --- a/menu/cbs/menu_cbs_iterate.c +++ b/menu/cbs/menu_cbs_iterate.c @@ -509,6 +509,7 @@ static int action_iterate_main(const char *label, unsigned action) int ret = 0; menu_handle_t *menu = menu_driver_get_ptr(); menu_navigation_t *nav = menu_navigation_get_ptr(); + menu_display_t *disp = menu_display_get_ptr(); menu_list_t *menu_list = menu_list_get_ptr(); uint32_t hash = djb2_calculate(label); if (!menu || !menu_list) @@ -543,7 +544,7 @@ static int action_iterate_main(const char *label, unsigned action) ret = action_iterate_load_open_zip(label, msg, sizeof(msg), action); break; case ITERATE_TYPE_MESSAGE: - strlcpy(msg, menu->message_contents, sizeof(msg)); + strlcpy(msg, disp->message_contents, sizeof(msg)); pop_selected = &nav->selection_ptr; do_messagebox = true; do_pop_stack = true; diff --git a/menu/menu.c b/menu/menu.c index 4c79703d42..1ceffb1f25 100644 --- a/menu/menu.c +++ b/menu/menu.c @@ -154,6 +154,7 @@ void menu_common_load_content(bool persist) void *menu_init(const void *data) { menu_handle_t *menu = NULL; + menu_display_t *disp = NULL; menu_ctx_driver_t *menu_ctx = (menu_ctx_driver_t*)data; global_t *global = global_get_ptr(); settings_t *settings = config_get_ptr(); @@ -179,6 +180,7 @@ void *menu_init(const void *data) if (!menu->shader) goto error; #endif + menu->push_start_screen = settings->menu_show_start_screen; settings->menu_show_start_screen = false; @@ -187,7 +189,9 @@ void *menu_init(const void *data) if (!menu_display_init(menu)) goto error; - rarch_assert(menu->msg_queue = msg_queue_new(8)); + disp = &menu->display; + + rarch_assert(disp->msg_queue = msg_queue_new(8)); menu_display_fb_set_dirty(); menu_driver_set_alive(); @@ -236,8 +240,9 @@ static void menu_free_list(menu_handle_t *menu) void menu_free(menu_handle_t *menu) { global_t *global = global_get_ptr(); + menu_display_t *disp = menu_display_get_ptr(); - if (!menu) + if (!menu || !disp) return; menu_free_list(menu); @@ -258,10 +263,6 @@ void menu_free(menu_handle_t *menu) libretro_free_system_info(&global->menu.info); #endif - if (menu->msg_queue) - msg_queue_free(menu->msg_queue); - menu->msg_queue = NULL; - menu_display_free(menu); menu_list_free(menu->menu_list); diff --git a/menu/menu_display.c b/menu/menu_display.c index 1c056b6068..efa0300b08 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -116,14 +116,19 @@ static void menu_display_fb_free(menu_framebuf_t *frame_buf) void menu_display_free(void *data) { - menu_handle_t *menu = (menu_handle_t*)data; - if (!menu) + menu_handle_t *menu = (menu_handle_t*)data; + menu_display_t *disp = menu ? &menu->display : NULL; + if (!menu || !disp) return; + if (disp->msg_queue) + msg_queue_free(disp->msg_queue); + disp->msg_queue = NULL; + menu_animation_free(menu->animation); menu->animation = NULL; - menu_display_fb_free(&menu->display.frame_buf); + menu_display_fb_free(&disp->frame_buf); } bool menu_display_init(void *data) diff --git a/menu/menu_display.h b/menu/menu_display.h index e81fd63047..b1874ccff5 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -20,6 +20,8 @@ #include #include +#include + #include "../gfx/font_renderer_driver.h" #ifdef __cplusplus @@ -49,6 +51,14 @@ typedef struct menu_display } font; unsigned header_height; + + /* This buffer can be used to display generic OK messages to the user. + * Fill it and call + * menu_list_push(driver->menu->menu_stack, "", "message", 0, 0); + */ + char message_contents[PATH_MAX_LENGTH]; + + msg_queue_t *msg_queue; } menu_display_t; menu_display_t *menu_display_get_ptr(void); diff --git a/menu/menu_driver.h b/menu/menu_driver.h index bda5b43d4b..bdaffd4fca 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -21,7 +21,6 @@ #include #include #include -#include #include "menu_animation.h" #include "menu_display.h" #include "menu_displaylist.h" @@ -73,21 +72,14 @@ typedef struct bool defer_core; char deferred_path[PATH_MAX_LENGTH]; - /* This buffer can be used to display generic OK messages to the user. - * Fill it and call - * menu_list_push(driver->menu->menu_stack, "", "message", 0, 0); - */ - char message_contents[PATH_MAX_LENGTH]; - - msg_queue_t *msg_queue; - - char default_glslp[PATH_MAX_LENGTH]; - char default_cgp[PATH_MAX_LENGTH]; - + /* Menu display */ menu_display_t display; bool load_no_content; + /* Menu shader */ + char default_glslp[PATH_MAX_LENGTH]; + char default_cgp[PATH_MAX_LENGTH]; struct video_shader *shader; menu_input_t input;