summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY4
-rw-r--r--timers.c6
-rw-r--r--vdr.c4
3 files changed, 8 insertions, 6 deletions
diff --git a/HISTORY b/HISTORY
index efc81c6b..5fdc7b47 100644
--- a/HISTORY
+++ b/HISTORY
@@ -7272,7 +7272,7 @@ Video Disk Recorder Revision History
".keep" to prevent a directory from being deleted when it is empty. Currently the
only file name that is ignored is ".sort".
-2012-10-09: Version 1.7.32
+2012-10-13: Version 1.7.32
- Pressing the Play key during normal live viewing mode now opens the Recordings menu
if there is no "last viewed" recording (thanks to Alexander Wenzel).
@@ -7296,3 +7296,5 @@ Video Disk Recorder Revision History
libhdffcmd/Makefile.
- Added options to build a 32-bit version of VDR on a 64-bit machine to
Make.config.template.
+- Fixed handling VPS timers in case the running status of an event goes to '1' (not
+ running) and later goes to '4' (running).
diff --git a/timers.c b/timers.c
index 7d4c70b1..b5678f90 100644
--- a/timers.c
+++ b/timers.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: timers.c 2.12 2012/09/15 13:34:03 kls Exp $
+ * $Id: timers.c 2.13 2012/10/13 14:16:22 kls Exp $
*/
#include "timers.h"
@@ -551,6 +551,8 @@ void cTimer::SetEventFromSchedule(const cSchedules *Schedules)
if (HasFlags(tfVps) && Schedule->Events()->First()->Vps()) {
if (event && Recording())
return; // let the recording end first
+ if (event && (now <= event->EndTime() || Matches(0, true)))
+ return; // stay with the old event until the timer has completely expired
// VPS timers only match if their start time exactly matches the event's VPS time:
for (const cEvent *e = Schedule->Events()->First(); e; e = Schedule->Events()->Next(e)) {
if (e->StartTime() && e->RunningStatus() != SI::RunningStatusNotRunning) { // skip outdated events
@@ -562,8 +564,6 @@ void cTimer::SetEventFromSchedule(const cSchedules *Schedules)
}
}
}
- if (!Event && event && (now <= event->EndTime() || Matches(0, true)))
- return; // stay with the old event until the timer has completely expired
}
else {
// Normal timers match the event they have the most overlap with:
diff --git a/vdr.c b/vdr.c
index 4ce7b269..5494cf7d 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.tvdr.de
*
- * $Id: vdr.c 2.41 2012/10/03 09:58:46 kls Exp $
+ * $Id: vdr.c 2.42 2012/10/13 12:48:56 kls Exp $
*/
#include <getopt.h>
@@ -892,7 +892,7 @@ int main(int argc, char *argv[])
Timer->SetInVpsMargin(InVpsMargin);
}
else if (Timer->Event()) {
- InVpsMargin = Timer->Event()->StartTime() <= Now && Timer->Event()->RunningStatus() == SI::RunningStatusUndefined;
+ InVpsMargin = Timer->Event()->StartTime() <= Now && Now < Timer->Event()->EndTime();
NeedsTransponder = Timer->Event()->StartTime() - Now < VPSLOOKAHEADTIME * 3600 && !Timer->Event()->SeenWithin(VPSUPTODATETIME);
}
else {