as requested, implement 'easy' menu mode for novice users;

default behavior should not be changed, easy mode forced by /var/etc/.easymenu file inside image;
at the moment switch between modes is done by main menu -> 'stop' button -> enter pin code,
restart needed after mode switch
This commit is contained in:
[CST] Focus
2013-10-25 13:01:07 +04:00
parent af49e54d22
commit 606bd01878
23 changed files with 769 additions and 375 deletions

View File

@@ -58,6 +58,7 @@
//#define ONE_KEY_PLUGIN
extern CPlugins * g_PluginList;
extern cVideo *videoDecoder;
CMiscMenue::CMiscMenue()
{
@@ -125,6 +126,14 @@ int CMiscMenue::exec(CMenuTarget* parent, const std::string &actionKey)
ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, str, CMessageBox::mbrBack, CMessageBox::mbBack);
return menu_return::RETURN_REPAINT;
}
else if(actionKey == "energy")
{
return showMiscSettingsMenuEnergy();
}
else if(actionKey == "channellist")
{
return showMiscSettingsMenuChanlist();
}
return showMiscSettingsMenu();
}
@@ -212,9 +221,7 @@ int CMiscMenue::showMiscSettingsMenu()
//energy, shutdown
if(cs_get_revision() > 7)
{
CMenuWidget *misc_menue_energy = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_ENERGY);
showMiscSettingsMenuEnergy(misc_menue_energy);
mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_ENERGY, true, NULL, misc_menue_energy, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
mf = new CMenuForwarder(LOCALE_MISCSETTINGS_ENERGY, true, NULL, this, "energy", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
mf->setHint("", LOCALE_MENU_HINT_MISC_ENERGY);
misc_menue.addItem(mf);
}
@@ -242,9 +249,7 @@ int CMiscMenue::showMiscSettingsMenu()
misc_menue.addItem(mf);
//channellist
CMenuWidget misc_menue_chanlist(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_CHANNELLIST);
showMiscSettingsMenuChanlist(&misc_menue_chanlist);
mf = new CMenuForwarder(LOCALE_MISCSETTINGS_CHANNELLIST, true, NULL, &misc_menue_chanlist, NULL, CRCInput::RC_2);
mf = new CMenuForwarder(LOCALE_MISCSETTINGS_CHANNELLIST, true, NULL, this, "channellist", CRCInput::RC_2);
mf->setHint("", LOCALE_MENU_HINT_MISC_CHANNELLIST);
misc_menue.addItem(mf);
@@ -264,8 +269,10 @@ int CMiscMenue::showMiscSettingsMenu()
int res = misc_menue.exec(NULL, "");
delete fanNotifier;
delete sectionsdConfigNotifier;
#if 0
if(cs_get_revision() > 7)
delete miscNotifier;
#endif
delete miscEpgNotifier;
return res;
}
@@ -308,9 +315,17 @@ void CMiscMenue::showMiscSettingsMenuGeneral(CMenuWidget *ms_general)
#endif /*ONE_KEY_PLUGIN*/
}
//energy and shutdown settings
void CMiscMenue::showMiscSettingsMenuEnergy(CMenuWidget *ms_energy)
#define VIDEOMENU_HDMI_CEC_MODE_OPTION_COUNT 2
const CMenuOptionChooser::keyval VIDEOMENU_HDMI_CEC_MODE_OPTIONS[VIDEOMENU_HDMI_CEC_MODE_OPTION_COUNT] =
{
{ VIDEO_HDMI_CEC_MODE_OFF , LOCALE_OPTIONS_OFF },
{ VIDEO_HDMI_CEC_MODE_TUNER , LOCALE_OPTIONS_ON }
};
//energy and shutdown settings
int CMiscMenue::showMiscSettingsMenuEnergy()
{
CMenuWidget *ms_energy = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_ENERGY);
ms_energy->addIntroItems(LOCALE_MISCSETTINGS_ENERGY);
CMenuOptionChooser *m1 = new CMenuOptionChooser(LOCALE_MISCSETTINGS_SHUTDOWN_REAL_RCDELAY, &g_settings.shutdown_real_rcdelay, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, !g_settings.shutdown_real);
@@ -319,8 +334,8 @@ void CMiscMenue::showMiscSettingsMenuEnergy(CMenuWidget *ms_energy)
CStringInput * miscSettings_shutdown_count = new CStringInput(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, g_settings.shutdown_count, 3, LOCALE_MISCSETTINGS_SHUTDOWN_COUNT_HINT1, LOCALE_MISCSETTINGS_SHUTDOWN_COUNT_HINT2, "0123456789 ");
CMenuForwarder *m2 = new CMenuDForwarder(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, !g_settings.shutdown_real, g_settings.shutdown_count, miscSettings_shutdown_count);
m2->setHint("", LOCALE_MENU_HINT_SHUTDOWN_COUNT);
miscNotifier = new COnOffNotifier(1);
COnOffNotifier * miscNotifier = new COnOffNotifier(1);
miscNotifier->addItem(m1);
miscNotifier->addItem(m2);
@@ -338,6 +353,17 @@ void CMiscMenue::showMiscSettingsMenuEnergy(CMenuWidget *ms_energy)
CMenuOptionChooser * m4 = new CMenuOptionChooser(LOCALE_MISCSETTINGS_SLEEPTIMER_MIN, &g_settings.sleeptimer_min, SLEEPTIMER_MIN_OPTIONS, SLEEPTIMER_MIN_OPTION_COUNT, true);
m4->setHint("", LOCALE_MENU_HINT_SLEEPTIMER_MIN);
ms_energy->addItem(m4);
if (g_settings.easymenu) {
CMenuOptionChooser *cec_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC, &g_settings.hdmi_cec_mode, VIDEOMENU_HDMI_CEC_MODE_OPTIONS, VIDEOMENU_HDMI_CEC_MODE_OPTION_COUNT, true, this);
cec_ch->setHint("", LOCALE_MENU_HINT_CEC_MODE);
ms_energy->addItem(cec_ch);
}
int res = ms_energy->exec(NULL, "");
delete ms_energy;
delete miscNotifier;
return res;
}
//EPG settings
@@ -412,8 +438,9 @@ void CMiscMenue::showMiscSettingsMenuFBrowser(CMenuWidget *ms_fbrowser)
}
//channellist
void CMiscMenue::showMiscSettingsMenuChanlist(CMenuWidget *ms_chanlist)
int CMiscMenue::showMiscSettingsMenuChanlist()
{
CMenuWidget * ms_chanlist = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_CHANNELLIST);
ms_chanlist->addIntroItems(LOCALE_MISCSETTINGS_CHANNELLIST);
CMenuOptionChooser * mc;
@@ -444,6 +471,9 @@ void CMiscMenue::showMiscSettingsMenuChanlist(CMenuWidget *ms_chanlist)
mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_NUMERIC_ADJUST, &g_settings.channellist_numeric_adjust, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true);
mc->setHint("", LOCALE_MENU_HINT_NUMERIC_ADJUST);
ms_chanlist->addItem(mc);
int res = ms_chanlist->exec(NULL, "");
delete ms_chanlist;
return res;
}
#ifdef CPU_FREQ
@@ -457,3 +487,23 @@ void CMiscMenue::showMiscSettingsMenuCPUFreq(CMenuWidget *ms_cpu)
ms_cpu->addItem(new CMenuOptionChooser(LOCALE_CPU_FREQ_STANDBY, &g_settings.standby_cpufreq, CPU_FREQ_OPTIONS, CPU_FREQ_OPTION_COUNT, true));
}
#endif /*CPU_FREQ*/
bool CMiscMenue::changeNotify(const neutrino_locale_t OptionName, void * /*data*/)
{
if (ARE_LOCALES_EQUAL(OptionName, LOCALE_VIDEOMENU_HDMI_CEC))
{
printf("[neutrino CEC Settings] %s set CEC settings...\n", __FUNCTION__);
g_settings.hdmi_cec_standby = 0;
g_settings.hdmi_cec_view_on = 0;
if (g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF) {
g_settings.hdmi_cec_standby = 1;
g_settings.hdmi_cec_view_on = 1;
g_settings.hdmi_cec_mode = VIDEO_HDMI_CEC_MODE_TUNER;
}
videoDecoder->SetCECAutoStandby(g_settings.hdmi_cec_standby == 1);
videoDecoder->SetCECAutoView(g_settings.hdmi_cec_view_on == 1);
videoDecoder->SetCECMode((VIDEO_HDMI_CEC_MODE)g_settings.hdmi_cec_mode);
}
return false;
}