From 6f93a5f7819b3c7030a5b199e502bedd4eb7844c Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 24 Oct 2004 18:00:00 +0200 Subject: =?UTF-8?q?Version=201.3.14=20-=20Fixed=20detecting=20transponder?= =?UTF-8?q?=20lock=20in=20cDvbTuner=20(based=20on=20a=20patch=20from=20Ste?= =?UTF-8?q?fan=20=20=20Meyknecht).=20-=20What=20was=20previously=20marked?= =?UTF-8?q?=20with=20WAIT=5FFOR=5FLOCK=5FAFTER=5FTUNING=20is=20now=20perma?= =?UTF-8?q?nently=20=20=20active=20and=20uses=20a=20cCondVar=20to=20signal?= =?UTF-8?q?=20when=20a=20transponder=20is=20locked.=20-=20Added=20some=20m?= =?UTF-8?q?issing=20'const'=20to=20cChannel.=20-=20Added=20a=20sample=20se?= =?UTF-8?q?tup=20for=20'DisiCon-4=20Single=20Cable=20Network'=20to=20'dise?= =?UTF-8?q?qc.conf'=20=20=20(thanks=20to=20Oliver=20Endriss).=20-=20Fixed?= =?UTF-8?q?=20attaching=20a=20cPlayer=20to=20a=20cDevice,=20so=20that=20'O?= =?UTF-8?q?peration=20not=20permitted'=20=20=20errors=20don't=20occur=20an?= =?UTF-8?q?y=20more=20(thanks=20to=20Marco=20Schl=C3=BC=C3=9Fler).=20-=20F?= =?UTF-8?q?ixed=20a=20case=20where=20the=20resultBuffer=20in=20cRemux=20ra?= =?UTF-8?q?n=20full=20before=20getting=20a=20sync.=20-=20Removed=20the=20u?= =?UTF-8?q?sleep()=20call=20from=20cDvbPlayer::Action()=20to=20make=20VDR?= =?UTF-8?q?=20run=20on=20NPTL=20=20=20systems=20(thanks=20to=20Alfred=20Za?= =?UTF-8?q?strow).=20The=20NPTL=20check=20at=20startup=20has=20also=20been?= =?UTF-8?q?=20=20=20removed.=20-=20Taking=20the=20complete=20size=20of=20a?= =?UTF-8?q?vailable=20data=20into=20account=20when=20deciding=20whether=20?= =?UTF-8?q?=20=20to=20clear=20the=20transfer=20buffer=20to=20avoid=20overf?= =?UTF-8?q?lows=20(thanks=20to=20Reinhard=20Nissl).=20-=20Updated=20Romani?= =?UTF-8?q?an=20language=20texts=20and=20the=20iso8859-2=20fonts=20(thanks?= =?UTF-8?q?=20to=20Lucian=20Muresan).=20-=20Now=20actually=20using=20the?= =?UTF-8?q?=20iso8859-15=20fonts=20(thanks=20to=20Lucian=20Muresan).=20-?= =?UTF-8?q?=20Some=20minor=20code=20cleanups=20(thanks=20to=20Prakash=20K.?= =?UTF-8?q?=20Cheemplavam).=20-=20Fixed=20missing=20cleanup=20at=20program?= =?UTF-8?q?=20exit=20in=20case=20there=20is=20a=20problem=20with=20a=20plu?= =?UTF-8?q?gin=20=20=20(thanks=20to=20Mattias=20Gr=C3=B6nlund=20for=20poin?= =?UTF-8?q?ting=20this=20out).=20-=20Increased=20the=20required=20free=20b?= =?UTF-8?q?uffer=20space=20in=20the=20resultBuffer=20of=20cRemux=20to=20?= =?UTF-8?q?=20=202=20*=20IPACKS=20to=20avoid=20a=20buffer=20overflow=20in?= =?UTF-8?q?=20case=20a=20cTS2PES=20writes=20one=20complete=20=20=20packet?= =?UTF-8?q?=20and=20then=20(within=20processing=20the=20same=20TS=20packet?= =?UTF-8?q?)=20wants=20to=20write=20another=20=20=20small=20packet.=20-=20?= =?UTF-8?q?Removed=20the=20signal=20handler=20and=20WakeUp()=20call=20from?= =?UTF-8?q?=20cThread=20(it=20is=20no=20longer=20=20=20needed).=20-=20Adde?= =?UTF-8?q?d=20some=20checks=20when=20canceling=20a=20thread=20and=20remov?= =?UTF-8?q?ed=20the=20usleep()=20in=20=20=20cThread::Start()=20(suggested?= =?UTF-8?q?=20by=20Ludwig=20Nussel).=20Also=20removed=20'running'=20from?= =?UTF-8?q?=20=20=20cThread=20and=20using=20only=20childTid=20to=20indicat?= =?UTF-8?q?e=20whether=20a=20thread=20is=20actually=20=20=20running.=20-?= =?UTF-8?q?=20Added=20cCondWait::Sleep()=20and=20using=20it=20to=20replace?= =?UTF-8?q?=20all=20usleep()=20calls=20(based=20=20=20on=20a=20suggestion?= =?UTF-8?q?=20by=20Werner=20Fink).=20-=20Only=20assigning=20events=20to=20?= =?UTF-8?q?timers=20if=20the=20related=20schedule=20has=20actually=20been?= =?UTF-8?q?=20=20=20modified.=20-=20When=20searching=20for=20the=20present?= =?UTF-8?q?=20event,=20the=20running=20status=20is=20now=20only=20taken=20?= =?UTF-8?q?=20=20into=20account=20if=20the=20event=20has=20been=20"seen"?= =?UTF-8?q?=20within=20the=20past=2030=20seconds.=20=20=20This=20avoids=20?= =?UTF-8?q?shortly=20seeing=20the=20wrong=20events=20in=20the=20channel=20?= =?UTF-8?q?display=20when=20=20=20switching=20to=20a=20channel=20that=20ha?= =?UTF-8?q?sn't=20been=20tuned=20to=20in=20a=20while.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epg.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'epg.h') diff --git a/epg.h b/epg.h index 9a6547e..6c31049 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.15 2004/03/14 13:25:39 kls Exp $ + * $Id: epg.h 1.16 2004/10/24 13:56:00 kls Exp $ */ #ifndef __EPG_H @@ -36,6 +36,7 @@ private: time_t startTime; // Start time of this event int duration; // Duration of this event in seconds time_t vps; // Video Programming Service timestamp (VPS, aka "Programme Identification Label", PIL) + time_t seen; // When this event was last seen in the data stream public: cEvent(tChannelID ChannelID, u_int16_t EventID); ~cEvent(); @@ -52,6 +53,7 @@ public: time_t EndTime(void) const { return startTime + duration; } int Duration(void) const { return duration; } time_t Vps(void) const { return vps; } + time_t Seen(void) const { return seen; } bool HasTimer(void) const; bool IsRunning(bool OrAboutToStart = false) const; const char *GetDateString(void) const; @@ -68,6 +70,7 @@ public: void SetStartTime(time_t StartTime); void SetDuration(int Duration); void SetVps(time_t Vps); + void SetSeen(void); void Dump(FILE *f, const char *Prefix = "") const; static bool Read(FILE *f, cSchedule *Schedule); void FixEpgBugs(void); @@ -80,9 +83,12 @@ private: tChannelID channelID; cList events; bool hasRunning; + time_t modified; public: cSchedule(tChannelID ChannelID); tChannelID ChannelID(void) const { return channelID; } + time_t Modified(void) const { return modified; } + void SetModified(void) { modified = time(NULL); } void SetRunningStatus(cEvent *Event, int RunningStatus, cChannel *Channel = NULL); void ClrRunningStatus(cChannel *Channel = NULL); void ResetVersions(void); @@ -117,12 +123,15 @@ private: static const char *epgDataFileName; static time_t lastCleanup; static time_t lastDump; + static time_t modified; public: static void SetEpgDataFileName(const char *FileName); static const cSchedules *Schedules(cSchedulesLock &SchedulesLock); ///< Caller must provide a cSchedulesLock which has to survive the entire ///< time the returned cSchedules is accessed. Once the cSchedules is no ///< longer used, the cSchedulesLock must be destroyed. + static time_t Modified(void) { return modified; } + static void SetModified(cSchedule *Schedule); static void Cleanup(bool Force = false); static void ResetVersions(void); static bool ClearAll(void); -- cgit v1.2.3