libdrmconf 0.14.1
A library to program DMR radios.
Loading...
Searching...
No Matches
radioddity_codeplug.hh
1#ifndef RADIODDITYCODEPLUG_HH
2#define RADIODDITYCODEPLUG_HH
3
4#include "codeplug.hh"
5#include "signaling.hh"
6#include "channel.hh"
7#include "contact.hh"
8#include "radioddity_extensions.hh"
9#include "ranges.hh"
10
11
12class DMRContact;
13class Zone;
14class RXGroupList;
15class ScanList;
16
24{
25 Q_OBJECT
26
27public:
33 {
34 public:
36 enum Mode {
39 };
40
47
53
54 protected:
56 ChannelElement(uint8_t *ptr, size_t size);
57
58 public:
60 explicit ChannelElement(uint8_t *ptr);
62 virtual ~ChannelElement();
63
65 static constexpr unsigned int size() { return 0x0038; }
66
68 virtual void clear();
69
71 virtual QString name() const;
73 virtual void setName(const QString &n);
74
76 virtual uint32_t rxFrequency() const;
78 virtual void setRXFrequency(uint32_t freq);
80 virtual uint32_t txFrequency() const;
82 virtual void setTXFrequency(uint32_t freq);
83
85 virtual Mode mode() const;
87 virtual void setMode(Mode mode);
88
90 virtual Interval txTimeOut() const;
92 virtual void setTXTimeOut(const Interval &tot);
94 virtual unsigned txTimeOutRekeyDelay() const;
96 virtual void setTXTimeOutRekeyDelay(unsigned delay);
97
99 virtual Admit admitCriterion() const;
101 virtual void setAdmitCriterion(Admit admit);
102
104 virtual bool hasScanList() const;
106 virtual unsigned scanListIndex() const;
108 virtual void setScanListIndex(unsigned index);
109
111 virtual SelectiveCall rxTone() const;
113 virtual void setRXTone(const SelectiveCall &code);
115 virtual SelectiveCall txTone() const;
117 virtual void setTXTone(const SelectiveCall &code);
118
120 virtual unsigned txSignalingIndex() const;
122 virtual void setTXSignalingIndex(unsigned index);
124 virtual unsigned rxSignalingIndex() const;
126 virtual void setRXSignalingIndex(unsigned index);
127
129 virtual PrivacyGroup privacyGroup() const;
131 virtual void setPrivacyGroup(PrivacyGroup grp);
132
134 virtual unsigned txColorCode() const;
136 virtual void setTXColorCode(unsigned cc);
137
139 virtual bool hasGroupList() const;
141 virtual unsigned groupListIndex() const;
143 virtual void setGroupListIndex(unsigned index);
144
146 virtual unsigned rxColorCode() const;
148 virtual void setRXColorCode(unsigned cc);
149
151 virtual bool hasEmergencySystem() const;
153 virtual unsigned emergencySystemIndex() const;
155 virtual void setEmergencySystemIndex(unsigned index);
156
158 virtual bool hasContact() const;
160 virtual unsigned contactIndex() const;
162 virtual void setContactIndex(unsigned index);
163
165 virtual bool dataCallConfirm() const;
167 virtual void enableDataCallConfirm(bool enable);
169 virtual bool emergencyAlarmACK() const;
171 virtual void enableEmergencyAlarmACK(bool enable);
173 virtual bool privateCallConfirm() const;
175 virtual void enablePrivateCallConfirm(bool enable);
177 virtual bool privacyEnabled() const;
179 virtual void enablePrivacy(bool enable);
180
182 virtual DMRChannel::TimeSlot timeSlot() const;
184 virtual void setTimeSlot(DMRChannel::TimeSlot ts);
185
187 virtual bool dualCapacityDirectMode() const;
189 virtual void enableDualCapacityDirectMode(bool enable);
191 virtual bool nonSTEFrequency() const;
193 virtual void enableNonSTEFrequency(bool enable);
194
196 virtual FMChannel::Bandwidth bandwidth() const;
198 virtual void setBandwidth(FMChannel::Bandwidth bw);
199
201 virtual bool rxOnly() const;
203 virtual void enableRXOnly(bool enable);
205 virtual bool talkaround() const;
207 virtual void enableTalkaround(bool enable);
209 virtual bool vox() const;
211 virtual void enableVOX(bool enable);
212
214 virtual Channel::Power power() const;
216 virtual void setPower(Channel::Power pwr);
217
219 virtual Channel *toChannelObj(Context &ctx, const ErrorStack &err=ErrorStack()) const;
221 virtual bool linkChannelObj(Channel *c, Context &ctx, const ErrorStack &err=ErrorStack()) const;
223 virtual bool fromChannelObj(const Channel *c, Context &ctx, const ErrorStack &err=ErrorStack());
224
225 public:
227 struct Limit {
229 static constexpr unsigned int nameLength() { return 16; }
230 };
231
232 protected:
234 struct Offset: public Element::Offset {
236 static constexpr unsigned int name() { return 0x0000; }
237 static constexpr unsigned int rxFrequency() { return 0x0010; }
238 static constexpr unsigned int txFrequency() { return 0x0014; }
239 static constexpr unsigned int mode() { return 0x0018; }
240 static constexpr unsigned int txTimeout() { return 0x001b; }
241 static constexpr unsigned int txTimeoutRekeyDelay() { return 0x001c; }
242 static constexpr unsigned int admitCriterion() { return 0x001d; }
243 static constexpr unsigned int scanList() { return 0x001f; }
244 static constexpr unsigned int rxTone() { return 0x0020; }
245 static constexpr unsigned int txTone() { return 0x0022; }
246 static constexpr unsigned int txSignaling() { return 0x0025; }
247 static constexpr unsigned int rxSignaling() { return 0x0027; }
248 static constexpr unsigned int privacyGroup() { return 0x0029; }
249 static constexpr unsigned int txColorCode() { return 0x002a; }
250 static constexpr unsigned int groupList() { return 0x002b; }
251 static constexpr unsigned int rxColorCode() { return 0x002c; }
252 static constexpr unsigned int emergencySystem() { return 0x002d; }
253 static constexpr unsigned int transmitContact() { return 0x002e; }
254 static constexpr Bit dataCallConfirm() { return {0x0030, 7}; }
255 static constexpr Bit emergencyAlarmACK() { return {0x0030, 6}; }
256 static constexpr Bit privateCallConfirm() { return {0x0031, 0}; }
257 static constexpr Bit privacyEnabled() { return {0x0031, 4}; }
258 static constexpr Bit timeSlot() { return {0x0031, 6}; }
259 static constexpr Bit dualCapacityDirectMode() { return {0x0032, 0}; }
260 static constexpr Bit nonSTEFrequency() { return {0x0032, 5}; }
261 static constexpr Bit bandwidth() { return {0x0033, 1}; }
262 static constexpr Bit rxOnly() { return {0x0033, 2}; }
263 static constexpr Bit talkaround() { return {0x0033, 3}; }
264 static constexpr Bit vox() { return {0x0033, 6}; }
265 static constexpr Bit power() { return {0x0033, 7}; }
267 };
268 };
269
275 {
276 protected:
278 ChannelBankElement(uint8_t *ptr, unsigned size);
279
280 public:
282 explicit ChannelBankElement(uint8_t *ptr);
284 virtual ~ChannelBankElement();
285
287 static constexpr unsigned int size() { return 0x1c10; }
288
290 void clear();
291
293 virtual bool isEnabled(unsigned idx) const ;
295 virtual void enable(unsigned idx, bool enabled);
297 virtual uint8_t *get(unsigned idx) const;
299 ChannelElement channel(unsigned int n);
300
301 public:
303 struct Limit {
305 static constexpr unsigned int channelCount() { return 128; }
306 };
307
308 protected:
310 struct Offset {
312 static constexpr unsigned int bitmask() { return 0x0000; }
313 static constexpr unsigned int channels() { return 0x0010; }
315 };
316 };
317
323 {
324 public:
326 enum class OffsetMode {
327 Off = 0,
330 };
331
343
344 protected:
346 VFOChannelElement(uint8_t *ptr, unsigned size);
347
348 public:
350 explicit VFOChannelElement(uint8_t *ptr);
351
352 void clear();
353
355 QString name() const;
357 void setName(const QString &name);
358
360 virtual double stepSize() const;
362 virtual void setStepSize(double kHz);
363
365 virtual OffsetMode offsetMode() const;
367 virtual double txOffset() const;
369 virtual void setTXOffset(double f);
371 virtual void setOffsetMode(OffsetMode mode);
372
373 protected:
375 struct Offset: public ChannelElement::Offset {
376 static constexpr Bit stepSize() { return {0x0036, 4} ; }
377 static constexpr Bit offsetMode() { return {0x0036, 2} ; }
378 static constexpr unsigned int txOffset() { return 0x0034; }
379 };
381 };
382
383
389 {
390 protected:
392 ContactElement(uint8_t *ptr, unsigned size);
393
394 public:
396 explicit ContactElement(uint8_t *ptr);
398 virtual ~ContactElement();
399
401 static constexpr unsigned int size() { return 0x0018; }
402
404 void clear();
406 bool isValid() const;
407
409 virtual QString name() const;
411 virtual void setName(const QString name);
412
414 virtual unsigned number() const;
416 virtual void setNumber(unsigned id);
417
419 virtual DMRContact::Type type() const;
421 virtual void setType(DMRContact::Type type);
422
424 virtual bool ring() const;
426 virtual void enableRing(bool enable);
427
429 virtual unsigned ringStyle() const;
431 virtual void setRingStyle(unsigned style);
432
434 virtual DMRContact *toContactObj(Context &ctx, const ErrorStack &err=ErrorStack()) const;
436 virtual bool fromContactObj(const DMRContact *obj, Context &ctx, const ErrorStack &err=ErrorStack());
437
438 public:
440 struct Limit {
442 static constexpr unsigned int nameLength() { return 16; }
444 static constexpr unsigned int ringStyle() { return 10; }
445 };
446
447 protected:
449 struct Offset {
451 static constexpr unsigned int name() { return 0x0000; }
452 static constexpr unsigned int number() { return 0x0010; }
453 static constexpr unsigned int type() { return 0x0014; }
454 static constexpr unsigned int ring() { return 0x0015; }
455 static constexpr unsigned int ringStyle() { return 0x0016; }
457 };
458 };
459
460
467 {
468 protected:
470 DTMFContactElement(uint8_t *ptr, unsigned size);
471
472 public:
474 explicit DTMFContactElement(uint8_t *ptr);
476 virtual ~DTMFContactElement();
477
479 static constexpr unsigned int size() { return 0x0020; }
480
482 void clear();
484 bool isValid() const;
485
487 virtual QString name() const;
489 virtual void setName(const QString &name);
490
492 virtual QString number() const;
494 virtual void setNumber(const QString &number);
495
497 virtual DTMFContact *toContactObj(Context &ctx, const ErrorStack &err=ErrorStack()) const;
499 virtual bool fromContactObj(const DTMFContact *obj, Context &ctx, const ErrorStack &err=ErrorStack());
500
501 public:
503 struct Limit {
505 static constexpr unsigned int nameLength() { return 16; }
507 static constexpr unsigned int numberLength() { return 16; }
508 };
509
510 protected:
512 struct Offset {
514 static constexpr unsigned int name() { return 0x0000; }
515 static constexpr unsigned int number() { return 0x0010; }
517 };
518 };
519
525 class ZoneElement: public Element
526 {
527 protected:
529 ZoneElement(uint8_t *ptr, unsigned size);
530
531 public:
533 explicit ZoneElement(uint8_t *ptr);
534 virtual ~ZoneElement();
535
537 static constexpr unsigned int size() { return 0x0030; }
538
540 void clear();
542 bool isValid() const;
543
545 virtual QString name() const;
547 virtual void setName(const QString &name);
548
551 virtual bool hasMember(unsigned n) const;
553 virtual unsigned member(unsigned n) const;
555 virtual void setMember(unsigned n, unsigned idx);
557 virtual void clearMember(unsigned n);
558
560 virtual Zone *toZoneObj(Context &ctx, const ErrorStack &err=ErrorStack()) const;
563 virtual bool linkZoneObj(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack()) const;
565 virtual bool fromZoneObjA(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
567 virtual bool fromZoneObjB(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
568
569 public:
571 struct Limit {
573 static constexpr unsigned int nameLength() { return 16; }
575 static constexpr unsigned int memberCount() { return 16; }
576 };
577
578 protected:
580 struct Offset {
582 static constexpr unsigned int name() { return 0x0000; }
583 static constexpr unsigned int channels() { return 0x0010; }
584 static constexpr unsigned int betweenChannels() { return 0x0002; }
586 };
587
588 };
589
596 {
597 protected:
599 ZoneBankElement(uint8_t *ptr, unsigned size);
600
601 public:
603 explicit ZoneBankElement(uint8_t *ptr);
606
608 static constexpr unsigned int size() { return 0x2f00; }
609
611 void clear();
612
614 virtual bool isEnabled(unsigned idx) const ;
616 virtual void enable(unsigned idx, bool enabled);
617
619 virtual uint8_t *get(unsigned idx) const;
621 ZoneElement zone(unsigned int n);
622
623 public:
625 struct Limit {
627 static constexpr unsigned int zoneCount() { return 250; }
628 };
629
630 protected:
632 struct Offset {
634 static constexpr unsigned int bitmap() { return 0x0000; }
635 static constexpr unsigned int zones() { return 0x0020; }
637 };
638 };
639
646 {
647 protected:
649 GroupListElement(uint8_t *ptr, unsigned size);
650
651 public:
653 explicit GroupListElement(uint8_t *ptr);
655 virtual ~GroupListElement();
656
658 static constexpr unsigned int size() { return 0x0030; }
659
661 void clear();
662
664 virtual QString name() const;
666 virtual void setName(const QString &name);
667
670 virtual bool hasMember(unsigned n) const;
672 virtual unsigned member(unsigned n) const;
674 virtual void setMember(unsigned n, unsigned idx);
676 virtual void clearMember(unsigned n);
677
679 virtual RXGroupList *toRXGroupListObj(Context &ctx, const ErrorStack &err = ErrorStack());
681 virtual bool linkRXGroupListObj(unsigned int ncnt, RXGroupList *lst, Context &ctx, const ErrorStack &err = ErrorStack()) const;
683 virtual bool fromRXGroupListObj(const RXGroupList *lst, Context &ctx, const ErrorStack &err = ErrorStack());
684
685 public:
687 struct Limit {
688 static constexpr unsigned int nameLength() { return 16; }
689 static constexpr unsigned int memberCount() { return 16; }
690 };
691
692 protected:
694 struct Offset {
696 static constexpr unsigned int name() { return 0x0000; }
697 static constexpr unsigned int members() { return 0x0010; }
698 static constexpr unsigned int betweenMembers() { return 0x0002; }
700 };
701 };
702
709 {
710 protected:
712 GroupListBankElement(uint8_t *ptr, unsigned size);
713
714 public:
716 explicit GroupListBankElement(uint8_t *ptr);
718 virtual ~GroupListBankElement();
719
721 static constexpr unsigned int size() { return 0x0c80; }
722
724 void clear();
725
727 virtual bool isEnabled(unsigned n) const;
729 virtual unsigned contactCount(unsigned n) const;
732 virtual void setContactCount(unsigned n, unsigned size);
734 virtual void disable(unsigned n);
735
737 virtual uint8_t *get(unsigned n) const;
738
739 public:
741 struct Limit {
742 static constexpr unsigned int groupListCount() { return 64; }
743 };
744
745 protected:
747 struct Offset {
749 static constexpr unsigned int contactCounts() { return 0x0000; }
750 static constexpr unsigned int groupLists() { return 0x0080; }
752 };
753 };
754
761 {
762 public:
770
771 protected:
773 ScanListElement(uint8_t *ptr, unsigned size);
774
775 public:
777 explicit ScanListElement(uint8_t *ptr);
779 virtual ~ScanListElement();
780
782 static constexpr unsigned int size() { return 0x0058; }
783
785 void clear();
786
788 virtual QString name() const;
790 virtual void setName(const QString &name);
791
793 virtual bool channelMark() const;
795 virtual void enableChannelMark(bool enable);
796
798 virtual Mode mode() const;
800 virtual void setMode(Mode mode);
801
803 virtual bool talkback() const;
805 virtual void enableTalkback(bool enable);
806
808 virtual bool hasMember(unsigned n) const;
810 virtual bool isSelected(unsigned n) const;
812 virtual unsigned member(unsigned n) const;
814 virtual void setMember(unsigned n, unsigned idx);
816 virtual void setSelected(unsigned n);
818 virtual void clearMember(unsigned n);
819
821 virtual bool hasPrimary() const;
823 virtual bool primaryIsSelected() const;
825 virtual unsigned primary() const;
827 virtual void setPrimary(unsigned idx);
829 virtual void setPrimarySelected();
831 virtual void clearPrimary();
832
834 virtual bool hasSecondary() const;
836 virtual bool secondaryIsSelected() const;
838 virtual unsigned secondary() const;
840 virtual void setSecondary(unsigned idx);
842 virtual void setSecondarySelected();
844 virtual void clearSecondary();
845
848 virtual bool hasRevert() const;
850 virtual bool revertIsSelected() const;
852 virtual unsigned revert() const;
854 virtual void setRevert(unsigned idx);
856 virtual void setRevertSelected();
858 virtual void clearRevert();
859
861 virtual unsigned holdTime() const;
863 virtual void setHoldTime(unsigned ms);
864
866 virtual unsigned prioritySampleTime() const;
868 virtual void setPrioritySampleTime(unsigned ms);
869
871 virtual ScanList *toScanListObj(Context &ctx, const ErrorStack &err=ErrorStack()) const;
873 virtual bool linkScanListObj(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack()) const;
875 virtual bool fromScanListObj(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
876
877 public:
879 struct Limit: public Element::Limit {
881 static constexpr unsigned int name() { return 15; }
883 static constexpr unsigned int members() { return 32; }
884 };
885
886 protected:
888 struct Offset: public Element::Offset {
889 static constexpr unsigned int name() { return 0x0000; }
890 static constexpr Bit channelMark() { return {0x000f, 4}; }
891 static constexpr Bit mode() { return {0x000f, 6}; }
892 static constexpr Bit talkback() { return {0x000f, 7}; }
893 static constexpr unsigned int members() { return 0x0010; }
894 static constexpr unsigned int betweenMembers() { return 0x0002; }
895 static constexpr unsigned int primary() { return 0x0050; }
896 static constexpr unsigned int secondary() { return 0x0052; }
897 static constexpr unsigned int revert() { return 0x0054; }
898 static constexpr unsigned int holdTime() { return 0x0056; }
899 static constexpr unsigned int primaryHoldTime() { return 0x0057; }
900 };
902 };
903
910 {
911 protected:
913 ScanListBankElement(uint8_t *ptr, unsigned size);
914
915 public:
917 explicit ScanListBankElement(uint8_t *ptr);
919 virtual ~ScanListBankElement();
920
922 static constexpr unsigned int size() { return 0x56f0; }
923
925 void clear();
926
928 virtual bool isEnabled(unsigned n) const;
930 virtual void enable(unsigned n, bool enabled);
932 virtual uint8_t *get(unsigned n) const;
933
934 public:
936 struct Limit {
937 static constexpr unsigned int scanListCount() { return 250; }
938 };
939
940 protected:
942 struct Offset {
944 static constexpr unsigned int bytemap() { return 0x0000; }
945 static constexpr unsigned int scanLists() { return 0x0040; }
947 };
948 };
949
950
957 {
958 public:
960 typedef RadiodditySettingsExtension::MonitorType MonitorType;
964 typedef RadiodditySettingsExtension::ScanMode ScanMode;
965
966 protected:
968 GeneralSettingsElement(uint8_t *ptr, unsigned size);
969
970 public:
972 explicit GeneralSettingsElement(uint8_t *ptr);
974 virtual ~GeneralSettingsElement();
975
977 static constexpr unsigned int size() { return 0x0028; }
978
980 void clear();
981
983 virtual QString name() const;
985 virtual void setName(const QString &name);
986
988 virtual unsigned radioID() const;
990 virtual void setRadioID(unsigned id);
991
993 virtual Interval preambleDuration() const;
995 virtual void setPreambleDuration(const Interval &dur);
996
998 virtual MonitorType monitorType() const;
1000 virtual void setMonitorType(MonitorType type);
1001
1003 virtual Level voxSensitivity() const;
1005 virtual void setVOXSensitivity(Level value);
1006
1008 virtual unsigned lowBatteryWarnInterval() const;
1010 virtual void setLowBatteryWarnInterval(unsigned sec);
1011
1013 virtual unsigned callAlertDuration() const;
1015 virtual void setCallAlertDuration(unsigned sec);
1016
1018 virtual unsigned loneWorkerResponsePeriod() const;
1020 virtual void setLoneWorkerResponsePeriod(unsigned min);
1022 virtual unsigned loneWorkerReminderPeriod() const;
1024 virtual void setLoneWorkerReminderPeriod(unsigned sec);
1025
1027 virtual Interval groupCallHangTime() const;
1029 virtual void setGroupCallHangTime(const Interval &dur);
1031 virtual Interval privateCallHangTime() const;
1033 virtual void setPrivateCallHangTime(const Interval &dur);
1034
1036 virtual bool downChannelModeVFO() const;
1038 virtual void enableDownChannelModeVFO(bool enable);
1040 virtual bool upChannelModeVFO() const;
1042 virtual void enableUpChannelModeVFO(bool enable);
1044 virtual bool resetTone() const;
1046 virtual void enableResetTone(bool enable);
1048 virtual bool unknownNumberTone() const;
1050 virtual void enableUnknownNumberTone(bool enable);
1052 virtual ARTSTone artsToneMode() const;
1054 virtual void setARTSToneMode(ARTSTone mode);
1055
1057 virtual bool digitalTalkPermitTone() const;
1059 virtual void enableDigitalTalkPermitTone(bool enable);
1061 virtual bool analogTalkPermitTone() const;
1063 virtual void enableAnalogTalkPermitTone(bool enable);
1065 virtual bool selftestTone() const;
1067 virtual void enableSelftestTone(bool enable);
1069 virtual bool channelFreeIndicationTone() const;
1071 virtual void enableChannelFreeIndicationTone(bool enable);
1073 virtual bool allTonesDisabled() const;
1075 virtual void disableAllTones(bool disable);
1077 virtual bool batsaveRX() const;
1079 virtual void enableBatsaveRX(bool enable);
1081 virtual bool batsavePreamble() const;
1083 virtual void enableBatsavePreamble(bool enable);
1084
1086 virtual bool allLEDsDisabled() const;
1088 virtual void disableAllLEDs(bool disable);
1090 virtual bool quickKeyOverrideInhibited() const;
1092 virtual void inhibitQuickKeyOverride(bool inhibit);
1093
1095 virtual bool txExitTone() const;
1097 virtual void enableTXExitTone(bool enable);
1099 virtual bool txOnActiveChannel() const;
1101 virtual void enableTXOnActiveChannel(bool enable);
1103 virtual bool animation() const;
1105 virtual void enableAnimation(bool enable);
1107 virtual ScanMode scanMode() const;
1109 virtual void setScanMode(ScanMode mode);
1110
1112 virtual unsigned repeaterEndDelay() const;
1114 virtual void setRepeaterEndDelay(unsigned delay);
1116 virtual unsigned repeaterSTE() const;
1118 virtual void setRepeaterSTE(unsigned ste);
1119
1121 virtual bool hasProgPassword() const;
1123 virtual QString progPassword() const;
1125 virtual void setProgPassword(const QString &pwd);
1127 virtual void clearProgPassword();
1128
1130 virtual bool fromConfig(Context &ctx, const ErrorStack &err=ErrorStack());
1132 virtual bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack());
1133
1134 public:
1136 struct Limit: Element::Limit {
1137 // VOX sensitivity settings.
1138 static constexpr Range<unsigned int> vox() { return {1,10}; }
1139 };
1140 };
1141
1147 {
1148 public:
1151 public:
1156
1157 protected:
1159 enum Action {
1160 None = 0x00,
1161 ToggleAllAlertTones = 0x01,
1162 EmergencyOn = 0x02,
1163 EmergencyOff = 0x03,
1165 NuiaceDelete = 0x06,
1166 OneTouch1 = 0x07,
1167 OneTouch2 = 0x08,
1168 OneTouch3 = 0x09,
1169 OneTouch4 = 0x0a,
1170 OneTouch5 = 0x0b,
1171 OneTouch6 = 0x0c,
1172 ToggleRepeatTalkaround = 0x0d,
1173 ToggleScan = 0x0e,
1174 TogglePrivacy = 0x10,
1175 ToggleVox = 0x11,
1176 ZoneSelect = 0x12,
1177 BatteryIndicator = 0x13,
1178 ToggleLoneWorker = 0x14,
1179 PhoneExit = 0x16,
1180 ToggleFlashLight = 0x1a,
1181 ToggleFMRadio = 0x1b
1182 };
1183 };
1184
1186 enum class OneTouchAction {
1187 None = 0x00,
1191 };
1192
1193 protected:
1195 ButtonSettingsElement(uint8_t *ptr, unsigned size);
1196
1197 public:
1199 explicit ButtonSettingsElement(uint8_t *ptr);
1201 virtual ~ButtonSettingsElement();
1202
1204 void clear();
1205
1207 virtual Interval longPressDuration() const;
1209 virtual void setLongPressDuration(Interval ms);
1210
1219
1228
1237
1239 virtual OneTouchAction oneTouchAction(unsigned n) const;
1241 virtual unsigned oneTouchContact(unsigned n) const;
1243 virtual unsigned oneTouchMessage(unsigned n) const;
1245 virtual void disableOneTouch(unsigned n);
1247 virtual void setOneTouchDigitalCall(unsigned n, unsigned index);
1249 virtual void setOneTouchDigitalMessage(unsigned n, unsigned index);
1251 virtual void setOneTouchAnalogCall(unsigned n);
1252
1254 bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1256 bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1257
1258 public:
1260 struct Limits {
1262 static constexpr TimeRange longPressDuration() {
1263 return TimeRange{Interval::fromMilliseconds(0), Interval::fromMilliseconds(255*250)};
1264 }
1265
1266 static constexpr unsigned int oneTouchActions() { return 6; }
1267 };
1268
1269 protected:
1271 struct Offset {
1273 static constexpr unsigned int longPressDuration() { return 0x0001; }
1274 static constexpr unsigned int sk1ShortPress() { return 0x0002; }
1275 static constexpr unsigned int sk1LongPress() { return 0x0003; }
1276 static constexpr unsigned int sk2ShortPress() { return 0x0004; }
1277 static constexpr unsigned int sk2LongPress() { return 0x0005; }
1278 static constexpr unsigned int tkShortPress() { return 0x0006; }
1279 static constexpr unsigned int tkLongPress() { return 0x0007; }
1280 static constexpr unsigned int oneTouchActions() { return 0x0008; }
1281 static constexpr unsigned int betweenOneTouchActions() { return 0x0004; }
1283 };
1284 };
1285
1291 {
1292 public:
1296 Name = 1,
1298 };
1299
1301 enum class DualWatchMode {
1302 DualDual = 1,
1303 DualSingle = 2
1304 };
1305
1306 protected:
1308 MenuSettingsElement(uint8_t *ptr, unsigned size);
1309
1310 public:
1312 explicit MenuSettingsElement(uint8_t *ptr);
1314 virtual ~MenuSettingsElement();
1315
1317 void clear();
1318
1320 virtual unsigned menuHangTime() const;
1322 virtual void setMenuHangTime(unsigned sec);
1323
1325 virtual bool message() const;
1327 virtual void enableMessage(bool enable);
1329 virtual bool scanStart() const;
1331 virtual void enableScanStart(bool enable);
1333 virtual bool editScanList() const;
1335 virtual void enableEditScanList(bool enable);
1337 virtual bool callAlert() const;
1339 virtual void enableCallAlert(bool enable);
1341 virtual bool editContact() const;
1343 virtual void enableEditContact(bool enable);
1345 virtual bool manualDial() const;
1347 virtual void enableManualDial(bool enable);
1349 virtual bool radioCheck() const;
1351 virtual void enableRadioCheck(bool enable);
1353 virtual bool remoteMonitor() const;
1355 virtual void enableRemoteMonitor(bool enable);
1356
1358 virtual bool radioEnable() const;
1360 virtual void enableRadioEnable(bool enable);
1362 virtual bool radioDisable() const;
1364 virtual void enableRadioDisable(bool enable);
1366 virtual bool progPassword() const;
1368 virtual void enableProgPassword(bool enable);
1370 virtual bool talkaround() const;
1372 virtual void enableTalkaround(bool enable);
1374 virtual bool tone() const;
1376 virtual void enableTone(bool enable);
1378 virtual bool power() const;
1380 virtual void enablePower(bool enable);
1382 virtual bool backlight() const;
1384 virtual void enableBacklight(bool enable);
1386 virtual bool introScreen() const;
1388 virtual void enableIntroScreen(bool enable);
1389
1391 virtual bool keypadLock() const;
1393 virtual void enableKeypadLock(bool enable);
1395 virtual bool ledIndicator() const;
1397 virtual void enableLEDIndicator(bool enable);
1399 virtual bool squelch() const;
1401 virtual void enableSquelch(bool enable);
1403 virtual bool privacy() const;
1405 virtual void enablePrivacy(bool enable);
1407 virtual bool vox() const;
1409 virtual void enableVOX(bool enable);
1411 virtual bool passwordLock() const;
1413 virtual void enablePasswordLock(bool enable);
1415 virtual bool missedCalls() const;
1417 virtual void enableMissedCalls(bool enable);
1419 virtual bool answeredCalls() const;
1421 virtual void enableAnsweredCalls(bool enable);
1422
1424 virtual bool outgoingCalls() const;
1426 virtual void enableOutgoingCalls(bool enable);
1428 virtual bool channelDisplay() const;
1430 virtual void enableChannelDisplay(bool enable);
1432 virtual bool dualWatch() const;
1434 virtual void enableDualWatch(bool enable);
1435
1437 virtual unsigned keypadLockTime() const;
1439 virtual void setKeypadLockTime(unsigned sec);
1440
1442 virtual unsigned backlightTime() const;
1444 virtual void setBacklightTime(unsigned sec);
1445
1447 virtual ChannelDisplayMode channelDisplayMode() const;
1449 virtual void setChannelDisplayMode(ChannelDisplayMode mode);
1450
1452 virtual bool keyTone() const;
1454 virtual void enableKeyTone(bool enable);
1455
1457 virtual DualWatchMode dualWatchMode() const;
1459 virtual void setDualWatchMode(DualWatchMode mode);
1460 };
1461
1467 {
1468 protected:
1470 BootSettingsElement(uint8_t *ptr, unsigned size);
1471
1472 public:
1474 explicit BootSettingsElement(uint8_t *ptr);
1476 virtual ~BootSettingsElement();
1477
1479 void clear();
1480
1482 virtual bool bootText() const;
1484 virtual void enableBootText(bool enable);
1485
1487 virtual bool bootPasswordEnabled() const;
1489 virtual void enableBootPassword(bool enable);
1491 virtual unsigned bootPassword() const;
1493 virtual void setBootPassword(unsigned passwd);
1494 };
1495
1501 {
1502 protected:
1504 BootTextElement(uint8_t *ptr, unsigned size);
1505
1506 public:
1508 explicit BootTextElement(uint8_t *ptr);
1510 virtual ~BootTextElement();
1511
1513 static constexpr unsigned int size() { return 0x0020; }
1514
1516 void clear();
1517
1519 virtual QString line1() const;
1521 virtual void setLine1(const QString &text);
1523 virtual QString line2() const;
1525 virtual void setLine2(const QString &text);
1526
1528 virtual bool fromConfig(Context &ctx, const ErrorStack &err = ErrorStack());
1530 virtual bool updateConfig(Context &ctx, const ErrorStack &err = ErrorStack());
1531
1532 public:
1534 struct Limit {
1535 static constexpr unsigned int lineLength() { return 16; }
1536 };
1537
1538 protected:
1540 struct Offset {
1542 static constexpr unsigned int line1() { return 0x0000;}
1543 static constexpr unsigned int line2() { return 0x0010;}
1545 };
1546 };
1547
1553 {
1554 protected:
1556 MessageBankElement(uint8_t *ptr, unsigned size);
1557
1558 public:
1560 explicit MessageBankElement(uint8_t *ptr);
1562 virtual ~MessageBankElement();
1563
1565 static constexpr unsigned int size() { return 0x1248; }
1567 void clear();
1568
1570 virtual unsigned numMessages() const;
1572 virtual QString message(unsigned n) const;
1574 virtual void appendMessage(const QString msg);
1575
1577 virtual bool encode(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack());
1579 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1580
1581 public:
1583 struct Limit {
1584 static constexpr unsigned int messages() { return 32; }
1585 static constexpr unsigned int messageLength() { return 144; }
1586 };
1587
1588 protected:
1590 struct Offset {
1592 static constexpr unsigned int messageConut() { return 0x0000; }
1593 static constexpr unsigned int messageLengths() { return 0x0008; }
1594 static constexpr unsigned int messages() { return 0x0048; }
1595 static constexpr unsigned int betweenMessages() { return Limit::messageLength(); }
1597 };
1598 };
1599
1605 {
1606 public:
1609 enum class PrivacyType {
1612 };
1613
1614 protected:
1616 EncryptionElement(uint8_t *ptr, size_t size);
1617
1618 public:
1620 explicit EncryptionElement(uint8_t *ptr);
1622 virtual ~EncryptionElement();
1623
1625 static constexpr unsigned int size() { return 0x0088; }
1626
1627 void clear();
1628
1630 virtual PrivacyType privacyType() const;
1632 virtual void setPrivacyType(PrivacyType type);
1633
1636 virtual bool isBasicKeySet(unsigned n) const;
1638 virtual QByteArray basicKey(unsigned n) const;
1640 virtual void setBasicKey(unsigned n, const QByteArray &key);
1642 virtual void clearBasicKey(unsigned n);
1643
1645 virtual bool fromCommercialExt(CommercialExtension *ext, Context &ctx, const ErrorStack &err=ErrorStack());
1647 virtual bool updateCommercialExt(Context &ctx, const ErrorStack &err=ErrorStack());
1649 virtual bool linkCommercialExt(CommercialExtension *ext, Context &ctx, const ErrorStack &err=ErrorStack());
1650
1651 public:
1653 struct Limit {
1655 static constexpr unsigned int keyCount() { return 16; }
1657 static constexpr unsigned int keySize() { return 4; }
1658 };
1659
1660 protected:
1662 struct Offset {
1664 static constexpr unsigned int privacyType() { return 0x0000; }
1665 static constexpr unsigned int bitmap() { return 0x0002; }
1666 static constexpr unsigned int keys() { return 0x0008; }
1667 static constexpr unsigned int key() { return 0x0008;}
1669 };
1670 };
1671
1672protected:
1674 explicit RadioddityCodeplug(QObject *parent=nullptr);
1675
1676public:
1678 virtual ~RadioddityCodeplug();
1679
1681 virtual void clear();
1682
1683 bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const;
1684
1685 bool decode(Config *config, const ErrorStack &err=ErrorStack());
1686 bool postprocess(Config *config, const ErrorStack &err) const;
1687
1688 Config *preprocess(Config *config, const ErrorStack &err) const;
1689 bool encode(Config *config, const Flags &flags = Flags(), const ErrorStack &err=ErrorStack());
1690
1691public:
1694 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
1696 virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1697
1699 virtual void clearGeneralSettings() = 0;
1701 virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1703 virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1704
1706 virtual void clearButtonSettings() = 0;
1708 virtual bool encodeButtonSettings(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack()) = 0;
1710 virtual bool decodeButtonSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1711
1713 virtual void clearMessages() = 0;
1715 virtual bool encodeMessages(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack()) = 0;
1717 virtual bool decodeMessages(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1718
1720 virtual void clearContacts() = 0;
1722 virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1724 virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1725
1727 virtual void clearDTMFContacts() = 0;
1729 virtual bool encodeDTMFContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1731 virtual bool createDTMFContacts(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1732
1734 virtual void clearChannels() = 0;
1736 virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1738 virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1740 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1741
1743 virtual void clearBootSettings() = 0;
1744
1746 virtual void clearMenuSettings() = 0;
1747
1749 virtual void clearBootText() = 0;
1751 virtual bool encodeBootText(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1753 virtual bool decodeBootText(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1754
1756 virtual void clearVFOSettings() = 0;
1757
1759 virtual void clearZones() = 0;
1761 virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1763 virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1765 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1766
1768 virtual void clearScanLists() = 0;
1770 virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1772 virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1774 virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1775
1777 virtual void clearGroupLists() = 0;
1779 virtual bool encodeGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1781 virtual bool createGroupLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1783 virtual bool linkGroupLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1784
1786 virtual void clearEncryption() = 0;
1788 virtual bool encodeEncryption(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1790 virtual bool createEncryption(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1792 virtual bool linkEncryption(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1793};
1794
1795#endif // RADIODDITYCODEPLUG_HH
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:37
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:64
Base class for all codeplug contexts.
Definition codeplug.hh:331
Represents the abstract base class of all codeplug elements.
Definition codeplug.hh:65
Element(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:56
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:24
Codeplug(QObject *parent=nullptr)
Hidden default constructor.
Definition codeplug.cc:872
Implements the generic extension for the codeplug to represent some commercial features of DMR.
Definition commercial_extension.hh:11
The config class, representing the codeplug configuration.
Definition config.hh:70
uint32_t size() const
Returns the total size of the DFU file.
Definition dfufile.cc:52
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:439
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Type
Possible call types for a contact.
Definition contact.hh:155
Represents an analog contact, that is a DTMF number.
Definition contact.hh:89
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Bandwidth
Possible bandwidth of an analog channel.
Definition channel.hh:279
Represents a time interval.
Definition interval.hh:11
static constexpr Interval fromMilliseconds(unsigned long long ms)
Definition interval.hh:73
Some simple class implementing a [1-10] level setting.
Definition level.hh:15
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Function
Possible function key actions.
Definition radioddity_extensions.hh:32
virtual bool bootPasswordEnabled() const
Returns true if the boot password is enabled.
Definition radioddity_codeplug.cc:2521
virtual bool bootText() const
Returns true if the text is shown on boot, other wise an image is shown.
Definition radioddity_codeplug.cc:2512
void clear()
Resets the settings.
Definition radioddity_codeplug.cc:2503
BootSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:2486
virtual void enableBootPassword(bool enable)
Enables/disables the boot password.
Definition radioddity_codeplug.cc:2525
virtual ~BootSettingsElement()
Destructor.
Definition radioddity_codeplug.cc:2498
virtual unsigned bootPassword() const
Returns the boot password (6 digit).
Definition radioddity_codeplug.cc:2530
virtual void enableBootText(bool enable)
Enables/disables boot text.
Definition radioddity_codeplug.cc:2516
virtual void setBootPassword(unsigned passwd)
Sets the boot password (6 digit).
Definition radioddity_codeplug.cc:2534
virtual void setLine1(const QString &text)
Sets the first line.
Definition radioddity_codeplug.cc:2568
virtual bool fromConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes boot text settings from configuration.
Definition radioddity_codeplug.cc:2582
static constexpr unsigned int size()
The size of the boot text element.
Definition radioddity_codeplug.hh:1513
virtual QString line1() const
Returns the first line.
Definition radioddity_codeplug.cc:2564
void clear()
Resets the intro text.
Definition radioddity_codeplug.cc:2558
virtual QString line2() const
Returns the Second line.
Definition radioddity_codeplug.cc:2573
virtual void setLine2(const QString &text)
Sets the second line.
Definition radioddity_codeplug.cc:2577
virtual ~BootTextElement()
Destructor.
Definition radioddity_codeplug.cc:2553
virtual bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Updates the configuration with the boot text settings.
Definition radioddity_codeplug.cc:2590
BootTextElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:2541
ButtonSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:1975
virtual void setOneTouchDigitalMessage(unsigned n, unsigned index)
Configures n-th one-touch action as a digital message using given index.
Definition radioddity_codeplug.cc:2087
void clear()
Clears the button settings.
Definition radioddity_codeplug.cc:1992
virtual RadioddityButtonSettingsExtension::Function tkLongPress() const
Returns the top-key long-press action.
Definition radioddity_codeplug.cc:2056
virtual OneTouchAction oneTouchAction(unsigned n) const
Returns the n-th one-touch action.
Definition radioddity_codeplug.cc:2065
virtual unsigned oneTouchContact(unsigned n) const
Returns the n-th one-touch contact index (if action is OneTouchAction::DigitalCall).
Definition radioddity_codeplug.cc:2069
virtual RadioddityButtonSettingsExtension::Function sk1ShortPress() const
Returns the side-key 1 short-press action.
Definition radioddity_codeplug.cc:2014
bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the button settings (if set).
Definition radioddity_codeplug.cc:2100
virtual unsigned oneTouchMessage(unsigned n) const
Returns the n-th one-touch message index (if action is OneTouchAction::DigitalMessage).
Definition radioddity_codeplug.cc:2073
virtual ~ButtonSettingsElement()
Destructor.
Definition radioddity_codeplug.cc:1987
virtual void setSK1ShortPress(RadioddityButtonSettingsExtension::Function action)
Sets the side-key 1 short-press action.
Definition radioddity_codeplug.cc:2018
virtual void setTKShortPress(RadioddityButtonSettingsExtension::Function action)
Sets the top-key short-press action.
Definition radioddity_codeplug.cc:2052
virtual void setOneTouchAnalogCall(unsigned n)
Configures n-th one-touch action as a analog call.
Definition radioddity_codeplug.cc:2093
virtual void disableOneTouch(unsigned n)
Disables the n-th one-touch action.
Definition radioddity_codeplug.cc:2077
virtual void setSK1LongPress(RadioddityButtonSettingsExtension::Function action)
Sets the side-key 1 long-press action.
Definition radioddity_codeplug.cc:2026
virtual void setSK2LongPress(RadioddityButtonSettingsExtension::Function action)
Sets the side-key 2 long-press action.
Definition radioddity_codeplug.cc:2043
virtual void setSK2ShortPress(RadioddityButtonSettingsExtension::Function action)
Sets the side-key 2 short-press action.
Definition radioddity_codeplug.cc:2035
bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the button settings.
Definition radioddity_codeplug.cc:2119
virtual void setTKLongPress(RadioddityButtonSettingsExtension::Function action)
Sets the top-key long-press action.
Definition radioddity_codeplug.cc:2060
virtual Interval longPressDuration() const
Returns the long-press duration in ms.
Definition radioddity_codeplug.cc:2005
virtual void setLongPressDuration(Interval ms)
Sets the long-press duration in ms.
Definition radioddity_codeplug.cc:2009
virtual RadioddityButtonSettingsExtension::Function sk2LongPress() const
Returns the side-key 2 long-press action.
Definition radioddity_codeplug.cc:2039
virtual void setOneTouchDigitalCall(unsigned n, unsigned index)
Configures n-th one-touch action as a digital call to contact index.
Definition radioddity_codeplug.cc:2081
virtual RadioddityButtonSettingsExtension::Function sk1LongPress() const
Returns the side-key 1 long-press action.
Definition radioddity_codeplug.cc:2022
virtual RadioddityButtonSettingsExtension::Function sk2ShortPress() const
Returns the side-key 2 short-press action.
Definition radioddity_codeplug.cc:2031
virtual RadioddityButtonSettingsExtension::Function tkShortPress() const
Returns the top-key short-press action.
Definition radioddity_codeplug.cc:2048
OneTouchAction
Possible one-touch actions.
Definition radioddity_codeplug.hh:1186
@ DigitalMessage
Sends a SMS.
Definition radioddity_codeplug.hh:1189
@ DigitalCall
Calls a digital contact.
Definition radioddity_codeplug.hh:1188
@ None
Disabled.
Definition radioddity_codeplug.hh:1187
@ AnalogCall
Calls an analog contact.
Definition radioddity_codeplug.hh:1190
virtual ~ChannelBankElement()
Destructor.
Definition radioddity_codeplug.cc:501
virtual uint8_t * get(unsigned idx) const
Returns a pointer to the channel at the given index.
Definition radioddity_codeplug.cc:522
virtual void enable(unsigned idx, bool enabled)
Enable/disable a channel in the bank.
Definition radioddity_codeplug.cc:516
ChannelBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:489
void clear()
Clears the bank.
Definition radioddity_codeplug.cc:506
virtual bool isEnabled(unsigned idx) const
Returns true if the channel is enabled.
Definition radioddity_codeplug.cc:511
ChannelElement channel(unsigned int n)
Returns the n-th channel.
Definition radioddity_codeplug.cc:527
static constexpr unsigned int size()
The size of the channel bank.
Definition radioddity_codeplug.hh:287
Implements the base for all Radioddity channel encodings.
Definition radioddity_codeplug.hh:33
virtual bool hasGroupList() const
Returns true if a group list is set.
Definition radioddity_codeplug.cc:193
virtual void setRXSignalingIndex(unsigned index)
Sets RX signaling index (+1).
Definition radioddity_codeplug.cc:170
virtual Interval txTimeOut() const
Returns the TX timeout in seconds.
Definition radioddity_codeplug.cc:97
virtual ~ChannelElement()
Destructor.
Definition radioddity_codeplug.cc:29
virtual unsigned txSignalingIndex() const
Returns TX signaling index (+1).
Definition radioddity_codeplug.cc:158
virtual unsigned emergencySystemIndex() const
Returns the emergency system index (+1).
Definition radioddity_codeplug.cc:219
virtual void setTXFrequency(uint32_t freq)
Sets the TX frequency of the channel.
Definition radioddity_codeplug.cc:84
virtual bool nonSTEFrequency() const
Returns true if non-STE is frequency (?
Definition radioddity_codeplug.cc:291
virtual bool hasScanList() const
Returns true if a scan list is set.
Definition radioddity_codeplug.cc:128
virtual void enablePrivacy(bool enable)
Enables/disables privacy.
Definition radioddity_codeplug.cc:269
virtual void setContactIndex(unsigned index)
Sets the transmit contact index (+1).
Definition radioddity_codeplug.cc:236
virtual SelectiveCall txTone() const
Returns the TX subtone.
Definition radioddity_codeplug.cc:149
virtual void setPrivacyGroup(PrivacyGroup grp)
Sets the privacy group.
Definition radioddity_codeplug.cc:179
Mode
Possible channel types.
Definition radioddity_codeplug.hh:36
@ MODE_ANALOG
Analog channel, aka FM.
Definition radioddity_codeplug.hh:37
@ MODE_DIGITAL
Digital channel, aka DMR.
Definition radioddity_codeplug.hh:38
virtual uint32_t txFrequency() const
Returns the TX frequency of the channel.
Definition radioddity_codeplug.cc:80
virtual Admit admitCriterion() const
Returns the admit criterion.
Definition radioddity_codeplug.cc:119
virtual unsigned txColorCode() const
Returns the TX color code.
Definition radioddity_codeplug.cc:184
virtual void enableTalkaround(bool enable)
Enables/disables talkaround.
Definition radioddity_codeplug.cc:321
virtual unsigned scanListIndex() const
Returns the scan list index (+1).
Definition radioddity_codeplug.cc:132
virtual void setTXTone(const SelectiveCall &code)
Sets the TX subtone.
Definition radioddity_codeplug.cc:153
virtual void setGroupListIndex(unsigned index)
Sets the group-list index (+1).
Definition radioddity_codeplug.cc:201
virtual void enableDataCallConfirm(bool enable)
Enables/disables data-call-confirm.
Definition radioddity_codeplug.cc:245
static constexpr unsigned int size()
The size of the channel.
Definition radioddity_codeplug.hh:65
virtual void setRXColorCode(unsigned cc)
Sets the RX color code.
Definition radioddity_codeplug.cc:210
virtual bool dataCallConfirm() const
Returns true if data-call-confirm is enabled.
Definition radioddity_codeplug.cc:241
virtual void setTXTimeOut(const Interval &tot)
Sets the TX timeout in seconds.
Definition radioddity_codeplug.cc:103
virtual void enableEmergencyAlarmACK(bool enable)
Enables/disables emergency alarm ACK.
Definition radioddity_codeplug.cc:253
virtual void enableRXOnly(bool enable)
Enables/disables RX only.
Definition radioddity_codeplug.cc:313
virtual SelectiveCall rxTone() const
Returns the RX subtone.
Definition radioddity_codeplug.cc:141
virtual void setAdmitCriterion(Admit admit)
Sets the admit criterion.
Definition radioddity_codeplug.cc:123
virtual void enableNonSTEFrequency(bool enable)
Enables/disables non-STE is frequency (?
Definition radioddity_codeplug.cc:295
virtual bool talkaround() const
Returns true if talkaround is enabled.
Definition radioddity_codeplug.cc:317
virtual unsigned contactIndex() const
Returns the transmit contact index (+1).
Definition radioddity_codeplug.cc:232
virtual uint32_t rxFrequency() const
Returns the RX frequency of the channel.
Definition radioddity_codeplug.cc:72
ChannelElement(uint8_t *ptr, size_t size)
Constructs a channel from the given memory.
Definition radioddity_codeplug.cc:17
virtual void setMode(Mode mode)
Sets the channel mode.
Definition radioddity_codeplug.cc:93
virtual void setPower(Channel::Power pwr)
Sets the power setting of the channel.
Definition radioddity_codeplug.cc:338
virtual Mode mode() const
Returns the channel mode.
Definition radioddity_codeplug.cc:89
virtual unsigned groupListIndex() const
Returns the group-list index (+1).
Definition radioddity_codeplug.cc:197
virtual PrivacyGroup privacyGroup() const
Returns the privacy group.
Definition radioddity_codeplug.cc:175
virtual unsigned txTimeOutRekeyDelay() const
Returns the transmit time-out re-key delay in seconds.
Definition radioddity_codeplug.cc:110
virtual void setScanListIndex(unsigned index)
Sets the scan list index (+1).
Definition radioddity_codeplug.cc:136
virtual bool fromChannelObj(const Channel *c, Context &ctx, const ErrorStack &err=ErrorStack())
Initializes this codeplug channel from the given generic configuration.
Definition radioddity_codeplug.cc:420
virtual bool privacyEnabled() const
Returns true if privacy is enabled.
Definition radioddity_codeplug.cc:265
virtual void setRXTone(const SelectiveCall &code)
Sets the RX subtone.
Definition radioddity_codeplug.cc:145
virtual bool privateCallConfirm() const
Returns true if private-call-confirm is enabled.
Definition radioddity_codeplug.cc:257
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot of the channel.
Definition radioddity_codeplug.cc:274
virtual void setRXFrequency(uint32_t freq)
Sets the RX frequency of the channel.
Definition radioddity_codeplug.cc:76
virtual void clear()
Resets the channel.
Definition radioddity_codeplug.cc:34
virtual Channel::Power power() const
Returns the power setting of the channel.
Definition radioddity_codeplug.cc:334
virtual bool vox() const
Returns true if VOX is enabled.
Definition radioddity_codeplug.cc:325
virtual void enablePrivateCallConfirm(bool enable)
Enables/disables private-call-confirm.
Definition radioddity_codeplug.cc:261
virtual bool hasEmergencySystem() const
Returns true if an emergency system is set.
Definition radioddity_codeplug.cc:215
virtual unsigned rxSignalingIndex() const
Returns RX signaling index (+1).
Definition radioddity_codeplug.cc:166
virtual void setEmergencySystemIndex(unsigned index)
Sets the emergency system index (+1).
Definition radioddity_codeplug.cc:223
PrivacyGroup
Possible privacy groups, not used in ham radio.
Definition radioddity_codeplug.hh:49
@ PRIVGR_NONE
No privacy group, default.
Definition radioddity_codeplug.hh:50
@ PRIVGR_53474C39
Privacy group 53474C39 (wtf?).
Definition radioddity_codeplug.hh:51
virtual bool linkChannelObj(Channel *c, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links a previously constructed channel to the rest of the configuration.
Definition radioddity_codeplug.cc:401
virtual FMChannel::Bandwidth bandwidth() const
Returns the bandwidth.
Definition radioddity_codeplug.cc:300
virtual bool emergencyAlarmACK() const
Returns true if emergency alarm ACK is enabled.
Definition radioddity_codeplug.cc:249
Admit
Possible admit criteria.
Definition radioddity_codeplug.hh:42
@ ADMIT_CH_FREE
Allow TX on channel free.
Definition radioddity_codeplug.hh:44
@ ADMIT_ALWAYS
Allow always.
Definition radioddity_codeplug.hh:43
@ ADMIT_COLOR
Allow TX on matching color-code.
Definition radioddity_codeplug.hh:45
virtual QString name() const
Returns the name of the channel.
Definition radioddity_codeplug.cc:63
virtual void setBandwidth(FMChannel::Bandwidth bw)
Sets the bandwidth.
Definition radioddity_codeplug.cc:304
virtual bool rxOnly() const
Returns true if RX only is enabled.
Definition radioddity_codeplug.cc:309
virtual Channel * toChannelObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a generic Channel object from the codeplug channel.
Definition radioddity_codeplug.cc:353
virtual unsigned rxColorCode() const
Returns the RX color code.
Definition radioddity_codeplug.cc:206
virtual void setName(const QString &n)
Sets the name of the channel.
Definition radioddity_codeplug.cc:67
virtual bool hasContact() const
Returns true if a TX contact is set.
Definition radioddity_codeplug.cc:228
virtual void setTXColorCode(unsigned cc)
Sets the TX color code.
Definition radioddity_codeplug.cc:188
virtual void setTXTimeOutRekeyDelay(unsigned delay)
Sets the transmit time-out re-key delay in seconds.
Definition radioddity_codeplug.cc:114
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slot of the channel.
Definition radioddity_codeplug.cc:278
virtual void enableDualCapacityDirectMode(bool enable)
Enables/disables the dual-capacity direct mode.
Definition radioddity_codeplug.cc:287
virtual void setTXSignalingIndex(unsigned index)
Sets TX signaling index (+1).
Definition radioddity_codeplug.cc:162
virtual void enableVOX(bool enable)
Enables/disables VOX.
Definition radioddity_codeplug.cc:329
virtual bool dualCapacityDirectMode() const
Returns true if the dual-capacity direct mode is enabled.
Definition radioddity_codeplug.cc:283
virtual unsigned ringStyle() const
Returns the ring tone style for this contact [0-10].
Definition radioddity_codeplug.cc:699
virtual void enableRing(bool enable)
Enables/disables ring tone for this contact.
Definition radioddity_codeplug.cc:694
static constexpr unsigned int size()
The size of the contact element.
Definition radioddity_codeplug.hh:401
virtual DMRContact * toContactObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a DigitalContact instance from this codeplug contact.
Definition radioddity_codeplug.cc:709
ContactElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:621
virtual void setName(const QString name)
Sets the name of the contact.
Definition radioddity_codeplug.cc:657
virtual void setRingStyle(unsigned style)
Sets the ring tone style for this contact [0-10].
Definition radioddity_codeplug.cc:703
virtual bool ring() const
Returns true if the ring tone is enabled for this contact.
Definition radioddity_codeplug.cc:690
virtual ~ContactElement()
Destructor.
Definition radioddity_codeplug.cc:633
void clear()
Resets the contact.
Definition radioddity_codeplug.cc:638
bool isValid() const
Returns true if the contact is valid.
Definition radioddity_codeplug.cc:648
virtual void setNumber(unsigned id)
Sets the DMR number of the contact.
Definition radioddity_codeplug.cc:666
virtual unsigned number() const
Returns the DMR number of the contact.
Definition radioddity_codeplug.cc:662
virtual DMRContact::Type type() const
Returns the call type.
Definition radioddity_codeplug.cc:671
virtual QString name() const
Returns the name of the contact.
Definition radioddity_codeplug.cc:653
virtual void setType(DMRContact::Type type)
Sets the call type.
Definition radioddity_codeplug.cc:681
virtual bool fromContactObj(const DMRContact *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Resets this codeplug contact from the given DigitalContact.
Definition radioddity_codeplug.cc:719
static constexpr unsigned int size()
The size of the contact element.
Definition radioddity_codeplug.hh:479
virtual DTMFContact * toContactObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a DTMFContact instance from this codeplug contact.
Definition radioddity_codeplug.cc:781
virtual void setName(const QString &name)
Sets the name of the contact.
Definition radioddity_codeplug.cc:767
virtual bool fromContactObj(const DTMFContact *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Resets this codeplug contact from the given DTMFContact.
Definition radioddity_codeplug.cc:791
DTMFContactElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:737
void clear()
Resets the contact.
Definition radioddity_codeplug.cc:754
virtual QString number() const
Returns the number of the contact.
Definition radioddity_codeplug.cc:772
virtual ~DTMFContactElement()
Destructor.
Definition radioddity_codeplug.cc:749
virtual QString name() const
Returns the name of the contact.
Definition radioddity_codeplug.cc:763
bool isValid() const
Returns true if the contact is valid.
Definition radioddity_codeplug.cc:758
virtual void setNumber(const QString &number)
Sets the number of the contact.
Definition radioddity_codeplug.cc:776
virtual void setPrivacyType(PrivacyType type)
Sets the privacy type.
Definition radioddity_codeplug.cc:2708
virtual PrivacyType privacyType() const
Returns the privacy type set.
Definition radioddity_codeplug.cc:2704
void clear()
Abstract method to reset the element within the codeplug.
Definition radioddity_codeplug.cc:2696
virtual bool updateCommercialExt(Context &ctx, const ErrorStack &err=ErrorStack())
Constructs the encryption extension.
Definition radioddity_codeplug.cc:2774
PrivacyType
Encodes possible privacy types.
Definition radioddity_codeplug.hh:1609
@ None
No encryption at all.
Definition radioddity_codeplug.hh:1610
@ Basic
Use basic DMR encryption.
Definition radioddity_codeplug.hh:1611
virtual QByteArray basicKey(unsigned n) const
Returns the n-th "basic" key (32bit).
Definition radioddity_codeplug.cc:2720
virtual bool fromCommercialExt(CommercialExtension *ext, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes given encryption extension.
Definition radioddity_codeplug.cc:2748
virtual void clearBasicKey(unsigned n)
Resets the n-th basic key.
Definition radioddity_codeplug.cc:2738
virtual ~EncryptionElement()
Destructor.
Definition radioddity_codeplug.cc:2691
virtual bool isBasicKeySet(unsigned n) const
Returns true if the n-th "basic" key (32bit) is set.
Definition radioddity_codeplug.cc:2713
virtual bool linkCommercialExt(CommercialExtension *ext, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given encryption extension.
Definition radioddity_codeplug.cc:2798
static constexpr unsigned int size()
The size of the element.
Definition radioddity_codeplug.hh:1625
virtual void setBasicKey(unsigned n, const QByteArray &key)
Sets the n-th "basic" key (32bit).
Definition radioddity_codeplug.cc:2726
EncryptionElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition radioddity_codeplug.cc:2679
virtual bool allTonesDisabled() const
Returns true if all tones are disabled.
Definition radioddity_codeplug.cc:1686
virtual void enableUpChannelModeVFO(bool enable)
Enables/disables up-channel mode is VFO.
Definition radioddity_codeplug.cc:1623
virtual void setRepeaterEndDelay(unsigned delay)
Sets the repeater end delay in [0-10].
Definition radioddity_codeplug.cc:1765
virtual bool batsaveRX() const
Returns true if reception is disabled for battery saving.
Definition radioddity_codeplug.cc:1694
virtual void setCallAlertDuration(unsigned sec)
Sets the call-allert duration in seconds.
Definition radioddity_codeplug.cc:1572
RadiodditySettingsExtension::MonitorType MonitorType
Use monitor type from extension.
Definition radioddity_codeplug.hh:960
virtual void enableDownChannelModeVFO(bool enable)
Enables/disables down-channel mode is VFO.
Definition radioddity_codeplug.cc:1615
virtual void enableBatsaveRX(bool enable)
Enables/disables battery saving by disabling RX.
Definition radioddity_codeplug.cc:1698
virtual bool animation() const
Returns true if animation is enabled.
Definition radioddity_codeplug.cc:1744
virtual void enableSelftestTone(bool enable)
Enables/disables reset tone.
Definition radioddity_codeplug.cc:1674
virtual unsigned radioID() const
Returns the DMR radio ID.
Definition radioddity_codeplug.cc:1523
virtual void enableDigitalTalkPermitTone(bool enable)
Enables/disables digital channel talk permit tone.
Definition radioddity_codeplug.cc:1658
virtual ~GeneralSettingsElement()
Destructor.
Definition radioddity_codeplug.cc:1459
virtual Level voxSensitivity() const
Returns the VOX sensitivity [1-10], 0=disabled.
Definition radioddity_codeplug.cc:1550
virtual void setMonitorType(MonitorType type)
Sets the monitor type.
Definition radioddity_codeplug.cc:1545
virtual bool batsavePreamble() const
Returns true if preable is disabled for battery saving.
Definition radioddity_codeplug.cc:1702
GeneralSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:1447
static constexpr unsigned int size()
The size of the element.
Definition radioddity_codeplug.hh:977
virtual QString name() const
Returns the radio name.
Definition radioddity_codeplug.cc:1514
virtual void setName(const QString &name)
Sets the radio name.
Definition radioddity_codeplug.cc:1518
virtual bool channelFreeIndicationTone() const
Returns true if the channel free indication tone is enabled.
Definition radioddity_codeplug.cc:1678
virtual void inhibitQuickKeyOverride(bool inhibit)
Inhibits quick-key override.
Definition radioddity_codeplug.cc:1723
virtual bool upChannelModeVFO() const
Returns true if the up-channel mode is VFO.
Definition radioddity_codeplug.cc:1619
virtual void disableAllTones(bool disable)
Disables/enables all tones.
Definition radioddity_codeplug.cc:1690
virtual void enableAnimation(bool enable)
Enables/disables animation.
Definition radioddity_codeplug.cc:1748
virtual QString progPassword() const
Returns the programming password.
Definition radioddity_codeplug.cc:1782
virtual bool allLEDsDisabled() const
Returns true if all LEDs are disabled.
Definition radioddity_codeplug.cc:1711
virtual void disableAllLEDs(bool disable)
Disables/enables all LEDs.
Definition radioddity_codeplug.cc:1715
void clear()
Resets the general settings.
Definition radioddity_codeplug.cc:1464
virtual bool digitalTalkPermitTone() const
Returns true if the digital channel talk permit tone is enabled.
Definition radioddity_codeplug.cc:1654
virtual bool analogTalkPermitTone() const
Returns true if the analog channel talk permit tone is enabled.
Definition radioddity_codeplug.cc:1662
virtual void setVOXSensitivity(Level value)
Sets the VOX sensitivity.
Definition radioddity_codeplug.cc:1554
virtual void setLoneWorkerResponsePeriod(unsigned min)
Sets the lone-worker response period in minutes.
Definition radioddity_codeplug.cc:1581
RadiodditySettingsExtension::ScanMode ScanMode
Use scan mode from extension.
Definition radioddity_codeplug.hh:964
virtual Interval groupCallHangTime() const
Returns the group call hang time in ms.
Definition radioddity_codeplug.cc:1594
virtual void clearProgPassword()
Resets the programming password.
Definition radioddity_codeplug.cc:1790
virtual void enableBatsavePreamble(bool enable)
Enables/disables battery saving by disabling preamble.
Definition radioddity_codeplug.cc:1706
RadioddityToneSettingsExtension::ARTSTone ARTSTone
Use ARTS tone mode from extension.
Definition radioddity_codeplug.hh:962
virtual bool unknownNumberTone() const
Returns true if the unknown number tone is enabled.
Definition radioddity_codeplug.cc:1636
virtual unsigned repeaterEndDelay() const
Returns the repeater end delay in [0-10].
Definition radioddity_codeplug.cc:1761
virtual bool fromConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general setting from the given config.
Definition radioddity_codeplug.cc:1795
virtual ARTSTone artsToneMode() const
Returns the ARTS tone mode.
Definition radioddity_codeplug.cc:1645
virtual void enableUnknownNumberTone(bool enable)
Enables/disables reset tone.
Definition radioddity_codeplug.cc:1640
virtual bool hasProgPassword() const
Returns true if a programming password is set.
Definition radioddity_codeplug.cc:1778
virtual unsigned loneWorkerReminderPeriod() const
Returns the lone-worker reminder period in seconds.
Definition radioddity_codeplug.cc:1585
virtual void setRadioID(unsigned id)
Sets the DMR radio ID.
Definition radioddity_codeplug.cc:1527
virtual Interval preambleDuration() const
Returns the preamble duration in ms.
Definition radioddity_codeplug.cc:1532
virtual ScanMode scanMode() const
Returns the scan mode.
Definition radioddity_codeplug.cc:1752
virtual bool txOnActiveChannel() const
Returns true if the radio transmits on the active channel on double monitor.
Definition radioddity_codeplug.cc:1736
virtual void setLowBatteryWarnInterval(unsigned sec)
Sets the low-battery warn interval in seconds.
Definition radioddity_codeplug.cc:1563
virtual void enableChannelFreeIndicationTone(bool enable)
Enables/disables channel free indication tone.
Definition radioddity_codeplug.cc:1682
virtual MonitorType monitorType() const
Returns the monitor type.
Definition radioddity_codeplug.cc:1541
virtual void setPrivateCallHangTime(const Interval &dur)
Sets the private call hang time in ms.
Definition radioddity_codeplug.cc:1606
virtual void setARTSToneMode(ARTSTone mode)
Sets the ARTS tone mode.
Definition radioddity_codeplug.cc:1649
virtual unsigned repeaterSTE() const
Returns the repeater STE in [0-10].
Definition radioddity_codeplug.cc:1769
virtual void setRepeaterSTE(unsigned ste)
Sets the repeater STE in [0-10].
Definition radioddity_codeplug.cc:1773
virtual unsigned callAlertDuration() const
Returns the call-alert duration in seconds.
Definition radioddity_codeplug.cc:1568
virtual void setPreambleDuration(const Interval &dur)
Sets the preamble duration in ms.
Definition radioddity_codeplug.cc:1536
virtual void enableTXExitTone(bool enable)
Enables/disables TX exit tone.
Definition radioddity_codeplug.cc:1732
virtual unsigned loneWorkerResponsePeriod() const
Returns the lone-worker response period in minutes.
Definition radioddity_codeplug.cc:1577
virtual void enableAnalogTalkPermitTone(bool enable)
Enables/disables analog channel talk permit tone.
Definition radioddity_codeplug.cc:1666
virtual bool downChannelModeVFO() const
Returns true if the down-channel mode is VFO.
Definition radioddity_codeplug.cc:1611
virtual bool quickKeyOverrideInhibited() const
Returns true if quick-key override is inhibited.
Definition radioddity_codeplug.cc:1719
virtual bool resetTone() const
Returns true if the reset tone is enabled.
Definition radioddity_codeplug.cc:1628
virtual bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Updates the given config from this settings.
Definition radioddity_codeplug.cc:1850
virtual unsigned lowBatteryWarnInterval() const
Returns the low-battery warn interval in seconds.
Definition radioddity_codeplug.cc:1559
virtual Interval privateCallHangTime() const
Returns the private call hang time in ms.
Definition radioddity_codeplug.cc:1602
virtual void setProgPassword(const QString &pwd)
Sets the programming password.
Definition radioddity_codeplug.cc:1786
virtual bool txExitTone() const
Returns true if the TX exit tone is enabled.
Definition radioddity_codeplug.cc:1728
virtual void enableResetTone(bool enable)
Enables/disables reset tone.
Definition radioddity_codeplug.cc:1632
virtual void setScanMode(ScanMode mode)
Sets the scan mode.
Definition radioddity_codeplug.cc:1756
virtual bool selftestTone() const
Returns true if the reset tone is enabled.
Definition radioddity_codeplug.cc:1670
virtual void setLoneWorkerReminderPeriod(unsigned sec)
Sets the lone-worker reminder period in seconds.
Definition radioddity_codeplug.cc:1589
virtual void setGroupCallHangTime(const Interval &dur)
Sets the group call hang time in ms.
Definition radioddity_codeplug.cc:1598
virtual void enableTXOnActiveChannel(bool enable)
Enables/disables transmission on active channel on double monitor.
Definition radioddity_codeplug.cc:1740
virtual unsigned contactCount(unsigned n) const
Returns the number of contacts in the n-th group list.
Definition radioddity_codeplug.cc:1102
virtual bool isEnabled(unsigned n) const
Returns true if the n-th group list is enabled.
Definition radioddity_codeplug.cc:1098
static constexpr unsigned int size()
The size of the group list bank element.
Definition radioddity_codeplug.hh:721
virtual void setContactCount(unsigned n, unsigned size)
Sets the number of contacts in the n-th group list.
Definition radioddity_codeplug.cc:1106
void clear()
Resets the bank.
Definition radioddity_codeplug.cc:1093
virtual void disable(unsigned n)
Disables the n-th group list.
Definition radioddity_codeplug.cc:1110
GroupListBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:1076
virtual ~GroupListBankElement()
Destructor.
Definition radioddity_codeplug.cc:1088
virtual uint8_t * get(unsigned n) const
Returns a pointer to the n-th group list.
Definition radioddity_codeplug.cc:1115
virtual unsigned member(unsigned n) const
Returns the n-th member index (+1).
Definition radioddity_codeplug.cc:1013
virtual QString name() const
Returns the name of the group list.
Definition radioddity_codeplug.cc:998
virtual void clearMember(unsigned n)
Clears the n-th member index.
Definition radioddity_codeplug.cc:1021
GroupListElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:971
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index (+1).
Definition radioddity_codeplug.cc:1017
void clear()
Resets the group list.
Definition radioddity_codeplug.cc:988
virtual RXGroupList * toRXGroupListObj(Context &ctx, const ErrorStack &err=ErrorStack())
Constructs a RXGroupList object from the codeplug representation.
Definition radioddity_codeplug.cc:1026
virtual ~GroupListElement()
Destructor.
Definition radioddity_codeplug.cc:983
static constexpr unsigned int size()
Size of the group list element.
Definition radioddity_codeplug.hh:658
virtual bool linkRXGroupListObj(unsigned int ncnt, RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links a previously constructed RXGroupList to the rest of the generic configuration.
Definition radioddity_codeplug.cc:1032
virtual bool hasMember(unsigned n) const
Returns true if the group list has an n-th member.
Definition radioddity_codeplug.cc:1007
virtual bool fromRXGroupListObj(const RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Reset this codeplug representation from a RXGroupList object.
Definition radioddity_codeplug.cc:1047
virtual void setName(const QString &name)
Sets the name of the group list.
Definition radioddity_codeplug.cc:1002
virtual bool message() const
Returns true if the message menu is shown.
Definition radioddity_codeplug.cc:2217
virtual void setMenuHangTime(unsigned sec)
Sets the menu hang time in seconds.
Definition radioddity_codeplug.cc:2211
virtual bool squelch() const
Returns true if the squelch menu is shown.
Definition radioddity_codeplug.cc:2363
virtual bool privacy() const
Returns true if the privacy menu is shown.
Definition radioddity_codeplug.cc:2371
virtual void enableKeyTone(bool enable)
Enables/disables the keytone.
Definition radioddity_codeplug.cc:2469
virtual bool radioEnable() const
Returns true if the radio-enable menu is shown.
Definition radioddity_codeplug.cc:2282
virtual void enableRadioCheck(bool enable)
Enables/disables the radioCheck menu.
Definition radioddity_codeplug.cc:2269
virtual void enablePower(bool enable)
Enables/disables the power menu.
Definition radioddity_codeplug.cc:2326
virtual void enablePasswordLock(bool enable)
Enables/disables the password-lock menu.
Definition radioddity_codeplug.cc:2391
virtual void enableRadioEnable(bool enable)
Enables/disables the radio-enable menu.
Definition radioddity_codeplug.cc:2286
virtual void enableAnsweredCalls(bool enable)
Enables/disables the answered-calls menu.
Definition radioddity_codeplug.cc:2407
virtual void enableProgPassword(bool enable)
Enables/disables the programming-password menu.
Definition radioddity_codeplug.cc:2302
virtual bool tone() const
Returns true if the tone menu is shown.
Definition radioddity_codeplug.cc:2314
virtual bool editContact() const
Returns true if the edit-contact menu is shown.
Definition radioddity_codeplug.cc:2249
virtual void setDualWatchMode(DualWatchMode mode)
Sets the dual-watch mode.
Definition radioddity_codeplug.cc:2478
virtual bool dualWatch() const
Returns true if the dual-watch menu is shown.
Definition radioddity_codeplug.cc:2429
virtual bool introScreen() const
Returns true if the intro-screen menu is shown.
Definition radioddity_codeplug.cc:2338
virtual bool keypadLock() const
Returns true if the keypad-lock menu is shown.
Definition radioddity_codeplug.cc:2347
virtual void enableTalkaround(bool enable)
Enables/disables the talkaround menu.
Definition radioddity_codeplug.cc:2310
virtual void enableMissedCalls(bool enable)
Enables/disables the missed-calls menu.
Definition radioddity_codeplug.cc:2399
virtual void enablePrivacy(bool enable)
Enables/disables the privacy menu.
Definition radioddity_codeplug.cc:2375
virtual void enableRadioDisable(bool enable)
Enables/disables the radio-disable menu.
Definition radioddity_codeplug.cc:2294
virtual unsigned keypadLockTime() const
Returns the keypad lock time in seconds.
Definition radioddity_codeplug.cc:2438
virtual unsigned menuHangTime() const
Returns the menu hang-time in seconds.
Definition radioddity_codeplug.cc:2207
virtual bool keyTone() const
Returns true if the keytone is enabled.
Definition radioddity_codeplug.cc:2465
virtual void enableManualDial(bool enable)
Enables/disables the manual-dial menu.
Definition radioddity_codeplug.cc:2261
virtual void enableRemoteMonitor(bool enable)
Enables/disables the message menu.
Definition radioddity_codeplug.cc:2277
virtual bool passwordLock() const
Returns true if the password-lock menu is shown.
Definition radioddity_codeplug.cc:2387
virtual bool backlight() const
Returns true if the backlight menu is shown.
Definition radioddity_codeplug.cc:2330
DualWatchMode
Possible dual-watch modes.
Definition radioddity_codeplug.hh:1301
virtual unsigned backlightTime() const
Returns the backlight time in seconds.
Definition radioddity_codeplug.cc:2447
virtual void enableEditContact(bool enable)
Enables/disables the edit-contact menu.
Definition radioddity_codeplug.cc:2253
virtual bool vox() const
Returns true if the VOX menu is shown.
Definition radioddity_codeplug.cc:2379
virtual bool talkaround() const
Returns true if the talkaround menu is shown.
Definition radioddity_codeplug.cc:2306
virtual bool editScanList() const
Returns true if the edit scan-list menu is shown.
Definition radioddity_codeplug.cc:2233
virtual bool remoteMonitor() const
Returns true if the remote-monitor menu is shown.
Definition radioddity_codeplug.cc:2273
virtual void enableKeypadLock(bool enable)
Enables/disables the keypad-lock menu.
Definition radioddity_codeplug.cc:2351
virtual bool progPassword() const
Returns true if the programming-password menu is shown.
Definition radioddity_codeplug.cc:2298
virtual void enableCallAlert(bool enable)
Enables/disables the call-alert menu.
Definition radioddity_codeplug.cc:2245
virtual bool manualDial() const
Returns true if the manual-dial menu is shown.
Definition radioddity_codeplug.cc:2257
ChannelDisplayMode
Possible channel display modes.
Definition radioddity_codeplug.hh:1294
@ Name
Show channel name.
Definition radioddity_codeplug.hh:1296
@ Number
Show channel number.
Definition radioddity_codeplug.hh:1295
virtual void enableOutgoingCalls(bool enable)
Enables/disables the outgoing-calls menu.
Definition radioddity_codeplug.cc:2416
virtual bool ledIndicator() const
Returns true if the LED-indicator menu is shown.
Definition radioddity_codeplug.cc:2355
virtual void enableEditScanList(bool enable)
Enables/disables the edit scan-list menu.
Definition radioddity_codeplug.cc:2237
virtual bool radioCheck() const
Returns true if the radio-check menu is shown.
Definition radioddity_codeplug.cc:2265
virtual bool callAlert() const
Returns true if the call-alert menu is shown.
Definition radioddity_codeplug.cc:2241
virtual void enableMessage(bool enable)
Enables/disables the message menu.
Definition radioddity_codeplug.cc:2221
virtual void enableTone(bool enable)
Enables/disables the tone menu.
Definition radioddity_codeplug.cc:2318
virtual bool power() const
Returns true if the power menu is shown.
Definition radioddity_codeplug.cc:2322
virtual bool answeredCalls() const
Returns true if the answered-calls menu is shown.
Definition radioddity_codeplug.cc:2403
virtual bool scanStart() const
Returns true if the scan-start menu is shown.
Definition radioddity_codeplug.cc:2225
void clear()
Resets the menu settings.
Definition radioddity_codeplug.cc:2158
virtual void setBacklightTime(unsigned sec)
Sets the backlight time in seconds.
Definition radioddity_codeplug.cc:2451
virtual void setKeypadLockTime(unsigned sec)
Sets the keypad lock time in seconds.
Definition radioddity_codeplug.cc:2442
virtual void enableBacklight(bool enable)
Enables/disables the backlight menu.
Definition radioddity_codeplug.cc:2334
virtual bool missedCalls() const
Returns true if the missed-calls menu is shown.
Definition radioddity_codeplug.cc:2395
virtual void enableVOX(bool enable)
Enables/disables the VOX menu.
Definition radioddity_codeplug.cc:2383
virtual ChannelDisplayMode channelDisplayMode() const
Returns the channel display mode.
Definition radioddity_codeplug.cc:2456
virtual void enableChannelDisplay(bool enable)
Enables/disables the channel display mode menu.
Definition radioddity_codeplug.cc:2425
virtual DualWatchMode dualWatchMode() const
Returns the dual-watch mode.
Definition radioddity_codeplug.cc:2474
virtual ~MenuSettingsElement()
Destructor.
Definition radioddity_codeplug.cc:2153
virtual bool channelDisplay() const
Returns true if the channel display-mode menu is shown.
Definition radioddity_codeplug.cc:2421
virtual void setChannelDisplayMode(ChannelDisplayMode mode)
Sets the channel display mode.
Definition radioddity_codeplug.cc:2460
virtual bool radioDisable() const
Returns true if the radio-disable menu is shown.
Definition radioddity_codeplug.cc:2290
MenuSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:2141
virtual void enableDualWatch(bool enable)
Enables/disables the dual-watch menu.
Definition radioddity_codeplug.cc:2433
virtual void enableIntroScreen(bool enable)
Enables/disables the message menu.
Definition radioddity_codeplug.cc:2342
virtual void enableScanStart(bool enable)
Enables/disables the scan-start menu.
Definition radioddity_codeplug.cc:2229
virtual void enableLEDIndicator(bool enable)
Enables/disables the LED-indicator menu.
Definition radioddity_codeplug.cc:2359
virtual void enableSquelch(bool enable)
Enables/disables the squelch menu.
Definition radioddity_codeplug.cc:2367
virtual bool outgoingCalls() const
Returns true if the outgoing-calls menu is shown.
Definition radioddity_codeplug.cc:2412
virtual QString message(unsigned n) const
Returns the n-th message.
Definition radioddity_codeplug.cc:2631
virtual ~MessageBankElement()
Destructor.
Definition radioddity_codeplug.cc:2613
virtual unsigned numMessages() const
Returns the number of messages.
Definition radioddity_codeplug.cc:2627
MessageBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:2601
virtual bool encode(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack())
Encodes all preset messages.
Definition radioddity_codeplug.cc:2651
static constexpr unsigned int size()
Returns the size of the message bank.
Definition radioddity_codeplug.hh:1565
virtual void appendMessage(const QString msg)
Appends a message to the list.
Definition radioddity_codeplug.cc:2637
void clear()
Resets all messages.
Definition radioddity_codeplug.cc:2618
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all preset messages.
Definition radioddity_codeplug.cc:2662
virtual bool isEnabled(unsigned n) const
Returns true if the n-th scan list is enabled.
Definition radioddity_codeplug.cc:1427
virtual ~ScanListBankElement()
Destructor.
Definition radioddity_codeplug.cc:1417
virtual void enable(unsigned n, bool enabled)
Enable/disable n-th scan list.
Definition radioddity_codeplug.cc:1431
virtual uint8_t * get(unsigned n) const
Returns a pointer to the n-th scan list.
Definition radioddity_codeplug.cc:1439
void clear()
Resets the scan list bank.
Definition radioddity_codeplug.cc:1422
static constexpr unsigned int size()
The size of the scan list bank.
Definition radioddity_codeplug.hh:922
ScanListBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:1405
virtual ScanList * toScanListObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a ScanList object from this codeplug representation.
Definition radioddity_codeplug.cc:1311
virtual bool hasSecondary() const
Returns true if the secondary priority channel is set.
Definition radioddity_codeplug.cc:1243
virtual void clearPrimary()
Clears the primary priority channel.
Definition radioddity_codeplug.cc:1238
virtual unsigned secondary() const
Return the channel index for the secondary priority channel.
Definition radioddity_codeplug.cc:1251
virtual void setName(const QString &name)
Sets the name of the scan list.
Definition radioddity_codeplug.cc:1161
virtual void clearSecondary()
Clears the secondary priority channel.
Definition radioddity_codeplug.cc:1263
ScanListElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:1127
virtual ~ScanListElement()
Destructor.
Definition radioddity_codeplug.cc:1139
virtual void setSelected(unsigned n)
Sets the n-th member to be the selected channel.
Definition radioddity_codeplug.cc:1209
virtual void setRevertSelected()
Sets the revert channel to be the selected one.
Definition radioddity_codeplug.cc:1284
void clear()
Resets the scan list.
Definition radioddity_codeplug.cc:1144
virtual void clearMember(unsigned n)
Clears the n-th member.
Definition radioddity_codeplug.cc:1213
virtual bool revertIsSelected() const
Returns true if the revert channel is the selected channel.
Definition radioddity_codeplug.cc:1272
virtual unsigned revert() const
Return the channel index for the revert channel.
Definition radioddity_codeplug.cc:1276
virtual bool secondaryIsSelected() const
Returns true if the secondary priority channel is the selected channel.
Definition radioddity_codeplug.cc:1247
virtual void enableTalkback(bool enable)
Enables/disables talk back.
Definition radioddity_codeplug.cc:1188
virtual void setPrioritySampleTime(unsigned ms)
Sets the priority sample time in ms.
Definition radioddity_codeplug.cc:1306
static constexpr unsigned int size()
The size of the scan list.
Definition radioddity_codeplug.hh:782
virtual void enableChannelMark(bool enable)
Enables/disables channel mark.
Definition radioddity_codeplug.cc:1170
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index.
Definition radioddity_codeplug.cc:1205
virtual Mode mode() const
Returns the scan mode.
Definition radioddity_codeplug.cc:1175
virtual void setRevert(unsigned idx)
Sets the revert channel index.
Definition radioddity_codeplug.cc:1280
virtual void setSecondarySelected()
Sets the secondary priority channel to be the selected channel.
Definition radioddity_codeplug.cc:1259
virtual unsigned prioritySampleTime() const
Returns the priority sample time in ms.
Definition radioddity_codeplug.cc:1302
virtual bool hasPrimary() const
Returns true if the primary priority channel is set.
Definition radioddity_codeplug.cc:1218
virtual void clearRevert()
Clears the revert channel, sets it to last active.
Definition radioddity_codeplug.cc:1288
virtual unsigned member(unsigned n) const
Returns the n-th member index.
Definition radioddity_codeplug.cc:1201
virtual bool hasRevert() const
Returns true if the revert channel is set, if false the radio will transmit on the last active channe...
Definition radioddity_codeplug.cc:1268
virtual void setSecondary(unsigned idx)
Sets the secondary priority channel index.
Definition radioddity_codeplug.cc:1255
virtual bool linkScanListObj(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links a previously constructed ScanList object to the rest of the generic configuration.
Definition radioddity_codeplug.cc:1317
virtual void setMode(Mode mode)
Sets the scan mode.
Definition radioddity_codeplug.cc:1179
virtual void setHoldTime(unsigned ms)
Sets the hold time in ms.
Definition radioddity_codeplug.cc:1297
virtual bool talkback() const
Returns true if talk back is enabled.
Definition radioddity_codeplug.cc:1184
virtual bool hasMember(unsigned n) const
Returns true if the n-th member is set.
Definition radioddity_codeplug.cc:1193
virtual unsigned primary() const
Return the channel index for the primary priority channel.
Definition radioddity_codeplug.cc:1226
virtual bool primaryIsSelected() const
Returns true if the primary priority channel is the selected channel.
Definition radioddity_codeplug.cc:1222
Mode
Possible priority channel types.
Definition radioddity_codeplug.hh:764
@ PL_PRI_NONPRI
Priority and non-priority channels.
Definition radioddity_codeplug.hh:768
@ PL_DISABLE
Disable priority channels.
Definition radioddity_codeplug.hh:766
@ PL_NONPRI
Only non-priority channels.
Definition radioddity_codeplug.hh:765
@ PL_PRI
Only priority channels.
Definition radioddity_codeplug.hh:767
virtual bool fromScanListObj(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Initializes this codeplug representation from the given ScanList object.
Definition radioddity_codeplug.cc:1368
virtual bool isSelected(unsigned n) const
Returns true if the n-th member is selected channel.
Definition radioddity_codeplug.cc:1197
virtual unsigned holdTime() const
Returns the hold time in ms.
Definition radioddity_codeplug.cc:1293
virtual void setPrimarySelected()
Sets the primary priority channel to be the selected channel.
Definition radioddity_codeplug.cc:1234
virtual bool channelMark() const
Returns true if channel mark is enabled.
Definition radioddity_codeplug.cc:1166
virtual QString name() const
Returns the name of the scan list.
Definition radioddity_codeplug.cc:1157
virtual void setPrimary(unsigned idx)
Sets the primary priority channel index.
Definition radioddity_codeplug.cc:1230
VFOChannelElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:535
virtual void setOffsetMode(OffsetMode mode)
Sets the transmit frequency offset mode.
Definition radioddity_codeplug.cc:605
virtual void setStepSize(double kHz)
Sets the tuning step-size in kHz.
Definition radioddity_codeplug.cc:581
OffsetMode
Possible offset frequency modes.
Definition radioddity_codeplug.hh:326
@ Positive
Transmit offset frequency is positive (TX above RX).
Definition radioddity_codeplug.hh:328
@ Off
Disables transmit frequency offset.
Definition radioddity_codeplug.hh:327
@ Negative
Transmit offset frequency is negative (TX below RX).
Definition radioddity_codeplug.hh:329
virtual void setTXOffset(double f)
Sets the transmit frequency offset in MHz.
Definition radioddity_codeplug.cc:613
void setName(const QString &name)
The VFO channel has no name.
Definition radioddity_codeplug.cc:560
virtual OffsetMode offsetMode() const
Returns the transmit frequency offset mode.
Definition radioddity_codeplug.cc:601
StepSize
Possible tuning step sizes.
Definition radioddity_codeplug.hh:333
@ SS5kHz
5kHz
Definition radioddity_codeplug.hh:335
@ SS12_5kHz
12.5kHz
Definition radioddity_codeplug.hh:338
@ SS10kHz
10kHz
Definition radioddity_codeplug.hh:337
@ SS30kHz
30kHz
Definition radioddity_codeplug.hh:340
@ SS2_5kHz
2.5kHz
Definition radioddity_codeplug.hh:334
@ SS20kHz
20kHz
Definition radioddity_codeplug.hh:339
@ SS6_25kHz
6.25kHz
Definition radioddity_codeplug.hh:336
@ SS50kHz
50kHz
Definition radioddity_codeplug.hh:341
QString name() const
The VFO channel has no name.
Definition radioddity_codeplug.cc:556
virtual double txOffset() const
Returns the transmit frequency offset.
Definition radioddity_codeplug.cc:609
void clear()
Resets the channel.
Definition radioddity_codeplug.cc:548
virtual double stepSize() const
Returns the tuning step-size in kHz.
Definition radioddity_codeplug.cc:566
void clear()
Resets the bank.
Definition radioddity_codeplug.cc:947
virtual uint8_t * get(unsigned idx) const
Returns a pointer to the channel at the given index.
Definition radioddity_codeplug.cc:963
ZoneBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:930
~ZoneBankElement()
Destructor.
Definition radioddity_codeplug.cc:942
ZoneElement zone(unsigned int n)
Returns the n-th zone.
static constexpr unsigned int size()
The size of the zone element.
Definition radioddity_codeplug.hh:608
virtual void enable(unsigned idx, bool enabled)
Enable/disable a channel in the bank.
Definition radioddity_codeplug.cc:957
virtual bool isEnabled(unsigned idx) const
Returns true if the channel is enabled.
Definition radioddity_codeplug.cc:952
Represents a zone within Radioddity codeplugs.
Definition radioddity_codeplug.hh:526
void clear()
Resets the zone.
Definition radioddity_codeplug.cc:819
virtual Zone * toZoneObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a generic Zone object from this codeplug zone.
Definition radioddity_codeplug.cc:861
virtual bool fromZoneObjB(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Resets this codeplug zone representation from the given generic Zone object.
Definition radioddity_codeplug.cc:909
virtual QString name() const
Returns the name of the zone.
Definition radioddity_codeplug.cc:829
virtual bool fromZoneObjA(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Resets this codeplug zone representation from the given generic Zone object.
Definition radioddity_codeplug.cc:890
virtual unsigned member(unsigned n) const
Returns the n-th member index (+1).
Definition radioddity_codeplug.cc:844
virtual void setName(const QString &name)
Sets the name of the zone.
Definition radioddity_codeplug.cc:833
virtual bool hasMember(unsigned n) const
Returns true if a member is stored at the given index.
Definition radioddity_codeplug.cc:838
ZoneElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition radioddity_codeplug.cc:802
static constexpr unsigned int size()
The size of the zone element.
Definition radioddity_codeplug.hh:537
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index (+1).
Definition radioddity_codeplug.cc:850
virtual bool linkZoneObj(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links a previously constructed Zone object to the rest of the configuration.
Definition radioddity_codeplug.cc:871
bool isValid() const
Returns true if the zone is valid.
Definition radioddity_codeplug.cc:824
virtual void clearMember(unsigned n)
Clears the n-th member index.
Definition radioddity_codeplug.cc:856
virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds all defined channels to the configuration.
virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Updates the general settings from the given configuration.
virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes zones.
virtual bool decodeMessages(Context &ctx, const ErrorStack &err=ErrorStack())=0
Decodes preset messages.
virtual void clearChannels()=0
Clear all channels.
virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack())=0
Creates all scan lists.
virtual void clearGeneralSettings()=0
Clears the general settings in the codeplug.
bool encode(Config *config, const Flags &flags=Flags(), const ErrorStack &err=ErrorStack())
Encodes a given abstract configuration (config) to the device specific binary code-plug.
Definition radioddity_codeplug.cc:2928
virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds a digital contact to the configuration for each one in the codeplug.
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all zones within the configuration.
virtual bool createDTMFContacts(Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds all DTMF contacts to the configuration.
virtual bool decodeBootText(Context &ctx, const ErrorStack &err=ErrorStack())=0
Updates the given configuration from the boot text settings.
virtual bool encodeBootText(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes boot text.
virtual void clearVFOSettings()=0
Clears the VFO settings.
virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all scan lists.
virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encode all channels.
virtual void clearMessages()=0
Clears the messages.
virtual void clearScanLists()=0
Clears all scan lists.
RadioddityCodeplug(QObject *parent=nullptr)
Hidden constructor, use a device specific class to instantiate.
Definition radioddity_codeplug.cc:2808
virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds zones to the configuration.
virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())=0
Updates the given configuration from the general settings.
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the binary codeplug and stores its content in the given generic configuration using the given...
Definition radioddity_codeplug.cc:3036
virtual bool createEncryption(Context &ctx, const ErrorStack &err=ErrorStack())=0
Creates all encryption keys.
virtual void clearBootText()=0
Clears boot text.
virtual bool encodeButtonSettings(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack())=0
Encodes button settings.
virtual bool linkEncryption(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all encryption keys.
virtual bool encodeDTMFContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all DTMF contacts.
bool decode(Config *config, const ErrorStack &err=ErrorStack())
Decodes a binary codeplug to the given abstract configuration config.
Definition radioddity_codeplug.cc:3009
virtual void clearZones()=0
Clears all zones.
bool postprocess(Config *config, const ErrorStack &err) const
Returns a post-processed configuration of the decoded config.
Definition radioddity_codeplug.cc:3020
virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all digital contacts in the configuration into the codeplug.
virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given generic configuration as a binary codeplug using the given context.
Definition radioddity_codeplug.cc:2946
virtual ~RadioddityCodeplug()
Destructor.
Definition radioddity_codeplug.cc:2814
virtual void clearEncryption()=0
Clears all encryption keys.
virtual bool encodeEncryption(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all encryption keys defined.
virtual void clearDTMFContacts()=0
Clears all DTMF contacts in the codeplug.
bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const
Indexes all elements of the codeplug.
Definition radioddity_codeplug.cc:2849
virtual bool createGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())=0
Creates all group lists.
virtual bool encodeGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all group lists.
virtual void clear()
Clears and resets the complete codeplug to some default values.
Definition radioddity_codeplug.cc:2819
virtual void clearMenuSettings()=0
Clears menu settings.
virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all scan lists.
virtual void clearButtonSettings()=0
Clears the button settings.
virtual void clearBootSettings()=0
Clear boot settings.
virtual bool linkGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all group lists.
virtual void clearGroupLists()=0
Clears all group lists.
virtual bool decodeButtonSettings(Context &ctx, const ErrorStack &err=ErrorStack())=0
Decodes the button settings.
Config * preprocess(Config *config, const ErrorStack &err) const
Returns a prepared configuration for this particular radio.
Definition radioddity_codeplug.cc:2901
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all channels.
virtual void clearContacts()=0
Clears all contacts in the codeplug.
virtual bool encodeMessages(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack())=0
Encodes preset messages.
ARTSTone
Possible ARTS tone settings.
Definition radioddity_extensions.hh:137
Simple range class representing some range in some data type.
Definition ranges.hh:14
Generic representation of a scan list.
Definition scanlist.hh:15
Represents a zone within the generic configuration.
Definition zone.hh:15
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107
Some limits for this element.
Definition radioddity_codeplug.hh:1534
static constexpr unsigned int lineLength()
The maximum length of the boot text line.
Definition radioddity_codeplug.hh:1535
Internal offsets within the element.
Definition radioddity_codeplug.hh:1540
Encoding/decoding of function key actions.
Definition radioddity_codeplug.hh:1150
static RadioddityButtonSettingsExtension::Function decode(uint8_t action)
Decodes the action.
Definition radioddity_codeplug.cc:1945
Action
Possible function key actions.
Definition radioddity_codeplug.hh:1159
@ ToggleMonitor
Toggle monitor on channel.
Definition radioddity_codeplug.hh:1164
@ OneTouch2
Performs the second of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1167
@ OneTouch6
Performs the sixt of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1171
@ OneTouch4
Performs the fourth of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1169
@ None
Disables button.
Definition radioddity_codeplug.hh:1160
@ OneTouch1
Performs the first of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1166
@ OneTouch3
Performs the third of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1168
@ OneTouch5
Performs the fifth of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1170
static uint8_t encode(RadioddityButtonSettingsExtension::Function func)
Encodes the given function.
Definition radioddity_codeplug.cc:1915
Some limits.
Definition radioddity_codeplug.hh:1260
static constexpr TimeRange longPressDuration()
Range of valid long-press durations.
Definition radioddity_codeplug.hh:1262
static constexpr unsigned int oneTouchActions()
Number of one-touch actions.
Definition radioddity_codeplug.hh:1266
Internal used offsets within the element.
Definition radioddity_codeplug.hh:1271
Some limits for the channel bank.
Definition radioddity_codeplug.hh:303
static constexpr unsigned int channelCount()
The maximum number of channels.
Definition radioddity_codeplug.hh:305
Some internal offset within the element.
Definition radioddity_codeplug.hh:310
Some limits for this element.
Definition radioddity_codeplug.hh:227
static constexpr unsigned int nameLength()
The maximum length of the name.
Definition radioddity_codeplug.hh:229
Some internal offsets within the channel element.
Definition radioddity_codeplug.hh:234
Some limits for the contact.
Definition radioddity_codeplug.hh:440
static constexpr unsigned int nameLength()
Maximum name length.
Definition radioddity_codeplug.hh:442
static constexpr unsigned int ringStyle()
Number of possible ring-styles [0,10].
Definition radioddity_codeplug.hh:444
Some internal offsets within the element.
Definition radioddity_codeplug.hh:449
Some limits.
Definition radioddity_codeplug.hh:503
static constexpr unsigned int nameLength()
The maximum name length.
Definition radioddity_codeplug.hh:505
static constexpr unsigned int numberLength()
The maximum number length.
Definition radioddity_codeplug.hh:507
Some internal offsets within the element.
Definition radioddity_codeplug.hh:512
Some limits for this element.
Definition radioddity_codeplug.hh:1653
static constexpr unsigned int keyCount()
The maximum number of keys.
Definition radioddity_codeplug.hh:1655
static constexpr unsigned int keySize()
The required key size.
Definition radioddity_codeplug.hh:1657
Internal offsets within the element.
Definition radioddity_codeplug.hh:1662
Some limits for the settings.
Definition radioddity_codeplug.hh:1136
Some limits for the group list bank.
Definition radioddity_codeplug.hh:741
static constexpr unsigned int groupListCount()
Maximum number of group lists.
Definition radioddity_codeplug.hh:742
Internal offsets within the element.
Definition radioddity_codeplug.hh:747
Some limits for group lists.
Definition radioddity_codeplug.hh:687
static constexpr unsigned int memberCount()
Maximum number of entries.
Definition radioddity_codeplug.hh:689
static constexpr unsigned int nameLength()
Maximum name length.
Definition radioddity_codeplug.hh:688
Internal offsets within the element.
Definition radioddity_codeplug.hh:694
Some limits.
Definition radioddity_codeplug.hh:1583
static constexpr unsigned int messageLength()
Maximum length of each message.
Definition radioddity_codeplug.hh:1585
static constexpr unsigned int messages()
Maximum number of messages.
Definition radioddity_codeplug.hh:1584
Some internal used offset.
Definition radioddity_codeplug.hh:1590
Some limits for the scan list bank.
Definition radioddity_codeplug.hh:936
static constexpr unsigned int scanListCount()
Maximum number of scan lists.
Definition radioddity_codeplug.hh:937
Internal offsets within the element.
Definition radioddity_codeplug.hh:942
Some limits for the scan list.
Definition radioddity_codeplug.hh:879
static constexpr unsigned int name()
Maximum name length.
Definition radioddity_codeplug.hh:881
static constexpr unsigned int members()
Maximum number of members.
Definition radioddity_codeplug.hh:883
Some limits for the zone bank.
Definition radioddity_codeplug.hh:625
static constexpr unsigned int zoneCount()
The maximum number of zones in this bank.
Definition radioddity_codeplug.hh:627
Some internal offsets within the element.
Definition radioddity_codeplug.hh:632
Some limits for zone elements.
Definition radioddity_codeplug.hh:571
static constexpr unsigned int memberCount()
The maximum number of members.
Definition radioddity_codeplug.hh:575
static constexpr unsigned int nameLength()
The maximum length of the zone name.
Definition radioddity_codeplug.hh:573
Some internal offsets within the element.
Definition radioddity_codeplug.hh:580
Encodes a selective call.
Definition signaling.hh:13