mirror of https://github.com/saitohirga/WSJT-X.git
73 lines
1.9 KiB
C++
73 lines
1.9 KiB
C++
#include "Radio.hpp"
|
|
|
|
#include <cmath>
|
|
|
|
#include <QMetaType>
|
|
#include <QString>
|
|
#include <QChar>
|
|
#include <QDebug>
|
|
#include <QRegExpValidator>
|
|
#include <QDataStream>
|
|
|
|
namespace Radio
|
|
{
|
|
namespace
|
|
{
|
|
struct init
|
|
{
|
|
init ()
|
|
{
|
|
qRegisterMetaType<Frequency> ("Frequency");
|
|
|
|
qRegisterMetaType<Frequencies> ("Frequencies");
|
|
qRegisterMetaTypeStreamOperators<Frequencies> ("Frequencies");
|
|
|
|
qRegisterMetaType<FrequencyDelta> ("FrequencyDelta");
|
|
}
|
|
} static_initaializer;
|
|
|
|
double constexpr MHz_factor {1.e6};
|
|
int constexpr frequency_precsion {6};
|
|
}
|
|
|
|
|
|
Frequency frequency (QVariant const& v, int scale)
|
|
{
|
|
return std::llround (v.toDouble () * std::pow (10., scale));
|
|
}
|
|
|
|
FrequencyDelta frequency_delta (QVariant const& v, int scale)
|
|
{
|
|
return std::llround (v.toDouble () * std::pow (10., scale));
|
|
}
|
|
|
|
|
|
QString frequency_MHz_string (Frequency f, QLocale const& locale)
|
|
{
|
|
return locale.toString (f / MHz_factor, 'f', frequency_precsion);
|
|
}
|
|
|
|
QString frequency_MHz_string (FrequencyDelta d, QLocale const& locale)
|
|
{
|
|
return locale.toString (d / MHz_factor, 'f', frequency_precsion);
|
|
}
|
|
|
|
QString pretty_frequency_MHz_string (Frequency f, QLocale const& locale)
|
|
{
|
|
auto f_string = locale.toString (f / MHz_factor, 'f', frequency_precsion);
|
|
return f_string.insert (f_string.size () - 3, QChar::Nbsp);
|
|
}
|
|
|
|
QString pretty_frequency_MHz_string (double f, int scale, QLocale const& locale)
|
|
{
|
|
auto f_string = locale.toString (f / std::pow (10., scale - 6), 'f', frequency_precsion);
|
|
return f_string.insert (f_string.size () - 3, QChar::Nbsp);
|
|
}
|
|
|
|
QString pretty_frequency_MHz_string (FrequencyDelta d, QLocale const& locale)
|
|
{
|
|
auto d_string = locale.toString (d / MHz_factor, 'f', frequency_precsion);
|
|
return d_string.insert (d_string.size () - 3, QChar::Nbsp);
|
|
}
|
|
}
|