From ae5ee879d0b2fe661278be9337eeda88fd4c656f Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 13 Mar 2005 13:19:30 +0100 Subject: The running status of a VPS event is now only taken seriously if that event has been seen within the last 30 seconds --- HISTORY | 3 +++ epg.c | 4 ++-- epg.h | 3 ++- timers.c | 4 ++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/HISTORY b/HISTORY index 6fccfcc5..3d6197e7 100644 --- a/HISTORY +++ b/HISTORY @@ -3458,3 +3458,6 @@ Video Disk Recorder Revision History - Fixed cDolbyRepacker to allow recording ProSieben HD broadcasts (thanks to Reinhard Nissl). - Fixed cDvbDevice::SetVideoDisplayFormat() in case of 16:9 (thanks to Marco Schlüßler). +- The running status of a VPS event is now only taken seriously if that event has been + seen within the last 30 seconds - otherwise recording is done as if no VPS was + available. diff --git a/epg.c b/epg.c index df267f63..4020e035 100644 --- a/epg.c +++ b/epg.c @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider and Rolf Hakenes . * - * $Id: epg.c 1.25 2005/02/19 11:35:00 kls Exp $ + * $Id: epg.c 1.26 2005/03/13 13:19:15 kls Exp $ */ #include "epg.h" @@ -663,7 +663,7 @@ const cEvent *cSchedule::GetPresentEvent(bool CheckRunningStatus) const if (!CheckRunningStatus) break; } - if (CheckRunningStatus && time(NULL) - p->Seen() < 30 && p->RunningStatus() >= SI::RunningStatusPausing) + if (CheckRunningStatus && p->SeenWithin(30) && p->RunningStatus() >= SI::RunningStatusPausing) return p; } return pe; diff --git a/epg.h b/epg.h index 88e66029..fc062157 100644 --- a/epg.h +++ b/epg.h @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider and Rolf Hakenes . * - * $Id: epg.h 1.19 2005/01/02 10:44:41 kls Exp $ + * $Id: epg.h 1.20 2005/03/13 13:19:30 kls Exp $ */ #ifndef __EPG_H @@ -79,6 +79,7 @@ public: int Duration(void) const { return duration; } time_t Vps(void) const { return vps; } time_t Seen(void) const { return seen; } + bool SeenWithin(int Seconds) const { return time(NULL) - seen < Seconds; } bool HasTimer(void) const; bool IsRunning(bool OrAboutToStart = false) const; cString GetDateString(void) const; diff --git a/timers.c b/timers.c index bcdb2426..63bff33c 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 1.23 2005/03/13 11:42:59 kls Exp $ + * $Id: timers.c 1.24 2005/03/13 12:53:51 kls Exp $ */ #include "timers.h" @@ -343,7 +343,7 @@ bool cTimer::Matches(time_t t, bool Directly) const firstday = 0; if (HasFlags(tfActive)) { - if (HasFlags(tfVps) && !Directly && event && event->Vps()) { + if (HasFlags(tfVps) && !Directly && event && event->Vps() && event->SeenWithin(30)) { startTime = event->StartTime(); stopTime = event->EndTime(); return event->IsRunning(true); -- cgit v1.2.3