libdrmconf 0.12.1
A library to program DMR radios.
Loading...
Searching...
No Matches
zone.hh
1#ifndef ZONE_HH
2#define ZONE_HH
3
4#include <QVector>
5#include "configobject.hh"
6#include "configreference.hh"
7
8#include "anytone_extension.hh"
9
10class Config;
11
14class Zone : public ConfigObject
15{
16 Q_OBJECT
17 Q_CLASSINFO("IdPrefix", "zone")
18
19
20 Q_PROPERTY(ChannelRefList* A READ A)
22 Q_PROPERTY(ChannelRefList* B READ B)
23
26
27public:
29 Q_INVOKABLE explicit Zone(QObject *parent=nullptr);
31 Zone(const QString &name, QObject *parent = nullptr);
32
34 Zone &operator =(const Zone &other);
35
36 ConfigItem *clone() const;
37
39 void clear();
40
42 const ChannelRefList *A() const;
46 const ChannelRefList *B() const;
49
51 bool contains(Channel *obj) const;
52
57
58signals:
60 void modified();
61
62protected:
69};
70
71
75{
76 Q_OBJECT
77
78public:
80 explicit ZoneList(QObject *parent = nullptr);
81
83 Zone *zone(int idx) const;
84
85 int add(ConfigObject *obj, int row=-1, bool unique=true);
86
87public:
88 ConfigItem *allocateChild(const YAML::Node &node, ConfigItem::Context &ctx, const ErrorStack &err=ErrorStack());
89};
90
91
92#endif // ZONE_HH
Implements the AnyTone extensions for zones.
Definition anytone_extension.hh:305
Represents a list of weak references to channels (analog and digital).
Definition configreference.hh:163
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:34
Parse context for config objects.
Definition configobject.hh:48
Base class for all configuration objects (channels, zones, contacts, etc).
Definition configobject.hh:40
virtual ConfigItem * allocateChild(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.
Definition configobject.cc:490
List class for config objects.
Definition configobject.hh:349
Base class of all labeled and named objects.
Definition configobject.hh:199
QString name
The name of the object.
Definition configobject.hh:203
The config class, representing the codeplug configuration.
Definition config.hh:70
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:41
Represents the list of zones within the generic configuration.
Definition zone.hh:75
Represents a zone within the generic configuration.
Definition zone.hh:15
AnytoneZoneExtension * anytone
The AnyTone extensions.
Definition zone.hh:25
ChannelRefList _A
List of channels for VFO A.
Definition zone.hh:64
AnytoneZoneExtension * _anytone
Owns the AnyTone extensions.
Definition zone.hh:68
void setAnytoneExtension(AnytoneZoneExtension *ext)
Sets the AnyTone extension.
Definition zone.cc:86
AnytoneZoneExtension * anytoneExtension() const
Returns the AnyTone extension.
Definition zone.cc:82
void modified()
Gets emitted whenever the zone gets modified.
ChannelRefList _B
List of channels for VFO B.
Definition zone.hh:66
ChannelRefList * B
The B channels.
Definition zone.hh:22
ChannelRefList * A
The A channels.
Definition zone.hh:20
bool contains(Channel *obj) const
Returns true, if the zone contains the given channel.
Definition zone.cc:77
void clear()
Clears this zone.
Definition zone.cc:52
ConfigItem * clone() const
Clones this item.
Definition zone.cc:42