From fef3aa3a7fff0e3b4745532a6b1a157b45cb9643 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 19 Jun 2005 18:00:00 +0200 Subject: Version 1.3.27 - Fixed handling 'page down', which was broken in version 1.3.26 (thanks to Udo Richter). - Modified page scrolling behaviour (based on a suggestion by Patrick Gleichmann). - The new setup option "OSD/Scroll wraps" can be used to activate wrapping around in menu lists (based on a suggestion by Patrick Gleichmann). - Removed the NPTL check at startup, since several users have reported that VDR now runs fine with NPTL. - Fixed handling VPS timers, so that they only record if the event they are assigned to actually has the given VPS time. - Disabled cVideoRepacker in remux.c, because it has caused several problems during recording. If you want to test (and maybe debug) it, activate the line //#define TEST_cVideoRepacker in remux.c. - When drawing a bitmap to the OSD, the existing palette of the target can now be replaced with the new one instead of adding the new entries (thanks to Andreas Regel). --- timers.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'timers.c') diff --git a/timers.c b/timers.c index b6307e0..f690336 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.32 2005/06/11 14:19:58 kls Exp $ + * $Id: timers.c 1.33 2005/06/18 12:49:55 kls Exp $ */ #include "timers.h" @@ -363,6 +363,8 @@ bool cTimer::Matches(time_t t, bool Directly) const if (HasFlags(tfActive)) { if (HasFlags(tfVps) && !Directly && event && event->Vps() && schedule && schedule->PresentSeenWithin(30)) { + if (startTime != event->Vps()) + return false; startTime = event->StartTime(); stopTime = event->EndTime(); return event->IsRunning(true); @@ -384,15 +386,17 @@ int cTimer::Matches(const cEvent *Event, int *Overlap) const if (HasFlags(tfActive) && channel->GetChannelID() == Event->ChannelID()) { bool UseVps = HasFlags(tfVps) && Event->Vps(); Matches(UseVps ? Event->Vps() : Event->StartTime(), true); - int overlap; + int overlap = 0; if (UseVps) overlap = (startTime == Event->Vps()) ? FULLMATCH + (Event->IsRunning() ? 200 : 100) : 0; - else if (startTime <= Event->StartTime() && Event->EndTime() <= stopTime) - overlap = FULLMATCH; - else if (stopTime <= Event->StartTime() || Event->EndTime() <= startTime) - overlap = 0; - else - overlap = (min(stopTime, Event->EndTime()) - max(startTime, Event->StartTime())) * FULLMATCH / max(Event->Duration(), 1); + if (!overlap) { + if (startTime <= Event->StartTime() && Event->EndTime() <= stopTime) + overlap = FULLMATCH; + else if (stopTime <= Event->StartTime() || Event->EndTime() <= startTime) + overlap = 0; + else + overlap = (min(stopTime, Event->EndTime()) - max(startTime, Event->StartTime())) * FULLMATCH / max(Event->Duration(), 1); + } startTime = stopTime = 0; if (Overlap) *Overlap = overlap; -- cgit v1.2.3