From 782b517c51eaa6d2641fe9b6801afdad50be8586 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 20 Mar 2005 18:00:00 +0100 Subject: =?UTF-8?q?Version=201.3.23=20-=20The=20setup=20option=20"DVB/Vide?= =?UTF-8?q?o=20display=20format"=20is=20now=20only=20available=20if=20"Vid?= =?UTF-8?q?eo=20format"=20=20=20is=20set=20to=20"4:3"=20(suggested=20by=20?= =?UTF-8?q?Mikko=20Salo).=20-=20Updated=20the=20Russian=20OSD=20texts=20(t?= =?UTF-8?q?hanks=20to=20Vyacheslav=20Dikonov).=20-=20Dropped=20CA=20suppor?= =?UTF-8?q?t=20for=20the=20old=20'-icam'=20firmware.=20-=20Updated=20the?= =?UTF-8?q?=20Finnish=20OSD=20texts=20(thanks=20to=20Rolf=20Ahrenberg).=20?= =?UTF-8?q?-=20Updated=20the=20Swedish=20OSD=20texts=20(thanks=20to=20Toma?= =?UTF-8?q?s=20Prybil).=20-=20Fixed=20a=20few=20French=20OSD=20texts=20tha?= =?UTF-8?q?t=20were=20in=20the=20wrong=20place.=20-=20Improved=20matching?= =?UTF-8?q?=20timers=20to=20EPG=20events,=20especially=20in=20case=20there?= =?UTF-8?q?=20are=20several=20events=20=20=20with=20the=20same=20VPS=20tim?= =?UTF-8?q?e.=20-=20Fixed=20cDolbyRepacker=20to=20allow=20recording=20ProS?= =?UTF-8?q?ieben=20HD=20broadcasts=20(thanks=20to=20Reinhard=20=20=20Nissl?= =?UTF-8?q?).=20-=20Fixed=20cDvbDevice::SetVideoDisplayFormat()=20in=20cas?= =?UTF-8?q?e=20of=2016:9=20(thanks=20to=20Marco=20Schl=C3=BC=C3=9Fler).=20?= =?UTF-8?q?-=20The=20running=20status=20of=20a=20VPS=20event=20is=20now=20?= =?UTF-8?q?only=20taken=20seriously=20if=20that=20event=20has=20been=20=20?= =?UTF-8?q?=20seen=20within=20the=20last=2030=20seconds=20-=20otherwise=20?= =?UTF-8?q?recording=20is=20done=20as=20if=20no=20VPS=20was=20=20=20availa?= =?UTF-8?q?ble.=20-=20The=20day=20of=20a=20timer=20is=20now=20stored=20as?= =?UTF-8?q?=20a=20full=20date=20in=20ISO=20notation=20("YYYY-MM-DD")=20in?= =?UTF-8?q?=20=20=20'timers.conf'=20and=20for=20the=20result=20of=20the=20?= =?UTF-8?q?SVDRP=20command=20LSTT=20(based=20in=20parts=20on=20a=20=20=20p?= =?UTF-8?q?atch=20by=20Roman=20Krenick=C3=BD).=20-=20Some=20fixes=20to=20a?= =?UTF-8?q?void=20compiler=20warnings=20in=20gcc=204.0=20(thanks=20to=20Vi?= =?UTF-8?q?lle=20Skytt=C3=A4=20for=20reporting=20=20=20these).=20-=20Singl?= =?UTF-8?q?e=20shot=20timers=20are=20now=20reliably=20deleted=20when=20the?= =?UTF-8?q?y=20have=20expired.=20-=20Fixed=20setting=20the=20colored=20but?= =?UTF-8?q?ton=20help=20after=20deleting=20a=20recording=20in=20case=20the?= =?UTF-8?q?=20next=20=20=20menu=20entry=20is=20a=20directory=20(thanks=20t?= =?UTF-8?q?o=20Steffen=20Beyer).=20-=20Improved=20falling=20back=20to=20no?= =?UTF-8?q?rmal=20recording=20if=20the=20VPS=20data=20hasn't=20been=20seen?= =?UTF-8?q?=20for=20more=20=20=20than=2030=20seconds.=20-=20Added=20a=20mi?= =?UTF-8?q?ssing=20cMutexLock=20to=20cRemote::HasKeys()=20(thanks=20to=20W?= =?UTF-8?q?olfgang=20Rohdewald).=20-=20All=20log=20entries=20regarding=20t?= =?UTF-8?q?imers=20now=20contain=20a=20short=20description=20of=20the=20ti?= =?UTF-8?q?mer.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timers.h | 50 +++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'timers.h') diff --git a/timers.h b/timers.h index 7dcaf16..ae83f5b 100644 --- a/timers.h +++ b/timers.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.h 1.13 2004/12/26 12:21:29 kls Exp $ + * $Id: timers.h 1.18 2005/03/20 14:47:45 kls Exp $ */ #ifndef __TIMERS_H @@ -30,14 +30,15 @@ private: bool recording, pending, inVpsMargin; int flags; cChannel *channel; - int day; + mutable time_t day; ///< midnight of the day this timer shall hit, or of the first day it shall hit in case of a repeating timer + int weekdays; ///< bitmask, lowest bits: SSFTWTM (the 'M' is the LSB) int start; int stop; int priority; int lifetime; char file[MaxFileName]; - mutable time_t firstday; char *summary; + const cSchedule *schedule; const cEvent *event; public: cTimer(bool Instant = false, bool Pause = false); @@ -45,36 +46,38 @@ public: virtual ~cTimer(); cTimer& operator= (const cTimer &Timer); virtual int Compare(const cListObject &ListObject) const; - bool Recording(void) { return recording; } - bool Pending(void) { return pending; } - bool InVpsMargin(void) { return inVpsMargin; } - int Flags(void) { return flags; } - const cChannel *Channel(void) { return channel; } - int Day(void) { return day; } - int Start(void) { return start; } - int Stop(void) { return stop; } - int Priority(void) { return priority; } - int Lifetime(void) { return lifetime; } - const char *File(void) { return file; } - time_t FirstDay(void) { return firstday; } - const char *Summary(void) { return summary; } + bool Recording(void) const { return recording; } + bool Pending(void) const { return pending; } + bool InVpsMargin(void) const { return inVpsMargin; } + int Flags(void) const { return flags; } + const cChannel *Channel(void) const { return channel; } + time_t Day(void) const { return day; } + int WeekDays(void) const { return weekdays; } + int Start(void) const { return start; } + int Stop(void) const { return stop; } + int Priority(void) const { return priority; } + int Lifetime(void) const { return lifetime; } + const char *File(void) const { return file; } + time_t FirstDay(void) const { return weekdays ? day : 0; } + const char *Summary(void) const { return summary; } cString ToText(bool UseChannelID = false); - const cEvent *Event(void) { return event; } + cString ToDescr(void) const; + const cEvent *Event(void) const { return event; } bool Parse(const char *s); bool Save(FILE *f); bool IsSingleEvent(void) const; static int GetMDay(time_t t); static int GetWDay(time_t t); - static int GetWDayFromMDay(int MDay); bool DayMatches(time_t t) const; static time_t IncDay(time_t t, int Days); static time_t SetTime(time_t t, int SecondsFromMidnight); char *SetFile(const char *File); bool Matches(time_t t = 0, bool Directly = false) const; - int Matches(const cEvent *Event); + int Matches(const cEvent *Event, int *Overlap = NULL) const; + bool Expired(void) const; time_t StartTime(void) const; time_t StopTime(void) const; - void SetEvent(const cEvent *Event); + void SetEvent(const cSchedule *Schedule, const cEvent *Event); void SetRecording(bool Recording); void SetPending(bool Pending); void SetInVpsMargin(bool InVpsMargin); @@ -84,10 +87,10 @@ public: bool HasFlags(int Flags) const; void Skip(void); void OnOff(void); - cString PrintFirstDay(void); + cString PrintFirstDay(void) const; static int TimeToInt(int t); - static int ParseDay(const char *s, time_t *FirstDay = NULL); - static cString PrintDay(int d, time_t FirstDay = 0); + static bool ParseDay(const char *s, time_t &Day, int &WeekDays); + static cString PrintDay(time_t Day, int WeekDays); }; class cTimers : public cConfig { @@ -109,6 +112,7 @@ public: ///< Returns true if any of the timers have been modified. ///< Calling this function resets the 'modified' flag to false. void SetEvents(void); + void DeleteExpired(void); }; extern cTimers Timers; -- cgit v1.2.3