From 529349019d35f6c1061a09664b97224081550c8d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 17 May 2017 04:57:43 +0200 Subject: [PATCH] Combine menu_navigation_ctl and menu_driver_ctl --- menu/cbs/menu_cbs_down.c | 4 ++-- menu/cbs/menu_cbs_left.c | 4 ++-- menu/cbs/menu_cbs_ok.c | 2 +- menu/cbs/menu_cbs_right.c | 4 ++-- menu/cbs/menu_cbs_up.c | 4 ++-- menu/menu_displaylist.c | 2 +- menu/menu_driver.c | 39 ++++++++++++++------------------------- menu/menu_driver.h | 29 +++++++++++------------------ menu/menu_entries.c | 10 +++++----- menu/menu_event.c | 4 ++-- menu/menu_input.c | 4 ++-- menu/widgets/menu_entry.c | 4 ++-- 12 files changed, 46 insertions(+), 64 deletions(-) diff --git a/menu/cbs/menu_cbs_down.c b/menu/cbs/menu_cbs_down.c index a2dff2a9de..1e74665d62 100644 --- a/menu/cbs/menu_cbs_down.c +++ b/menu/cbs/menu_cbs_down.c @@ -26,7 +26,7 @@ static int action_bind_down_generic(unsigned type, const char *label) { size_t scroll_accel = 0; unsigned scroll_speed = 0; - if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &scroll_accel)) + if (!menu_driver_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &scroll_accel)) return -1; scroll_speed = (unsigned)((MAX(scroll_accel, 2) - 2) / 4 + 1); @@ -34,7 +34,7 @@ static int action_bind_down_generic(unsigned type, const char *label) if (menu_entries_get_size() <= 0) return 0; - menu_navigation_ctl(MENU_NAVIGATION_CTL_INCREMENT, &scroll_speed); + menu_driver_ctl(MENU_NAVIGATION_CTL_INCREMENT, &scroll_speed); return 0; } diff --git a/menu/cbs/menu_cbs_left.c b/menu/cbs/menu_cbs_left.c index 5b14c56cf3..f0451e1302 100644 --- a/menu/cbs/menu_cbs_left.c +++ b/menu/cbs/menu_cbs_left.c @@ -118,7 +118,7 @@ static int action_left_scroll(unsigned type, const char *label, unsigned scroll_speed = 0, fast_scroll_speed = 0; size_t selection = menu_navigation_get_selection(); - if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &scroll_accel)) + if (!menu_driver_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &scroll_accel)) return false; scroll_speed = (unsigned)((MAX(scroll_accel, 2) - 2) / 4 + 1); @@ -133,7 +133,7 @@ static int action_left_scroll(unsigned type, const char *label, else { bool pending_push = false; - menu_navigation_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); + menu_driver_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); } return 0; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 02059d0819..7f91268707 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -997,7 +997,7 @@ static int generic_action_ok(const char *path, if (config_replace(settings->bools.config_save_on_exit, action_path)) { bool pending_push = false; - menu_navigation_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); + menu_driver_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); ret = -1; } } diff --git a/menu/cbs/menu_cbs_right.c b/menu/cbs/menu_cbs_right.c index 2f9150e022..b5a04cec8c 100644 --- a/menu/cbs/menu_cbs_right.c +++ b/menu/cbs/menu_cbs_right.c @@ -128,7 +128,7 @@ static int action_right_scroll(unsigned type, const char *label, unsigned scroll_speed = 0, fast_scroll_speed = 0; size_t selection = menu_navigation_get_selection(); - if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &scroll_accel)) + if (!menu_driver_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &scroll_accel)) return false; scroll_speed = (unsigned)((MAX(scroll_accel, 2) - 2) / 4 + 1); @@ -144,7 +144,7 @@ static int action_right_scroll(unsigned type, const char *label, else { if ((menu_entries_get_size() > 0)) - menu_navigation_ctl(MENU_NAVIGATION_CTL_SET_LAST, NULL); + menu_driver_ctl(MENU_NAVIGATION_CTL_SET_LAST, NULL); } return 0; diff --git a/menu/cbs/menu_cbs_up.c b/menu/cbs/menu_cbs_up.c index 775c2751e2..6de2a17d64 100644 --- a/menu/cbs/menu_cbs_up.c +++ b/menu/cbs/menu_cbs_up.c @@ -26,7 +26,7 @@ static int action_bind_up_generic(unsigned type, const char *label) { size_t scroll_accel = 0; unsigned scroll_speed = 0; - if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &scroll_accel)) + if (!menu_driver_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &scroll_accel)) return -1; scroll_speed = (unsigned)((MAX(scroll_accel, 2) - 2) / 4 + 1); @@ -34,7 +34,7 @@ static int action_bind_up_generic(unsigned type, const char *label) if (menu_entries_get_size() <= 0) return 0; - menu_navigation_ctl(MENU_NAVIGATION_CTL_DECREMENT, &scroll_speed); + menu_driver_ctl(MENU_NAVIGATION_CTL_DECREMENT, &scroll_speed); return 0; } diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 1fb79b9d3a..227c7918aa 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3776,7 +3776,7 @@ static bool menu_displaylist_push_list_process(menu_displaylist_info_t *info) if (info->need_navigation_clear) { bool pending_push = true; - menu_navigation_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); + menu_driver_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); } if (info->need_entries_refresh) diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 8fcd7ce2ee..bf503fefc8 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -935,28 +935,6 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data) menu_driver_ctx->update_savestate_thumbnail_image(menu_userdata); } break; - default: - case RARCH_MENU_CTL_NONE: - break; - } - - return true; -} - -size_t menu_navigation_get_selection(void) -{ - return menu_driver_selection_ptr; -} - -void menu_navigation_set_selection(size_t val) -{ - menu_driver_selection_ptr = val; -} - -bool menu_navigation_ctl(enum menu_navigation_ctl_state state, void *data) -{ - switch (state) - { case MENU_NAVIGATION_CTL_CLEAR: { bool *pending_push = (bool*)data; @@ -996,10 +974,10 @@ bool menu_navigation_ctl(enum menu_navigation_ctl_state state, void *data) if (wraparound_enable) { bool pending_push = false; - menu_navigation_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); + menu_driver_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); } else if (menu_list_size > 0) - menu_navigation_ctl(MENU_NAVIGATION_CTL_SET_LAST, NULL); + menu_driver_ctl(MENU_NAVIGATION_CTL_SET_LAST, NULL); } if (menu_driver_ctx->navigation_increment) @@ -1128,9 +1106,20 @@ bool menu_navigation_ctl(enum menu_navigation_ctl_state state, void *data) scroll_acceleration = (unsigned)(*sel); } break; - case MENU_NAVIGATION_CTL_NONE: + default: + case RARCH_MENU_CTL_NONE: break; } return true; } + +size_t menu_navigation_get_selection(void) +{ + return menu_driver_selection_ptr; +} + +void menu_navigation_set_selection(size_t val) +{ + menu_driver_selection_ptr = val; +} diff --git a/menu/menu_driver.h b/menu/menu_driver.h index a21ac36277..a65e99fef8 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -125,7 +125,17 @@ enum rarch_menu_ctl_state RARCH_MENU_CTL_SET_THUMBNAIL_SYSTEM, RARCH_MENU_CTL_SET_THUMBNAIL_CONTENT, RARCH_MENU_CTL_UPDATE_SAVESTATE_THUMBNAIL_PATH, - RARCH_MENU_CTL_UPDATE_SAVESTATE_THUMBNAIL_IMAGE + RARCH_MENU_CTL_UPDATE_SAVESTATE_THUMBNAIL_IMAGE, + MENU_NAVIGATION_CTL_CLEAR, + MENU_NAVIGATION_CTL_INCREMENT, + MENU_NAVIGATION_CTL_DECREMENT, + MENU_NAVIGATION_CTL_SET_LAST, + MENU_NAVIGATION_CTL_DESCEND_ALPHABET, + MENU_NAVIGATION_CTL_ASCEND_ALPHABET, + MENU_NAVIGATION_CTL_CLEAR_SCROLL_INDICES, + MENU_NAVIGATION_CTL_ADD_SCROLL_INDEX, + MENU_NAVIGATION_CTL_SET_SCROLL_ACCEL, + MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL }; enum menu_settings_type @@ -198,21 +208,6 @@ enum menu_settings_type MENU_SETTINGS_LAST }; -enum menu_navigation_ctl_state -{ - MENU_NAVIGATION_CTL_NONE = 0, - MENU_NAVIGATION_CTL_CLEAR, - MENU_NAVIGATION_CTL_INCREMENT, - MENU_NAVIGATION_CTL_DECREMENT, - MENU_NAVIGATION_CTL_SET_LAST, - MENU_NAVIGATION_CTL_DESCEND_ALPHABET, - MENU_NAVIGATION_CTL_ASCEND_ALPHABET, - MENU_NAVIGATION_CTL_CLEAR_SCROLL_INDICES, - MENU_NAVIGATION_CTL_ADD_SCROLL_INDEX, - MENU_NAVIGATION_CTL_SET_SCROLL_ACCEL, - MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL -}; - typedef struct { char deferred_path[PATH_MAX_LENGTH]; @@ -420,8 +415,6 @@ size_t menu_navigation_get_selection(void); void menu_navigation_set_selection(size_t val); -bool menu_navigation_ctl(enum menu_navigation_ctl_state state, void *data); - extern menu_ctx_driver_t menu_ctx_xui; extern menu_ctx_driver_t menu_ctx_rgui; extern menu_ctx_driver_t menu_ctx_mui; diff --git a/menu/menu_entries.c b/menu/menu_entries.c index 6eefb6c736..00a82fda3f 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -143,8 +143,8 @@ static void menu_entries_build_scroll_indices(file_list_t *list) if (!list || !list->size) return; - menu_navigation_ctl(MENU_NAVIGATION_CTL_CLEAR_SCROLL_INDICES, NULL); - menu_navigation_ctl(MENU_NAVIGATION_CTL_ADD_SCROLL_INDEX, &scroll_value); + menu_driver_ctl(MENU_NAVIGATION_CTL_CLEAR_SCROLL_INDICES, NULL); + menu_driver_ctl(MENU_NAVIGATION_CTL_ADD_SCROLL_INDEX, &scroll_value); current = menu_entries_elem_get_first_char(list, 0); current_is_dir = menu_entries_elem_is_dir(list, 0); @@ -155,7 +155,7 @@ static void menu_entries_build_scroll_indices(file_list_t *list) bool is_dir = menu_entries_elem_is_dir(list, (unsigned)i); if ((current_is_dir && !is_dir) || (first > current)) - menu_navigation_ctl(MENU_NAVIGATION_CTL_ADD_SCROLL_INDEX, &i); + menu_driver_ctl(MENU_NAVIGATION_CTL_ADD_SCROLL_INDEX, &i); current = first; current_is_dir = is_dir; @@ -163,7 +163,7 @@ static void menu_entries_build_scroll_indices(file_list_t *list) scroll_value = list->size - 1; - menu_navigation_ctl(MENU_NAVIGATION_CTL_ADD_SCROLL_INDEX, &scroll_value); + menu_driver_ctl(MENU_NAVIGATION_CTL_ADD_SCROLL_INDEX, &scroll_value); } /** @@ -192,7 +192,7 @@ static bool menu_entries_refresh(void *data) else if (!list_size) { bool pending_push = true; - menu_navigation_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); + menu_driver_ctl(MENU_NAVIGATION_CTL_CLEAR, &pending_push); } return true; diff --git a/menu/menu_event.c b/menu/menu_event.c index 9a3accd5f5..4117c0b65e 100644 --- a/menu/menu_event.c +++ b/menu/menu_event.c @@ -161,7 +161,7 @@ unsigned menu_event(uint64_t input, uint64_t trigger_input) first_held = false; trigger_input |= input & input_repeat; - menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, + menu_driver_ctl(MENU_NAVIGATION_CTL_GET_SCROLL_ACCEL, &new_scroll_accel); new_scroll_accel = MIN(new_scroll_accel + 1, 64); @@ -177,7 +177,7 @@ unsigned menu_event(uint64_t input, uint64_t trigger_input) } if (set_scroll) - menu_navigation_ctl(MENU_NAVIGATION_CTL_SET_SCROLL_ACCEL, + menu_driver_ctl(MENU_NAVIGATION_CTL_SET_SCROLL_ACCEL, &new_scroll_accel); menu_animation_ctl(MENU_ANIMATION_CTL_DELTA_TIME, &delta_time); diff --git a/menu/menu_input.c b/menu/menu_input.c index ca6e2faedf..0a9488fddb 100644 --- a/menu/menu_input.c +++ b/menu/menu_input.c @@ -287,13 +287,13 @@ static int menu_input_mouse_frame( if (BIT64_GET(mouse_state, MENU_MOUSE_ACTION_WHEEL_DOWN)) { unsigned increment_by = 1; - menu_navigation_ctl(MENU_NAVIGATION_CTL_INCREMENT, &increment_by); + menu_driver_ctl(MENU_NAVIGATION_CTL_INCREMENT, &increment_by); } if (BIT64_GET(mouse_state, MENU_MOUSE_ACTION_WHEEL_UP)) { unsigned decrement_by = 1; - menu_navigation_ctl(MENU_NAVIGATION_CTL_DECREMENT, &decrement_by); + menu_driver_ctl(MENU_NAVIGATION_CTL_DECREMENT, &decrement_by); } if (BIT64_GET(mouse_state, MENU_MOUSE_ACTION_HORIZ_WHEEL_UP)) diff --git a/menu/widgets/menu_entry.c b/menu/widgets/menu_entry.c index 8895e3bd26..81f341319f 100644 --- a/menu/widgets/menu_entry.c +++ b/menu/widgets/menu_entry.c @@ -502,10 +502,10 @@ int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action) ret = cbs->action_down(entry->type, entry->label); break; case MENU_ACTION_SCROLL_UP: - menu_navigation_ctl(MENU_NAVIGATION_CTL_DESCEND_ALPHABET, NULL); + menu_driver_ctl(MENU_NAVIGATION_CTL_DESCEND_ALPHABET, NULL); break; case MENU_ACTION_SCROLL_DOWN: - menu_navigation_ctl(MENU_NAVIGATION_CTL_ASCEND_ALPHABET, NULL); + menu_driver_ctl(MENU_NAVIGATION_CTL_ASCEND_ALPHABET, NULL); break; case MENU_ACTION_CANCEL: if (cbs && cbs->action_cancel)