summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2003-05-24 13:38:28 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2003-05-24 13:38:28 +0200
commite26e6b2e5a68be5c98364cc57f097d659edee9e8 (patch)
tree3c7509e9bc5151355cd41f8d5597412e8833f807
parent755835ce4439a182519a91855b84f97631561ce1 (diff)
downloadvdr-e26e6b2e5a68be5c98364cc57f097d659edee9e8.tar.gz
vdr-e26e6b2e5a68be5c98364cc57f097d659edee9e8.tar.bz2
Fixed channel switching in the EPG scanner on single device systems
-rw-r--r--HISTORY1
-rw-r--r--dvbdevice.c8
-rw-r--r--eitscan.c7
-rw-r--r--eitscan.h4
-rw-r--r--vdr.c6
5 files changed, 18 insertions, 8 deletions
diff --git a/HISTORY b/HISTORY
index 610f9b75..b4bba7ca 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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) {
diff --git a/eitscan.c b/eitscan.c
index a5c1a7b9..f9058cf0 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.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;
}
diff --git a/eitscan.h b/eitscan.h
index 5b40ddd6..609bf78f 100644
--- a/eitscan.h
+++ b/eitscan.h
@@ -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
diff --git a/vdr.c b/vdr.c
index afb6d01e..b2052551 100644
--- a/vdr.c
+++ b/vdr.c
@@ -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()))