From 91e726a1c1cec64bcae64480db731da57db93f10 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Tue, 27 Mar 2007 06:38:11 +0000 Subject: [PATCH] Move all valid menu return codes to a single file (root_menu.h) so we don't need to rely on GO_TO_ROOT == MENU_ATTACHED_USB. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12937 a1c6a512-1295-4272-9138-f99709370657 --- apps/menu.c | 2 +- apps/menu.h | 7 ++----- apps/root_menu.c | 9 +++++---- apps/root_menu.h | 9 +++++++++ 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/apps/menu.c b/apps/menu.c index a519c1a857..0ac0166971 100644 --- a/apps/menu.c +++ b/apps/menu.c @@ -737,7 +737,7 @@ int menu_show(int m) switch (value) { case MENU_ATTACHED_USB: - /* case GO_TO_ROOT: */ + case GO_TO_ROOT: return MENU_ATTACHED_USB; case GO_TO_PREVIOUS: return MENU_SELECTED_EXIT; diff --git a/apps/menu.h b/apps/menu.h index aab2365a14..365af536e9 100644 --- a/apps/menu.h +++ b/apps/menu.h @@ -23,6 +23,7 @@ #include #include "icon.h" #include "icons.h" +#include "root_menu.h" /* needed for MENU_* return codes */ enum menu_item_type { @@ -193,12 +194,8 @@ int menu_init(const struct menu_item* mitems, int count, const char *button1, const char *button2, const char *button3); void menu_exit(int menu); - /* Returns below define, or number of selected menu item*/ + /* Returns MENU_* define from root_menu.h, or number of selected menu item*/ int menu_show(int m); -#define MENU_ATTACHED_USB -1 -#define MENU_SELECTED_EXIT -2 -#define MENU_EXIT_ALL -3 -#define MENU_RETURN_TO_WPS -4 bool menu_run(int menu); int menu_count(int menu); diff --git a/apps/root_menu.c b/apps/root_menu.c index 12b2544d60..674f20ead2 100644 --- a/apps/root_menu.c +++ b/apps/root_menu.c @@ -429,16 +429,17 @@ void root_menu(void) { switch (ret_val) { + case MENU_ATTACHED_USB: + case MENU_SELECTED_EXIT: + check_boot(); + /* fall through */ case GO_TO_ROOT: if (last_screen != GO_TO_ROOT) selected = get_selection(last_screen); ret_val = do_menu(&root_menu_, &selected); - /* As long as MENU_ATTACHED_USB == GO_TO_ROOT this works */ if (ret_val <= GO_TO_ROOT) { - if (ret_val == MENU_ATTACHED_USB) - check_boot(); - else if (ret_val == GO_TO_PREVIOUS) + if (ret_val == GO_TO_PREVIOUS) { ret_val = last_screen; last_screen = GO_TO_ROOT; diff --git a/apps/root_menu.h b/apps/root_menu.h index e913a67b4a..4551b620fb 100644 --- a/apps/root_menu.h +++ b/apps/root_menu.h @@ -17,9 +17,16 @@ * ****************************************************************************/ #include "config.h" +#ifndef __ROOT_MENU_H__ +#define __ROOT_MENU_H__ + void root_menu(void); enum { + /* from old menu api, but still required*/ + MENU_ATTACHED_USB = -10, + MENU_SELECTED_EXIT = -9, + GO_TO_PREVIOUS_MUSIC = -4, GO_TO_PREVIOUS_BROWSER = -3, GO_TO_PREVIOUS = -2, @@ -42,3 +49,5 @@ enum { }; extern const struct menu_item_ex root_menu_; + +#endif /* __ROOT_MENU_H__ */