Fixed the EPG scanner, which broke 'Transfer Mode' as soon as it kicked in

This commit is contained in:
Klaus Schmidinger 2002-11-01 11:11:20 +01:00
parent c1a5a7d50c
commit 7233a63680
5 changed files with 11 additions and 7 deletions

View File

@ -428,6 +428,8 @@ Oliver Endriss <o.endriss@gmx.de>
pressing buttons of those that have already been learned pressing buttons of those that have already been learned
for making the remote control learn procedure accept key presses only from the for making the remote control learn procedure accept key presses only from the
current remote control current remote control
for reporting a bug in the EPG scanner, which broke 'Transfer Mode' as soon as
it kicked in
Reinhard Walter Buchner <rw.buchner@freenet.de> Reinhard Walter Buchner <rw.buchner@freenet.de>
for adding some satellites to 'sources.conf' for adding some satellites to 'sources.conf'

View File

@ -1679,3 +1679,5 @@ Video Disk Recorder Revision History
- Adjusted the INSTALL file to the 1.1.x version. - Adjusted the INSTALL file to the 1.1.x version.
- Only accepting key presses from the current remote control when learning (thanks to - Only accepting key presses from the current remote control when learning (thanks to
Oliver Endriss). Oliver Endriss).
- Fixed the EPG scanner, which broke 'Transfer Mode' as soon as it kicked in
(thanks to Oliver Endriss for reporting this one).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.c 1.32 2002/10/26 11:43:52 kls Exp $ * $Id: device.c 1.33 2002/11/01 11:08:57 kls Exp $
*/ */
#include "device.h" #include "device.h"
@ -608,10 +608,10 @@ int cDevice::ProvidesCa(int Ca) const
return result ? result + others : 0; return result ? result + others : 0;
} }
bool cDevice::Receiving(void) const bool cDevice::Receiving(bool CheckAny) const
{ {
for (int i = 0; i < MAXRECEIVERS; i++) { for (int i = 0; i < MAXRECEIVERS; i++) {
if (receiver[i] && receiver[i]->priority >= 0) // cReceiver with priority < 0 doesn't count if (receiver[i] && (CheckAny || receiver[i]->priority >= 0)) // cReceiver with priority < 0 doesn't count
return true; return true;
} }
return false; return false;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.h 1.25 2002/10/26 11:33:42 kls Exp $ * $Id: device.h 1.26 2002/11/01 11:03:56 kls Exp $
*/ */
#ifndef __DEVICE_H #ifndef __DEVICE_H
@ -347,7 +347,7 @@ protected:
public: public:
int Ca(void) const; int Ca(void) const;
// Returns the ca of the current receiving session(s). // Returns the ca of the current receiving session(s).
bool Receiving(void) const; bool Receiving(bool CheckAny = false) const;
// Returns true if we are currently receiving. // Returns true if we are currently receiving.
bool AttachReceiver(cReceiver *Receiver); bool AttachReceiver(cReceiver *Receiver);
// Attaches the given receiver to this device. // Attaches the given receiver to this device.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: eitscan.c 1.9 2002/10/19 11:48:02 kls Exp $ * $Id: eitscan.c 1.10 2002/11/01 11:04:49 kls Exp $
*/ */
#include "eitscan.h" #include "eitscan.h"
@ -55,7 +55,7 @@ void cEITScanner::Process(void)
cDevice *Device = cDevice::GetDevice(i); cDevice *Device = cDevice::GetDevice(i);
if (Device && Device->CardIndex() < MAXDVBDEVICES) { if (Device && Device->CardIndex() < MAXDVBDEVICES) {
if (Device != cDevice::PrimaryDevice() || (cDevice::NumDevices() == 1 && Setup.EPGScanTimeout && now - lastActivity > Setup.EPGScanTimeout * 3600)) { if (Device != cDevice::PrimaryDevice() || (cDevice::NumDevices() == 1 && Setup.EPGScanTimeout && now - lastActivity > Setup.EPGScanTimeout * 3600)) {
if (!(Device->Receiving() || Device->Replaying())) { if (!(Device->Receiving(true) || Device->Replaying())) {
int oldCh = lastChannel; int oldCh = lastChannel;
int ch = oldCh + 1; int ch = oldCh + 1;
while (ch != oldCh) { while (ch != oldCh) {