mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed channel switching in case the current channel becomes unavailable
This commit is contained in:
parent
609285eb64
commit
44dbfe9f38
@ -485,6 +485,8 @@ Reinhard Walter Buchner <rw.buchner@freenet.de>
|
|||||||
Lauri Tischler <lauri.tischler@efore.fi>
|
Lauri Tischler <lauri.tischler@efore.fi>
|
||||||
for helping to test and debug the new channel source and DiSEqC handling
|
for helping to test and debug the new channel source and DiSEqC handling
|
||||||
for reporting a faulty parameter initialization in menu.c
|
for reporting a faulty parameter initialization in menu.c
|
||||||
|
for reporting a problem in case the original current channel becomes
|
||||||
|
unavailable due to a recording on a different transponder
|
||||||
|
|
||||||
Andy Carter <fruit@ukgateway.net>
|
Andy Carter <fruit@ukgateway.net>
|
||||||
for helping to test new DVB-T handling
|
for helping to test new DVB-T handling
|
||||||
@ -682,3 +684,7 @@ Niko Tarnanen <niko.tarnanen@hut.fi> and Rolf Ahrenberg <rahrenbe@cc.hut.fi>
|
|||||||
|
|
||||||
Ralf Klueber <ralf.klueber@vodafone.com>
|
Ralf Klueber <ralf.klueber@vodafone.com>
|
||||||
for reporting a bug in cutting a recording if there is only a single editing mark
|
for reporting a bug in cutting a recording if there is only a single editing mark
|
||||||
|
|
||||||
|
Hermann Gausterer <mrq1@gmx.net>
|
||||||
|
for suggesting to switch to the recording channel in case the current channel
|
||||||
|
becomes unavailable
|
||||||
|
5
HISTORY
5
HISTORY
@ -2190,3 +2190,8 @@ Video Disk Recorder Revision History
|
|||||||
Wiesweg).
|
Wiesweg).
|
||||||
- Fixed channel switching in the EPG scanner on single device systems.
|
- Fixed channel switching in the EPG scanner on single device systems.
|
||||||
- Completed the Swedish OSD texts (thanks to Tomas Prybil).
|
- Completed the Swedish OSD texts (thanks to Tomas Prybil).
|
||||||
|
- Now switching to the channel used by the most recently started timer in case
|
||||||
|
the original current channel becomes unavailable due to a recording on a
|
||||||
|
different transponder. If this fails, a channel up/down switch is attempted as
|
||||||
|
a fallback solution (thanks to Lauri Tischler for reporting this one, and to
|
||||||
|
Hermann Gausterer for suggesting to switch to the recording channel).
|
||||||
|
11
vdr.c
11
vdr.c
@ -22,7 +22,7 @@
|
|||||||
*
|
*
|
||||||
* The project's page is at http://www.cadsoft.de/people/kls/vdr
|
* The project's page is at http://www.cadsoft.de/people/kls/vdr
|
||||||
*
|
*
|
||||||
* $Id: vdr.c 1.158 2003/05/24 13:35:13 kls Exp $
|
* $Id: vdr.c 1.159 2003/05/24 15:17:38 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
@ -453,6 +453,7 @@ int main(int argc, char *argv[])
|
|||||||
cOsdObject *Menu = NULL;
|
cOsdObject *Menu = NULL;
|
||||||
cOsdObject *Temp = NULL;
|
cOsdObject *Temp = NULL;
|
||||||
int LastChannel = -1;
|
int LastChannel = -1;
|
||||||
|
int LastTimerChannel = -1;
|
||||||
int PreviousChannel = cDevice::CurrentChannel();
|
int PreviousChannel = cDevice::CurrentChannel();
|
||||||
time_t LastActivity = 0;
|
time_t LastActivity = 0;
|
||||||
int MaxLatencyTime = 0;
|
int MaxLatencyTime = 0;
|
||||||
@ -471,8 +472,12 @@ int main(int argc, char *argv[])
|
|||||||
if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) {
|
if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) {
|
||||||
static time_t lastTime = 0;
|
static time_t lastTime = 0;
|
||||||
if (time(NULL) - lastTime > MINCHANNELWAIT) {
|
if (time(NULL) - lastTime > MINCHANNELWAIT) {
|
||||||
if (!Channels.SwitchTo(cDevice::CurrentChannel()))
|
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
|
lastTime = time(NULL); // don't do this too often
|
||||||
|
LastTimerChannel = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Restart the Watchdog timer:
|
// Restart the Watchdog timer:
|
||||||
@ -499,6 +504,8 @@ int main(int argc, char *argv[])
|
|||||||
if (Timer) {
|
if (Timer) {
|
||||||
if (!cRecordControls::Start(Timer))
|
if (!cRecordControls::Start(Timer))
|
||||||
Timer->SetPending(true);
|
Timer->SetPending(true);
|
||||||
|
else
|
||||||
|
LastTimerChannel = Timer->Channel()->Number();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// CAM control:
|
// CAM control:
|
||||||
|
Loading…
Reference in New Issue
Block a user