Fixed the EPG scan, so that it doesn't use the primary device if that is currently in Transfer-Mode from itself

This commit is contained in:
Klaus Schmidinger 2005-08-26 16:05:29 +02:00
parent 7a57c099e5
commit c23d35e267
3 changed files with 9 additions and 2 deletions

View File

@ -1442,3 +1442,7 @@ Thomas G
David Woodhouse <dwmw2@infradead.org>
for his help in replacing the get/put_unaligned() macros from asm/unaligned.h with
own inline functions to avoid problems on platforms that don't provide these
Marcus Hilbrich <s4440288@mail.inf.tu-dresden.de>
for a bug report that lead to fixing the EPG scan, so that it doesn't use the
primary device if that is currently in Transfer-Mode from itself

View File

@ -3727,3 +3727,6 @@ Video Disk Recorder Revision History
- Modified handling of audio packets for radio channels in remux.c (thanks to
Reinhard Nissl).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- Fixed the EPG scan, so that it doesn't use the primary device if that is
currently in Transfer-Mode from itself (thanks to Marcus Hilbrich for a bug
report that lead to this).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: eitscan.c 1.27 2005/08/07 11:29:54 kls Exp $
* $Id: eitscan.c 1.28 2005/08/26 15:37:06 kls Exp $
*/
#include "eitscan.h"
@ -150,7 +150,7 @@ void cEITScanner::Process(void)
if (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) {
if (Device->ProvidesTransponder(Channel)) {
if (!Device->Receiving()) {
bool IsPrimaryDeviceReplaying = Device == cDevice::PrimaryDevice() && Device->Replaying();
bool IsPrimaryDeviceReplaying = Device == cDevice::PrimaryDevice() && Device->Replaying() && cTransferControl::ReceiverDevice() != cDevice::PrimaryDevice();
if (Device != cDevice::ActualDevice() || (Device->ProvidesTransponderExclusively(Channel) && (IsPrimaryDeviceReplaying || now - lastActivity > Setup.EPGScanTimeout * 3600))) {
if (!IsPrimaryDeviceReplaying && Device == cDevice::ActualDevice() && !currentChannel) {
if (cTransferControl::ReceiverDevice())