diff options
| author | Klaus Schmidinger <vdr@tvdr.de> | 2011-08-26 13:03:14 +0200 | 
|---|---|---|
| committer | Klaus Schmidinger <vdr@tvdr.de> | 2011-08-26 13:03:14 +0200 | 
| commit | 6b5e9f56ed5315e7c1afa17940968695fabf3ba0 (patch) | |
| tree | 89ef6286bff12e1c7cd289c1d082119e121c601c | |
| parent | 2d3cb812fbcf038cf14a792c375fd866b6420a10 (diff) | |
| download | vdr-6b5e9f56ed5315e7c1afa17940968695fabf3ba0.tar.gz vdr-6b5e9f56ed5315e7c1afa17940968695fabf3ba0.tar.bz2 | |
Implemented cDevice::ProvidesEIT()
| -rw-r--r-- | CONTRIBUTORS | 1 | ||||
| -rw-r--r-- | HISTORY | 5 | ||||
| -rw-r--r-- | device.c | 7 | ||||
| -rw-r--r-- | device.h | 6 | ||||
| -rw-r--r-- | dvbdevice.c | 7 | ||||
| -rw-r--r-- | dvbdevice.h | 3 | ||||
| -rw-r--r-- | eitscan.c | 4 | 
7 files changed, 27 insertions, 6 deletions
| diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e229718c..b0f6406e 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1113,6 +1113,7 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>   for reporting that DELETENULL() was not thread safe   for reporting a crash in subtitle display, related to cOsd::Osds   for a patch that stores the subtitle PIDs in the channels.conf file + for suggesting to implement a way for devices to tell whether they can provide EIT data  Ralf Klueber <ralf.klueber@vodafone.com>   for reporting a bug in cutting a recording if there is only a single editing mark @@ -6720,3 +6720,8 @@ Video Disk Recorder Revision History    Barszus).  - The subtitle PIDs are now stored in the channels.conf file as an extension to the    TPID field (thanks to Rolf Ahrenberg). +- The new function cDevice::ProvidesEIT() is used to determine whether a device can +  provide EIT data and will thus be used in cEITScanner::Process() to receive EIT +  data from the channels it can receive (suggested by Rolf Ahrenberg). Note that by +  default it is assumed that a device can't provide EIT data, and only the builtin +  cDvbDevice returns true from this function. @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: device.c 2.41 2011/06/02 13:14:16 kls Exp $ + * $Id: device.c 2.42 2011/08/26 12:56:00 kls Exp $   */  #include "device.h" @@ -613,6 +613,11 @@ bool cDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Needs    return false;  } +bool cDevice::ProvidesEIT(void) const +{ +  return false; +} +  int cDevice::NumProvidedSystems(void) const  {    return 0; @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: device.h 2.26 2011/06/02 13:15:31 kls Exp $ + * $Id: device.h 2.27 2011/08/26 12:52:29 kls Exp $   */  #ifndef __DEVICE_H @@ -247,6 +247,10 @@ public:           ///< function itself actually returns true.           ///< The default implementation always returns false, so a derived cDevice           ///< class that can provide channels must implement this function. +  virtual bool ProvidesEIT(void) const; +         ///< Returns true if this device provides EIT data and thus wants to be tuned +         ///< to the channels it can receive regularly to update the data. +         ///< The default implementation returns false.    virtual int NumProvidedSystems(void) const;           ///< Returns the number of individual "delivery systems" this device provides.           ///< The default implementation returns 0, so any derived class that can diff --git a/dvbdevice.c b/dvbdevice.c index b0750dd4..a97f2749 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: dvbdevice.c 2.42 2011/06/11 14:34:24 kls Exp $ + * $Id: dvbdevice.c 2.43 2011/08/26 12:57:34 kls Exp $   */  #include "dvbdevice.h" @@ -1081,6 +1081,11 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne    return result;  } +bool cDvbDevice::ProvidesEIT(void) const +{ +  return dvbTuner != NULL; +} +  int cDvbDevice::NumProvidedSystems(void) const  {    return numProvidedSystems; diff --git a/dvbdevice.h b/dvbdevice.h index 0962548c..e1842b7d 100644 --- a/dvbdevice.h +++ b/dvbdevice.h @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: dvbdevice.h 2.15 2011/06/02 13:20:05 kls Exp $ + * $Id: dvbdevice.h 2.16 2011/08/26 12:55:45 kls Exp $   */  #ifndef __DVBDEVICE_H @@ -140,6 +140,7 @@ public:    virtual bool ProvidesSource(int Source) const;    virtual bool ProvidesTransponder(const cChannel *Channel) const;    virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL) const; +  virtual bool ProvidesEIT(void) const;    virtual int NumProvidedSystems(void) const;    virtual int SignalStrength(void) const;    virtual int SignalQuality(void) const; @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: eitscan.c 2.2 2011/08/12 14:18:04 kls Exp $ + * $Id: eitscan.c 2.3 2011/08/26 12:58:49 kls Exp $   */  #include "eitscan.h" @@ -146,7 +146,7 @@ void cEITScanner::Process(void)                 if (Device) {                    for (cScanData *ScanData = scanList->First(); ScanData; ScanData = scanList->Next(ScanData)) {                        const cChannel *Channel = ScanData->GetChannel(); -                      if (Channel) { +                      if (Channel && Device->ProvidesEIT()) {                           if (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= CA_ENCRYPTED_MIN) {                              if (Device->ProvidesTransponder(Channel)) {                                 if (!Device->Receiving()) { | 
