On Sat, May 07, 2011 at 08:11:20PM +0200, 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? > > 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(); Sorry for following up to myself, but I forgot to say this is the 0.6.1+beta1.7.15 reelchannelscan snapshot that yavdr uses, ported to FreeBSD: http://www.freshports.org/multimedia/vdr-plugin-reelchannelscan/ http://ppa.launchpad.net/yavdr/stable-vdr/ubuntu/pool/main/v/vdr-plugin-reelchannelscan/vdr-plugin-reelchannelscan_0.6.1+beta1.7.15.orig.tar.gz ..and you can see all the FreeBSD patches I applied here: http://www.freebsd.org/cgi/cvsweb.cgi/ports/multimedia/vdr-plugin-reelchannelscan/files/ files/patch-scan.c also should be relevant on non-FreeBSD too: --- a/scan.c +++ b/scan.c @@ -197,7 +197,7 @@ bool cScan::StartScanning(cScanParameter #ifndef DEVICE_ATTRIBUTES char buffer[265]; - snprintf(buffer, sizeof(buffer), "/dev/dvb/adapter%d/frontend0", cardnr); + snprintf(buffer, sizeof(buffer), "/dev/dvb/adapter%d/frontend0", cDevice::GetDevice(cardnr)->CardIndex()); fd_frontend = open(buffer, O_RDONLY | O_NONBLOCK); if (fd_frontend <= 0) { @@ -932,12 +932,12 @@ void cScan::Action() char *strDate; asprintf(&strDate,"%s", asctime(localtime(&tt))); strDate[strlen(strDate)-1] = 0; - fprintf(fp,"\n\n%s tp=%4d, %6d(%d) TV:%4d Radio:%4d in %3d sec",strDate,i , frequency, !alreadyScanned, tvChannelNames.size()-ntv, radioChannelNames.size()-nradio, (int)difftime(t_out,t_in) ); + fprintf(fp,"\n\n%s tp=%4d, %6d(%d) TV:%4ld Radio:%4ld in %3d sec",strDate,i , frequency, !alreadyScanned, tvChannelNames.size()-ntv, radioChannelNames.size()-nradio, (int)difftime(t_out,t_in) ); fclose(fp); fp = fopen("/tmp/tScan.log","a"); //fprintf(fp,"\n\n%s tp=%4d, %6d/%2d/%5d TV:%4d Radio:%4d in %3dsec",strDate,i , frequency,(*tp)->Modulation(), (*tp)->Symbolrate(), tvChannelNames.size()-ntv, radioChannelNames.size()-nradio, (int)difftime(t_out,t_in) ); - fprintf(fp,"\n\ntp=%4d, %6d/%2d/%5d TV:%4d Radio:%4d in %3dsec new:%3d",i , frequency,(*tp)->Modulation(), (*tp)->Symbolrate(), tvChannelNames.size()-ntv, radioChannelNames.size()-nradio, (int)difftime(t_out,t_in),tvChannelNames.size()-ntv+ radioChannelNames.size()-nradio ); + fprintf(fp,"\n\ntp=%4d, %6d/%2d/%5d TV:%4ld Radio:%4ld in %3dsec new:%3ld",i , frequency,(*tp)->Modulation(), (*tp)->Symbolrate(), tvChannelNames.size()-ntv, radioChannelNames.size()-nradio, (int)difftime(t_out,t_in),tvChannelNames.size()-ntv+ radioChannelNames.size()-nradio ); fclose(fp); free(strDate); _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr