diff options
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | vdr.c | 7 |
2 files changed, 7 insertions, 2 deletions
@@ -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. @@ -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 <getopt.h> @@ -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(); |