summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitar Petrovski <dimeptr@gmail.com>2012-06-03 22:24:00 +0200
committerDimitar Petrovski <dimeptr@gmail.com>2012-06-03 22:24:00 +0200
commitf99c11b6335c28204d0e3dbf8ebfd287279d2939 (patch)
tree5230d6afd73b2357af3bac0d6b288d161bba0859
parent1e5c78ae3b461343f87d49210116c20d5203ca7a (diff)
downloadvdr-plugin-eepg-f99c11b6335c28204d0e3dbf8ebfd287279d2939.tar.gz
vdr-plugin-eepg-f99c11b6335c28204d0e3dbf8ebfd287279d2939.tar.bz2
fix wrong conflict resolution
modify the long events dispose logic
-rw-r--r--eepg.c9
-rw-r--r--epghandler.c11
2 files changed, 16 insertions, 4 deletions
diff --git a/eepg.c b/eepg.c
index 3fce100..1361b72 100644
--- a/eepg.c
+++ b/eepg.c
@@ -1368,6 +1368,15 @@ void cFilterEEPG::WriteToSchedule (tChannelID channelID, cSchedules* pSchedules,
}
if (ps && newEvent)
ps->AddEvent (newEvent);
+
+ EquivHandler->updateEquivalent(pSchedules, channelID, Event);
+
+ if (!ps) {
+ //the event is not send to VDR so it has to be deleted.
+ delete Event;
+ Event = NULL;
+ }
+
//newEvent->FixEpgBugs (); causes segfault
}
/* else
diff --git a/epghandler.c b/epghandler.c
index e323ed1..44ee909 100644
--- a/epghandler.c
+++ b/epghandler.c
@@ -34,13 +34,16 @@ bool cEEpgHandler::HandleEitEvent(cSchedule* Schedule,
if (EitEvent->getDurationHour() > _LONG_EVENT_HOURS) {
LogD(4, prep("Event longer than 10h Duration:%d DurationHour:%d StartTimeHour:%d"), EitEvent->getDuration(), EitEvent->getDurationHour(), EitEvent->getStartTimeHour());
const cEvent* exEvent = Schedule->GetEventAround(EitEvent->getStartTime()+EitEvent->getDuration()/3);
- const cEvent* exEvent2 = (const cEvent*)exEvent->Next();
- if (exEvent && exEvent2 && difftime (exEvent2->EndTime(),EitEvent->getStartTime()+EitEvent->getDuration()) <= 0 ) {
- LogD(3, prep("EitEvent overrides existing events '%s', '%s' ... Skipping"), exEvent->Title(), exEvent2->Title());
- return true;
+ if (exEvent) {
+ const cEvent* exEvent2 = Schedule->GetEventAround(EitEvent->getStartTime()+EitEvent->getDuration()/3*2);
+ if (exEvent2 && exEvent != exEvent2) {
+ LogD(2, prep("EitEvent overrides existing events '%s', '%s' ... Skipping"), *exEvent->Title(), *exEvent2->Title());
+ return true;
+ }
}
}
+
return false;
// return true;
}