mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed cleaning up old EPG events in case no epg data file is given
This commit is contained in:
parent
bd6da13a67
commit
b931724b75
@ -2965,6 +2965,7 @@ Johan Andersson <jna@jna.pp.se>
|
||||
Dave Pickles <dave@pickles.me.uk>
|
||||
for adding support for "content identifier descriptor" and "default authority
|
||||
descriptor" to 'libsi'
|
||||
for reporting that old EPG events are not cleaned up in case no epg data file is given
|
||||
|
||||
Holger Dengler <holger.dengler@gmx.de>
|
||||
for making the isnumber() function check the given pointer for NULL
|
||||
|
2
HISTORY
2
HISTORY
@ -7917,3 +7917,5 @@ Video Disk Recorder Revision History
|
||||
character was always skipped).
|
||||
- Fixed wrong initialization of Setup.PositionerSwing (reported by Arthur Konovalov).
|
||||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||||
- Fixed cleaning up old EPG events in case no epg data file is given (reported by
|
||||
Dave Pickles).
|
||||
|
19
epg.c
19
epg.c
@ -7,7 +7,7 @@
|
||||
* Original version (as used in VDR before 1.3.0) written by
|
||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||
*
|
||||
* $Id: epg.c 3.1 2013/08/23 10:46:33 kls Exp $
|
||||
* $Id: epg.c 3.2 2013/08/31 13:21:09 kls Exp $
|
||||
*/
|
||||
|
||||
#include "epg.h"
|
||||
@ -1140,16 +1140,19 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules)
|
||||
class cEpgDataWriter : public cThread {
|
||||
private:
|
||||
cMutex mutex;
|
||||
bool dump;
|
||||
protected:
|
||||
virtual void Action(void);
|
||||
public:
|
||||
cEpgDataWriter(void);
|
||||
void SetDump(bool Dump) { dump = Dump; }
|
||||
void Perform(void);
|
||||
};
|
||||
|
||||
cEpgDataWriter::cEpgDataWriter(void)
|
||||
:cThread("epg data writer", true)
|
||||
{
|
||||
dump = false;
|
||||
}
|
||||
|
||||
void cEpgDataWriter::Action(void)
|
||||
@ -1169,7 +1172,8 @@ void cEpgDataWriter::Perform(void)
|
||||
p->Cleanup(now);
|
||||
}
|
||||
}
|
||||
cSchedules::Dump();
|
||||
if (dump)
|
||||
cSchedules::Dump();
|
||||
}
|
||||
|
||||
static cEpgDataWriter EpgDataWriter;
|
||||
@ -1203,6 +1207,7 @@ void cSchedules::SetEpgDataFileName(const char *FileName)
|
||||
{
|
||||
free(epgDataFileName);
|
||||
epgDataFileName = FileName ? strdup(FileName) : NULL;
|
||||
EpgDataWriter.SetDump(epgDataFileName != NULL);
|
||||
}
|
||||
|
||||
void cSchedules::SetModified(cSchedule *Schedule)
|
||||
@ -1217,12 +1222,10 @@ void cSchedules::Cleanup(bool Force)
|
||||
lastDump = 0;
|
||||
time_t now = time(NULL);
|
||||
if (now - lastDump > EPGDATAWRITEDELTA) {
|
||||
if (epgDataFileName) {
|
||||
if (Force)
|
||||
EpgDataWriter.Perform();
|
||||
else if (!EpgDataWriter.Active())
|
||||
EpgDataWriter.Start();
|
||||
}
|
||||
if (Force)
|
||||
EpgDataWriter.Perform();
|
||||
else if (!EpgDataWriter.Active())
|
||||
EpgDataWriter.Start();
|
||||
lastDump = now;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user