summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2004-02-13 13:15:12 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2004-02-13 13:15:12 +0100
commitf379b56d0e2e2598c44285c7ccf71128d356855b (patch)
treedb4a401cf92b98590488cad53a5b4fe0c9d43016
parentd828badbe00f4eaa074aed0ab3361c5fd3c0328b (diff)
downloadvdr-f379b56d0e2e2598c44285c7ccf71128d356855b.tar.gz
vdr-f379b56d0e2e2598c44285c7ccf71128d356855b.tar.bz2
Fixed switching to a visible programme in case the current channel has neither a video nor an audio PID
-rw-r--r--HISTORY4
-rw-r--r--vdr.c16
2 files changed, 13 insertions, 7 deletions
diff --git a/HISTORY b/HISTORY
index cf4315ff..cdb8f7b6 100644
--- a/HISTORY
+++ b/HISTORY
@@ -2652,6 +2652,8 @@ Video Disk Recorder Revision History
actual CAM type as reported by the CAM. The 'ca.conf' file has been stripped
down to the values 0..4.
-2004-02-09: Version 1.3.5
+2004-02-13: Version 1.3.5
- Fixed reading the EPG preferred language parameter from 'setup.conf'.
+- Fixed switching to a visible programme in case the current channel has neither
+ a video nor an audio PID.
diff --git a/vdr.c b/vdr.c
index 91673079..20315507 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.175 2004/02/08 11:23:29 kls Exp $
+ * $Id: vdr.c 1.176 2004/02/13 13:13:13 kls Exp $
*/
#include <getopt.h>
@@ -496,11 +496,15 @@ int main(int argc, char *argv[])
if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) {
static time_t lastTime = 0;
if (time(NULL) - lastTime > MINCHANNELWAIT) {
- if (!Channels.SwitchTo(cDevice::CurrentChannel()) // try to switch to the original channel...
- && !(LastTimerChannel > 0 && Channels.SwitchTo(LastTimerChannel)) // ...or the one used by the last timer...
- && !cDevice::SwitchChannel(1) // ...or the next higher available one...
- && !cDevice::SwitchChannel(-1)) // ...or the next lower available one
- lastTime = time(NULL); // don't do this too often
+ cChannel *Channel = Channels.GetByNumber(cDevice::CurrentChannel());
+ if (Channel && (Channel->Vpid() || Channel->Apid1())) {
+ if (!Channels.SwitchTo(cDevice::CurrentChannel()) // try to switch to the original channel...
+ && !(LastTimerChannel > 0 && Channels.SwitchTo(LastTimerChannel)) // ...or the one used by the last timer...
+ && !cDevice::SwitchChannel(1) // ...or the next higher available one...
+ && !cDevice::SwitchChannel(-1)) // ...or the next lower available one
+ ;
+ }
+ lastTime = time(NULL); // don't do this too often
LastTimerChannel = -1;
}
}