From ab3203043ca1d55ab5d679864ab4462caa5d26e9 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Mon, 6 Feb 2023 00:31:42 +0100 Subject: [PATCH] [AFV] Use CComSystem helper to compare frequencies --- src/blackcore/afv/clients/afvclient.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/blackcore/afv/clients/afvclient.cpp b/src/blackcore/afv/clients/afvclient.cpp index cde16c519..6b70af8f9 100644 --- a/src/blackcore/afv/clients/afvclient.cpp +++ b/src/blackcore/afv/clients/afvclient.cpp @@ -13,6 +13,7 @@ #include "blackcore/application.h" #include "blacksound/audioutilities.h" #include "blackmisc/audio/audiodeviceinfolist.h" +#include "blackmisc/aviation/comsystem.h" #include "blackmisc/threadutils.h" #include "blackmisc/stringutils.h" #include "blackmisc/verify.h" @@ -1336,14 +1337,15 @@ namespace BlackCore::Afv::Clients // change to aliased frequency if needed { QMutexLocker lock(&m_mutex); - const auto it = std::find_if(m_aliasedStations.constBegin(), m_aliasedStations.constEnd(), [roundedFrequencyHz](const StationDto & d) + CFrequency roundedFrequency(static_cast(roundedFrequencyHz), CFrequencyUnit::Hz()); + const auto it = std::find_if(m_aliasedStations.constBegin(), m_aliasedStations.constEnd(), [roundedFrequency](const StationDto & d) { - if (d.frequencyAliasHz > 100000000 && roundedFrequencyHz > 100000000) // both VHF + if (d.frequencyAliasHz > 100000000 && roundedFrequency.value(CFrequencyUnit::Hz()) > 100000000) // both VHF { - // disregard 6th digit (e.g. 132.070 == 132.075) - return (d.frequencyAliasHz / 10000 * 10000) == (roundedFrequencyHz / 10000 * 10000); + const int aliasedFreqHz = static_cast(qRound(d.frequencyAliasHz / 1000.0)) * 1000; + return CComSystem::isSameFrequency(CFrequency(aliasedFreqHz, CFrequencyUnit::Hz()), roundedFrequency); } - return d.frequencyAliasHz == roundedFrequencyHz; + return d.frequencyAliasHz == roundedFrequency.value(CFrequencyUnit::Hz()); }); if (it != m_aliasedStations.constEnd())