From 5a4eb3f1041b8a53826cebe570f9d201f3d35826 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 29 Feb 2004 18:00:00 +0100 Subject: =?UTF-8?q?Version=201.3.5=20-=20Fixed=20reading=20the=20EPG=20pre?= =?UTF-8?q?ferred=20language=20parameter=20from=20'setup.conf'.=20-=20Fixe?= =?UTF-8?q?d=20switching=20to=20a=20visible=20programme=20in=20case=20the?= =?UTF-8?q?=20current=20channel=20has=20neither=20=20=20a=20video=20nor=20?= =?UTF-8?q?an=20audio=20PID.=20-=20Fixed=20editing=20channels=20(SID=20now?= =?UTF-8?q?=20range=20checked)=20and=20creating=20new=20channels=20(NID,?= =?UTF-8?q?=20=20=20TID=20and=20RID=20are=20now=20set=20to=200).=20-=20Fix?= =?UTF-8?q?ed=20transponder=20handling=20to=20make=20it=20work=20with=20sa?= =?UTF-8?q?tellites=20that=20provide=20two=20=20=20transponders=20on=20the?= =?UTF-8?q?=20same=20frequency,=20with=20different=20polarization,=20like?= =?UTF-8?q?=20Hispasat=20=20=20at=20S30.0W=20(thanks=20to=20Thomas=20Bergw?= =?UTF-8?q?inkl=20for=20pointing=20this=20out).=20See=20man=20vdr(5)=20=20?= =?UTF-8?q?=20for=20details=20about=20the=20enhanced=20channel=20ID=20form?= =?UTF-8?q?at.=20-=20Since=20there=20appears=20to=20be=20no=20general=20so?= =?UTF-8?q?lution=20for=20the=20UPT=20error=20yet,=20a=20recording=20=20?= =?UTF-8?q?=20now=20initiates=20an=20"emergency=20exit"=20if=20the=20numbe?= =?UTF-8?q?r=20of=20UPT=20errors=20during=20one=20=20=20recording=20exceed?= =?UTF-8?q?s=2010=20(suggested=20by=20Gregoire=20Favre).=20Since=20the=20U?= =?UTF-8?q?PT=20error=20doesn't=20=20=20happen=20on=20my=20system,=20this?= =?UTF-8?q?=20has=20not=20been=20explicitly=20tested.=20=20=20The=20"preli?= =?UTF-8?q?minary=20fix"=20for=20the=20UPT=20error=20in=20VDR/dvbdevice.c?= =?UTF-8?q?=20has=20been=20disabled=20=20=20by=20default,=20since=20it=20m?= =?UTF-8?q?akes=20channel=20switching=20unpleasently=20slow.=20If=20you=20?= =?UTF-8?q?want=20=20=20to=20have=20that=20workaround=20back,=20you=20can?= =?UTF-8?q?=20uncomment=20the=20line=20=20=20//#define=20WAIT=5FFOR=5FLOCK?= =?UTF-8?q?=5FAFTER=5FTUNING=201=20=20=20in=20VDR/dvbdevice.c.=20-=20Adapt?= =?UTF-8?q?ed=20the=20'sky'=20plugin=20to=20use=20the=20actual=20channel?= =?UTF-8?q?=20IDs,=20and=20to=20fetch=20EPG=20data=20=20=20from=20www.bleb?= =?UTF-8?q?.org.=20-=20Limited=20automatic=20retuning=20to=20devices=20tha?= =?UTF-8?q?t=20actually=20provide=20the=20transponder=20=20=20(necessary?= =?UTF-8?q?=20for=20the=20'sky'=20plugin).=20-=20Fixed=20handling=20receiv?= =?UTF-8?q?ers=20in=20the=20'sky'=20plugin,=20so=20that=20a=20recording=20?= =?UTF-8?q?on=20the=20same=20=20=20channel=20won't=20interrupt=20an=20ongo?= =?UTF-8?q?ing=20Transfer=20Mode.=20-=20Added=20subtable=20ID=20and=20TSDT?= =?UTF-8?q?=20handling=20to=20'libsi'=20(thanks=20to=20Marcel=20Wiesweg).?= =?UTF-8?q?=20-=20Fixed=20some=20Russian=20OSD=20texts=20(thanks=20to=20Vy?= =?UTF-8?q?acheslav=20Dikonov).=20-=20Added=20the=20'running=20status'=20t?= =?UTF-8?q?o=20the=20EPG=20events.=20This=20is=20necessary=20for=20impleme?= =?UTF-8?q?nting=20=20=20the=20VPS=20function=20for=20recording.=20-=20Rem?= =?UTF-8?q?oved=20the=20obsolete=20'present'=20and=20'following'=20handlin?= =?UTF-8?q?g=20from=20the=20EPG=20data.=20-=20The=20EPG=20data=20is=20now?= =?UTF-8?q?=20always=20kept=20sorted=20chronologically=20in=20the=20intern?= =?UTF-8?q?al=20data=20=20=20structures.=20This=20also=20means=20that=20an?= =?UTF-8?q?y=20EPG=20data=20retrieved=20through=20the=20SVRDP=20=20=20comm?= =?UTF-8?q?and=20LSTE=20is=20guaranteed=20to=20be=20sorted=20by=20start=20?= =?UTF-8?q?time.=20-=20Now=20using=20the=20'running=20status'=20in=20the?= =?UTF-8?q?=20channel=20display,=20so=20that=20a=20programme=20=20=20that?= =?UTF-8?q?=20has=20an=20end=20time=20that=20is=20before=20the=20current?= =?UTF-8?q?=20time,=20but=20is=20still=20running,=20=20=20will=20still=20b?= =?UTF-8?q?e=20shown=20in=20the=20display=20(provided=20the=20broadcasters?= =?UTF-8?q?=20handle=20the=20=20=20'running=20status'=20flag=20correctly).?= =?UTF-8?q?=20This=20also=20applies=20to=20programmes=20that=20have=20=20?= =?UTF-8?q?=20a=20start=20time=20that=20is=20in=20the=20future,=20but=20ar?= =?UTF-8?q?e=20already=20running.=20-=20Implemented=20an=20"EPG=20linger?= =?UTF-8?q?=20time",=20which=20can=20be=20set=20to=20have=20older=20EPG=20?= =?UTF-8?q?information=20=20=20still=20displayed=20in=20the=20"Schedule"?= =?UTF-8?q?=20menu=20(thanks=20to=20Jaakko=20Hyv=C3=A4tti).=20-=20Added=20?= =?UTF-8?q?PDCDescriptor=20handling=20to=20'libsi'.=20-=20Implemented=20ha?= =?UTF-8?q?ndling=20the=20VPS=20timestamps=20(aka=20"Programme=20Identific?= =?UTF-8?q?ation=20Label")=20=20=20for=20full=20VPS=20support=20for=20time?= =?UTF-8?q?rs=20(provided=20the=20tv=20stations=20actually=20broadcast=20?= =?UTF-8?q?=20=20this=20information).=20The=20VPS=20time=20is=20displayed?= =?UTF-8?q?=20in=20the=20event=20info=20page=20if=20it=20exists=20=20=20an?= =?UTF-8?q?d=20is=20different=20than=20the=20event's=20start=20time.=20-?= =?UTF-8?q?=20Extended=20the=20SVDRP=20command=20LSTE=20to=20allow=20limit?= =?UTF-8?q?ing=20the=20listed=20data=20to=20a=20given=20=20=20channel,=20t?= =?UTF-8?q?he=20present=20or=20following=20events,=20or=20events=20at=20a?= =?UTF-8?q?=20given=20time=20(thanks=20to=20=20=20Thomas=20Heiligenmann).?= =?UTF-8?q?=20-=20Fixed=20a=20typo=20in=20libsi/si.h=20(thanks=20to=20St?= =?UTF-8?q?=C3=A9phane=20Est=C3=A9-Gracias).=20-=20Timers=20can=20now=20be?= =?UTF-8?q?=20set=20to=20use=20the=20VPS=20information=20to=20control=20re?= =?UTF-8?q?cording=20a=20programme.=20=20=20The=20new=20setup=20options=20?= =?UTF-8?q?"Recording/Use=20VPS"=20and=20"Recording/VPS=20margin",=20as=20?= =?UTF-8?q?well=20as=20=20=20the=20"VPS"=20option=20in=20the=20individual?= =?UTF-8?q?=20timers,=20can=20be=20used=20to=20control=20this=20feature=20?= =?UTF-8?q?=20=20(see=20MANUAL=20for=20details).=20=20=20Note=20that=20thi?= =?UTF-8?q?s=20feature=20will=20certainly=20need=20a=20lot=20of=20testing?= =?UTF-8?q?=20before=20it=20can=20be=20=20=20called=20"safe"!=20-=20The=20?= =?UTF-8?q?"Schedule"=20and=20"What's=20on=20now/next=3F"=20menus=20now=20?= =?UTF-8?q?have=20an=20additional=20column=20=20=20which=20displays=20info?= =?UTF-8?q?rmation=20on=20whether=20there=20is=20a=20timer=20defined=20for?= =?UTF-8?q?=20an=20event,=20=20=20whether=20an=20event=20has=20a=20VPS=20t?= =?UTF-8?q?ime=20that's=20different=20than=20its=20start=20time,=20and=20?= =?UTF-8?q?=20=20whether=20an=20event=20is=20currently=20running=20(see=20?= =?UTF-8?q?MANUAL=20under=20"The=20"Schedule"=20Menu"=20=20=20for=20detail?= =?UTF-8?q?s).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timers.h | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'timers.h') diff --git a/timers.h b/timers.h index b70983c..11fc0b2 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.6 2003/12/13 13:04:21 kls Exp $ + * $Id: timers.h 1.6 2003/12/13 13:04:21 kls Exp kls $ */ #ifndef __TIMERS_H @@ -15,19 +15,21 @@ #include "epg.h" #include "tools.h" -enum eTimerActive { taInactive = 0, - taActive = 1, - taInstant = 2, - taActInst = (taActive | taInstant) - }; +enum eTimerFlags { tfNone = 0x0000, + tfActive = 0x0001, + tfInstant = 0x0002, + tfVps = 0x0004, + tfAll = 0xFFFF, + }; +enum eTimerMatch { tmNone, tmPartial, tmFull }; class cTimer : public cListObject { friend class cMenuEditTimer; private: time_t startTime, stopTime; static char *buffer; - bool recording, pending; - int active; + bool recording, pending, inVpsMargin; + int flags; cChannel *channel; int day; int start; @@ -37,6 +39,7 @@ private: char file[MaxFileName]; time_t firstday; char *summary; + const cEvent *event; public: cTimer(bool Instant = false, bool Pause = false); cTimer(const cEvent *Event); @@ -45,7 +48,8 @@ public: virtual bool operator< (const cListObject &ListObject); bool Recording(void) { return recording; } bool Pending(void) { return pending; } - int Active(void) { return active; } + 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; } @@ -56,6 +60,7 @@ public: time_t FirstDay(void) { return firstday; } const char *Summary(void) { return summary; } const char *ToText(bool UseChannelID = false); + const cEvent *Event(void) { return event; } bool Parse(const char *s); bool Save(FILE *f); bool IsSingleEvent(void); @@ -65,12 +70,18 @@ public: 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 Matches(time_t t = 0, bool Directly = false); + int Matches(const cEvent *Event); time_t StartTime(void); time_t StopTime(void); + void SetEvent(const cEvent *Event); void SetRecording(bool Recording); void SetPending(bool Pending); - void SetActive(int Active); + void SetInVpsMargin(bool InVpsMargin); + void SetFlags(int Flags); + void ClrFlags(int Flags); + void InvFlags(int Flags); + bool HasFlags(int Flags); void Skip(void); void OnOff(void); const char *PrintFirstDay(void); @@ -85,10 +96,12 @@ private: public: cTimer *GetTimer(cTimer *Timer); cTimer *GetMatch(time_t t); + cTimer *GetMatch(const cEvent *Event, int *Match = NULL); cTimer *GetNextActiveTimer(void); int BeingEdited(void) { return beingEdited; } void IncBeingEdited(void) { beingEdited++; } void DecBeingEdited(void) { beingEdited--; } + void SetEvents(void); }; extern cTimers Timers; -- cgit v1.2.3