summaryrefslogtreecommitdiff
path: root/eitscan.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2005-08-07 11:37:48 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2005-08-07 11:37:48 +0200
commit7d54c997ab0bd1ce248e4dbc18d21a2dd0fe2934 (patch)
tree382f7017fe6d7d2acda4b11f41e3778ab84cf62a /eitscan.c
parentda0030deff4b0086edbd25d784fc0fe309cd4256 (diff)
downloadvdr-7d54c997ab0bd1ce248e4dbc18d21a2dd0fe2934.tar.gz
vdr-7d54c997ab0bd1ce248e4dbc18d21a2dd0fe2934.tar.bz2
Modified cEITScanner::Process() to use the primary device if replaying, and do a forced scan even if timeout is 0
Diffstat (limited to 'eitscan.c')
-rw-r--r--eitscan.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/eitscan.c b/eitscan.c
index 6b5f0224..3894bcac 100644
--- a/eitscan.c
+++ b/eitscan.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: eitscan.c 1.26 2005/06/12 14:09:45 kls Exp $
+ * $Id: eitscan.c 1.27 2005/08/07 11:29:54 kls Exp $
*/
#include "eitscan.h"
@@ -127,7 +127,7 @@ void cEITScanner::Activity(void)
void cEITScanner::Process(void)
{
- if (Setup.EPGScanTimeout && Channels.MaxNumber() > 1) {
+ if ((Setup.EPGScanTimeout || !lastActivity) && Channels.MaxNumber() > 1) { // !lastActivity means a scan was forced
time_t now = time(NULL);
if (now - lastScan > ScanTimeout && now - lastActivity > ActivityTimeout) {
if (Channels.Lock(false, 10)) {
@@ -150,8 +150,9 @@ void cEITScanner::Process(void)
if (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) {
if (Device->ProvidesTransponder(Channel)) {
if (!Device->Receiving()) {
- if (Device != cDevice::ActualDevice() || (Device->ProvidesTransponderExclusively(Channel) && Setup.EPGScanTimeout && now - lastActivity > Setup.EPGScanTimeout * 3600)) {
- if (Device == cDevice::ActualDevice() && !currentChannel) {
+ bool IsPrimaryDeviceReplaying = Device == cDevice::PrimaryDevice() && Device->Replaying();
+ if (Device != cDevice::ActualDevice() || (Device->ProvidesTransponderExclusively(Channel) && (IsPrimaryDeviceReplaying || now - lastActivity > Setup.EPGScanTimeout * 3600))) {
+ if (!IsPrimaryDeviceReplaying && Device == cDevice::ActualDevice() && !currentChannel) {
if (cTransferControl::ReceiverDevice())
cDevice::PrimaryDevice()->StopReplay(); // stop transfer mode
currentChannel = Device->CurrentChannel();