JS8Call-Improved master
Loading...
Searching...
No Matches
Radio.h
1#ifndef RADIO_HPP__
2#define RADIO_HPP__
3
4#include <QList>
5#include <QLocale>
6#include <QObject>
7
8class QVariant;
9class QString;
10
11//
12// Declarations common to radio software.
13//
14
15namespace Radio {
16//
17// Frequency types
18//
19using Frequency = quint64;
20using Frequencies = QList<Frequency>;
21using FrequencyDelta = qint64;
22
23//
24// Qt type registration
25//
26void register_types();
27
28//
29// Frequency type conversion.
30//
31// QVariant argument is convertible to double and is assumed to
32// be scaled by (10 ** -scale).
33//
34Frequency frequency(QVariant const &, int scale, bool *ok = nullptr,
35 QLocale const & = QLocale());
36FrequencyDelta frequency_delta(QVariant const &, int scale, bool *ok = nullptr,
37 QLocale const & = QLocale());
38
39//
40// Frequency type formatting
41//
42QString frequency_MHz_string(Frequency, QLocale const & = QLocale());
43QString frequency_MHz_string(FrequencyDelta, QLocale const & = QLocale());
44QString pretty_frequency_MHz_string(Frequency, QLocale const & = QLocale());
45QString pretty_frequency_MHz_string(double, int scale,
46 QLocale const & = QLocale());
47QString pretty_frequency_MHz_string(FrequencyDelta,
48 QLocale const & = QLocale());
49
50//
51// Callsigns
52//
53bool is_callsign(QString const &);
54bool is_compound_callsign(QString const &);
55QString base_callsign(QString);
56QString effective_prefix(QString);
57} // namespace Radio
58
59Q_DECLARE_METATYPE(Radio::Frequency);
60Q_DECLARE_METATYPE(Radio::Frequencies);
61Q_DECLARE_METATYPE(Radio::FrequencyDelta);
62
63#endif