+ if (exact && oterrestrial.bandwidth != terrestrial.bandwidth &&
+ oterrestrial.bandwidth != eDVBFrontendParametersTerrestrial::Bandwidth::BwAuto &&
+ terrestrial.bandwidth != eDVBFrontendParametersTerrestrial::Bandwidth::BwAuto)
+ diff = 1 << 30;
+ else if (exact && oterrestrial.modulation != terrestrial.modulation &&
+ oterrestrial.modulation != eDVBFrontendParametersTerrestrial::Modulation::Auto &&
+ terrestrial.modulation != eDVBFrontendParametersTerrestrial::Modulation::Auto)
+ diff = 1 << 30;
+ else if (exact && oterrestrial.transmission_mode != terrestrial.transmission_mode &&
+ oterrestrial.transmission_mode != eDVBFrontendParametersTerrestrial::TransmissionMode::TMAuto &&
+ terrestrial.transmission_mode != eDVBFrontendParametersTerrestrial::TransmissionMode::TMAuto)
+ diff = 1 << 30;
+ else if (exact && oterrestrial.guard_interval != terrestrial.guard_interval &&
+ oterrestrial.guard_interval != eDVBFrontendParametersTerrestrial::GuardInterval::GI_Auto &&
+ terrestrial.guard_interval != eDVBFrontendParametersTerrestrial::GuardInterval::GI_Auto)
+ diff = 1 << 30;
+ else if (exact && oterrestrial.hierarchy != terrestrial.hierarchy &&
+ oterrestrial.hierarchy != eDVBFrontendParametersTerrestrial::Hierarchy::HAuto &&
+ terrestrial.hierarchy != eDVBFrontendParametersTerrestrial::Hierarchy::HAuto)
+ diff = 1 << 30;
+ else if (exact && oterrestrial.code_rate_LP != terrestrial.code_rate_LP &&
+ oterrestrial.code_rate_LP != eDVBFrontendParametersTerrestrial::FEC::fAuto &&
+ terrestrial.code_rate_LP != eDVBFrontendParametersTerrestrial::FEC::fAuto)
+ diff = 1 << 30;
+ else if (exact && oterrestrial.code_rate_HP != terrestrial.code_rate_HP &&
+ oterrestrial.code_rate_HP != eDVBFrontendParametersTerrestrial::FEC::fAuto &&
+ terrestrial.code_rate_HP != eDVBFrontendParametersTerrestrial::FEC::fAuto)
+ diff = 1 << 30;
+ else
+ diff = abs(terrestrial.frequency - oterrestrial.frequency);