summaryrefslogtreecommitdiff
path: root/apps/plugins/mpegplayer/mpeg_settings.c
diff options
context:
space:
mode:
authorTeruaki Kawashima <teru@rockbox.org>2009-08-27 14:24:58 +0000
committerTeruaki Kawashima <teru@rockbox.org>2009-08-27 14:24:58 +0000
commit443f609be62b812878c7c9a832d8014ab56bbf6f (patch)
treea6fcc58959babc1b94881c6e2a2235f0f7679207 /apps/plugins/mpegplayer/mpeg_settings.c
parented940e883079a323b0764532a7444ad022685ae4 (diff)
downloadrockbox-443f609be62b812878c7c9a832d8014ab56bbf6f.tar.gz
rockbox-443f609be62b812878c7c9a832d8014ab56bbf6f.zip
Rearange menu of mpegplayer. Add new menu with "settings" and "quit", and remove quit item from settings menu.
The setting menu was bit wierd as it had "quit" item at it's buttom. Also, there are 2 almost same menu definitions in mpeg_menu and it doesn't looks good, imo. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22518 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/mpegplayer/mpeg_settings.c')
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c80
1 files changed, 50 insertions, 30 deletions
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index 3868d759f6..d361cc818e 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -259,6 +259,7 @@ static const struct opt_items globaloff[2] = {
259#define BACKLIGHT_OPTION_DEFAULT "Use setting" 259#define BACKLIGHT_OPTION_DEFAULT "Use setting"
260#endif 260#endif
261 261
262static void mpeg_settings(void);
262static long mpeg_menu_sysevent_id; 263static long mpeg_menu_sysevent_id;
263 264
264void mpeg_menu_sysevent_clear(void) 265void mpeg_menu_sysevent_clear(void)
@@ -831,9 +832,8 @@ static int show_start_menu(uint32_t duration)
831 struct hms hms; 832 struct hms hms;
832 833
833 MENUITEM_STRINGLIST(menu, "Mpegplayer Menu", mpeg_menu_sysevent_callback, 834 MENUITEM_STRINGLIST(menu, "Mpegplayer Menu", mpeg_menu_sysevent_callback,
834 "Play from beginning", resume_str, 835 "Play from beginning", resume_str, "Set start time",
835 "Set start time", "Settings", 836 "Settings", "Quit mpegplayer");
836 "Quit mpegplayer");
837 837
838 ts_to_hms(settings.resume_time, &hms); 838 ts_to_hms(settings.resume_time, &hms);
839 hms_format(hms_str, sizeof(hms_str), &hms); 839 hms_format(hms_str, sizeof(hms_str), &hms);
@@ -872,9 +872,9 @@ static int show_start_menu(uint32_t duration)
872 break; 872 break;
873 873
874 case MPEG_START_SETTINGS: 874 case MPEG_START_SETTINGS:
875 if (mpeg_menu(MPEG_MENU_HIDE_QUIT_ITEM) != MPEG_MENU_QUIT) 875 mpeg_settings();
876 break; 876 break;
877 /* Fall-through */ 877
878 default: 878 default:
879 result = MPEG_START_QUIT; 879 result = MPEG_START_QUIT;
880 menu_quit = true; 880 menu_quit = true;
@@ -916,6 +916,44 @@ int mpeg_start_menu(uint32_t duration)
916 } 916 }
917} 917}
918 918
919int mpeg_menu(void)
920{
921 int result;
922
923 MENUITEM_STRINGLIST(menu, "Mpegplayer Menu", mpeg_menu_sysevent_callback,
924 "Settings", "Resume playback", "Quit mpegplayer");
925
926 rb->button_clear_queue();
927
928 mpeg_menu_sysevent_clear();
929
930 result = rb->do_menu(&menu, NULL, NULL, false);
931
932 switch (result)
933 {
934 case MPEG_MENU_SETTINGS:
935 mpeg_settings();
936 break;
937
938 case MPEG_MENU_RESUME:
939 break;
940
941 case MPEG_MENU_QUIT:
942 break;
943
944 default:
945 break;
946 }
947
948 if (mpeg_menu_sysevent() != 0)
949 result = MPEG_MENU_QUIT;
950
951 rb->lcd_clear_display();
952 rb->lcd_update();
953
954 return result;
955}
956
919/** MPEG Menu **/ 957/** MPEG Menu **/
920static void display_options(void) 958static void display_options(void)
921{ 959{
@@ -1078,25 +1116,16 @@ static void clear_resume_count(void)
1078 configfile_update_entry(SETTINGS_FILENAME, "Resume count", 0); 1116 configfile_update_entry(SETTINGS_FILENAME, "Resume count", 0);
1079} 1117}
1080 1118
1081int mpeg_menu(unsigned flags) 1119static void mpeg_settings(void)
1082{ 1120{
1083 int selected = 0; 1121 int selected = 0;
1084 int result; 1122 int result;
1085 bool menu_quit = false; 1123 bool menu_quit = false;
1086 static char clear_str[32]; 1124 static char clear_str[32];
1087 1125
1088 MENUITEM_STRINGLIST(menu_with_quit, "Mpegplayer Menu", 1126 MENUITEM_STRINGLIST(menu, "Settings", mpeg_menu_sysevent_callback,
1089 mpeg_menu_sysevent_callback,
1090 "Display Options", "Audio Options",
1091 "Resume Options", clear_str, "Quit mpegplayer");
1092 MENUITEM_STRINGLIST(menu_without_quit, "Settings",
1093 mpeg_menu_sysevent_callback,
1094 "Display Options", "Audio Options", 1127 "Display Options", "Audio Options",
1095 "Resume Options", clear_str); 1128 "Resume Options", clear_str);
1096 const struct menu_item_ex *menu = &menu_with_quit;
1097
1098 if (flags & MPEG_MENU_HIDE_QUIT_ITEM)
1099 menu = &menu_without_quit;
1100 1129
1101 rb->button_clear_queue(); 1130 rb->button_clear_queue();
1102 1131
@@ -1112,39 +1141,30 @@ int mpeg_menu(unsigned flags)
1112 1141
1113 switch (result) 1142 switch (result)
1114 { 1143 {
1115 case MPEG_MENU_DISPLAY_SETTINGS: 1144 case MPEG_SETTING_DISPLAY_SETTINGS:
1116 display_options(); 1145 display_options();
1117 break; 1146 break;
1118 1147
1119 case MPEG_MENU_AUDIO_SETTINGS: 1148 case MPEG_SETTING_AUDIO_SETTINGS:
1120 audio_options(); 1149 audio_options();
1121 break; 1150 break;
1122 1151
1123 case MPEG_MENU_ENABLE_START_MENU: 1152 case MPEG_SETTING_ENABLE_START_MENU:
1124 resume_options(); 1153 resume_options();
1125 break; 1154 break;
1126 1155
1127 case MPEG_MENU_CLEAR_RESUMES: 1156 case MPEG_SETTING_CLEAR_RESUMES:
1128 clear_resume_count(); 1157 clear_resume_count();
1129 break; 1158 break;
1130 1159
1131 case MPEG_MENU_QUIT:
1132 default: 1160 default:
1133 menu_quit = true; 1161 menu_quit = true;
1134 break; 1162 break;
1135 } 1163 }
1136 1164
1137 if (mpeg_menu_sysevent() != 0) 1165 if (mpeg_menu_sysevent() != 0)
1138 {
1139 result = MPEG_MENU_QUIT;
1140 menu_quit = true; 1166 menu_quit = true;
1141 }
1142 } 1167 }
1143
1144 rb->lcd_clear_display();
1145 rb->lcd_update();
1146
1147 return result;
1148} 1168}
1149 1169
1150void init_settings(const char* filename) 1170void init_settings(const char* filename)