diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 7f844e002..d1ab6dc9f 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -983,6 +983,8 @@ void CMoviePlayerGui::PlayFileLoop(void) repeat_mode = REPEAT_OFF; g_settings.movieplayer_repeat_on = repeat_mode; callInfoViewer(); + } else if (msg == (neutrino_msg_t) CRCInput::RC_setup) { + CNeutrinoApp::getInstance()->handleMsg(NeutrinoMessages::SHOW_MAINMENU, 0); } else if (msg == (neutrino_msg_t) g_settings.mpkey_play) { if (time_forced) { time_forced = false; diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 876804763..869cab516 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2152,6 +2152,35 @@ void CNeutrinoApp::showInfo() StartSubtitles(); } +void CNeutrinoApp::showMainMenu() +{ + StopSubtitles(); + InfoClock->enableInfoClock(false); + int old_ttx = g_settings.cacheTXT; + int old_epg = g_settings.epg_scan; + int old_mode = g_settings.epg_scan_mode; + int old_save_mode = g_settings.epg_save_mode; + mainMenu->exec(NULL, ""); + InfoClock->enableInfoClock(true); + StartSubtitles(); + saveSetup(NEUTRINO_SETTINGS_FILE); + + if (old_save_mode != g_settings.epg_save_mode) + CEpgScan::getInstance()->ConfigureEIT(); + if (old_epg != g_settings.epg_scan || old_mode != g_settings.epg_scan_mode) { + if (g_settings.epg_scan_mode != CEpgScan::MODE_OFF) + CEpgScan::getInstance()->Start(); + else + CEpgScan::getInstance()->Clear(); + } + if (old_ttx != g_settings.cacheTXT) { + if(g_settings.cacheTXT) { + tuxtxt_init(); + } else + tuxtxt_close(); + } +} + void CNeutrinoApp::screensaver(bool on) { if (on) @@ -2167,8 +2196,10 @@ void CNeutrinoApp::screensaver(bool on) } } -void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) +void CNeutrinoApp::RealRun(CMenuWidget &_mainMenu) { + mainMenu = &_mainMenu; + neutrino_msg_t msg; neutrino_msg_data_t data; @@ -2251,31 +2282,7 @@ void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) /* the only hardcoded key to check before key bindings */ else if( msg == CRCInput::RC_setup ) { if(!g_settings.minimode) { - StopSubtitles(); - InfoClock->enableInfoClock(false); - int old_ttx = g_settings.cacheTXT; - int old_epg = g_settings.epg_scan; - int old_mode = g_settings.epg_scan_mode; - int old_save_mode = g_settings.epg_save_mode; - mainMenu.exec(NULL, ""); - InfoClock->enableInfoClock(true); - StartSubtitles(); - saveSetup(NEUTRINO_SETTINGS_FILE); - - if (old_save_mode != g_settings.epg_save_mode) - CEpgScan::getInstance()->ConfigureEIT(); - if (old_epg != g_settings.epg_scan || old_mode != g_settings.epg_scan_mode) { - if (g_settings.epg_scan_mode != CEpgScan::MODE_OFF) - CEpgScan::getInstance()->Start(); - else - CEpgScan::getInstance()->Clear(); - } - if (old_ttx != g_settings.cacheTXT) { - if(g_settings.cacheTXT) { - tuxtxt_init(); - } else - tuxtxt_close(); - } + showMainMenu(); } } else if( ( msg == (neutrino_msg_t) g_settings.key_quickzap_up ) || ( msg == (neutrino_msg_t) g_settings.key_quickzap_down ) ) @@ -2741,6 +2748,11 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) return messages_return::handled; } } + if (msg == NeutrinoMessages::SHOW_MAINMENU) { + showMainMenu(); + return messages_return::handled; + } + res = res | g_RemoteControl->handleMsg(msg, data); res = res | g_InfoViewer->handleMsg(msg, data); diff --git a/src/neutrino.h b/src/neutrino.h index 424a05d03..45d2e3ad3 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -73,6 +73,7 @@ public: private: CFrameBuffer * frameBuffer; + CMenuWidget *mainMenu; CConfigFile configfile; CScanSettings scanSettings; CPersonalizeGui personalize; @@ -214,6 +215,7 @@ public: bool StartPip(const t_channel_id channel_id); void SelectSubtitles(); void showInfo(void); + void showMainMenu(void); CConfigFile* getConfigFile() {return &configfile;}; bool SDTreloadChannels; diff --git a/src/neutrinoMessages.h b/src/neutrinoMessages.h index 1296f9ab3..2de01b397 100644 --- a/src/neutrinoMessages.h +++ b/src/neutrinoMessages.h @@ -73,6 +73,7 @@ struct NeutrinoMessages { UNLOCK_RC = CRCInput::RC_Messages + 20, REBOOT = CRCInput::RC_Messages + 21, RELOAD_SETUP = CRCInput::RC_Messages + 22, + SHOW_MAINMENU = CRCInput::RC_Messages + 23, EVT_VOLCHANGED = CRCInput::RC_Events + 1, EVT_MUTECHANGED = CRCInput::RC_Events + 2,