mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Added IsUpdate() to the EPG handler interface
This commit is contained in:
parent
3f03cfa14d
commit
08ab22f987
@ -2467,6 +2467,7 @@ Ulf Kiener <webmaster@ulf-kiener.de>
|
|||||||
Jörg Wendel <vdr-ml@jwendel.de>
|
Jörg Wendel <vdr-ml@jwendel.de>
|
||||||
for reporting that cPlugin::Active() was called too often
|
for reporting that cPlugin::Active() was called too often
|
||||||
for adding HandledExternally() to the EPG handler interface
|
for adding HandledExternally() to the EPG handler interface
|
||||||
|
for adding IsUpdate() to the EPG handler interface
|
||||||
|
|
||||||
Peter Pinnau <vdr@unterbrecher.de>
|
Peter Pinnau <vdr@unterbrecher.de>
|
||||||
for reporting that 'uint32_t' requires including stdint.h in font.h on some systems
|
for reporting that 'uint32_t' requires including stdint.h in font.h on some systems
|
||||||
|
3
HISTORY
3
HISTORY
@ -7191,7 +7191,7 @@ Video Disk Recorder Revision History
|
|||||||
turn on adding the source character to channel names whenever they are displayed
|
turn on adding the source character to channel names whenever they are displayed
|
||||||
(suggested by Ludi Kaleni).
|
(suggested by Ludi Kaleni).
|
||||||
|
|
||||||
2012-08-21: Version 1.7.30
|
2012-08-25: Version 1.7.30
|
||||||
|
|
||||||
- Fixed sorting recordings in the top level video directory.
|
- Fixed sorting recordings in the top level video directory.
|
||||||
- Fixed handling control characters in SI data in case of UTF-8 encoded strings
|
- Fixed handling control characters in SI data in case of UTF-8 encoded strings
|
||||||
@ -7202,3 +7202,4 @@ Video Disk Recorder Revision History
|
|||||||
dot ('.') are now ignored and will be implicitly removed if the directory contains
|
dot ('.') are now ignored and will be implicitly removed if the directory contains
|
||||||
no other files. This fixes the leftover ".sort" files that were introduced in
|
no other files. This fixes the leftover ".sort" files that were introduced in
|
||||||
version 1.7.29.
|
version 1.7.29.
|
||||||
|
- Added IsUpdate() to the EPG handler interface (thanks to Jörg Wendel).
|
||||||
|
4
eit.c
4
eit.c
@ -8,7 +8,7 @@
|
|||||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
* 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>.
|
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
|
||||||
*
|
*
|
||||||
* $Id: eit.c 2.20 2012/06/04 10:26:10 kls Exp $
|
* $Id: eit.c 2.21 2012/08/25 11:13:00 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "eit.h"
|
#include "eit.h"
|
||||||
@ -74,6 +74,8 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data, bo
|
|||||||
if (!pEvent || handledExternally) {
|
if (!pEvent || handledExternally) {
|
||||||
if (OnlyRunningStatus)
|
if (OnlyRunningStatus)
|
||||||
continue;
|
continue;
|
||||||
|
if (handledExternally && !EpgHandlers.IsUpdate(SiEitEvent.getEventId(), StartTime, Tid, getVersionNumber()))
|
||||||
|
continue;
|
||||||
// If we don't have that event yet, we create a new one.
|
// If we don't have that event yet, we create a new one.
|
||||||
// Otherwise we copy the information into the existing event anyway, because the data might have changed.
|
// Otherwise we copy the information into the existing event anyway, because the data might have changed.
|
||||||
pEvent = newEvent = new cEvent(SiEitEvent.getEventId());
|
pEvent = newEvent = new cEvent(SiEitEvent.getEventId());
|
||||||
|
11
epg.c
11
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 2.17 2012/06/04 10:26:10 kls Exp $
|
* $Id: epg.c 2.18 2012/08/25 11:10:29 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "epg.h"
|
#include "epg.h"
|
||||||
@ -1340,6 +1340,15 @@ bool cEpgHandlers::HandledExternally(const cChannel *Channel)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cEpgHandlers::IsUpdate(tEventID EventID, time_t StartTime, uchar TableID, uchar Version)
|
||||||
|
{
|
||||||
|
for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
|
||||||
|
if (eh->IsUpdate(EventID, StartTime, TableID, Version))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void cEpgHandlers::SetEventID(cEvent *Event, tEventID EventID)
|
void cEpgHandlers::SetEventID(cEvent *Event, tEventID EventID)
|
||||||
{
|
{
|
||||||
for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
|
for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
|
||||||
|
7
epg.h
7
epg.h
@ -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.h 2.13 2012/06/04 10:26:10 kls Exp $
|
* $Id: epg.h 2.14 2012/08/25 11:15:18 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __EPG_H
|
#ifndef __EPG_H
|
||||||
@ -250,6 +250,10 @@ public:
|
|||||||
///< source. Incoming EIT data is processed as usual, but any new EPG event
|
///< source. Incoming EIT data is processed as usual, but any new EPG event
|
||||||
///< will not be added to the respective schedule. It's up to the EPG
|
///< will not be added to the respective schedule. It's up to the EPG
|
||||||
///< handler to take care of this.
|
///< handler to take care of this.
|
||||||
|
virtual bool IsUpdate(tEventID EventID, time_t StartTime, uchar TableID, uchar Version) { return false; }
|
||||||
|
///< VDR can't perform the update check (version, tid) for externally handled events,
|
||||||
|
///< therefore the EPG handlers have to take care of this. Otherwise the parsing of
|
||||||
|
///< non-updates will waste a lot of resources.
|
||||||
virtual bool SetEventID(cEvent *Event, tEventID EventID) { return false; }
|
virtual bool SetEventID(cEvent *Event, tEventID EventID) { return false; }
|
||||||
virtual bool SetTitle(cEvent *Event, const char *Title) { return false; }
|
virtual bool SetTitle(cEvent *Event, const char *Title) { return false; }
|
||||||
virtual bool SetShortText(cEvent *Event, const char *ShortText) { return false; }
|
virtual bool SetShortText(cEvent *Event, const char *ShortText) { return false; }
|
||||||
@ -277,6 +281,7 @@ public:
|
|||||||
bool IgnoreChannel(const cChannel *Channel);
|
bool IgnoreChannel(const cChannel *Channel);
|
||||||
bool HandleEitEvent(cSchedule *Schedule, const SI::EIT::Event *EitEvent, uchar TableID, uchar Version);
|
bool HandleEitEvent(cSchedule *Schedule, const SI::EIT::Event *EitEvent, uchar TableID, uchar Version);
|
||||||
bool HandledExternally(const cChannel *Channel);
|
bool HandledExternally(const cChannel *Channel);
|
||||||
|
bool IsUpdate(tEventID EventID, time_t StartTime, uchar TableID, uchar Version);
|
||||||
void SetEventID(cEvent *Event, tEventID EventID);
|
void SetEventID(cEvent *Event, tEventID EventID);
|
||||||
void SetTitle(cEvent *Event, const char *Title);
|
void SetTitle(cEvent *Event, const char *Title);
|
||||||
void SetShortText(cEvent *Event, const char *ShortText);
|
void SetShortText(cEvent *Event, const char *ShortText);
|
||||||
|
Loading…
Reference in New Issue
Block a user