aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/frontend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dvb/frontend.cpp')
-rw-r--r--lib/dvb/frontend.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index c8434c06..a7f0c70e 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -199,8 +199,15 @@ RESULT eDVBFrontendParameters::calculateDifference(const iDVBFrontendParameters
if (parm->getDVBC(ocable))
return -2;
- diff = abs(cable.frequency - ocable.frequency);
- diff += abs(cable.symbol_rate - ocable.symbol_rate);
+ 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: