diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-02-24 16:46:22 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-02-24 16:46:22 +0000 |
| commit | 259b27b6f2d5457569b6639d625f5da255a73413 (patch) | |
| tree | 5e13f9dd8e184a126fda54c27383bb4b0209b70e /lib/dvb/scan.cpp | |
| parent | 04473f49c99472ab8be68d645293c556f02fd8a5 (diff) | |
| download | enigma2-259b27b6f2d5457569b6639d625f5da255a73413.tar.gz enigma2-259b27b6f2d5457569b6639d625f5da255a73413.zip | |
fix cable and terrestrial scan
Diffstat (limited to 'lib/dvb/scan.cpp')
| -rw-r--r-- | lib/dvb/scan.cpp | 47 |
1 files changed, 36 insertions, 11 deletions
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 <dvbsi++/descriptor_tag.h> #include <dvbsi++/service_descriptor.h> #include <dvbsi++/satellite_delivery_system_descriptor.h> +#include <dvbsi++/terrestrial_delivery_system_descriptor.h> +#include <dvbsi++/cable_delivery_system_descriptor.h> #include <dvbsi++/ca_identifier_descriptor.h> #include <lib/dvb/specs.h> #include <lib/dvb/esection.h> @@ -285,20 +287,43 @@ void eDVBScan::channelDone() { switch ((*desc)->getTag()) { -// case SERVICE_LIST_DESCRIPTOR: + case CABLE_DELIVERY_SYSTEM_DESCRIPTOR: + { + CableDeliverySystemDescriptor &d = (CableDeliverySystemDescriptor&)**desc; + ePtr<eDVBFrontendParameters> 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<eDVBFrontendParameters> 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; |
