mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Improved cSchedule::DropOutdated()
This commit is contained in:
parent
e79df5ee06
commit
2892300d94
28
epg.c
28
epg.c
@ -7,7 +7,7 @@
|
|||||||
* Original version (as used in VDR before 1.3.0) written by
|
* Original version (as used in VDR before 1.3.0) written by
|
||||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||||
*
|
*
|
||||||
* $Id: epg.c 1.45 2005/12/26 15:10:27 kls Exp $
|
* $Id: epg.c 1.46 2005/12/27 10:26:38 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "epg.h"
|
#include "epg.h"
|
||||||
@ -742,18 +742,22 @@ void cSchedule::DropOutdated(time_t SegmentStart, time_t SegmentEnd, uchar Table
|
|||||||
{
|
{
|
||||||
if (SegmentStart > 0 && SegmentEnd > 0) {
|
if (SegmentStart > 0 && SegmentEnd > 0) {
|
||||||
for (cEvent *p = events.First(); p; p = events.Next(p)) {
|
for (cEvent *p = events.First(); p; p = events.Next(p)) {
|
||||||
if (!(p->EndTime() <= SegmentStart || p->StartTime() >= SegmentEnd)) {
|
if (p->EndTime() > SegmentStart) {
|
||||||
// The event overlaps with the given time segment.
|
if (p->StartTime() < SegmentEnd) {
|
||||||
if (p->TableID() > TableID || p->TableID() == TableID && p->Version() != Version) {
|
// The event overlaps with the given time segment.
|
||||||
// The segment overwrites all events from tables with higher ids, and
|
if (p->TableID() > TableID || p->TableID() == TableID && p->Version() != Version) {
|
||||||
// within the same table id all events must have the same version.
|
// The segment overwrites all events from tables with higher ids, and
|
||||||
// We can't delete the event right here because a timer might have
|
// within the same table id all events must have the same version.
|
||||||
// a pointer to it, so let's set its id and start time to 0 to have it
|
// We can't delete the event right here because a timer might have
|
||||||
// "phased out":
|
// a pointer to it, so let's set its id and start time to 0 to have it
|
||||||
UnhashEvent(p);
|
// "phased out":
|
||||||
p->eventID = 0;
|
UnhashEvent(p);
|
||||||
p->startTime = 0;
|
p->eventID = 0;
|
||||||
|
p->startTime = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user