X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e2375bfc1b4681915791b7e667277ddebfb82e02..f995ffff71d819416a89c1bec3ceb69d121daa4e:/lib/dvb/frontend.cpp?ds=sidebyside diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index 21de11cd..c8434c06 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -17,15 +17,10 @@ #define BANDWIDTH_AUTO (BandWidth)3 #define GUARD_INTERVAL_AUTO (GuardInterval)4 #define HIERARCHY_AUTO (Hierarchy)4 -#define constellation Constellation -#define guard_interval guardInterval -#define hierarchy_information HierarchyInformation -#define code_rate_HP HP_CodeRate -#define code_rate_LP LP_CodeRate #define parm.frequency parm.Frequency #define parm.u.qam.symbol_rate parm.u.qam.SymbolRate #define parm.u.qam.fec_inner parm.u.qam.FEC_inner -#define parm.u.qam.modulation parm.u.qam.MOD +#define parm.u.qam.modulation parm.u.qam.QAM #define parm.u.ofdm.bandwidth parm.u.ofdm.bandWidth #define parm.u.ofdm.code_rate_LP parm.u.ofdm.LP_CodeRate #define parm.u.ofdm.code_rate_HP parm.u.ofdm.HP_CodeRate @@ -57,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 ) @@ -70,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) @@ -95,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) @@ -189,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; }