diff options
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | menu.c | 18 | ||||
-rw-r--r-- | svdrp.c | 12 | ||||
-rw-r--r-- | timers.c | 25 | ||||
-rw-r--r-- | timers.h | 43 | ||||
-rw-r--r-- | tools.c | 4 | ||||
-rw-r--r-- | tools.h | 4 |
7 files changed, 57 insertions, 50 deletions
@@ -3472,3 +3472,4 @@ Video Disk Recorder Revision History - Improved falling back to normal recording if the VPS data hasn't been seen for more than 30 seconds. - Added a missing cMutexLock to cRemote::HasKeys() (thanks to Wolfgang Rohdewald). +- All log entries regarding timers now contain a short description of the timer. @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.347 2005/03/20 11:26:00 kls Exp $ + * $Id: menu.c 1.348 2005/03/20 15:14:51 kls Exp $ */ #include "menu.h" @@ -690,7 +690,7 @@ eOSState cMenuEditTimer::ProcessKey(eKeys Key) Timers.Add(timer); timer->Matches(); Timers.SetModified(); - isyslog("timer %d %s (%s)", timer->Index() + 1, addIfConfirmed ? "added" : "modified", timer->HasFlags(tfActive) ? "active" : "inactive"); + isyslog("timer %s %s (%s)", *timer->ToDescr(), addIfConfirmed ? "added" : "modified", timer->HasFlags(tfActive) ? "active" : "inactive"); addIfConfirmed = false; } } @@ -809,9 +809,9 @@ eOSState cMenuTimers::OnOff(void) RefreshCurrent(); DisplayCurrent(true); if (timer->FirstDay()) - isyslog("timer %d first day set to %s", timer->Index() + 1, *timer->PrintFirstDay()); + isyslog("timer %s first day set to %s", *timer->ToDescr(), *timer->PrintFirstDay()); else - isyslog("timer %d %sactivated", timer->Index() + 1, timer->HasFlags(tfActive) ? "" : "de"); + isyslog("timer %s %sactivated", *timer->ToDescr(), timer->HasFlags(tfActive) ? "" : "de"); Timers.SetModified(); } return osContinue; @@ -821,7 +821,7 @@ eOSState cMenuTimers::Edit(void) { if (HasSubMenu() || Count() == 0) return osContinue; - isyslog("editing timer %d", CurrentTimer()->Index() + 1); + isyslog("editing timer %s", *CurrentTimer()->ToDescr()); return AddSubMenu(new cMenuEditTimer(CurrentTimer())); } @@ -846,12 +846,11 @@ eOSState cMenuTimers::Delete(void) else return osContinue; } - int Index = ti->Index(); + isyslog("deleting timer %s", *ti->ToDescr()); Timers.Del(ti); cOsdMenu::Del(Current()); Timers.SetModified(); Display(); - isyslog("timer %d deleted", Index + 1); } } return osContinue; @@ -1617,9 +1616,8 @@ eOSState cMenuRecordings::Delete(void) timer->Skip(); cRecordControls::Process(time(NULL)); if (timer->IsSingleEvent()) { - int Index = timer->Index(); + isyslog("deleting timer %s", *timer->ToDescr()); Timers.Del(timer); - isyslog("timer %d deleted", Index + 1); } Timers.SetModified(); } @@ -3172,7 +3170,7 @@ void cRecordControls::Stop(const char *InstantId) cTimer *timer = RecordControls[i]->Timer(); RecordControls[i]->Stop(); if (timer) { - isyslog("deleting timer %d", timer->Index() + 1); + isyslog("deleting timer %s", *timer->ToDescr()); Timers.Del(timer); Timers.SetModified(); } @@ -10,7 +10,7 @@ * and interact with the Video Disk Recorder - or write a full featured * graphical interface that sits on top of an SVDRP connection. * - * $Id: svdrp.c 1.68 2005/03/19 16:05:33 kls Exp $ + * $Id: svdrp.c 1.69 2005/03/20 15:04:00 kls Exp $ */ #include "svdrp.h" @@ -529,9 +529,9 @@ void cSVDRP::CmdDELT(const char *Option) cTimer *timer = Timers.Get(strtol(Option, NULL, 10) - 1); if (timer) { if (!timer->Recording()) { + isyslog("deleting timer %s", *timer->ToDescr()); Timers.Del(timer); Timers.SetModified(); - isyslog("timer %s deleted", Option); Reply(250, "Timer \"%s\" deleted", Option); } else @@ -919,7 +919,7 @@ void cSVDRP::CmdMODT(const char *Option) } *timer = t; Timers.SetModified(); - isyslog("timer %d modified (%s)", timer->Index() + 1, timer->HasFlags(tfActive) ? "active" : "inactive"); + isyslog("timer %s modified (%s)", *timer->ToDescr(), timer->HasFlags(tfActive) ? "active" : "inactive"); Reply(250, "%d %s", timer->Index() + 1, *timer->ToText()); } else @@ -977,7 +977,7 @@ void cSVDRP::CmdNEWT(const char *Option) if (!t) { Timers.Add(timer); Timers.SetModified(); - isyslog("timer %d added", timer->Index() + 1); + isyslog("timer %s added", *timer->ToDescr()); Reply(250, "%d %s", timer->Index() + 1, *timer->ToText()); return; } @@ -1051,11 +1051,11 @@ void cSVDRP::CmdUPDT(const char *Option) t->Parse(Option); delete timer; timer = t; - isyslog("timer %d updated", timer->Index() + 1); + isyslog("timer %s updated", *timer->ToDescr()); } else { Timers.Add(timer); - isyslog("timer %d added", timer->Index() + 1); + isyslog("timer %s added", *timer->ToDescr()); } Timers.SetModified(); Reply(250, "%d %s", timer->Index() + 1, *timer->ToText()); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.c 1.29 2005/03/20 14:18:04 kls Exp $ + * $Id: timers.c 1.30 2005/03/20 14:50:37 kls Exp $ */ #include "timers.h" @@ -115,6 +115,13 @@ cString cTimer::ToText(bool UseChannelID) return cString(buffer, true); } +cString cTimer::ToDescr(void) const +{ + char *buffer; + asprintf(&buffer, "%d (%d %04d-%04d '%s')", Index() + 1, Channel()->Number(), start, stop, file); + return cString(buffer, true); +} + int cTimer::TimeToInt(int t) { return (t / 100 * 60 + t % 100) * 60; @@ -203,7 +210,7 @@ cString cTimer::PrintDay(time_t Day, int WeekDays) return buffer; } -cString cTimer::PrintFirstDay(void) +cString cTimer::PrintFirstDay(void) const { if (weekdays) { cString s = PrintDay(day, weekdays); @@ -367,7 +374,7 @@ bool cTimer::Matches(time_t t, bool Directly) const #define FULLMATCH 1000 -int cTimer::Matches(const cEvent *Event, int *Overlap) +int cTimer::Matches(const cEvent *Event, int *Overlap) const { // Overlap is the percentage of the Event's duration that is covered by // this timer (based on FULLMATCH for finer granularity than just 100). @@ -396,7 +403,7 @@ int cTimer::Matches(const cEvent *Event, int *Overlap) #define EXPIRELATENCY 60 // seconds (just in case there's a short glitch in the VPS signal) -bool cTimer::Expired(void) +bool cTimer::Expired(void) const { return IsSingleEvent() && !Recording() && StopTime() + EXPIRELATENCY <= time(NULL); } @@ -422,10 +429,10 @@ void cTimer::SetEvent(const cSchedule *Schedule, const cEvent *Event) char vpsbuf[64] = ""; if (Event->Vps()) sprintf(vpsbuf, "(VPS: %s) ", *Event->GetVpsString()); - isyslog("timer %d (%d %04d-%04d '%s') set to event %s %s-%s %s'%s'", Index() + 1, Channel()->Number(), start, stop, file, *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString(), vpsbuf, Event->Title()); + isyslog("timer %s set to event %s %s-%s %s'%s'", *ToDescr(), *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString(), vpsbuf, Event->Title()); } else - isyslog("timer %d (%d %04d-%04d '%s') set to no event", Index() + 1, Channel()->Number(), start, stop, file); + isyslog("timer %s set to no event", *ToDescr()); schedule = Event ? Schedule : NULL; event = Event; } @@ -434,7 +441,7 @@ void cTimer::SetEvent(const cSchedule *Schedule, const cEvent *Event) void cTimer::SetRecording(bool Recording) { recording = Recording; - isyslog("timer %d (%d %04d-%04d '%s') %s", Index() + 1, Channel()->Number(), start, stop, file, recording ? "start" : "stop"); + isyslog("timer %s %s", *ToDescr(), recording ? "start" : "stop"); } void cTimer::SetPending(bool Pending) @@ -445,7 +452,7 @@ void cTimer::SetPending(bool Pending) void cTimer::SetInVpsMargin(bool InVpsMargin) { if (InVpsMargin && !inVpsMargin) - isyslog("timer %d (%d %04d-%04d '%s') entered VPS margin", Index() + 1, Channel()->Number(), start, stop, file); + isyslog("timer %s entered VPS margin", *ToDescr()); inVpsMargin = InVpsMargin; } @@ -627,7 +634,7 @@ void cTimers::DeleteExpired(void) while (ti) { cTimer *next = Next(ti); if (ti->Expired()) { - isyslog("deleting timer %d", ti->Index() + 1); + isyslog("deleting timer %s", *ti->ToDescr()); Del(ti); SetModified(); } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.h 1.17 2005/03/20 12:36:25 kls Exp $ + * $Id: timers.h 1.18 2005/03/20 14:47:45 kls Exp $ */ #ifndef __TIMERS_H @@ -30,8 +30,8 @@ private: bool recording, pending, inVpsMargin; int flags; cChannel *channel; - 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) + 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; @@ -46,22 +46,23 @@ 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; } - time_t Day(void) { return day; } - int WeekDays(void) { return weekdays; } - 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 weekdays ? day : 0; } - 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; @@ -72,8 +73,8 @@ public: 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 *Overlap = NULL); - bool Expired(void); + 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 cSchedule *Schedule, const cEvent *Event); @@ -86,7 +87,7 @@ 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 bool ParseDay(const char *s, time_t &Day, int &WeekDays); static cString PrintDay(time_t Day, int WeekDays); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.c 1.90 2005/02/19 13:43:03 kls Exp $ + * $Id: tools.c 1.91 2005/03/20 14:44:33 kls Exp $ */ #include "tools.h" @@ -896,7 +896,7 @@ void cListObject::Unlink(void) next = prev = NULL; } -int cListObject::Index(void) +int cListObject::Index(void) const { cListObject *p = prev; int i = 0; @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.h 1.67 2005/02/12 10:17:14 kls Exp $ + * $Id: tools.h 1.68 2005/03/20 14:44:24 kls Exp $ */ #ifndef __TOOLS_H @@ -202,7 +202,7 @@ public: void Append(cListObject *Object); void Insert(cListObject *Object); void Unlink(void); - int Index(void); + int Index(void) const; cListObject *Prev(void) const { return prev; } cListObject *Next(void) const { return next; } }; |