summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS3
-rw-r--r--HISTORY1
-rw-r--r--eit.c4
-rw-r--r--epg.c11
-rw-r--r--epg.h4
5 files changed, 19 insertions, 4 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 617e26c9..4c4c629f 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -2907,3 +2907,6 @@ Christian Richter <cr@crichter.net>
Christian Kaiser <christian.kaiser@teleservice.com>
for adding DeleteEvent() to the EPG handler interface
+
+Dirk Heiser <dirk-vdr@gmx.de>
+ for adding SetComponents() to the EPG handler interface
diff --git a/HISTORY b/HISTORY
index 8be42bb7..d81e0632 100644
--- a/HISTORY
+++ b/HISTORY
@@ -7164,3 +7164,4 @@ Video Disk Recorder Revision History
to Rolf Ahrenberg).
- Removed DeleteEvent() from the EPG handler interface (turned out not to be useful)
and replaced it with HandledExternally() (thanks to Jörg Wendel).
+- Added SetComponents() to the EPG handler interface (thanks to Dirk Heiser).
diff --git a/eit.c b/eit.c
index 9840d9a2..12e1d242 100644
--- a/eit.c
+++ b/eit.c
@@ -8,7 +8,7 @@
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
*
- * $Id: eit.c 2.19 2012/06/04 10:10:11 kls Exp $
+ * $Id: eit.c 2.20 2012/06/04 10:26:10 kls Exp $
*/
#include "eit.h"
@@ -285,7 +285,7 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data, bo
delete ExtendedEventDescriptors;
delete ShortEventDescriptor;
- pEvent->SetComponents(Components);
+ EpgHandlers.SetComponents(pEvent, Components);
EpgHandlers.FixEpgBugs(pEvent);
if (LinkChannels)
diff --git a/epg.c b/epg.c
index 48fff364..d47c4a37 100644
--- a/epg.c
+++ b/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 2.16 2012/06/04 10:06:22 kls Exp $
+ * $Id: epg.c 2.17 2012/06/04 10:26:10 kls Exp $
*/
#include "epg.h"
@@ -1421,6 +1421,15 @@ void cEpgHandlers::SetVps(cEvent *Event, time_t Vps)
Event->SetVps(Vps);
}
+void cEpgHandlers::SetComponents(cEvent *Event, cComponents *Components)
+{
+ for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
+ if (eh->SetComponents(Event, Components))
+ return;
+ }
+ Event->SetComponents(Components);
+}
+
void cEpgHandlers::FixEpgBugs(cEvent *Event)
{
for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
diff --git a/epg.h b/epg.h
index 714ac176..98cb7764 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 <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
- * $Id: epg.h 2.12 2012/06/04 10:05:21 kls Exp $
+ * $Id: epg.h 2.13 2012/06/04 10:26:10 kls Exp $
*/
#ifndef __EPG_H
@@ -259,6 +259,7 @@ public:
virtual bool SetStartTime(cEvent *Event, time_t StartTime) { return false; }
virtual bool SetDuration(cEvent *Event, int Duration) { return false; }
virtual bool SetVps(cEvent *Event, time_t Vps) { return false; }
+ virtual bool SetComponents(cEvent *Event, cComponents *Components) { return false; }
virtual bool FixEpgBugs(cEvent *Event) { return false; }
///< Fixes some known problems with EPG data.
virtual bool HandleEvent(cEvent *Event) { return false; }
@@ -285,6 +286,7 @@ public:
void SetStartTime(cEvent *Event, time_t StartTime);
void SetDuration(cEvent *Event, int Duration);
void SetVps(cEvent *Event, time_t Vps);
+ void SetComponents(cEvent *Event, cComponents *Components);
void FixEpgBugs(cEvent *Event);
void HandleEvent(cEvent *Event);
void SortSchedule(cSchedule *Schedule);