On 05/07/11 20:11, Juergen Lock wrote:
Hi!
There seems to be a change in recent vdr versions regarding
NumProvidedSystems() which at least the reelchannelscan plugin
uses to tell apart a dvb-s2 tuner from a dvb-s one in a few places,
apparently it used to return 2 for a dvb-s2 tuner and now returns 3.
Is this intentional?
Yes, it is.
2010-06-06: Version 1.7.15
...
- The various modulation types are now taken into account when selecting a
device for
a recording or live viewing, so that devices that provide more capabilities
are
spared.
This was done by incrementing numProvidedSystems in cDvbDevice::cDvbDevice()
for every additional modulation type it provides.
I'm afraid the result from NumProvidedSystems() is in no way suitable
for determining whether the device is DVB-S or DVB-S2.
Klaus
I patched reelchannelscan like below: (would need to check the
vdr version to be general of course, this was for 1.7.18; symptom
was a manual scan wrote out qam32 modulation into the channels.conf
instead of qpsk and of course vdr couldn't tune the new channel(s).)
Thanx!
Juergen
--- a/csmenu.c
+++ b/csmenu.c
@@ -243,7 +243,7 @@ void cMenuChannelscan::TunerDetection()
txtstream<< tr("DVB-C - Cable")<< " ("<< tr("Tuner")<< ' '<<
tuner + 1<< ')';
stp = CABLE;
} else if (device->ProvidesSource(cSource::stSat)) {
- if (device->NumProvidedSystems() == 2) {
+ if (device->NumProvidedSystems() == 3) {
// if(TunerIsRotor(tuner))
// txtstream<< tr("DVB-S2 - Rotor")<< " ("<< tr("Tuner")<< '
'<< tuner + 1<< ')';
// else
--- a/scan.c
+++ b/scan.c
@@ -421,7 +421,7 @@ void cScan::ScanNitServices()
void cScan::ScanDVB_S(cTransponder * tp, cChannel * c)
{
//const time_t tt = time(NULL);
- int maxmods = device->NumProvidedSystems() == 2? 4 : 2;
+ int maxmods = device->NumProvidedSystems() == 3? 4 : 2;
// esyslog("%s cTransponder* tp = %x cChannel *c = %x",
__PRETTY_FUNCTION__);
esyslog("maxmods = %d",maxmods);
@@ -431,7 +431,7 @@ void cScan::ScanDVB_S(cTransponder * tp,
;
// skip HD Transonders on SD Tuner
- if ( !device->NumProvidedSystems() == 2&& static_cast< cSatTransponder
*>(tp)->System() == 1)
+ if ( !device->NumProvidedSystems() == 3&& static_cast< cSatTransponder
*>(tp)->System() == 1)
return;
unsigned int nRadio = radioChannelNames.size();
_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr