From a2a215d5e12ad35df8d0731dd00b6e41d5dd77fa Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 25 Aug 2002 18:00:00 +0200 Subject: =?UTF-8?q?Version=201.1.8=20-=20Fixed=20replaying=20the=20last=20?= =?UTF-8?q?few=20seconds=20of=20a=20recording.=20-=20Added=20some=20missin?= =?UTF-8?q?g=20#includes=20to=20files=20in=20libdtv=20for=20gcc=203.2=20(t?= =?UTF-8?q?hanks=20to=20J=C3=BCrgen=20=20=20Zimmermann).=20-=20Added=20cDe?= =?UTF-8?q?vice::NewOsd()=20to=20allow=20a=20derived=20cDevice=20class=20t?= =?UTF-8?q?o=20implement=20its=20own=20=20=20OSD=20capabilities=20(thanks?= =?UTF-8?q?=20to=20Andreas=20Schultz).=20-=20Added=20cPalette::AllColors()?= =?UTF-8?q?=20for=20plugins=20that=20need=20to=20get=20the=20color=20entri?= =?UTF-8?q?es=20of=20=20=20a=20cPalette=20(see=20osdbase.h).=20-=20The=20n?= =?UTF-8?q?ew=20SVDRP=20command=20CLRE=20can=20be=20used=20to=20clear=20th?= =?UTF-8?q?e=20entire=20EPG=20data=20(suggested=20=20=20by=20Matthias=20Sc?= =?UTF-8?q?hniedermeyer).=20-=20Fixed=20handling=20one-shot=20timers=20tha?= =?UTF-8?q?t=20were=20already=20recording=20and=20had=20their=20start=20?= =?UTF-8?q?=20=20time=20changed=20into=20the=20future=20(thanks=20to=20Mat?= =?UTF-8?q?thias=20Schniedermeyer=20for=20reporting=20=20=20this=20one).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recording.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'recording.c') diff --git a/recording.c b/recording.c index be91540..c923446 100644 --- a/recording.c +++ b/recording.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.c 1.66 2002/08/11 11:48:11 kls Exp $ + * $Id: recording.c 1.67 2002/08/24 14:09:49 kls Exp $ */ #include "recording.h" @@ -756,6 +756,9 @@ void cRecordingUserCommand::InvokeCommand(const char *State, const char *Recordi // The maximum time to wait before giving up while catching up on an index file: #define MAXINDEXCATCHUP 2 // seconds +// The minimum age of an index file for considering it no longer to be written: +#define MININDEXAGE 10 // seconds + cIndexFile::cIndexFile(const char *FileName, bool Record) :resumeFile(FileName) { @@ -838,6 +841,12 @@ bool cIndexFile::CatchUp(int Index) for (int i = 0; i <= MAXINDEXCATCHUP && (Index < 0 || Index >= last); i++) { struct stat buf; if (fstat(f, &buf) == 0) { + if (time(NULL) - buf.st_mtime > MININDEXAGE) { + // apparently the index file is not being written any more + close(f); + f = -1; + return false; + } int newLast = buf.st_size / sizeof(tIndex) - 1; if (newLast > last) { if (size <= newLast) { @@ -897,7 +906,7 @@ bool cIndexFile::Get(int Index, uchar *FileNumber, int *FileOffset, uchar *Pictu { if (index) { CatchUp(Index); - if (Index >= 0 && Index <= last) { + if (Index >= 0 && Index < last) { *FileNumber = index[Index].number; *FileOffset = index[Index].offset; if (PictureType) -- cgit v1.2.3