git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix movielist selection when there is no (selected) item
[enigma2.git]
/
lib
/
dvb
/
frontend.cpp
diff --git
a/lib/dvb/frontend.cpp
b/lib/dvb/frontend.cpp
index 6d0830bf2281d30c597e43b29a87e11a5766789f..a7f0c70e7e49b149e18af03c2e2d469c4a10c25f 100644
(file)
--- 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;
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)
{
}
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 )
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;
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)
}
void eDVBFrontendParametersTerrestrial::set(const TerrestrialDeliverySystemDescriptor &descriptor)
@@
-90,6
+98,9
@@
void eDVBFrontendParametersTerrestrial::set(const TerrestrialDeliverySystemDescr
if (modulation > 2)
modulation = Modulation::Auto;
inversion = Inversion::Unknown;
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)
}
eDVBFrontendParameters::eDVBFrontendParameters(): m_type(-1)
@@
-184,7
+195,29
@@
RESULT eDVBFrontendParameters::calculateDifference(const iDVBFrontendParameters
return 0;
}
case iDVBFrontend::feCable:
return 0;
}
case iDVBFrontend::feCable:
+ eDVBFrontendParametersCable ocable;
+ if (parm->getDVBC(ocable))
+ return -2;
+
+ if (cable.modulation != ocable.modulation && cable.modulation != eDVBFrontendParametersCable::Modulation::Auto && ocable.modulation != eDVBFrontendParametersCable::Modulation::Auto)
+ diff = 1 << 29;
+ else if (cable.inversion != ocable.inversion && cable.inversion != eDVBFrontendParametersCable::Inversion::Unknown && ocable.inversion != eDVBFrontendParametersCable::Inversion::Unknown)
+ diff = 1 << 28;
+ else
+ {
+ diff = abs(cable.frequency - ocable.frequency);
+ diff += abs(cable.symbol_rate - ocable.symbol_rate);
+ }
+
+ return 0;
case iDVBFrontend::feTerrestrial:
case iDVBFrontend::feTerrestrial:
+ eDVBFrontendParametersTerrestrial oterrestrial;
+ if (parm->getDVBT(oterrestrial))
+ return -2;
+
+ diff = abs(terrestrial.frequency - oterrestrial.frequency);
+
+ return 0;
default:
return -1;
}
default:
return -1;
}