diff options
| -rw-r--r-- | HISTORY | 1 | ||||
| -rw-r--r-- | dvbdevice.c | 8 | ||||
| -rw-r--r-- | eitscan.c | 7 | ||||
| -rw-r--r-- | eitscan.h | 4 | ||||
| -rw-r--r-- | vdr.c | 6 | 
5 files changed, 18 insertions, 8 deletions
| @@ -2188,3 +2188,4 @@ Video Disk Recorder Revision History    Ralf Klueber for reporting this one).  - Fixed volume display in case a plugin has its own OSD open (thanks to Marcel    Wiesweg). +- Fixed channel switching in the EPG scanner on single device systems. diff --git a/dvbdevice.c b/dvbdevice.c index 8314ab60..7fc50a71 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 1.59 2003/05/03 14:03:20 kls Exp $ + * $Id: dvbdevice.c 1.60 2003/05/24 13:23:51 kls Exp $   */  #include "dvbdevice.h" @@ -27,6 +27,7 @@ extern "C" {  #include "channels.h"  #include "diseqc.h"  #include "dvbosd.h" +#include "eitscan.h"  #include "player.h"  #include "receiver.h"  #include "status.h" @@ -658,6 +659,11 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView)    StartTransferMode = false;  #endif +  if (EITScanner.Active()) { +     StartTransferMode = false; +     TurnOnLivePIDs = false; +     } +    // Stop SI filtering:    if (siProcessor) { @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: eitscan.c 1.12 2003/03/16 13:29:55 kls Exp $ + * $Id: eitscan.c 1.13 2003/05/24 13:34:59 kls Exp $   */  #include "eitscan.h" @@ -12,6 +12,8 @@  #include "channels.h"  #include "dvbdevice.h" +cEITScanner EITScanner; +  cEITScanner::cEITScanner(void)  {    lastScan = lastActivity = time(NULL); @@ -61,8 +63,9 @@ void cEITScanner::Process(void)                           if (Channel) {                              lastChannel[Device->DeviceNumber()] = Channel->Number();                              if (Channel->Sid() && Device->ProvidesChannel(Channel) && !TransponderScanned(Channel)) { -                               if (Device == cDevice::PrimaryDevice() && !currentChannel) +                               if (Device == cDevice::PrimaryDevice() && !currentChannel) {                                    currentChannel = Device->CurrentChannel(); +                                  }                                 Device->SwitchChannel(Channel, false);                                 break;                                 } @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: eitscan.h 1.2 2003/03/16 13:20:40 kls Exp $ + * $Id: eitscan.h 1.3 2003/05/24 13:21:36 kls Exp $   */  #ifndef __EITSCAN_H @@ -31,4 +31,6 @@ public:    void Process(void);    }; +extern cEITScanner EITScanner; +  #endif //__EITSCAN_H @@ -22,7 +22,7 @@   *   * The project's page is at http://www.cadsoft.de/people/kls/vdr   * - * $Id: vdr.c 1.157 2003/05/24 12:11:43 kls Exp $ + * $Id: vdr.c 1.158 2003/05/24 13:35:13 kls Exp $   */  #include <getopt.h> @@ -430,8 +430,6 @@ int main(int argc, char *argv[])    else       cDevice::PrimaryDevice()->SetVolume(Setup.CurrentVolume, true); -  cEITScanner EITScanner; -    cSIProcessor::Read();    // Signal handlers: @@ -470,7 +468,7 @@ int main(int argc, char *argv[])          // Attach launched player control:          cControl::Attach();          // Make sure we have a visible programme in case device usage has changed: -        if (cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) { +        if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) {             static time_t lastTime = 0;             if (time(NULL) - lastTime > MINCHANNELWAIT) {                if (!Channels.SwitchTo(cDevice::CurrentChannel())) | 
