Fixed handling timers in VPS margin if the EPG scan is turned on

This commit is contained in:
Klaus Schmidinger 2004-03-07 09:40:51 +01:00
parent 12c0b0dd15
commit e070d5462c
3 changed files with 9 additions and 4 deletions

View File

@ -2714,7 +2714,7 @@ Video Disk Recorder Revision History
whether an event is currently running (see MANUAL under "The "Schedule" Menu"
for details).
2004-03-05: Version 1.3.6
2004-03-07: Version 1.3.6
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed some descriptor handling in 'libsi' (thanks to Stéphane Esté-Gracias).
@ -2722,3 +2722,6 @@ Video Disk Recorder Revision History
- Fixed assigning events to timers (they no longer get "stuck").
- Added log entries whenever the running status of an event changes (currently
only logging the first 30 channels).
- Fixed handling timers in VPS margin if the EPG scan is turned on (the EPG scan
switched the device away from the channel, so it wouldn't see the change of
the running status).

3
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.294 2004/03/06 10:13:15 kls Exp $
* $Id: menu.c 1.295 2004/03/07 09:40:34 kls Exp $
*/
#include "menu.h"
@ -3195,6 +3195,7 @@ bool cRecordControls::Start(cTimer *Timer, bool Pause)
if (device == cTransferControl::ReceiverDevice())
cControl::Shutdown(); // in case this device was used for Transfer Mode
}
dsyslog("switching device %d to channel %d", device->DeviceNumber() + 1, channel->Number());
if (!device->SwitchChannel(channel, false)) {
cThread::EmergencyExit(true);
return false;

5
vdr.c
View File

@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
* $Id: vdr.c 1.178 2004/02/29 14:21:22 kls Exp $
* $Id: vdr.c 1.179 2004/03/07 09:39:54 kls Exp $
*/
#include <getopt.h>
@ -571,7 +571,6 @@ int main(int argc, char *argv[])
if (Timer->HasFlags(tfActive | tfVps) && !Timer->Recording() && !Timer->Pending() && Timer->Matches(Now + Setup.VpsMargin, true)) {
if (!Timer->InVpsMargin()) {
Timer->SetInVpsMargin(true);
TimerInVpsMargin = true;
//XXX if not primary device has TP???
LastTimerChannel = Timer->Channel()->Number();
cRecordControls::Start(Timer); // will only switch the device
@ -579,6 +578,8 @@ int main(int argc, char *argv[])
}
else
Timer->SetInVpsMargin(false);
if (Timer->InVpsMargin())
TimerInVpsMargin = true;
}
}
// CAM control: