libdrmconf 0.14.1
A library to program DMR radios.
Loading...
Searching...
No Matches
radiosettings.hh
1#ifndef RADIOSETTINGS_HH
2#define RADIOSETTINGS_HH
3
4#include "configobject.hh"
5#include "channel.hh"
6
7#include "gnsssettings.hh"
8#include "dmrsettings.hh"
9#include "radioddity_extensions.hh"
10#include "anytone_settingsextension.hh"
11#include "tyt_extensions.hh"
12
13
17{
18 Q_OBJECT
20 Q_PROPERTY(QString introLine1 READ introLine1 WRITE setIntroLine1)
22 Q_PROPERTY(QString introLine2 READ introLine2 WRITE setIntroLine2)
24 Q_PROPERTY(Level micLevel READ micLevel WRITE setMicLevel)
26 Q_PROPERTY(bool speech READ speech WRITE enableSpeech)
28 Q_PROPERTY(Channel::Power power READ power WRITE setPower)
30 Q_PROPERTY(Level squelch READ squelch WRITE setSquelch)
32 Q_PROPERTY(Level vox READ vox WRITE setVOX)
34 Q_PROPERTY(Interval tot READ tot WRITE setTOT SCRIPTABLE false)
38 Q_PROPERTY(GNSSSettings *gnss READ gnss);
40 Q_PROPERTY(DMRSettings *dmr READ dmr);
47
48public:
50 explicit RadioSettings(QObject *parent=nullptr);
51
52 bool copy(const ConfigItem &other);
53 ConfigItem *clone() const;
54
56 void clear();
57
59 const QString &introLine1() const;
61 void setIntroLine1(const QString &line);
62
64 const QString &introLine2() const;
66 void setIntroLine2(const QString &line);
67
69 Level micLevel() const;
71 void setMicLevel(Level value);
72
74 bool speech() const;
76 void enableSpeech(bool enabled);
77
79 Level squelch() const;
82
84 Channel::Power power() const;
86 void setPower(Channel::Power power);
87
89 bool voxDisabled() const;
91 Level vox() const;
93 void setVOX(Level level);
95 void disableVOX();
96
98 bool totDisabled() const;
100 Interval tot() const;
102 void setTOT(const Interval &sec);
104 void disableTOT();
105
109 DMRRadioID *defaultId() const;
111 void setDefaultId(DMRRadioID *id);
112
114 GNSSSettings *gnss() const;
116 DMRSettings *dmr() const;
117
122
127
132
133 bool parse(const YAML::Node &node, Context &ctx, const ErrorStack &err=ErrorStack());
134
135protected:
136 bool populate(YAML::Node &node, const Context &context, const ErrorStack &err=ErrorStack());
137
138protected slots:
140 void onExtensionModified();
141
142protected:
144 QString _introLine1;
146 QString _introLine2;
171};
172
173#endif // RADIOCONFIG_HH
Implements the device specific extension for the general settings of AnyTone devices.
Definition anytone_settingsextension.hh:2014
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:37
Parse context for config objects.
Definition configobject.hh:43
ConfigItem(QObject *parent=nullptr)
Hidden constructor.
Definition configobject.cc:158
Implements a reference to a radio ID.
Definition configreference.hh:251
Represents a DMR radio ID within the abstract config.
Definition radioid.hh:33
Implements some common DMR settings present in many devices.
Definition dmrsettings.hh:10
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Some common global GNSS settings.
Definition gnsssettings.hh:9
Represents a time interval.
Definition interval.hh:11
Some simple class implementing a [1-10] level setting.
Definition level.hh:15
RadiodditySettingsExtension * radioddity
The settings extension for Radioddity devices.
Definition radiosettings.hh:44
void setVOX(Level level)
Sets the default VOX level [0-10], 0=disabled.
Definition radiosettings.cc:132
void setMicLevel(Level value)
(Re-)Sets the MIC amplification level [1,10].
Definition radiosettings.cc:84
Level vox
The default vox sensitivity.
Definition radiosettings.hh:32
DMRRadioIDReference * defaultID
The default DMR radio ID.
Definition radiosettings.hh:36
QString _introLine2
Holds the second intro line.
Definition radiosettings.hh:146
DMRSettings * dmr
The common DMR settings.
Definition radiosettings.hh:40
RadioSettings(QObject *parent=nullptr)
Default constructor.
Definition radiosettings.cc:6
ConfigItem * clone() const
Clones this item.
Definition radiosettings.cc:30
TyTSettingsExtension * tyt
The settings extension for TyT devices.
Definition radiosettings.hh:42
QString _introLine1
Holds the first intro line.
Definition radiosettings.hh:144
void enableSpeech(bool enabled)
Enables/disables the speech synthesis.
Definition radiosettings.cc:98
void setSquelch(Level squelch)
Sets the default squelch level.
Definition radiosettings.cc:108
void clear()
Resets the settings.
Definition radiosettings.cc:40
DMRSettings * _dmr
The DMR settings.
Definition radiosettings.hh:164
AnytoneSettingsExtension * anytoneExtension() const
Returns the AnyTone device specific radio settings.
Definition radiosettings.cc:235
bool _speech
Holds the speech synthesis flag.
Definition radiosettings.hh:150
AnytoneSettingsExtension * anytone
Settings for AnyTone devices.
Definition radiosettings.hh:46
bool parse(const YAML::Node &node, Context &ctx, const ErrorStack &err=ErrorStack())
Parses the given YAML node, updates the given object and updates the given context (IDs).
Definition radiosettings.cc:261
bool totDisabled() const
Returns true if the transmit timeout (TOT) is disabled.
Definition radiosettings.cc:145
bool voxDisabled() const
Returns true if VOX is disabled by default.
Definition radiosettings.cc:124
Level _micLevel
Holds the mic amplification level.
Definition radiosettings.hh:148
void onExtensionModified()
Internal used callback whenever an extension is modified.
Definition radiosettings.cc:255
Level _squelch
Holds the global squelch setting.
Definition radiosettings.hh:152
DMRRadioID * defaultId() const
Returns the default DMR ID or nullptr, if non is set.
Definition radiosettings.cc:173
Interval tot
The default transmit timeout.
Definition radiosettings.hh:34
QString introLine1
The first intro line.
Definition radiosettings.hh:20
void setIntroLine1(const QString &line)
(Re-)Sets the first intro line.
Definition radiosettings.cc:64
bool speech
Speech synthesis flag.
Definition radiosettings.hh:26
void setTyTExtension(TyTSettingsExtension *ext)
Sets the TyT device specific radio settings.
Definition radiosettings.cc:200
Level _vox
Holds the global VOX level.
Definition radiosettings.hh:156
Level squelch
The squelch level.
Definition radiosettings.hh:30
RadiodditySettingsExtension * radioddityExtension() const
Returns the Radioddity device specific radio settings.
Definition radiosettings.cc:215
DMRRadioIDReference * _defaultId
Reference to the default DMR radio ID.
Definition radiosettings.hh:160
void disableTOT()
Disables the transmit timeout (TOT).
Definition radiosettings.cc:163
GNSSSettings * _gnss
The GNSS settings.
Definition radiosettings.hh:162
void setDefaultId(DMRRadioID *id)
Sets the default DMR ID.
Definition radiosettings.cc:179
RadiodditySettingsExtension * _radioddityExtension
Device specific settings extension for Radioddity devices.
Definition radiosettings.hh:168
void setPower(Channel::Power power)
Sets the default channel power.
Definition radiosettings.cc:118
void setIntroLine2(const QString &line)
(Re-)Sets the second intro line.
Definition radiosettings.cc:74
AnytoneSettingsExtension * _anytoneExtension
Device specific settings extension for AnyTone devices.
Definition radiosettings.hh:170
bool copy(const ConfigItem &other)
Copies the given item into this one.
Definition radiosettings.cc:18
void setAnytoneExtension(AnytoneSettingsExtension *ext)
Sets the AnyTone device specific radio settings.
Definition radiosettings.cc:240
TyTSettingsExtension * tytExtension() const
Returns the TyT device specific radio settings.
Definition radiosettings.cc:195
void disableVOX()
Disables VOX by default.
Definition radiosettings.cc:139
void setTOT(const Interval &sec)
Sets the default transmit timeout (TOT) in seconds, 0=disabled.
Definition radiosettings.cc:155
QString introLine2
The second intro line.
Definition radiosettings.hh:22
GNSSSettings * gnss
The GNSS settings.
Definition radiosettings.hh:38
bool populate(YAML::Node &node, const Context &context, const ErrorStack &err=ErrorStack())
Recursively serializes the configuration to YAML nodes.
Definition radiosettings.cc:286
Level micLevel
The mic amplification level.
Definition radiosettings.hh:24
Interval _transmitTimeOut
Holds the global transmit timeout.
Definition radiosettings.hh:158
Channel::Power power
The default channel power.
Definition radiosettings.hh:28
Channel::Power _power
Holds the global power setting.
Definition radiosettings.hh:154
TyTSettingsExtension * _tytExtension
Device specific settings extension for TyT devices.
Definition radiosettings.hh:166
void setRadioddityExtension(RadiodditySettingsExtension *ext)
Sets the Radioddity device specific radio settings.
Definition radiosettings.cc:220
DMRRadioIDReference * defaultIdRef() const
Returns a reference to the default DMR radio Id.
Definition radiosettings.cc:169
Represents the general settings extension for Radioddity devices.
Definition radioddity_extensions.hh:315
Represents the TyT general settings extension.
Definition tyt_extensions.hh:630