From d00b5d8828ca997e0cfbced124de645594565837 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 6 Apr 2002 13:21:47 +0200 Subject: [PATCH] Now the EPG scan skips channels that have their 'Ca' parameter explicitly set to an other DVB card --- CONTRIBUTORS | 2 ++ HISTORY | 2 ++ dvbapi.c | 18 +++++++++++------- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 8b9e8528..b97cbcf2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -199,6 +199,8 @@ Sergei Haller for fixing the LastActivity timestamp after a shutdown prompt for fixing the "Low disk space!" message for adding the TPID to Hessen-3 in 'channels.conf' + for suggesting that the EPG scan should skip channels with their 'Ca' parameter + explicitly set to an other DVB card Andreas Gebel for his help in keeping 'channels.conf' up to date diff --git a/HISTORY b/HISTORY index 1795aa55..5d2d89b5 100644 --- a/HISTORY +++ b/HISTORY @@ -1182,3 +1182,5 @@ Video Disk Recorder Revision History - Fixed the still picture workaround in case the progress display is active. - Fixed a problem with accessing the epg.data file before it is fully written (thanks to Thilo Wunderlich for reporting this one). +- Now the EPG scan skips channels that have their 'Ca' parameter explicitly set + to an other DVB card (suggested by Sergei Haller). diff --git a/dvbapi.c b/dvbapi.c index aea8f958..83ea0627 100644 --- a/dvbapi.c +++ b/dvbapi.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbapi.c 1.167 2002/04/06 11:08:54 kls Exp $ + * $Id: dvbapi.c 1.168 2002/04/06 13:14:40 kls Exp $ */ #include "dvbapi.h" @@ -2804,12 +2804,16 @@ void cEITScanner::Process(void) numTransponders = 0; } cChannel *Channel = Channels.GetByNumber(ch); - if (Channel && Channel->pnr && !TransponderScanned(Channel)) { - if (DvbApi == cDvbApi::PrimaryDvbApi && !currentChannel) - currentChannel = DvbApi->Channel(); - Channel->Switch(DvbApi, false); - lastChannel = ch; - break; + if (Channel) { + if (Channel->ca <= MAXDVBAPI && !DvbApi->ProvidesCa(Channel->ca)) + break; // the channel says it explicitly needs a different card + if (Channel->pnr && !TransponderScanned(Channel)) { + if (DvbApi == cDvbApi::PrimaryDvbApi && !currentChannel) + currentChannel = DvbApi->Channel(); + Channel->Switch(DvbApi, false); + lastChannel = ch; + break; + } } ch++; }