diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2007-03-07 07:36:04 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2007-03-07 07:36:04 +0000 |
commit | d0a7cf03e146607ab5b9713d6c85bb8707b88ef5 (patch) | |
tree | 7db90414b189b28d6abc2d80b75a4068ec584274 | |
parent | 27b4fb4729664aa05af6413e715e00a2efa49474 (diff) | |
download | rockbox-d0a7cf03e146607ab5b9713d6c85bb8707b88ef5.tar.gz rockbox-d0a7cf03e146607ab5b9713d6c85bb8707b88ef5.zip |
Only show the alarm wake up screen setting if there is at least 2
options
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12660 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/menus/settings_menu.c | 53 | ||||
-rw-r--r-- | apps/settings_list.c | 13 |
2 files changed, 52 insertions, 14 deletions
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index b962f1fb52..03a6054ff6 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c | |||
@@ -211,11 +211,58 @@ MENUITEM_SETTING(poweroff, &global_settings.poweroff, NULL); | |||
211 | #ifdef HAVE_RTC_ALARM | 211 | #ifdef HAVE_RTC_ALARM |
212 | MENUITEM_FUNCTION(alarm_screen_call, ID2P(LANG_ALARM_MOD_ALARM_MENU), | 212 | MENUITEM_FUNCTION(alarm_screen_call, ID2P(LANG_ALARM_MOD_ALARM_MENU), |
213 | (menu_function)alarm_screen, NULL, Icon_NOICON); | 213 | (menu_function)alarm_screen, NULL, Icon_NOICON); |
214 | #if defined(HAVE_RECORDING) || CONFIG_TUNER | 214 | #if CONFIG_TUNER || defined(HAVE_RECORDING) |
215 | MENUITEM_SETTING(alarm_wake_up_screen, | 215 | |
216 | &global_settings.alarm_wake_up_screen, NULL); | 216 | #if CONFIG_TUNER && !defined(HAVE_RECORDING) |
217 | /* This need only be shown if we dont have recording, because if we do | ||
218 | then always show the setting item, because there will always be at least | ||
219 | 2 items */ | ||
220 | static int alarm_callback(int action,const struct menu_item_ex *this_item) | ||
221 | { | ||
222 | (void)this_item; | ||
223 | switch (action) | ||
224 | { | ||
225 | case ACTION_REQUEST_MENUITEM: | ||
226 | if (radio_hardware_present() == 0) | ||
227 | return ACTION_EXIT_MENUITEM; | ||
228 | break; | ||
229 | } | ||
230 | return action; | ||
231 | } | ||
232 | #else | ||
233 | #define alarm_callback NULL | ||
234 | #endif /* CONFIG_TUNER && !HAVE_RECORDING */ | ||
235 | /* have to do this manually because the setting screen | ||
236 | doesnt handle variable item count */ | ||
237 | static int alarm_setting(void) | ||
238 | { | ||
239 | struct opt_items items[ALARM_START_COUNT]; | ||
240 | int i = 0; | ||
241 | items[i].string = str(LANG_RESUME_PLAYBACK); | ||
242 | items[i].voice_id = LANG_RESUME_PLAYBACK; | ||
243 | i++; | ||
244 | #if CONFIG_TUNER | ||
245 | if (radio_hardware_present()) | ||
246 | { | ||
247 | items[i].string = str(LANG_FM_RADIO); | ||
248 | items[i].voice_id = LANG_FM_RADIO; | ||
249 | i++; | ||
250 | } | ||
217 | #endif | 251 | #endif |
252 | #ifdef HAVE_RECORDING | ||
253 | items[i].string = str(LANG_RECORDING); | ||
254 | items[i].voice_id = LANG_RECORDING; | ||
255 | i++; | ||
218 | #endif | 256 | #endif |
257 | return set_option(str(LANG_ALARM_WAKEUP_SCREEN), | ||
258 | &global_settings.alarm_wake_up_screen, | ||
259 | INT, items, i, NULL); | ||
260 | } | ||
261 | |||
262 | MENUITEM_FUNCTION(alarm_wake_up_screen, ID2P(LANG_ALARM_WAKEUP_SCREEN), | ||
263 | alarm_setting, alarm_callback, Icon_Menu_setting); | ||
264 | #endif /* CONFIG_TUNER || defined(HAVE_RECORDING) */ | ||
265 | #endif /* HAVE_RTC_ALARM */ | ||
219 | 266 | ||
220 | /* Limits menu */ | 267 | /* Limits menu */ |
221 | MENUITEM_SETTING(max_files_in_dir, &global_settings.max_files_in_dir, NULL); | 268 | MENUITEM_SETTING(max_files_in_dir, &global_settings.max_files_in_dir, NULL); |
diff --git a/apps/settings_list.c b/apps/settings_list.c index ac410d57ca..ae811bad4e 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -1115,17 +1115,8 @@ const struct settings_list settings[] = { | |||
1115 | SYSTEM_SETTING(NVRAM(1),last_screen,-1), | 1115 | SYSTEM_SETTING(NVRAM(1),last_screen,-1), |
1116 | #if defined(HAVE_RTC_ALARM) && \ | 1116 | #if defined(HAVE_RTC_ALARM) && \ |
1117 | (defined(HAVE_RECORDING) || CONFIG_TUNER) | 1117 | (defined(HAVE_RECORDING) || CONFIG_TUNER) |
1118 | CHOICE_SETTING(0, alarm_wake_up_screen, LANG_ALARM_WAKEUP_SCREEN, | 1118 | {F_T_INT, &global_settings.alarm_wake_up_screen, LANG_ALARM_WAKEUP_SCREEN, |
1119 | ALARM_START_WPS, | 1119 | INT(ALARM_START_WPS), "alarm wakeup screen", ALARM_SETTING_TEXT, UNUSED}, |
1120 | "alarm wakeup screen", ALARM_SETTING_TEXT, | ||
1121 | NULL, ALARM_START_COUNT, ID2P(LANG_RESUME_PLAYBACK) | ||
1122 | #if CONFIG_TUNER | ||
1123 | ,ID2P(LANG_FM_RADIO) | ||
1124 | #endif | ||
1125 | #ifdef HAVE_RECORDING | ||
1126 | ,ID2P(LANG_RECORDING) | ||
1127 | #endif | ||
1128 | ), | ||
1129 | #endif /* HAVE_RTC_ALARM */ | 1120 | #endif /* HAVE_RTC_ALARM */ |
1130 | }; | 1121 | }; |
1131 | 1122 | ||