diff --git a/src/neutrino.cpp b/src/neutrino.cpp index ec4cd0b2a..35a5745f8 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -228,6 +228,7 @@ CNeutrinoApp::CNeutrinoApp() RADIOchannelList = NULL; skipShutdownTimer = false; skipSleepnTimer = false; + lockStandbyCall = false; current_muted = 0; recordingstatus = 0; g_channel_list_changed = 0; @@ -3179,7 +3180,11 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) { //static bool wasshift = false; INFO("%s", bOnOff ? "ON" : "OFF" ); - + + if(lockStandbyCall) + return; + + lockStandbyCall = true; if( bOnOff ) { if( mode == mode_scart ) { //g_Controld->setScartMode( 0 ); @@ -3197,8 +3202,6 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) if(mode == mode_radio && g_Radiotext) g_Radiotext->radiotext_stop(); - lastMode = mode; - mode = mode_standby; if(!fromDeepStandby && !CRecordManager::getInstance()->RecordingStatus()) { g_Zapit->setStandby(true); @@ -3235,6 +3238,9 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) if(!CRecordManager::getInstance()->RecordingStatus()) cpuFreq->SetCpuFreq(g_settings.standby_cpufreq * 1000 * 1000); + lastMode = mode; + mode = mode_standby; + //fan speed if (g_info.has_fan) { int fspeed = 1; @@ -3319,6 +3325,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) #endif StartSubtitles(); } + lockStandbyCall = false; } void CNeutrinoApp::radioMode( bool rezap) diff --git a/src/neutrino.h b/src/neutrino.h index bfdcb4232..4353bd076 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -120,7 +120,7 @@ private: bool skipShutdownTimer; bool skipSleepnTimer; bool pbBlinkChange; - + bool lockStandbyCall; int tvsort[LIST_MODE_LAST]; int radiosort[LIST_MODE_LAST];