From d5df309df416a1dfee139192ce2f59845b959885 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Mon, 5 Apr 2010 20:13:05 +0200 Subject: [PATCH] Extended modulation check for all frontend types --- dvbdevice.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dvbdevice.c b/dvbdevice.c index 2dd28713..e874a482 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 2.33 2010/04/04 11:15:25 kls Exp $ + * $Id: dvbdevice.c 2.34 2010/04/05 20:13:05 kls Exp $ */ #include "dvbdevice.h" @@ -886,8 +886,6 @@ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const { if (!ProvidesSource(Channel->Source())) return false; // doesn't provide source - if (!cSource::IsSat(Channel->Source())) - return DeviceHooksProvidesTransponder(Channel); // source is sufficient for non sat cDvbTransponderParameters dtp(Channel->Parameters()); if (dtp.System() == SYS_DVBS2 && frontendType == SYS_DVBS || dtp.Modulation() == QPSK && !(frontendInfo.caps & FE_CAN_QPSK) || @@ -900,7 +898,8 @@ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const dtp.Modulation() == VSB_8 && !(frontendInfo.caps & FE_CAN_8VSB) || dtp.Modulation() == VSB_16 && !(frontendInfo.caps & FE_CAN_16VSB)) return false; // requires modulation system which frontend doesn't provide - if (!Setup.DiSEqC || Diseqcs.Get(CardIndex() + 1, Channel->Source(), Channel->Frequency(), dtp.Polarization())) + if (!cSource::IsSat(Channel->Source()) || + !Setup.DiSEqC || Diseqcs.Get(CardIndex() + 1, Channel->Source(), Channel->Frequency(), dtp.Polarization())) return DeviceHooksProvidesTransponder(Channel); return false; }