libdrmconf  0.12.0
A library to program DMR radios.
Public Types | Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | Properties | List of all members
Channel Class Reference

The base class of all channels (analog and digital) of a codeplug configuration. More...

#include <channel.hh>

Inheritance diagram for Channel:
Inheritance graph
[legend]
Collaboration diagram for Channel:
Collaboration graph
[legend]

Public Types

enum class  Power {
  Max , High , Mid , Low ,
  Min
}
 Specifies the prefix for every ID assigned to every channel during serialization. More...
 

Public Member Functions

bool copy (const ConfigItem &other)
 Copies the given item into this one. More...
 
void clear ()
 Clears the config object.
 
Frequency rxFrequency () const
 Returns the RX frequency of the channel in Hz.
 
bool setRXFrequency (Frequency freq)
 (Re-)Sets the RX frequency of the channel in Hz.
 
Frequency txFrequency () const
 Returns the TX frequency of the channel in Hz.
 
bool setTXFrequency (Frequency freq)
 (Re-)Sets the TX frequency of the channel in Hz.
 
bool defaultPower () const
 Returns true if the channel uses the global default power setting.
 
Power power () const
 Returns the power setting of the channel if the channel does not use the default power.
 
void setPower (Power power)
 (Re-)Sets the power setting of the channel, overrides default power.
 
void setDefaultPower ()
 Sets the channel to use the default power setting.
 
bool defaultTimeout () const
 Returns true if the transmit timeout is specified by the global default value.
 
bool timeoutDisabled () const
 Returns true if the transmit timeout is disabled.
 
unsigned timeout () const
 Returns the TX timeout (TOT) in seconds.
 
bool setTimeout (unsigned dur)
 (Re-)Sets the TX timeout (TOT) in seconds.
 
void disableTimeout ()
 Disables the transmit timeout.
 
void setDefaultTimeout ()
 Sets the timeout to the global default timeout.
 
bool rxOnly () const
 Returns true, if the channel is RX only.
 
bool setRXOnly (bool enable)
 Set, whether the channel is RX only.
 
bool voxDisabled () const
 Returns true if the VOX is disabled.
 
bool defaultVOX () const
 Returns true if the VOX is specified by the global default value.
 
unsigned vox () const
 Returns the VOX level [0-10].
 
void setVOX (unsigned level)
 Sets the VOX level [0-10].
 
void setVOXDefault ()
 Sets the VOX level to the default value.
 
void disableVOX ()
 Disables the VOX.
 
const ScanListReferencescanListRef () const
 Returns the reference to the scan list.
 
ScanListReferencescanListRef ()
 Returns the reference to the scan list.
 
ScanListscanList () const
 Returns the default scan list for the channel.
 
bool setScanList (ScanList *list)
 (Re-) Sets the default scan list for the channel.
 
OpenGD77ChannelExtensionopenGD77ChannelExtension () const
 Returns the channel extension for the OpenGD77 firmware. More...
 
void setOpenGD77ChannelExtension (OpenGD77ChannelExtension *ext)
 Sets the OpenGD77 channel extension.
 
TyTChannelExtensiontytChannelExtension () const
 Returns the channel extension for TyT devices. More...
 
void setTyTChannelExtension (TyTChannelExtension *ext)
 Sets the TyT channel extension.
 
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). More...
 
bool link (const YAML::Node &node, const Context &ctx, const ErrorStack &err=ErrorStack())
 Links the given object to the rest of the codeplug using the given context.
 
- Public Member Functions inherited from ConfigObject
virtual const QString & name () const
 Returns the name of the object.
 
virtual void setName (const QString &name)
 Sets the name of the object.
 
QString idPrefix () const
 Returns the ID prefix for this object.
 
bool label (Context &context, const ErrorStack &err=ErrorStack())
 Recursively labels the config object. More...
 
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). More...
 
- Public Member Functions inherited from ConfigItem
virtual ConfigItemclone () const =0
 Clones this item.
 
virtual int compare (const ConfigItem &other) const
 Compares the items. More...
 
virtual YAML::Node serialize (const Context &context, const ErrorStack &err=ErrorStack())
 Recursively serializes the configuration to YAML nodes. More...
 
virtual ConfigItemallocateChild (QMetaProperty &prop, const YAML::Node &node, const Context &ctx, const ErrorStack &err=ErrorStack())
 Allocates an instance for the given property on the given YAML node. More...
 
virtual const Configconfig () const
 Returns the config, the item belongs to or nullptr if not part of a config.
 
virtual void findItemsOfTypes (const QStringList &typeNames, QSet< ConfigItem * > &items) const
 Searches the config tree to find all instances of the given type names.
 
template<class Object >
bool is () const
 Returns true if this object is of class Object.
 
template<class Object >
const Object * as () const
 Casts this object to the given type.
 
template<class Object >
Object * as ()
 Casts this object to the given type.
 
bool hasDescription () const
 Returns true if there is a class info "description" for this instance.
 
bool hasLongDescription () const
 Returns true if there is a class info "longDescription" for this instance.
 
bool hasDescription (const QMetaProperty &prop) const
 Returns true if there is a class info "[PropertyName]Description" for the given property.
 
bool hasLongDescription (const QMetaProperty &prop) const
 Returns true if there is a class info "[PropertyName]LongDescription" for the given property.
 
QString description () const
 Returns the description of this instance if set by a class info.
 
