X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/667643306b712fff5ff39480a968bcec921c4e92..842dabf727814691bfd949ac4d910ce04c32b887:/lib/dvb/frontend.cpp diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index 6d0830bf..c8434c06 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -52,11 +52,16 @@ 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) { - frequency = descriptor.getFrequency() * 10; + frequency = descriptor.getFrequency() / 10; symbol_rate = descriptor.getSymbolRate() * 100; fec_inner = descriptor.getFecInner(); if ( fec_inner == 0xF ) @@ -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) @@ -184,7 +195,22 @@ RESULT eDVBFrontendParameters::calculateDifference(const iDVBFrontendParameters return 0; } case iDVBFrontend::feCable: + eDVBFrontendParametersCable ocable; + if (parm->getDVBC(ocable)) + return -2; + + diff = abs(cable.frequency - ocable.frequency); + diff += abs(cable.symbol_rate - ocable.symbol_rate); + + return 0; case iDVBFrontend::feTerrestrial: + eDVBFrontendParametersTerrestrial oterrestrial; + if (parm->getDVBT(oterrestrial)) + return -2; + + diff = abs(terrestrial.frequency - oterrestrial.frequency); + + return 0; default: return -1; }