From 819723be06d2a85e9c2a4e452c63a894b7ba2218 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 16 Jun 2015 03:03:20 +0200 Subject: [PATCH] Move '_refresh' functions to menu_entries.c --- menu/cbs/menu_cbs_left.c | 12 ++++-------- menu/cbs/menu_cbs_right.c | 12 ++++-------- menu/cbs/menu_cbs_start.c | 4 ++-- menu/drivers/glui.c | 2 +- menu/drivers/rgui.c | 2 +- menu/drivers/rmenu.c | 2 +- menu/drivers/rmenu_xui.cpp | 2 +- menu/drivers/xmb.c | 2 +- menu/menu.c | 34 ---------------------------------- menu/menu.h | 8 -------- menu/menu_displaylist.c | 2 +- menu/menu_entries.c | 34 ++++++++++++++++++++++++++++++++++ menu/menu_entries.h | 8 ++++++++ menu/menu_entry.c | 8 ++++---- menu/menu_list.c | 6 +++--- menu/menu_shader.c | 2 +- retroarch.c | 3 ++- runloop_data.c | 3 ++- 18 files changed, 70 insertions(+), 76 deletions(-) diff --git a/menu/cbs/menu_cbs_left.c b/menu/cbs/menu_cbs_left.c index d22a6ffd8f..6095227328 100644 --- a/menu/cbs/menu_cbs_left.c +++ b/menu/cbs/menu_cbs_left.c @@ -262,10 +262,8 @@ static int action_left_cheat_num_passes(unsigned type, const char *label, if (cheat->size) new_size = cheat->size - 1; - menu_set_refresh(); - - if (menu_needs_refresh()) - cheat_manager_realloc(cheat, new_size); + menu_entries_set_refresh(); + cheat_manager_realloc(cheat, new_size); return 0; } @@ -285,10 +283,8 @@ static int action_left_shader_num_passes(unsigned type, const char *label, if (shader->passes) shader->passes--; - menu_set_refresh(); - - if (menu_needs_refresh()) - video_shader_resolve_parameters(NULL, menu->shader); + menu_entries_set_refresh(); + video_shader_resolve_parameters(NULL, menu->shader); #endif return 0; diff --git a/menu/cbs/menu_cbs_right.c b/menu/cbs/menu_cbs_right.c index 7c8fac95d1..e6d6a167f5 100644 --- a/menu/cbs/menu_cbs_right.c +++ b/menu/cbs/menu_cbs_right.c @@ -263,10 +263,8 @@ static int action_right_cheat_num_passes(unsigned type, const char *label, return -1; new_size = cheat->size + 1; - menu_set_refresh(); - - if (menu_needs_refresh()) - cheat_manager_realloc(cheat, new_size); + menu_entries_set_refresh(); + cheat_manager_realloc(cheat, new_size); return 0; } @@ -286,10 +284,8 @@ static int action_right_shader_num_passes(unsigned type, const char *label, if ((shader->passes < GFX_MAX_SHADERS)) shader->passes++; - menu_set_refresh(); - - if (menu_needs_refresh()) - video_shader_resolve_parameters(NULL, menu->shader); + menu_entries_set_refresh(); + video_shader_resolve_parameters(NULL, menu->shader); #endif return 0; diff --git a/menu/cbs/menu_cbs_start.c b/menu/cbs/menu_cbs_start.c index 887fcd2fc0..8627f62ba6 100644 --- a/menu/cbs/menu_cbs_start.c +++ b/menu/cbs/menu_cbs_start.c @@ -208,8 +208,8 @@ static int action_start_shader_num_passes(unsigned type, const char *label) return -1; if (shader->passes) shader->passes = 0; - menu_set_refresh(); + menu_entries_set_refresh(); video_shader_resolve_parameters(NULL, menu->shader); #endif return 0; @@ -225,8 +225,8 @@ static int action_start_cheat_num_passes(unsigned type, const char *label) if (cheat->size) { + menu_entries_set_refresh(); cheat_manager_realloc(cheat, 0); - menu_set_refresh(); } return 0; diff --git a/menu/drivers/glui.c b/menu/drivers/glui.c index fb7e3a30bf..01239a3eb7 100644 --- a/menu/drivers/glui.c +++ b/menu/drivers/glui.c @@ -376,7 +376,7 @@ static void glui_frame(void) glui = (glui_handle_t*)menu->userdata; if ( - menu_needs_refresh() + menu_entries_needs_refresh() && menu_driver_alive() && !disp->msg_force && !glui->box_message[0] diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 09132f13c6..ebf7c74735 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -367,7 +367,7 @@ static void rgui_render(void) if (!menu) return; - if (menu_needs_refresh() && menu_driver_alive() && !disp->msg_force) + if (menu_entries_needs_refresh() && menu_driver_alive() && !disp->msg_force) return; if (runloop->is_idle) diff --git a/menu/drivers/rmenu.c b/menu/drivers/rmenu.c index 04278914c2..33ddd287ac 100644 --- a/menu/drivers/rmenu.c +++ b/menu/drivers/rmenu.c @@ -145,7 +145,7 @@ static void rmenu_render(void) return; } - if (menu_needs_refresh() && menu_driver_alive() + if (menu_entries_needs_refresh() && menu_driver_alive() && !disp->msg_force) return; diff --git a/menu/drivers/rmenu_xui.cpp b/menu/drivers/rmenu_xui.cpp index d1352eebd4..a214f40625 100644 --- a/menu/drivers/rmenu_xui.cpp +++ b/menu/drivers/rmenu_xui.cpp @@ -546,7 +546,7 @@ static void rmenu_xui_render(void) if (!menu) return; if ( - menu_needs_refresh() && + menu_entries_needs_refresh() && menu_driver_alive() && !disp->msg_force ) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index ba75a9c35c..61f1fffabb 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2208,7 +2208,7 @@ static void xmb_toggle(bool menu_on) menu_animation_push(disp->animation, XMB_DELAY, 1.0f, &xmb->alpha, EASING_IN_OUT_QUAD, NULL); - xmb->prevent_populate = !menu_needs_refresh(); + xmb->prevent_populate = !menu_entries_needs_refresh(); xmb_toggle_horizontal_list(xmb, menu); } diff --git a/menu/menu.c b/menu/menu.c index 43ab943424..0fa2d44378 100644 --- a/menu/menu.c +++ b/menu/menu.c @@ -323,37 +323,3 @@ int menu_iterate(retro_input_t input, return 0; } - -int menu_do_refresh(unsigned action) -{ - menu_handle_t *menu = menu_driver_get_ptr(); - if (!menu || menu->nonblocking_refresh) - return -1; - if (!menu_needs_refresh()) - return -1; - return menu_entry_iterate(MENU_ACTION_REFRESH); -} - -bool menu_needs_refresh(void) -{ - menu_handle_t *menu = menu_driver_get_ptr(); - if (!menu) - return false; - return menu->need_refresh; -} - -void menu_set_refresh(void) -{ - menu_handle_t *menu = menu_driver_get_ptr(); - if (!menu) - return; - menu->need_refresh = true; -} - -void menu_unset_refresh(void) -{ - menu_handle_t *menu = menu_driver_get_ptr(); - if (!menu) - return; - menu->need_refresh = false; -} diff --git a/menu/menu.h b/menu/menu.h index 6a893ad38b..da068eb509 100644 --- a/menu/menu.h +++ b/menu/menu.h @@ -190,14 +190,6 @@ void menu_common_load_content(bool persist); void menu_update_system_info(menu_handle_t *menu, bool *load_no_content); -int menu_do_refresh(unsigned action); - -bool menu_needs_refresh(void); - -void menu_set_refresh(void); - -void menu_unset_refresh(void); - #ifdef __cplusplus } #endif diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index e7c9c4bee6..d9c2c10a11 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -1683,7 +1683,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) menu_list_push(info->list, info->path, info->label, info->type, info->directory_ptr, 0); menu_navigation_clear(nav, true); - menu_set_refresh(); + menu_entries_set_refresh(); break; case DISPLAYLIST_HELP: menu_list_push(info->list, info->path, info->label, info->type, info->directory_ptr, 0); diff --git a/menu/menu_entries.c b/menu/menu_entries.c index 89c4502229..0edc926544 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -117,3 +117,37 @@ void menu_entries_get_core_title(char *s, size_t len) snprintf(s, len, "%s - %s %s", PACKAGE_VERSION, core_name, core_version); } + +int menu_entries_refresh(unsigned action) +{ + menu_handle_t *menu = menu_driver_get_ptr(); + if (!menu || menu->nonblocking_refresh) + return -1; + if (!menu_entries_needs_refresh()) + return -1; + return menu_entry_iterate(MENU_ACTION_REFRESH); +} + +bool menu_entries_needs_refresh(void) +{ + menu_handle_t *menu = menu_driver_get_ptr(); + if (!menu) + return false; + return menu->need_refresh; +} + +void menu_entries_set_refresh(void) +{ + menu_handle_t *menu = menu_driver_get_ptr(); + if (!menu) + return; + menu->need_refresh = true; +} + +void menu_entries_unset_refresh(void) +{ + menu_handle_t *menu = menu_driver_get_ptr(); + if (!menu) + return; + menu->need_refresh = false; +} diff --git a/menu/menu_entries.h b/menu/menu_entries.h index c0fa4d3947..bf3a0f1660 100644 --- a/menu/menu_entries.h +++ b/menu/menu_entries.h @@ -49,6 +49,14 @@ void menu_entries_get_core_title(char *title_msg, size_t title_msg_len); menu_entries_t *menu_entries_get_ptr(void); +int menu_entries_refresh(unsigned action); + +bool menu_entries_needs_refresh(void); + +void menu_entries_set_refresh(void); + +void menu_entries_unset_refresh(void); + #ifdef __cplusplus } #endif diff --git a/menu/menu_entry.c b/menu/menu_entry.c index 253e0794e8..66bb3ea793 100644 --- a/menu/menu_entry.c +++ b/menu/menu_entry.c @@ -46,8 +46,8 @@ int menu_entry_go_back(void) menu_setting_apply_deferred(); menu_list_pop_stack(menu_list); - if (menu_needs_refresh()) - menu_do_refresh(MENU_ACTION_CANCEL); + if (menu_entries_needs_refresh()) + menu_entries_refresh(MENU_ACTION_CANCEL); rarch_main_data_iterate(); @@ -416,7 +416,7 @@ int menu_entry_iterate(unsigned action) if (!menu_list) return -1; - if (action != MENU_ACTION_NOOP || menu_needs_refresh() || menu_display_update_pending()) + 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); @@ -488,7 +488,7 @@ int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action) if (cbs && cbs->action_refresh) { ret = cbs->action_refresh(menu_list->selection_buf, menu_list->menu_stack); - menu_unset_refresh(); + menu_entries_unset_refresh(); } break; diff --git a/menu/menu_list.c b/menu/menu_list.c index 7b76ff487d..3528270d9b 100644 --- a/menu/menu_list.c +++ b/menu/menu_list.c @@ -264,7 +264,7 @@ void menu_list_flush_stack(menu_list_t *list, if (!list) return; - menu_set_refresh(); + menu_entries_set_refresh(); menu_list_get_last(list->menu_stack, &path, &label, &type, &entry_idx); while (menu_list_flush_stack_type(needle, label, type, final_type) != 0) @@ -286,7 +286,7 @@ void menu_list_pop_stack(menu_list_t *list) menu_driver_list_cache(MENU_LIST_PLAIN, 0); menu_list_pop(list->menu_stack, &nav->selection_ptr); - menu_set_refresh(); + menu_entries_set_refresh(); } void menu_list_pop_stack_by_needle(menu_list_t *list, @@ -302,7 +302,7 @@ void menu_list_pop_stack_by_needle(menu_list_t *list, if (!list) return; - menu_set_refresh(); + menu_entries_set_refresh(); menu_list_get_last(list->menu_stack, &path, &label, &type, &entry_idx); needle_hash = djb2_calculate(needle); label_hash = djb2_calculate(label); diff --git a/menu/menu_shader.c b/menu/menu_shader.c index 696f2b0ed2..edf4a2ddd3 100644 --- a/menu/menu_shader.c +++ b/menu/menu_shader.c @@ -175,7 +175,7 @@ void menu_shader_manager_set_preset(struct video_shader *shader, } config_file_free(conf); - menu_set_refresh(); + menu_entries_set_refresh(); #endif } diff --git a/retroarch.c b/retroarch.c index 34ea3b4147..f8194e4a82 100644 --- a/retroarch.c +++ b/retroarch.c @@ -53,6 +53,7 @@ #ifdef HAVE_MENU #include "menu/menu.h" #include "menu/menu_hash.h" +#include "menu/menu_entries.h" #include "menu/menu_setting.h" #include "menu/menu_shader.h" #include "menu/menu_input.h" @@ -1323,7 +1324,7 @@ void rarch_main_set_state(unsigned cmd) global->system.frame_time_last = 0; } - menu_set_refresh(); + menu_entries_set_refresh(); menu_driver_set_alive(); } #endif diff --git a/runloop_data.c b/runloop_data.c index 2a97ab05c1..fe4a528fb1 100644 --- a/runloop_data.c +++ b/runloop_data.c @@ -24,6 +24,7 @@ #ifdef HAVE_MENU #include "menu/menu.h" +#include "menu/menu_entries.h" #include "menu/menu_input.h" #endif @@ -271,7 +272,7 @@ void rarch_main_data_iterate(void) } #ifdef HAVE_MENU - menu_do_refresh(MENU_ACTION_REFRESH); + menu_entries_refresh(MENU_ACTION_REFRESH); #endif #ifdef HAVE_THREADS