From: Andreas Monzner Date: Fri, 24 Feb 2006 16:46:22 +0000 (+0000) Subject: fix cable and terrestrial scan X-Git-Tag: 2.6.0~4006 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/259b27b6f2d5457569b6639d625f5da255a73413 fix cable and terrestrial scan --- diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index 6d0830bf..f75340d6 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -52,6 +52,11 @@ void eDVBFrontendParametersSatellite::set(const SatelliteDeliverySystemDescripto orbital_position += ((descriptor.getOrbitalPosition()) & 0xF); if (orbital_position && (!descriptor.getWestEastFlag())) orbital_position = 3600 - orbital_position; + eDebug("SAT freq %d, %s, pos %d, sr %d, fec %d", + frequency, + polarisation ? "hor" : "vert", + orbital_position, + symbol_rate, fec); } void eDVBFrontendParametersCable::set(const CableDeliverySystemDescriptor &descriptor) @@ -65,6 +70,9 @@ void eDVBFrontendParametersCable::set(const CableDeliverySystemDescriptor &descr if ( modulation > 0x5 ) modulation = Modulation::Auto; inversion = Inversion::Unknown; + eDebug("Cable freq %d, mod %d, sr %d, fec %d", + frequency, + modulation, symbol_rate, fec_inner); } void eDVBFrontendParametersTerrestrial::set(const TerrestrialDeliverySystemDescriptor &descriptor) @@ -90,6 +98,9 @@ void eDVBFrontendParametersTerrestrial::set(const TerrestrialDeliverySystemDescr if (modulation > 2) modulation = Modulation::Auto; inversion = Inversion::Unknown; + eDebug("Terr freq %d, bw %d, cr_hp %d, cr_lp %d, tm_mode %d, guard %d, hierarchy %d, const %d", + frequency, bandwidth, code_rate_HP, code_rate_LP, transmission_mode, + guard_interval, hierarchy, modulation); } eDVBFrontendParameters::eDVBFrontendParameters(): m_type(-1) diff --git a/lib/dvb/scan.cpp b/lib/dvb/scan.cpp index 7f4f6b10..e722b3c5 100644 --- a/lib/dvb/scan.cpp +++ b/lib/dvb/scan.cpp @@ -5,6 +5,8 @@ #include #include #include +#include +#include #include #include #include @@ -285,20 +287,43 @@ void eDVBScan::channelDone() { switch ((*desc)->getTag()) { -// case SERVICE_LIST_DESCRIPTOR: + case CABLE_DELIVERY_SYSTEM_DESCRIPTOR: + { + CableDeliverySystemDescriptor &d = (CableDeliverySystemDescriptor&)**desc; + ePtr feparm = new eDVBFrontendParameters; + eDVBFrontendParametersCable cable; + cable.set(d); + feparm->setDVBC(cable); + + unsigned long hash=0; + feparm->getHash(hash); + eDVBNamespace ns = buildNamespace(onid, tsid, hash); + + addChannelToScan( + eDVBChannelID(ns, tsid, onid), + feparm); + break; + } + case TERRESTRIAL_DELIVERY_SYSTEM_DESCRIPTOR: + { + TerrestrialDeliverySystemDescriptor &d = (TerrestrialDeliverySystemDescriptor&)**desc; + ePtr feparm = new eDVBFrontendParameters; + eDVBFrontendParametersTerrestrial terr; + terr.set(d); + feparm->setDVBT(terr); + + unsigned long hash=0; + feparm->getHash(hash); + eDVBNamespace ns = buildNamespace(onid, tsid, hash); + + addChannelToScan( + eDVBChannelID(ns, tsid, onid), + feparm); + break; + } case SATELLITE_DELIVERY_SYSTEM_DESCRIPTOR: { SatelliteDeliverySystemDescriptor &d = (SatelliteDeliverySystemDescriptor&)**desc; - SCAN_eDebug("%d kHz, %d%d%d.%d%c %s MOD:%d %d symb/s, fec %d", - d.getFrequency(), - (d.getOrbitalPosition()>>12)&0xF, - (d.getOrbitalPosition()>>8)&0xF, - (d.getOrbitalPosition()>>4)&0xF, - d.getOrbitalPosition()&0xF, d.getWestEastFlag()?'E':'W', - d.getPolarization() ? "hor" : "vert", - d.getModulation(), d.getSymbolRate(), d.getFecInner()); - - /* some sanity checking: below 100MHz is invalid */ if (d.getFrequency() < 10000) break;