/* This need only be shown if we dont have recording, because if we do then always show the setting item, because there will always be at least 2 items */ static int alarm_callback(int action,const struct menu_item_ex *this_item) { (void)this_item; switch (action) { case ACTION_REQUEST_MENUITEM: if (radio_hardware_present() == 0) return ACTION_EXIT_MENUITEM; break; } return action; }
static bool check_feature_tag(const int type) { switch (type) { case SKIN_TOKEN_RTC_PRESENT: #if CONFIG_RTC return true; #else return false; #endif case SKIN_TOKEN_HAVE_RECORDING: #ifdef HAVE_RECORDING return true; #else return false; #endif case SKIN_TOKEN_HAVE_TUNER: #if CONFIG_TUNER if (radio_hardware_present()) return true; #endif return false; case SKIN_TOKEN_HAVE_TOUCH: #ifdef HAVE_TOUCHSCREEN return true; #else return false; #endif #if CONFIG_TUNER case SKIN_TOKEN_HAVE_RDS: #ifdef HAVE_RDS_CAP return true; #else return false; #endif /* HAVE_RDS_CAP */ #endif /* CONFIG_TUNER */ default: /* not a tag we care about, just don't skip */ return true; } }
/* have to do this manually because the setting screen doesnt handle variable item count */ static int alarm_setting(void) { struct opt_items items[ALARM_START_COUNT]; int i = 0; items[i].string = str(LANG_RESUME_PLAYBACK); items[i].voice_id = LANG_RESUME_PLAYBACK; i++; #if CONFIG_TUNER if (radio_hardware_present()) { items[i].string = str(LANG_FM_RADIO); items[i].voice_id = LANG_FM_RADIO; i++; } #endif #ifdef HAVE_RECORDING items[i].string = str(LANG_RECORDING); items[i].voice_id = LANG_RECORDING; i++; #endif return set_option(str(LANG_ALARM_WAKEUP_SCREEN), &global_settings.alarm_wake_up_screen, INT, items, i, NULL); }
static int item_callback(int action, const struct menu_item_ex *this_item) { switch (action) { case ACTION_TREE_STOP: return ACTION_REDRAW; case ACTION_REQUEST_MENUITEM: #if CONFIG_TUNER if (this_item == &fm) { if (radio_hardware_present() == 0) return ACTION_EXIT_MENUITEM; } else #endif if (this_item == &bookmarks) { if (global_settings.usemrb == 0) return ACTION_EXIT_MENUITEM; } break; } return action; }