From e68d8ab41c1483926caf375bd75f3405df614d1d Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 14 Mar 2008 13:27:39 +0100 Subject: [PATCH] Fixed tuning to a live channel after a recording has been stopped using the 'Back' key --- HISTORY | 2 ++ vdr.c | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/HISTORY b/HISTORY index e91cce81..cd80537d 100644 --- a/HISTORY +++ b/HISTORY @@ -5718,3 +5718,5 @@ Video Disk Recorder Revision History - Fixed displaying the free disk space when entering the recordings menu where the last replayed recording was in a subdirectory, and pressing Back (thanks to Rolf Ahrenberg). +- Fixed tuning to a live channel after a recording has been stopped using the + 'Back' key. diff --git a/vdr.c b/vdr.c index af690ea7..5ea62d69 100644 --- a/vdr.c +++ b/vdr.c @@ -22,7 +22,7 @@ * * The project's page is at http://www.cadsoft.de/vdr * - * $Id: vdr.c 1.312 2008/02/23 15:36:01 kls Exp $ + * $Id: vdr.c 1.313 2008/03/14 13:22:39 kls Exp $ */ #include @@ -546,6 +546,7 @@ int main(int argc, char *argv[]) int MaxLatencyTime = 0; bool InhibitEpgScan = false; bool IsInfoMenu = false; + bool CheckHasProgramme = false; cSkin *CurrentSkin = NULL; // Load plugins: @@ -730,7 +731,7 @@ int main(int argc, char *argv[]) // Make sure we have a visible programme in case device usage has changed: if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) { static time_t lastTime = 0; - if (!Menu && Now - lastTime > MINCHANNELWAIT) { // !Menu to avoid interfering with the CAM if a CAM menu is open + if ((!Menu || CheckHasProgramme) && Now - lastTime > MINCHANNELWAIT) { // !Menu to avoid interfering with the CAM if a CAM menu is open cChannel *Channel = Channels.GetByNumber(cDevice::CurrentChannel()); if (Channel && (Channel->Vpid() || Channel->Apid(0))) { if (!Channels.SwitchTo(cDevice::CurrentChannel()) // try to switch to the original channel... @@ -739,6 +740,7 @@ int main(int argc, char *argv[]) } lastTime = Now; // don't do this too often LastTimerChannel = -1; + CheckHasProgramme = false; } } // Restart the Watchdog timer: @@ -1120,6 +1122,7 @@ int main(int argc, char *argv[]) DELETE_MENU; cControl::Shutdown(); Menu = new cMenuMain(osRecordings); + CheckHasProgramme = true; // to have live tv after stopping replay with 'Back' break; case osReplay: DELETE_MENU; cControl::Shutdown();