cDvbDevice::ProvidesTransponder() now checks the modulation capabilities of the device (as far as the driver allows this)

This commit is contained in:
Klaus Schmidinger 2010-04-04 11:37:10 +02:00
parent d23f609dd8
commit 1bf0c3d23a
2 changed files with 14 additions and 3 deletions

View File

@ -6411,7 +6411,7 @@ Video Disk Recorder Revision History
- The new setup option "Folders in timer menu" controls whether the file names in - The new setup option "Folders in timer menu" controls whether the file names in
the timer menu are shown with their full folder path. the timer menu are shown with their full folder path.
2010-04-02: Version 1.7.15 2010-04-04: Version 1.7.15
- Added Macedonian language texts (thanks to Dimitar Petrovski). - Added Macedonian language texts (thanks to Dimitar Petrovski).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Updated the Estonian OSD texts (thanks to Arthur Konovalov).
@ -6420,3 +6420,5 @@ Video Disk Recorder Revision History
- The default SVDRP port is now 6419 (registered with ICANN/IANA by Christian Tramnitz). - The default SVDRP port is now 6419 (registered with ICANN/IANA by Christian Tramnitz).
Use '-p 2001' to switch back to the old port if necessary. Use '-p 2001' to switch back to the old port if necessary.
- Updated the Italian OSD texts (thanks to Diego Pierotto). - Updated the Italian OSD texts (thanks to Diego Pierotto).
- cDvbDevice::ProvidesTransponder() now checks the modulation capabilities of the
device (as far as the driver allows this).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: dvbdevice.c 2.32 2010/03/07 13:58:24 kls Exp $ * $Id: dvbdevice.c 2.33 2010/04/04 11:15:25 kls Exp $
*/ */
#include "dvbdevice.h" #include "dvbdevice.h"
@ -889,7 +889,16 @@ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const
if (!cSource::IsSat(Channel->Source())) if (!cSource::IsSat(Channel->Source()))
return DeviceHooksProvidesTransponder(Channel); // source is sufficient for non sat return DeviceHooksProvidesTransponder(Channel); // source is sufficient for non sat
cDvbTransponderParameters dtp(Channel->Parameters()); cDvbTransponderParameters dtp(Channel->Parameters());
if (frontendType == SYS_DVBS && dtp.System() == SYS_DVBS2) if (dtp.System() == SYS_DVBS2 && frontendType == SYS_DVBS ||
dtp.Modulation() == QPSK && !(frontendInfo.caps & FE_CAN_QPSK) ||
dtp.Modulation() == QAM_16 && !(frontendInfo.caps & FE_CAN_QAM_16) ||
dtp.Modulation() == QAM_32 && !(frontendInfo.caps & FE_CAN_QAM_32) ||
dtp.Modulation() == QAM_64 && !(frontendInfo.caps & FE_CAN_QAM_64) ||
dtp.Modulation() == QAM_128 && !(frontendInfo.caps & FE_CAN_QAM_128) ||
dtp.Modulation() == QAM_256 && !(frontendInfo.caps & FE_CAN_QAM_256) ||
dtp.Modulation() == QAM_AUTO && !(frontendInfo.caps & FE_CAN_QAM_AUTO) ||
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 return false; // requires modulation system which frontend doesn't provide
if (!Setup.DiSEqC || Diseqcs.Get(CardIndex() + 1, Channel->Source(), Channel->Frequency(), dtp.Polarization())) if (!Setup.DiSEqC || Diseqcs.Get(CardIndex() + 1, Channel->Source(), Channel->Frequency(), dtp.Polarization()))
return DeviceHooksProvidesTransponder(Channel); return DeviceHooksProvidesTransponder(Channel);