libdrmconf 0.13.3
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 // Baofeng/BTECH
42 DM1701, RT84 = DM1701,
43 DR1801UV
44 };
45
46public:
48 RadioInfo(Radio radio, const QString &name, const QString manufacturer,
49 const QSet<USBDeviceInfo> &interfaces,
50 const QList<RadioInfo> &alias=QList<RadioInfo>());
52 RadioInfo(Radio radio, const QString &key, const QString &name, const QString manufacturer,
53 const QSet<USBDeviceInfo> &interfaces,
54 const QList<RadioInfo> &alias=QList<RadioInfo>());
55
57 RadioInfo();
58
60 bool isValid() const;
61
63 const QString &key() const;
65 const QString &name() const;
67 const QString &manufacturer() const;
69 bool interfaceMatches(const USBDeviceInfo &other) const;
70
71
73 bool hasAlias() const;
75 const QList<RadioInfo> &alias() const;
76
78 Radio id() const;
79
80public:
82 static bool hasRadioKey(const QString &key);
84 static RadioInfo byKey(const QString &key);
86 static RadioInfo byID(Radio radio);
87
89 static QList<RadioInfo> allRadios(bool flat=true);
91 static QList<RadioInfo> allRadios(const USBDeviceInfo &interface, bool flat=true);
92
93protected:
97 QString _key;
99 QString _name;
103 QList<RadioInfo> _alias;
105 QSet<USBDeviceInfo> _interfaces;
106
107protected:
109 static QHash<QString, Radio> _radiosByName;
111 static QHash<unsigned, RadioInfo> _radiosById;
112};
113
114
115#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:77
static QHash< unsigned, RadioInfo > _radiosById
ID->Info map.
Definition radioinfo.hh:52
static RadioInfo byID(Radio radio)
Returns the radio info by id.
Definition radioinfo.cc:155
Radio id() const
Returns the unique device ID (alias radios share ID).
Definition radioinfo.cc:138
static QHash< QString, Radio > _radiosByName
Key->ID map.
Definition radioinfo.hh:23
bool interfaceMatches(const USBDeviceInfo &other) const
Returns some information about the interface to the radio.
Definition radioinfo.cc:121
QSet< USBDeviceInfo > _interfaces
Holds some information about the interface to the radio.
Definition radioinfo.hh:105
QString _name
Holds the name of the radio.
Definition radioinfo.hh:99
QList< RadioInfo > _alias
Holds possible identical radios from other manufacturers.
Definition radioinfo.hh:103
static QList< RadioInfo > allRadios(bool flat=true)
Returns the list of all known radios.
Definition radioinfo.cc:160
const QString & key() const
Returns the radio key (used to identify radios in the command line).
Definition radioinfo.cc:106
bool isValid() const
Returns true if the info is valid.
Definition radioinfo.cc:101
Radio
Known radios.
Definition radioinfo.hh:19
Radio _radio
Holds the radio id.
Definition radioinfo.hh:95
static RadioInfo byKey(const QString &key)
Returns the radio info by key.
Definition radioinfo.cc:148
QString _manufacturer
Holds the name of the manufacturer.
Definition radioinfo.hh:101
QString _key
Holds the key of the radio.
Definition radioinfo.hh:97
static bool hasRadioKey(const QString &key)
Returns true if the given key is known.
Definition radioinfo.cc:143
bool hasAlias() const
Returns true if the radio has aliases.
Definition radioinfo.cc:129
const QString & manufacturer() const
Returns the manufacturer name.
Definition radioinfo.cc:116
RadioInfo()
Empty constructor.
Definition radioinfo.cc:94
const QList< RadioInfo > & alias() const
Returns the list of alias radios.
Definition radioinfo.cc:133
const QString & name() const
Returns the radio name.
Definition radioinfo.cc:111
Base class for all Radio objects.
Definition radio.hh:32
Generic information about a possible radio interface.
Definition usbdevice.hh:121