QString longDescription () const
 Returns the long description of this instance if set by a class info.
 
QString description (const QMetaProperty &prop) const
 Returns the description of property if set by a class info.
 
QString longDescription (const QMetaProperty &prop) const
 Returns the long description of property if set by a class info.
 

Protected Slots

void onReferenceModified ()
 Gets called whenever a referenced object is changed or deleted.
 

Protected Member Functions

 Channel (QObject *parent=nullptr)
 Hidden constructor. More...
 
 Channel (const Channel &other, QObject *parent=nullptr)
 Copy constructor.
 
bool populate (YAML::Node &node, const Context &context, const ErrorStack &err=ErrorStack())
 Recursively serializes the configuration to YAML nodes. More...
 
- Protected Member Functions inherited from ConfigObject
 ConfigObject (QObject *parent=nullptr)
 Specifies the prefix for every ID assigned to every object during serialization. More...
 
 ConfigObject (const QString &name, QObject *parent=nullptr)
 Hidden constructor. More...
 
- Protected Member Functions inherited from ConfigItem
 ConfigItem (QObject *parent=nullptr)
 Hidden constructor. More...
 

Protected Attributes

Frequency _rxFreq
 The RX frequency in Hz.
 
Frequency _txFreq
 The TX frequency in Hz.
 
bool _defaultPower
 If true, the channel uses the global power setting.
 
Power _power
 The transmit power setting.
 
unsigned _txTimeOut
 Transmit timeout in seconds.
 
bool _rxOnly
 RX only flag.
 
unsigned _vox
 Holds the VOX level.
 
ScanListReference _scanlist
 Default scan list of the channel.
 
OpenGD77ChannelExtension_openGD77ChannelExtension
 Owns the OpenGD77 channel extension object.
 
TyTChannelExtension_tytChannelExtension
 Owns the TyT channel extension object.
 
- Protected Attributes inherited from ConfigObject
QString _name
 Holds the name of the object.
 

Properties

Frequency rxFrequency
 The receive frequency of the channel in Hz.
 
Frequency txFrequency
 The transmit frequency of the channel in Hz.
 
Power power
 The transmit power.
 
unsigned timeout
 The transmit timeout in seconds.
 
bool rxOnly
 If true, the channel is receive only.
 
ScanListReferencescanListRef
 The scan list.
 
unsigned vox
 The VOX setting.
 
OpenGD77ChannelExtensionopenGD77
 The OpenGD77 channel extension.
 
TyTChannelExtensiontyt
 The TyT channel extension.
 
- Properties inherited from ConfigObject
QString name
 The name of the object.
 

Additional Inherited Members

- Signals inherited from ConfigItem
void modified (ConfigItem *obj)
 Gets emitted once the config object is modified. More...
 
void beginClear ()
 Gets emitted before clearing the item.
 
void endClear ()
 Gets emitted after clearing the item.
 
- Static Protected Member Functions inherited from ConfigObject
static QString findIdPrefix (const QMetaObject *meta)
 Helper to find the IdPrefix class info in the class hierarchy.
 

Detailed Description

The base class of all channels (analog and digital) of a codeplug configuration.

This class holds the common configuration of AnalogChannel and DigitalChannel, that is the name, RX and TX frequencies, output power, TOT and default scanlist properties.

Member Enumeration Documentation

◆ Power

enum Channel::Power
strong

Specifies the prefix for every ID assigned to every channel during serialization.

Possible power settings.

Enumerator
Max 

Highest power setting (e.g. > 5W, if available).

High 

High power setting (e.g, 5W).

Mid 

Medium power setting (e.g., 2W, if available)

Low 

Low power setting (e.g., 1W).

Min 

Lowest power setting (e.g., <1W, if available).

Constructor & Destructor Documentation

◆ Channel()

Channel::Channel ( QObject *  parent = nullptr)
explicitprotected

Hidden constructor.

Constructs a new empty channel.

Member Function Documentation

◆ copy()

bool Channel::copy ( const ConfigItem other)
virtual

Copies the given item into this one.

Returns
true if copying was successful and false otherwise. The two items must be of the same type (obviously).

Reimplemented from ConfigItem.

Reimplemented in SelectedChannel, and FMChannel.

◆ openGD77ChannelExtension()

OpenGD77ChannelExtension * Channel::openGD77ChannelExtension ( ) const

Returns the channel extension for the OpenGD77 firmware.

If this extension is not set, returns nullptr.

◆ parse()

bool Channel::parse ( const YAML::Node &  node,
ConfigItem::Context ctx,
const ErrorStack err = ErrorStack() 
)
virtual

Parses the given YAML node, updates the given object and updates the given context (IDs).

Todo:
With Qt 5.15, we can use the REQUIRED flag to check for mandatory properties. However, Ubuntu 20.04 (Focal) comes with Qt 5.12.

Reimplemented from ConfigItem.

Reimplemented in FMChannel.

◆ populate()

bool Channel::populate ( YAML::Node &  node,
const Context context,
const ErrorStack err = ErrorStack() 
)
protectedvirtual

Recursively serializes the configuration to YAML nodes.

The complete configuration must be labeled first.

Reimplemented from ConfigObject.

Reimplemented in FMChannel.

◆ tytChannelExtension()

TyTChannelExtension * Channel::tytChannelExtension ( ) const

Returns the channel extension for TyT devices.

If this extension is not set, returns nullptr.


The documentation for this class was generated from the following files: