libdrmconf 0.15.0
A library to program DMR radios.
Loading...
Searching...
No Matches
radioinfo.hh
1#ifndef RADIOINFO_HH
2#define RADIOINFO_HH
3
4#include <QString>
5#include <QHash>
6#include <QList>
7#include "usbdevice.hh"
8
9
16{
17public:
19 enum Radio {
20 // Open source firmware
21 OpenGD77,
22 OpenUV380,
23 OpenRTX,
24 // Radioddity devices
25 RD5R,
26 GD73,
27 GD77,
28 // TyT devices
29 MD390, MD380 = MD390, RT8 = MD390,
30 UV390, UV380 = UV390, RT3S = UV390,
31 MD2017, RT82 = MD2017,
32 // Anytone devices
33 D868UVE,
34 D868UV = D868UVE,
35 DMR6X2UV,
36 DMR6X2UV2,
37 D878UV,
38 D878UVII,
39 D578UV,
40 D578UVII = D578UV,
41 D168UV,
42 // Baofeng/BTECH
43 DM1701, RT84 = DM1701,
44 DR1801UV,
45 DM32UV
46 };
47
48public:
50 RadioInfo(Radio radio, const QString &name, const QString manufacturer,
51 const QSet<USBDeviceInfo> &interfaces,
52 const QList<RadioInfo> &alias=QList<RadioInfo>());
54 RadioInfo(Radio radio, const QString &key, const QString &name, const QString manufacturer,
55 const QSet<USBDeviceInfo> &interfaces,
56 const QList<RadioInfo> &alias=QList<RadioInfo>());
57
59 RadioInfo();
60
62 bool isValid() const;
63
65 const QString &key() const;
67 const QString &name() const;
69 const QString &manufacturer() const;
71 bool interfaceMatches(const USBDeviceInfo &other) const;
72
75 bool hasAlias() const;
77 const QList<RadioInfo> &alias() const;
78
80 Radio id() const;
81
82public:
84 static bool hasRadioKey(const QString &key);
86 static RadioInfo byKey(const QString &key);
88 static RadioInfo byID(Radio radio);
89
91 static QList<RadioInfo> allRadios(bool flat=true);
93 static QList<RadioInfo> allRadios(const USBDeviceInfo &interface, bool flat=true);
94
95protected:
99 QString _key;
101 QString _name;
105 QList<RadioInfo> _alias;
107 QSet<USBDeviceInfo> _interfaces;
108
109protected:
111 static QHash<QString, Radio> _radiosByName;
113 static QHash<unsigned, RadioInfo> _radiosById;
114};
115
116
117#endif // RADIOINFO_HH
RadioInfo(Radio radio, const QString &name, const QString manufacturer, const QSet< USBDeviceInfo > &interfaces, const QList< RadioInfo > &alias=QList< RadioInfo >())
Use static methods the access radio info or call Radio::defaultRadioInfo.
Definition radioinfo.cc:83
static QHash< unsigned, RadioInfo > _radiosById
ID->Info map.
Definition radioinfo.hh:56
static RadioInfo byID(Radio radio)
Returns the radio info by id.
Definition radioinfo.cc:161
Radio id() const
Returns the unique device ID (alias radios share ID).
Definition radioinfo.cc:144
static QHash< QString, Radio > _radiosByName
Key->ID map.
Definition radioinfo.hh:25
bool interfaceMatches(const USBDeviceInfo &other) const
Returns some information about the interface to the radio.
Definition radioinfo.cc:127
QSet< USBDeviceInfo > _interfaces
Holds some information about the interface to the radio.
Definition radioinfo.hh:107
QString _name
Holds the name of the radio.
Definition radioinfo.hh:101
QList< RadioInfo > _alias
Holds possible identical radios from other manufacturers.
Definition radioinfo.hh:105
static QList< RadioInfo > allRadios(bool flat=true)
Returns the list of all known radios.
Definition radioinfo.cc:166
const QString & key() const
Returns the radio key (used to identify radios in the command line).
Definition radioinfo.cc:112
bool isValid() const
Returns true if the info is valid.
Definition radioinfo.cc:107
Radio
Known radios.
Definition radioinfo.hh:19
Radio _radio
Holds the radio id.
Definition radioinfo.hh:97
static RadioInfo byKey(const QString &key)
Returns the radio info by key.
Definition radioinfo.cc:154
QString _manufacturer
Holds the name of the manufacturer.
Definition radioinfo.hh:103
QString _key
Holds the key of the radio.
Definition radioinfo.hh:99
static bool hasRadioKey(const QString &key)
Returns true if the given key is known.
Definition radioinfo.cc:149
bool hasAlias() const
Returns true if the radio has aliases.
Definition radioinfo.cc:135
const QString & manufacturer() const
Returns the manufacturer name.
Definition radioinfo.cc:122
RadioInfo()
Empty constructor.
Definition radioinfo.cc:100
const QList< RadioInfo > & alias() const
Returns the list of alias radios.
Definition radioinfo.cc:139
const QString & name() const
Returns the radio name.
Definition radioinfo.cc:117
Base class for all Radio objects.
Definition radio.hh:32
Generic information about a possible radio interface.
Definition usbdevice.hh:121