libdrmconf 0.13.2
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 {
38 MODE_DIGITAL = 1
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 unsigned txTimeOut() const;
92 virtual void setTXTimeOut(unsigned 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,
328 Positive = 1,
329 Negative = 2
330 };
331
333 enum class StepSize {
334 SS2_5kHz = 0,
335 SS5kHz = 1,
336 SS6_25kHz = 2,
337 SS10kHz = 3,
338 SS12_5kHz = 4,
339 SS20kHz = 5,
340 SS30kHz = 6,
341 SS50kHz = 7
342 };
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:
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 unsigned preambleDuration() const;
995 virtual void setPreambleDuration(unsigned ms);
996
998 virtual MonitorType monitorType() const;
1000 virtual void setMonitorType(MonitorType type);
1001
1003 virtual unsigned voxSensitivity() const;
1005 virtual void setVOXSensitivity(unsigned 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 unsigned groupCallHangTime() const;
1029 virtual void setGroupCallHangTime(unsigned ms);
1031 virtual unsigned privateCallHangTime() const;
1033 virtual void setPrivateCallHangTime(unsigned ms);
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
1140 {
1141 public:
1144 public:
1149
1150 protected:
1152 enum Action {
1153 None = 0x00,
1154 ToggleAllAlertTones = 0x01,
1155 EmergencyOn = 0x02,
1156 EmergencyOff = 0x03,
1158 NuiaceDelete = 0x06,
1159 OneTouch1 = 0x07,
1160 OneTouch2 = 0x08,
1161 OneTouch3 = 0x09,
1162 OneTouch4 = 0x0a,
1163 OneTouch5 = 0x0b,
1164 OneTouch6 = 0x0c,
1165 ToggleRepeatTalkaround = 0x0d,
1166 ToggleScan = 0x0e,
1167 TogglePrivacy = 0x10,
1168 ToggleVox = 0x11,
1169 ZoneSelect = 0x12,
1170 BatteryIndicator = 0x13,
1171 ToggleLoneWorker = 0x14,
1172 PhoneExit = 0x16,
1173 ToggleFlashLight = 0x1a,
1174 ToggleFMRadio = 0x1b
1175 };
1176 };
1177
1179 enum class OneTouchAction {
1180 None = 0x00,
1181 DigitalCall = 0x10,
1182 DigitalMessage = 0x11,
1183 AnalogCall = 0x20
1184 };
1185
1186 protected:
1188 ButtonSettingsElement(uint8_t *ptr, unsigned size);
1189
1190 public:
1192 explicit ButtonSettingsElement(uint8_t *ptr);
1194 virtual ~ButtonSettingsElement();
1195
1197 void clear();
1198
1200 virtual Interval longPressDuration() const;
1202 virtual void setLongPressDuration(Interval ms);
1203
1212
1221
1230
1232 virtual OneTouchAction oneTouchAction(unsigned n) const;
1234 virtual unsigned oneTouchContact(unsigned n) const;
1236 virtual unsigned oneTouchMessage(unsigned n) const;
1238 virtual void disableOneTouch(unsigned n);
1240 virtual void setOneTouchDigitalCall(unsigned n, unsigned index);
1242 virtual void setOneTouchDigitalMessage(unsigned n, unsigned index);
1244 virtual void setOneTouchAnalogCall(unsigned n);
1245
1247 bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1249 bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1250
1251 public:
1253 struct Limits {
1259 static constexpr unsigned int oneTouchActions() { return 6; }
1260 };
1261
1262 protected:
1264 struct Offset {
1266 static constexpr unsigned int longPressDuration() { return 0x0001; }
1267 static constexpr unsigned int sk1ShortPress() { return 0x0002; }
1268 static constexpr unsigned int sk1LongPress() { return 0x0003; }
1269 static constexpr unsigned int sk2ShortPress() { return 0x0004; }
1270 static constexpr unsigned int sk2LongPress() { return 0x0005; }
1271 static constexpr unsigned int tkShortPress() { return 0x0006; }
1272 static constexpr unsigned int tkLongPress() { return 0x0007; }
1273 static constexpr unsigned int oneTouchActions() { return 0x0008; }
1274 static constexpr unsigned int betweenOneTouchActions() { return 0x0004; }
1276 };
1277 };
1278
1284 {
1285 public:
1288 Number = 0,
1289 Name = 1,
1290 Frequency = 2
1291 };
1292
1294 enum class DualWatchMode {
1295 DualDual = 1,
1296 DualSingle = 2
1297 };
1298
1299 protected:
1301 MenuSettingsElement(uint8_t *ptr, unsigned size);
1302
1303 public:
1305 explicit MenuSettingsElement(uint8_t *ptr);
1307 virtual ~MenuSettingsElement();
1308
1310 void clear();
1311
1313 virtual unsigned menuHangTime() const;
1315 virtual void setMenuHangTime(unsigned sec);
1316
1318 virtual bool message() const;
1320 virtual void enableMessage(bool enable);
1322 virtual bool scanStart() const;
1324 virtual void enableScanStart(bool enable);
1326 virtual bool editScanList() const;
1328 virtual void enableEditScanList(bool enable);
1330 virtual bool callAlert() const;
1332 virtual void enableCallAlert(bool enable);
1334 virtual bool editContact() const;
1336 virtual void enableEditContact(bool enable);
1338 virtual bool manualDial() const;
1340 virtual void enableManualDial(bool enable);
1342 virtual bool radioCheck() const;
1344 virtual void enableRadioCheck(bool enable);
1346 virtual bool remoteMonitor() const;
1348 virtual void enableRemoteMonitor(bool enable);
1349
1351 virtual bool radioEnable() const;
1353 virtual void enableRadioEnable(bool enable);
1355 virtual bool radioDisable() const;
1357 virtual void enableRadioDisable(bool enable);
1359 virtual bool progPassword() const;
1361 virtual void enableProgPassword(bool enable);
1363 virtual bool talkaround() const;
1365 virtual void enableTalkaround(bool enable);
1367 virtual bool tone() const;
1369 virtual void enableTone(bool enable);
1371 virtual bool power() const;
1373 virtual void enablePower(bool enable);
1375 virtual bool backlight() const;
1377 virtual void enableBacklight(bool enable);
1379 virtual bool introScreen() const;
1381 virtual void enableIntroScreen(bool enable);
1382
1384 virtual bool keypadLock() const;
1386 virtual void enableKeypadLock(bool enable);
1388 virtual bool ledIndicator() const;
1390 virtual void enableLEDIndicator(bool enable);
1392 virtual bool squelch() const;
1394 virtual void enableSquelch(bool enable);
1396 virtual bool privacy() const;
1398 virtual void enablePrivacy(bool enable);
1400 virtual bool vox() const;
1402 virtual void enableVOX(bool enable);
1404 virtual bool passwordLock() const;
1406 virtual void enablePasswordLock(bool enable);
1408 virtual bool missedCalls() const;
1410 virtual void enableMissedCalls(bool enable);
1412 virtual bool answeredCalls() const;
1414 virtual void enableAnsweredCalls(bool enable);
1415
1417 virtual bool outgoingCalls() const;
1419 virtual void enableOutgoingCalls(bool enable);
1421 virtual bool channelDisplay() const;
1423 virtual void enableChannelDisplay(bool enable);
1425 virtual bool dualWatch() const;
1427 virtual void enableDualWatch(bool enable);
1428
1430 virtual unsigned keypadLockTime() const;
1432 virtual void setKeypadLockTime(unsigned sec);
1433
1435 virtual unsigned backlightTime() const;
1437 virtual void setBacklightTime(unsigned sec);
1438
1440 virtual ChannelDisplayMode channelDisplayMode() const;
1442 virtual void setChannelDisplayMode(ChannelDisplayMode mode);
1443
1445 virtual bool keyTone() const;
1447 virtual void enableKeyTone(bool enable);
1448
1450 virtual DualWatchMode dualWatchMode() const;
1452 virtual void setDualWatchMode(DualWatchMode mode);
1453 };
1454
1460 {
1461 protected:
1463 BootSettingsElement(uint8_t *ptr, unsigned size);
1464
1465 public:
1467 explicit BootSettingsElement(uint8_t *ptr);
1469 virtual ~BootSettingsElement();
1470
1472 void clear();
1473
1475 virtual bool bootText() const;
1477 virtual void enableBootText(bool enable);
1478
1480 virtual bool bootPasswordEnabled() const;
1482 virtual void enableBootPassword(bool enable);
1484 virtual unsigned bootPassword() const;
1486 virtual void setBootPassword(unsigned passwd);
1487 };
1488
1494 {
1495 protected:
1497 BootTextElement(uint8_t *ptr, unsigned size);
1498
1499 public:
1501 explicit BootTextElement(uint8_t *ptr);
1503 virtual ~BootTextElement();
1504
1506 static constexpr unsigned int size() { return 0x0020; }
1507
1509 void clear();
1510
1512 virtual QString line1() const;
1514 virtual void setLine1(const QString &text);
1516 virtual QString line2() const;
1518 virtual void setLine2(const QString &text);
1519
1521 virtual bool fromConfig(Context &ctx, const ErrorStack &err = ErrorStack());
1523 virtual bool updateConfig(Context &ctx, const ErrorStack &err = ErrorStack());
1524
1525 public:
1527 struct Limit {
1528 static constexpr unsigned int lineLength() { return 16; }
1529 };
1530
1531 protected:
1533 struct Offset {
1535 static constexpr unsigned int line1() { return 0x0000;}
1536 static constexpr unsigned int line2() { return 0x0010;}
1538 };
1539 };
1540
1546 {
1547 protected:
1549 MessageBankElement(uint8_t *ptr, unsigned size);
1550
1551 public:
1553 explicit MessageBankElement(uint8_t *ptr);
1555 virtual ~MessageBankElement();
1556
1558 static constexpr unsigned int size() { return 0x1248; }
1560 void clear();
1561
1563 virtual unsigned numMessages() const;
1565 virtual QString message(unsigned n) const;
1567 virtual void appendMessage(const QString msg);
1568
1570 virtual bool encode(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack());
1572 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1573
1574 public:
1576 struct Limit {
1577 static constexpr unsigned int messages() { return 32; }
1578 static constexpr unsigned int messageLength() { return 144; }
1579 };
1580
1581 protected:
1583 struct Offset {
1585 static constexpr unsigned int messageConut() { return 0x0000; }
1586 static constexpr unsigned int messageLengths() { return 0x0008; }
1587 static constexpr unsigned int messages() { return 0x0048; }
1588 static constexpr unsigned int betweenMessages() { return Limit::messageLength(); }
1590 };
1591 };
1592
1598 {
1599 public:
1602 enum class PrivacyType {
1603 None,
1604 Basic
1605 };
1606
1607 protected:
1609 EncryptionElement(uint8_t *ptr, size_t size);
1610
1611 public:
1613 explicit EncryptionElement(uint8_t *ptr);
1615 virtual ~EncryptionElement();
1616
1618 static constexpr unsigned int size() { return 0x0088; }
1619
1620 void clear();
1621
1623 virtual PrivacyType privacyType() const;
1625 virtual void setPrivacyType(PrivacyType type);
1626
1629 virtual bool isBasicKeySet(unsigned n) const;
1631 virtual QByteArray basicKey(unsigned n) const;
1633 virtual void setBasicKey(unsigned n, const QByteArray &key);
1635 virtual void clearBasicKey(unsigned n);
1636
1638 virtual bool fromCommercialExt(CommercialExtension *ext, Context &ctx, const ErrorStack &err=ErrorStack());
1640 virtual bool updateCommercialExt(Context &ctx, const ErrorStack &err=ErrorStack());
1642 virtual bool linkCommercialExt(CommercialExtension *ext, Context &ctx, const ErrorStack &err=ErrorStack());
1643
1644 public:
1646 struct Limit {
1648 static constexpr unsigned int keyCount() { return 16; }
1650 static constexpr unsigned int keySize() { return 4; }
1651 };
1652
1653 protected:
1655 struct Offset {
1657 static constexpr unsigned int privacyType() { return 0x0000; }
1658 static constexpr unsigned int bitmap() { return 0x0002; }
1659 static constexpr unsigned int keys() { return 0x0008; }
1660 static constexpr unsigned int key() { return 0x0008;}
1662 };
1663 };
1664
1665protected:
1667 explicit RadioddityCodeplug(QObject *parent=nullptr);
1668
1669public:
1671 virtual ~RadioddityCodeplug();
1672
1674 virtual void clear();
1675
1676 bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const;
1677
1678 bool decode(Config *config, const ErrorStack &err=ErrorStack());
1679 bool postprocess(Config *config, const ErrorStack &err) const;
1680
1681 Config *preprocess(Config *config, const ErrorStack &err) const;
1682 bool encode(Config *config, const Flags &flags = Flags(), const ErrorStack &err=ErrorStack());
1683
1684public:
1687 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
1689 virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1690
1692 virtual void clearGeneralSettings() = 0;
1694 virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1696 virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1697
1699 virtual void clearButtonSettings() = 0;
1701 virtual bool encodeButtonSettings(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack()) = 0;
1703 virtual bool decodeButtonSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1704
1706 virtual void clearMessages() = 0;
1708 virtual bool encodeMessages(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack()) = 0;
1710 virtual bool decodeMessages(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1711
1713 virtual void clearContacts() = 0;
1715 virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1717 virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1718
1720 virtual void clearDTMFContacts() = 0;
1722 virtual bool encodeDTMFContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1724 virtual bool createDTMFContacts(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1725
1727 virtual void clearChannels() = 0;
1729 virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1731 virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1733 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1734
1736 virtual void clearBootSettings() = 0;
1737
1739 virtual void clearMenuSettings() = 0;
1740
1742 virtual void clearBootText() = 0;
1744 virtual bool encodeBootText(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1746 virtual bool decodeBootText(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1747
1749 virtual void clearVFOSettings() = 0;
1750
1752 virtual void clearZones() = 0;
1754 virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1756 virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1758 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1759
1761 virtual void clearScanLists() = 0;
1763 virtual bool encodeScanLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1765 virtual bool createScanLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1767 virtual bool linkScanLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1768
1770 virtual void clearGroupLists() = 0;
1772 virtual bool encodeGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1774 virtual bool createGroupLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1776 virtual bool linkGroupLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1777
1779 virtual void clearEncryption() = 0;
1781 virtual bool encodeEncryption(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1783 virtual bool createEncryption(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1785 virtual bool linkEncryption(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1786};
1787
1788#endif // RADIODDITYCODEPLUG_HH
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:34
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:61
Base class for all codeplug contexts.
Definition codeplug.hh:286
Represents the abstract base class of all codeplug elements.
Definition codeplug.hh:65
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:24
This class defines the interface all device-specific code-plugs must implement.
Definition codeplug.hh:18
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:398
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:251
Represents a time interval.
Definition interval.hh:11
static constexpr Interval fromMilliseconds(unsigned long long ms)
Definition interval.hh:73
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Function
Possible function key actions.
Definition radioddity_extensions.hh:31
Implements the base class of boot settings for all Radioddity codeplugs.
Definition radioddity_codeplug.hh:1460
virtual bool bootPasswordEnabled() const
Returns true if the boot password is enabled.
Definition radioddity_codeplug.cc:2506
virtual bool bootText() const
Returns true if the text is shown on boot, other wise an image is shown.
Definition radioddity_codeplug.cc:2497
void clear()
Resets the settings.
Definition radioddity_codeplug.cc:2488
virtual void enableBootPassword(bool enable)
Enables/disables the boot password.
Definition radioddity_codeplug.cc:2510
virtual ~BootSettingsElement()
Destructor.
Definition radioddity_codeplug.cc:2483
virtual unsigned bootPassword() const
Returns the boot password (6 digit).
Definition radioddity_codeplug.cc:2515
virtual void enableBootText(bool enable)
Enables/disables boot text.
Definition radioddity_codeplug.cc:2501
virtual void setBootPassword(unsigned passwd)
Sets the boot password (6 digit).
Definition radioddity_codeplug.cc:2519
Implements the base class of boot messages for all Radioddity codeplugs.
Definition radioddity_codeplug.hh:1494
virtual void setLine1(const QString &text)
Sets the first line.
Definition radioddity_codeplug.cc:2553
virtual bool fromConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes boot text settings from configuration.
Definition radioddity_codeplug.cc:2567
static constexpr unsigned int size()
The size of the boot text element.
Definition radioddity_codeplug.hh:1506
virtual QString line1() const
Returns the first line.
Definition radioddity_codeplug.cc:2549
void clear()
Resets the intro text.
Definition radioddity_codeplug.cc:2543
virtual QString line2() const
Returns the Second line.
Definition radioddity_codeplug.cc:2558
virtual void setLine2(const QString &text)
Sets the second line.
Definition radioddity_codeplug.cc:2562
virtual ~BootTextElement()
Destructor.
Definition radioddity_codeplug.cc:2538
virtual bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Updates the configuration with the boot text settings.
Definition radioddity_codeplug.cc:2575
Implements the base class of button settings for all Radioddity codeplugs.
Definition radioddity_codeplug.hh:1140
virtual void setOneTouchDigitalMessage(unsigned n, unsigned index)
Configures n-th one-touch action as a digital message using given index.
Definition radioddity_codeplug.cc:2072
void clear()
Clears the button settings.
Definition radioddity_codeplug.cc:1977
virtual RadioddityButtonSettingsExtension::Function tkLongPress() const
Returns the top-key long-press action.
Definition radioddity_codeplug.cc:2041
virtual OneTouchAction oneTouchAction(unsigned n) const
Returns the n-th one-touch action.
Definition radioddity_codeplug.cc:2050
virtual unsigned oneTouchContact(unsigned n) const
Returns the n-th one-touch contact index (if action is OneTouchAction::DigitalCall).
Definition radioddity_codeplug.cc:2054
virtual RadioddityButtonSettingsExtension::Function sk1ShortPress() const
Returns the side-key 1 short-press action.
Definition radioddity_codeplug.cc:1999
bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the button settings (if set).
Definition radioddity_codeplug.cc:2085
virtual unsigned oneTouchMessage(unsigned n) const
Returns the n-th one-touch message index (if action is OneTouchAction::DigitalMessage).
Definition radioddity_codeplug.cc:2058
virtual ~ButtonSettingsElement()
Destructor.
Definition radioddity_codeplug.cc:1972
virtual void setSK1ShortPress(RadioddityButtonSettingsExtension::Function action)
Sets the side-key 1 short-press action.
Definition radioddity_codeplug.cc:2003
virtual void setTKShortPress(RadioddityButtonSettingsExtension::Function action)
Sets the top-key short-press action.
Definition radioddity_codeplug.cc:2037
virtual void setOneTouchAnalogCall(unsigned n)
Configures n-th one-touch action as a analog call.
Definition radioddity_codeplug.cc:2078
virtual void disableOneTouch(unsigned n)
Disables the n-th one-touch action.
Definition radioddity_codeplug.cc:2062
virtual void setSK1LongPress(RadioddityButtonSettingsExtension::Function action)
Sets the side-key 1 long-press action.
Definition radioddity_codeplug.cc:2011
virtual void setSK2LongPress(RadioddityButtonSettingsExtension::Function action)
Sets the side-key 2 long-press action.
Definition radioddity_codeplug.cc:2028
virtual void setSK2ShortPress(RadioddityButtonSettingsExtension::Function action)
Sets the side-key 2 short-press action.
Definition radioddity_codeplug.cc:2020
bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the button settings.
Definition radioddity_codeplug.cc:2104
virtual void setTKLongPress(RadioddityButtonSettingsExtension::Function action)
Sets the top-key long-press action.
Definition radioddity_codeplug.cc:2045
virtual Interval longPressDuration() const
Returns the long-press duration in ms.
Definition radioddity_codeplug.cc:1990
virtual void setLongPressDuration(Interval ms)
Sets the long-press duration in ms.
Definition radioddity_codeplug.cc:1994
virtual RadioddityButtonSettingsExtension::Function sk2LongPress() const
Returns the side-key 2 long-press action.
Definition radioddity_codeplug.cc:2024
virtual void setOneTouchDigitalCall(unsigned n, unsigned index)
Configures n-th one-touch action as a digital call to contact index.
Definition radioddity_codeplug.cc:2066
virtual RadioddityButtonSettingsExtension::Function sk1LongPress() const
Returns the side-key 1 long-press action.
Definition radioddity_codeplug.cc:2007
virtual RadioddityButtonSettingsExtension::Function sk2ShortPress() const
Returns the side-key 2 short-press action.
Definition radioddity_codeplug.cc:2016
virtual RadioddityButtonSettingsExtension::Function tkShortPress() const
Returns the top-key short-press action.
Definition radioddity_codeplug.cc:2033
OneTouchAction
Possible one-touch actions.
Definition radioddity_codeplug.hh:1179
Implements the base for channel banks in Radioddity codeplugs.
Definition radioddity_codeplug.hh:275
virtual ~ChannelBankElement()
Destructor.
Definition radioddity_codeplug.cc:487
virtual uint8_t * get(unsigned idx) const
Returns a pointer to the channel at the given index.
Definition radioddity_codeplug.cc:508
virtual void enable(unsigned idx, bool enabled)
Enable/disable a channel in the bank.
Definition radioddity_codeplug.cc:502
void clear()
Clears the bank.
Definition radioddity_codeplug.cc:492
virtual bool isEnabled(unsigned idx) const
Returns true if the channel is enabled.
Definition radioddity_codeplug.cc:497
ChannelElement channel(unsigned int n)
Returns the n-th channel.
Definition radioddity_codeplug.cc:513
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:189
virtual void setRXSignalingIndex(unsigned index)
Sets RX signaling index (+1).
Definition radioddity_codeplug.cc:166
virtual ~ChannelElement()
Destructor.
Definition radioddity_codeplug.cc:29
virtual unsigned txSignalingIndex() const
Returns TX signaling index (+1).
Definition radioddity_codeplug.cc:154
virtual unsigned emergencySystemIndex() const
Returns the emergency system index (+1).
Definition radioddity_codeplug.cc:215
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:287
virtual bool hasScanList() const
Returns true if a scan list is set.
Definition radioddity_codeplug.cc:124
virtual void enablePrivacy(bool enable)
Enables/disables privacy.
Definition radioddity_codeplug.cc:265
virtual void setContactIndex(unsigned index)
Sets the transmit contact index (+1).
Definition radioddity_codeplug.cc:232
virtual SelectiveCall txTone() const
Returns the TX subtone.
Definition radioddity_codeplug.cc:145
virtual void setPrivacyGroup(PrivacyGroup grp)
Sets the privacy group.
Definition radioddity_codeplug.cc:175
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:115
virtual unsigned txColorCode() const
Returns the TX color code.
Definition radioddity_codeplug.cc:180
virtual void setTXTimeOut(unsigned tot)
Sets the TX timeout in seconds.
Definition radioddity_codeplug.cc:102
virtual void enableTalkaround(bool enable)
Enables/disables talkaround.
Definition radioddity_codeplug.cc:317
virtual unsigned scanListIndex() const
Returns the scan list index (+1).
Definition radioddity_codeplug.cc:128
virtual void setTXTone(const SelectiveCall &code)
Sets the TX subtone.
Definition radioddity_codeplug.cc:149
virtual void setGroupListIndex(unsigned index)
Sets the group-list index (+1).
Definition radioddity_codeplug.cc:197
virtual void enableDataCallConfirm(bool enable)
Enables/disables data-call-confirm.
Definition radioddity_codeplug.cc:241
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:206
virtual bool dataCallConfirm() const
Returns true if data-call-confirm is enabled.
Definition radioddity_codeplug.cc:237
virtual void enableEmergencyAlarmACK(bool enable)
Enables/disables emergency alarm ACK.
Definition radioddity_codeplug.cc:249
virtual void enableRXOnly(bool enable)
Enables/disables RX only.
Definition radioddity_codeplug.cc:309
virtual SelectiveCall rxTone() const
Returns the RX subtone.
Definition radioddity_codeplug.cc:137
virtual void setAdmitCriterion(Admit admit)
Sets the admit criterion.
Definition radioddity_codeplug.cc:119
virtual void enableNonSTEFrequency(bool enable)
Enables/disables non-STE is frequency (?!).
Definition radioddity_codeplug.cc:291
virtual bool talkaround() const
Returns true if talkaround is enabled.
Definition radioddity_codeplug.cc:313
virtual unsigned contactIndex() const
Returns the transmit contact index (+1).
Definition radioddity_codeplug.cc:228
virtual uint32_t rxFrequency() const
Returns the RX frequency of the channel.
Definition radioddity_codeplug.cc:72
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:334
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:193
virtual PrivacyGroup privacyGroup() const
Returns the privacy group.
Definition radioddity_codeplug.cc:171
virtual unsigned txTimeOutRekeyDelay() const
Returns the transmit time-out re-key delay in seconds.
Definition radioddity_codeplug.cc:106
virtual void setScanListIndex(unsigned index)
Sets the scan list index (+1).
Definition radioddity_codeplug.cc:132
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:411
virtual bool privacyEnabled() const
Returns true if privacy is enabled.
Definition radioddity_codeplug.cc:261
virtual void setRXTone(const SelectiveCall &code)
Sets the RX subtone.
Definition radioddity_codeplug.cc:141
virtual bool privateCallConfirm() const
Returns true if private-call-confirm is enabled.
Definition radioddity_codeplug.cc:253
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot of the channel.
Definition radioddity_codeplug.cc:270
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:330
virtual bool vox() const
Returns true if VOX is enabled.
Definition radioddity_codeplug.cc:321
virtual void enablePrivateCallConfirm(bool enable)
Enables/disables private-call-confirm.
Definition radioddity_codeplug.cc:257
virtual bool hasEmergencySystem() const
Returns true if an emergency system is set.
Definition radioddity_codeplug.cc:211
virtual unsigned rxSignalingIndex() const
Returns RX signaling index (+1).
Definition radioddity_codeplug.cc:162
virtual void setEmergencySystemIndex(unsigned index)
Sets the emergency system index (+1).
Definition radioddity_codeplug.cc:219
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:392
virtual FMChannel::Bandwidth bandwidth() const
Returns the bandwidth.
Definition radioddity_codeplug.cc:296
virtual bool emergencyAlarmACK() const
Returns true if emergency alarm ACK is enabled.
Definition radioddity_codeplug.cc:245
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:300
virtual bool rxOnly() const
Returns true if RX only is enabled.
Definition radioddity_codeplug.cc:305
virtual Channel * toChannelObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a generic Channel object from the codeplug channel.
Definition radioddity_codeplug.cc:349
virtual unsigned rxColorCode() const
Returns the RX color code.
Definition radioddity_codeplug.cc:202
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:224
virtual void setTXColorCode(unsigned cc)
Sets the TX color code.
Definition radioddity_codeplug.cc:184
virtual void setTXTimeOutRekeyDelay(unsigned delay)
Sets the transmit time-out re-key delay in seconds.
Definition radioddity_codeplug.cc:110
virtual unsigned txTimeOut() const
Returns the TX timeout in seconds.
Definition radioddity_codeplug.cc:98
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slot of the channel.
Definition radioddity_codeplug.cc:274
virtual void enableDualCapacityDirectMode(bool enable)
Enables/disables the dual-capacity direct mode.
Definition radioddity_codeplug.cc:283
virtual void setTXSignalingIndex(unsigned index)
Sets TX signaling index (+1).
Definition radioddity_codeplug.cc:158
virtual void enableVOX(bool enable)
Enables/disables VOX.
Definition radioddity_codeplug.cc:325
virtual bool dualCapacityDirectMode() const
Returns true if the dual-capacity direct mode is enabled.
Definition radioddity_codeplug.cc:279
Implements the base for digital contacts in Radioddity codeplugs.
Definition radioddity_codeplug.hh:389
virtual unsigned ringStyle() const
Returns the ring tone style for this contact [0-10].
Definition radioddity_codeplug.cc:685
virtual void enableRing(bool enable)
Enables/disables ring tone for this contact.
Definition radioddity_codeplug.cc:680
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:695
virtual void setName(const QString name)
Sets the name of the contact.
Definition radioddity_codeplug.cc:643
virtual void setRingStyle(unsigned style)
Sets the ring tone style for this contact [0-10].
Definition radioddity_codeplug.cc:689
virtual bool ring() const
Returns true if the ring tone is enabled for this contact.
Definition radioddity_codeplug.cc:676
virtual ~ContactElement()
Destructor.
Definition radioddity_codeplug.cc:619
void clear()
Resets the contact.
Definition radioddity_codeplug.cc:624
bool isValid() const
Returns true if the contact is valid.
Definition radioddity_codeplug.cc:634
virtual void setNumber(unsigned id)
Sets the DMR number of the contact.
Definition radioddity_codeplug.cc:652
virtual unsigned number() const
Returns the DMR number of the contact.
Definition radioddity_codeplug.cc:648
virtual DMRContact::Type type() const
Returns the call type.
Definition radioddity_codeplug.cc:657
virtual QString name() const
Returns the name of the contact.
Definition radioddity_codeplug.cc:639
virtual void setType(DMRContact::Type type)
Sets the call type.
Definition radioddity_codeplug.cc:667
virtual bool fromContactObj(const DMRContact *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Resets this codeplug contact from the given DigitalContact.
Definition radioddity_codeplug.cc:705
Implements a base DTMF (analog) contact for Radioddity codeplugs.
Definition radioddity_codeplug.hh:467
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:767
virtual void setName(const QString &name)
Sets the name of the contact.
Definition radioddity_codeplug.cc:753
virtual bool fromContactObj(const DTMFContact *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Resets this codeplug contact from the given DTMFContact.
Definition radioddity_codeplug.cc:777
void clear()
Resets the contact.
Definition radioddity_codeplug.cc:740
virtual QString number() const
Returns the number of the contact.
Definition radioddity_codeplug.cc:758
virtual ~DTMFContactElement()
Destructor.
Definition radioddity_codeplug.cc:735
virtual QString name() const
Returns the name of the contact.
Definition radioddity_codeplug.cc:749
bool isValid() const
Returns true if the contact is valid.
Definition radioddity_codeplug.cc:744
virtual void setNumber(const QString &number)
Sets the number of the contact.
Definition radioddity_codeplug.cc:762
Represents all encryption keys and settings within the codeplug on the device.
Definition radioddity_codeplug.hh:1598
virtual void setPrivacyType(PrivacyType type)
Sets the privacy type.
Definition radioddity_codeplug.cc:2693
virtual PrivacyType privacyType() const
Returns the privacy type set.
Definition radioddity_codeplug.cc:2689
void clear()
Abstract method to reset the element within the codeplug.
Definition radioddity_codeplug.cc:2681
virtual bool updateCommercialExt(Context &ctx, const ErrorStack &err=ErrorStack())
Constructs the encryption extension.
Definition radioddity_codeplug.cc:2759
PrivacyType
Encodes possible privacy types.
Definition radioddity_codeplug.hh:1602
virtual QByteArray basicKey(unsigned n) const
Returns the n-th "basic" key (32bit).
Definition radioddity_codeplug.cc:2705
virtual bool fromCommercialExt(CommercialExtension *ext, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes given encryption extension.
Definition radioddity_codeplug.cc:2733
virtual void clearBasicKey(unsigned n)
Resets the n-th basic key.
Definition radioddity_codeplug.cc:2723
virtual ~EncryptionElement()
Destructor.
Definition radioddity_codeplug.cc:2676
virtual bool isBasicKeySet(unsigned n) const
Returns true if the n-th "basic" key (32bit) is set.
Definition radioddity_codeplug.cc:2698
virtual bool linkCommercialExt(CommercialExtension *ext, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given encryption extension.
Definition radioddity_codeplug.cc:2783
static constexpr unsigned int size()
The size of the element.
Definition radioddity_codeplug.hh:1618
virtual void setBasicKey(unsigned n, const QByteArray &key)
Sets the n-th "basic" key (32bit).
Definition radioddity_codeplug.cc:2711
Implements the base class of general settings for all Radioddity codeplugs.
Definition radioddity_codeplug.hh:957
virtual bool allTonesDisabled() const
Returns true if all tones are disabled.
Definition radioddity_codeplug.cc:1673
virtual void enableUpChannelModeVFO(bool enable)
Enables/disables up-channel mode is VFO.
Definition radioddity_codeplug.cc:1610
virtual void setRepeaterEndDelay(unsigned delay)
Sets the repeater end delay in [0-10].
Definition radioddity_codeplug.cc:1752
virtual bool batsaveRX() const
Returns true if reception is disabled for battery saving.
Definition radioddity_codeplug.cc:1681
virtual void setCallAlertDuration(unsigned sec)
Sets the call-allert duration in seconds.
Definition radioddity_codeplug.cc:1559
virtual unsigned preambleDuration() const
Returns the preamble duration in ms.
Definition radioddity_codeplug.cc:1518
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:1602
virtual void enableBatsaveRX(bool enable)
Enables/disables battery saving by disabling RX.
Definition radioddity_codeplug.cc:1685
virtual bool animation() const
Returns true if animation is enabled.
Definition radioddity_codeplug.cc:1731
virtual void enableSelftestTone(bool enable)
Enables/disables reset tone.
Definition radioddity_codeplug.cc:1661
virtual unsigned radioID() const
Returns the DMR radio ID.
Definition radioddity_codeplug.cc:1509
virtual void enableDigitalTalkPermitTone(bool enable)
Enables/disables digital channel talk permit tone.
Definition radioddity_codeplug.cc:1645
virtual ~GeneralSettingsElement()
Destructor.
Definition radioddity_codeplug.cc:1445
virtual void setMonitorType(MonitorType type)
Sets the monitor type.
Definition radioddity_codeplug.cc:1531
virtual bool batsavePreamble() const
Returns true if preable is disabled for battery saving.
Definition radioddity_codeplug.cc:1689
virtual unsigned privateCallHangTime() const
Returns the private call hang time in ms.
Definition radioddity_codeplug.cc:1589
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:1500
virtual void setName(const QString &name)
Sets the radio name.
Definition radioddity_codeplug.cc:1504
virtual bool channelFreeIndicationTone() const
Returns true if the channel free indication tone is enabled.
Definition radioddity_codeplug.cc:1665
virtual void inhibitQuickKeyOverride(bool inhibit)
Inhibits quick-key override.
Definition radioddity_codeplug.cc:1710
virtual bool upChannelModeVFO() const
Returns true if the up-channel mode is VFO.
Definition radioddity_codeplug.cc:1606
virtual void disableAllTones(bool disable)
Disables/enables all tones.
Definition radioddity_codeplug.cc:1677
virtual void enableAnimation(bool enable)
Enables/disables animation.
Definition radioddity_codeplug.cc:1735
virtual QString progPassword() const
Returns the programming password.
Definition radioddity_codeplug.cc:1769
virtual bool allLEDsDisabled() const
Returns true if all LEDs are disabled.
Definition radioddity_codeplug.cc:1698
virtual void disableAllLEDs(bool disable)
Disables/enables all LEDs.
Definition radioddity_codeplug.cc:1702
void clear()
Resets the general settings.
Definition radioddity_codeplug.cc:1450
virtual bool digitalTalkPermitTone() const
Returns true if the digital channel talk permit tone is enabled.
Definition radioddity_codeplug.cc:1641
virtual bool analogTalkPermitTone() const
Returns true if the analog channel talk permit tone is enabled.
Definition radioddity_codeplug.cc:1649
virtual void setLoneWorkerResponsePeriod(unsigned min)
Sets the lone-worker response period in minutes.
Definition radioddity_codeplug.cc:1568
RadiodditySettingsExtension::ScanMode ScanMode
Use scan mode from extension.
Definition radioddity_codeplug.hh:964
virtual void setGroupCallHangTime(unsigned ms)
Sets the group call hang time in ms.
Definition radioddity_codeplug.cc:1585
virtual void clearProgPassword()
Resets the programming password.
Definition radioddity_codeplug.cc:1777
virtual void enableBatsavePreamble(bool enable)
Enables/disables battery saving by disabling preamble.
Definition radioddity_codeplug.cc:1693
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:1623
virtual unsigned repeaterEndDelay() const
Returns the repeater end delay in [0-10].
Definition radioddity_codeplug.cc:1748
virtual bool fromConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the general setting from the given config.
Definition radioddity_codeplug.cc:1782
virtual ARTSTone artsToneMode() const
Returns the ARTS tone mode.
Definition radioddity_codeplug.cc:1632
virtual void enableUnknownNumberTone(bool enable)
Enables/disables reset tone.
Definition radioddity_codeplug.cc:1627
virtual bool hasProgPassword() const
Returns true if a programming password is set.
Definition radioddity_codeplug.cc:1765
virtual unsigned loneWorkerReminderPeriod() const
Returns the lone-worker reminder period in seconds.
Definition radioddity_codeplug.cc:1572
virtual void setRadioID(unsigned id)
Sets the DMR radio ID.
Definition radioddity_codeplug.cc:1513
virtual ScanMode scanMode() const
Returns the scan mode.
Definition radioddity_codeplug.cc:1739
virtual bool txOnActiveChannel() const
Returns true if the radio transmits on the active channel on double monitor.
Definition radioddity_codeplug.cc:1723
virtual unsigned voxSensitivity() const
Returns the VOX sensitivity [1-10], 0=disabled.
Definition radioddity_codeplug.cc:1536
virtual void setLowBatteryWarnInterval(unsigned sec)
Sets the low-battery warn interval in seconds.
Definition radioddity_codeplug.cc:1550
virtual void enableChannelFreeIndicationTone(bool enable)
Enables/disables channel free indication tone.
Definition radioddity_codeplug.cc:1669
virtual MonitorType monitorType() const
Returns the monitor type.
Definition radioddity_codeplug.cc:1527
virtual void setARTSToneMode(ARTSTone mode)
Sets the ARTS tone mode.
Definition radioddity_codeplug.cc:1636
virtual unsigned repeaterSTE() const
Returns the repeater STE in [0-10].
Definition radioddity_codeplug.cc:1756
virtual void setRepeaterSTE(unsigned ste)
Sets the repeater STE in [0-10].
Definition radioddity_codeplug.cc:1760
virtual unsigned groupCallHangTime() const
Returns the group call hang time in ms.
Definition radioddity_codeplug.cc:1581
virtual unsigned callAlertDuration() const
Returns the call-alert duration in seconds.
Definition radioddity_codeplug.cc:1555
virtual void setPrivateCallHangTime(unsigned ms)
Sets the private call hang time in ms.
Definition radioddity_codeplug.cc:1593
virtual void enableTXExitTone(bool enable)
Enables/disables TX exit tone.
Definition radioddity_codeplug.cc:1719
virtual void setPreambleDuration(unsigned ms)
Sets the preamble duration in ms.
Definition radioddity_codeplug.cc:1522
virtual unsigned loneWorkerResponsePeriod() const
Returns the lone-worker response period in minutes.
Definition radioddity_codeplug.cc:1564
virtual void enableAnalogTalkPermitTone(bool enable)
Enables/disables analog channel talk permit tone.
Definition radioddity_codeplug.cc:1653
virtual bool downChannelModeVFO() const
Returns true if the down-channel mode is VFO.
Definition radioddity_codeplug.cc:1598
virtual bool quickKeyOverrideInhibited() const
Returns true if quick-key override is inhibited.
Definition radioddity_codeplug.cc:1706
virtual bool resetTone() const
Returns true if the reset tone is enabled.
Definition radioddity_codeplug.cc:1615
virtual bool updateConfig(Context &ctx, const ErrorStack &err=ErrorStack())
Updates the given config from this settings.
Definition radioddity_codeplug.cc:1837
virtual unsigned lowBatteryWarnInterval() const
Returns the low-battery warn interval in seconds.
Definition radioddity_codeplug.cc:1546
virtual void setVOXSensitivity(unsigned value)
Sets the VOX sensitivity.
Definition radioddity_codeplug.cc:1540
virtual void setProgPassword(const QString &pwd)
Sets the programming password.
Definition radioddity_codeplug.cc:1773
virtual bool txExitTone() const
Returns true if the TX exit tone is enabled.
Definition radioddity_codeplug.cc:1715
virtual void enableResetTone(bool enable)
Enables/disables reset tone.
Definition radioddity_codeplug.cc:1619
virtual void setScanMode(ScanMode mode)
Sets the scan mode.
Definition radioddity_codeplug.cc:1743
virtual bool selftestTone() const
Returns true if the reset tone is enabled.
Definition radioddity_codeplug.cc:1657
virtual void setLoneWorkerReminderPeriod(unsigned sec)
Sets the lone-worker reminder period in seconds.
Definition radioddity_codeplug.cc:1576
virtual void enableTXOnActiveChannel(bool enable)
Enables/disables transmission on active channel on double monitor.
Definition radioddity_codeplug.cc:1727
Implements a base class of group list memory banks for all Radioddity codeplugs.
Definition radioddity_codeplug.hh:709
virtual unsigned contactCount(unsigned n) const
Returns the number of contacts in the n-th group list.
Definition radioddity_codeplug.cc:1088
virtual bool isEnabled(unsigned n) const
Returns true if the n-th group list is enabled.
Definition radioddity_codeplug.cc:1084
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:1092
void clear()
Resets the bank.
Definition radioddity_codeplug.cc:1079
virtual void disable(unsigned n)
Disables the n-th group list.
Definition radioddity_codeplug.cc:1096
virtual ~GroupListBankElement()
Destructor.
Definition radioddity_codeplug.cc:1074
virtual uint8_t * get(unsigned n) const
Returns a pointer to the n-th group list.
Definition radioddity_codeplug.cc:1101
Represents a base class for all group lists within Radioddity codeplugs.
Definition radioddity_codeplug.hh:646
virtual unsigned member(unsigned n) const
Returns the n-th member index (+1).
Definition radioddity_codeplug.cc:999
virtual QString name() const
Returns the name of the group list.
Definition radioddity_codeplug.cc:984
virtual void clearMember(unsigned n)
Clears the n-th member index.
Definition radioddity_codeplug.cc:1007
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index (+1).
Definition radioddity_codeplug.cc:1003
void clear()
Resets the group list.
Definition radioddity_codeplug.cc:974
virtual RXGroupList * toRXGroupListObj(Context &ctx, const ErrorStack &err=ErrorStack())
Constructs a RXGroupList object from the codeplug representation.
Definition radioddity_codeplug.cc:1012
virtual ~GroupListElement()
Destructor.
Definition radioddity_codeplug.cc:969
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:1018
virtual bool hasMember(unsigned n) const
Returns true if the group list has an n-th member.
Definition radioddity_codeplug.cc:993
virtual bool fromRXGroupListObj(const RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Reset this codeplug representation from a RXGroupList object.
Definition radioddity_codeplug.cc:1033
virtual void setName(const QString &name)
Sets the name of the group list.
Definition radioddity_codeplug.cc:988
Implements the base class of menu settings for all Radioddity codeplugs.
Definition radioddity_codeplug.hh:1284
virtual bool message() const
Returns true if the message menu is shown.
Definition radioddity_codeplug.cc:2202
virtual void setMenuHangTime(unsigned sec)
Sets the menu hang time in seconds.
Definition radioddity_codeplug.cc:2196
virtual bool squelch() const
Returns true if the squelch menu is shown.
Definition radioddity_codeplug.cc:2348
virtual bool privacy() const
Returns true if the privacy menu is shown.
Definition radioddity_codeplug.cc:2356
virtual void enableKeyTone(bool enable)
Enables/disables the keytone.
Definition radioddity_codeplug.cc:2454
virtual bool radioEnable() const
Returns true if the radio-enable menu is shown.
Definition radioddity_codeplug.cc:2267
virtual void enableRadioCheck(bool enable)
Enables/disables the radioCheck menu.
Definition radioddity_codeplug.cc:2254
virtual void enablePower(bool enable)
Enables/disables the power menu.
Definition radioddity_codeplug.cc:2311
virtual void enablePasswordLock(bool enable)
Enables/disables the password-lock menu.
Definition radioddity_codeplug.cc:2376
virtual void enableRadioEnable(bool enable)
Enables/disables the radio-enable menu.
Definition radioddity_codeplug.cc:2271
virtual void enableAnsweredCalls(bool enable)
Enables/disables the answered-calls menu.
Definition radioddity_codeplug.cc:2392
virtual void enableProgPassword(bool enable)
Enables/disables the programming-password menu.
Definition radioddity_codeplug.cc:2287
virtual bool tone() const
Returns true if the tone menu is shown.
Definition radioddity_codeplug.cc:2299
virtual bool editContact() const
Returns true if the edit-contact menu is shown.
Definition radioddity_codeplug.cc:2234
virtual void setDualWatchMode(DualWatchMode mode)
Sets the dual-watch mode.
Definition radioddity_codeplug.cc:2463
virtual bool dualWatch() const
Returns true if the dual-watch menu is shown.
Definition radioddity_codeplug.cc:2414
virtual bool introScreen() const
Returns true if the intro-screen menu is shown.
Definition radioddity_codeplug.cc:2323
virtual bool keypadLock() const
Returns true if the keypad-lock menu is shown.
Definition radioddity_codeplug.cc:2332
virtual void enableTalkaround(bool enable)
Enables/disables the talkaround menu.
Definition radioddity_codeplug.cc:2295
virtual void enableMissedCalls(bool enable)
Enables/disables the missed-calls menu.
Definition radioddity_codeplug.cc:2384
virtual void enablePrivacy(bool enable)
Enables/disables the privacy menu.
Definition radioddity_codeplug.cc:2360
virtual void enableRadioDisable(bool enable)
Enables/disables the radio-disable menu.
Definition radioddity_codeplug.cc:2279
virtual unsigned keypadLockTime() const
Returns the keypad lock time in seconds.
Definition radioddity_codeplug.cc:2423
virtual unsigned menuHangTime() const
Returns the menu hang-time in seconds.
Definition radioddity_codeplug.cc:2192
virtual bool keyTone() const
Returns true if the keytone is enabled.
Definition radioddity_codeplug.cc:2450
virtual void enableManualDial(bool enable)
Enables/disables the manual-dial menu.
Definition radioddity_codeplug.cc:2246
virtual void enableRemoteMonitor(bool enable)
Enables/disables the message menu.
Definition radioddity_codeplug.cc:2262
virtual bool passwordLock() const
Returns true if the password-lock menu is shown.
Definition radioddity_codeplug.cc:2372
virtual bool backlight() const
Returns true if the backlight menu is shown.
Definition radioddity_codeplug.cc:2315
DualWatchMode
Possible dual-watch modes.
Definition radioddity_codeplug.hh:1294
virtual unsigned backlightTime() const
Returns the backlight time in seconds.
Definition radioddity_codeplug.cc:2432
virtual void enableEditContact(bool enable)
Enables/disables the edit-contact menu.
Definition radioddity_codeplug.cc:2238
virtual bool vox() const
Returns true if the VOX menu is shown.
Definition radioddity_codeplug.cc:2364
virtual bool talkaround() const
Returns true if the talkaround menu is shown.
Definition radioddity_codeplug.cc:2291
virtual bool editScanList() const
Returns true if the edit scan-list menu is shown.
Definition radioddity_codeplug.cc:2218
virtual bool remoteMonitor() const
Returns true if the remote-monitor menu is shown.
Definition radioddity_codeplug.cc:2258
virtual void enableKeypadLock(bool enable)
Enables/disables the keypad-lock menu.
Definition radioddity_codeplug.cc:2336
virtual bool progPassword() const
Returns true if the programming-password menu is shown.
Definition radioddity_codeplug.cc:2283
virtual void enableCallAlert(bool enable)
Enables/disables the call-alert menu.
Definition radioddity_codeplug.cc:2230
virtual bool manualDial() const
Returns true if the manual-dial menu is shown.
Definition radioddity_codeplug.cc:2242
ChannelDisplayMode
Possible channel display modes.
Definition radioddity_codeplug.hh:1287
virtual void enableOutgoingCalls(bool enable)
Enables/disables the outgoing-calls menu.
Definition radioddity_codeplug.cc:2401
virtual bool ledIndicator() const
Returns true if the LED-indicator menu is shown.
Definition radioddity_codeplug.cc:2340
virtual void enableEditScanList(bool enable)
Enables/disables the edit scan-list menu.
Definition radioddity_codeplug.cc:2222
virtual bool radioCheck() const
Returns true if the radio-check menu is shown.
Definition radioddity_codeplug.cc:2250
virtual bool callAlert() const
Returns true if the call-alert menu is shown.
Definition radioddity_codeplug.cc:2226
virtual void enableMessage(bool enable)
Enables/disables the message menu.
Definition radioddity_codeplug.cc:2206
virtual void enableTone(bool enable)
Enables/disables the tone menu.
Definition radioddity_codeplug.cc:2303
virtual bool power() const
Returns true if the power menu is shown.
Definition radioddity_codeplug.cc:2307
virtual bool answeredCalls() const
Returns true if the answered-calls menu is shown.
Definition radioddity_codeplug.cc:2388
virtual bool scanStart() const
Returns true if the scan-start menu is shown.
Definition radioddity_codeplug.cc:2210
void clear()
Resets the menu settings.
Definition radioddity_codeplug.cc:2143
virtual void setBacklightTime(unsigned sec)
Sets the backlight time in seconds.
Definition radioddity_codeplug.cc:2436
virtual void setKeypadLockTime(unsigned sec)
Sets the keypad lock time in seconds.
Definition radioddity_codeplug.cc:2427
virtual void enableBacklight(bool enable)
Enables/disables the backlight menu.
Definition radioddity_codeplug.cc:2319
virtual bool missedCalls() const
Returns true if the missed-calls menu is shown.
Definition radioddity_codeplug.cc:2380
virtual void enableVOX(bool enable)
Enables/disables the VOX menu.
Definition radioddity_codeplug.cc:2368
virtual ChannelDisplayMode channelDisplayMode() const
Returns the channel display mode.
Definition radioddity_codeplug.cc:2441
virtual void enableChannelDisplay(bool enable)
Enables/disables the channel display mode menu.
Definition radioddity_codeplug.cc:2410
virtual DualWatchMode dualWatchMode() const
Returns the dual-watch mode.
Definition radioddity_codeplug.cc:2459
virtual ~MenuSettingsElement()
Destructor.
Definition radioddity_codeplug.cc:2138
virtual bool channelDisplay() const
Returns true if the channel display-mode menu is shown.
Definition radioddity_codeplug.cc:2406
virtual void setChannelDisplayMode(ChannelDisplayMode mode)
Sets the channel display mode.
Definition radioddity_codeplug.cc:2445
virtual bool radioDisable() const
Returns true if the radio-disable menu is shown.
Definition radioddity_codeplug.cc:2275
virtual void enableDualWatch(bool enable)
Enables/disables the dual-watch menu.
Definition radioddity_codeplug.cc:2418
virtual void enableIntroScreen(bool enable)
Enables/disables the message menu.
Definition radioddity_codeplug.cc:2327
virtual void enableScanStart(bool enable)
Enables/disables the scan-start menu.
Definition radioddity_codeplug.cc:2214
virtual void enableLEDIndicator(bool enable)
Enables/disables the LED-indicator menu.
Definition radioddity_codeplug.cc:2344
virtual void enableSquelch(bool enable)
Enables/disables the squelch menu.
Definition radioddity_codeplug.cc:2352
virtual bool outgoingCalls() const
Returns true if the outgoing-calls menu is shown.
Definition radioddity_codeplug.cc:2397
Implements the base class of a message bank for all Radioddity message banks.
Definition radioddity_codeplug.hh:1546
virtual QString message(unsigned n) const
Returns the n-th message.
Definition radioddity_codeplug.cc:2616
virtual ~MessageBankElement()
Destructor.
Definition radioddity_codeplug.cc:2598
virtual unsigned numMessages() const
Returns the number of messages.
Definition radioddity_codeplug.cc:2612
virtual bool encode(Context &ctx, const Flags &flags, const ErrorStack &err=ErrorStack())
Encodes all preset messages.
Definition radioddity_codeplug.cc:2636
static constexpr unsigned int size()
Returns the size of the message bank.
Definition radioddity_codeplug.hh:1558
virtual void appendMessage(const QString msg)
Appends a message to the list.
Definition radioddity_codeplug.cc:2622
void clear()
Resets all messages.
Definition radioddity_codeplug.cc:2603
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all preset messages.
Definition radioddity_codeplug.cc:2647
Implements the base class of scan lists banks for all Radioddity codeplugs.
Definition radioddity_codeplug.hh:910
virtual bool isEnabled(unsigned n) const
Returns true if the n-th scan list is enabled.
Definition radioddity_codeplug.cc:1413
virtual ~ScanListBankElement()
Destructor.
Definition radioddity_codeplug.cc:1403
virtual void enable(unsigned n, bool enabled)
Enable/disable n-th scan list.
Definition radioddity_codeplug.cc:1417
virtual uint8_t * get(unsigned n) const
Returns a pointer to the n-th scan list.
Definition radioddity_codeplug.cc:1425
void clear()
Resets the scan list bank.
Definition radioddity_codeplug.cc:1408
static constexpr unsigned int size()
The size of the scan list bank.
Definition radioddity_codeplug.hh:922
Implements the base class for scan lists of all Radioddity codeplugs.
Definition radioddity_codeplug.hh:761
virtual ScanList * toScanListObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a ScanList object from this codeplug representation.
Definition radioddity_codeplug.cc:1297
virtual bool hasSecondary() const
Returns true if the secondary priority channel is set.
Definition radioddity_codeplug.cc:1229
virtual void clearPrimary()
Clears the primary priority channel.
Definition radioddity_codeplug.cc:1224
virtual unsigned secondary() const
Return the channel index for the secondary priority channel.
Definition radioddity_codeplug.cc:1237
virtual void setName(const QString &name)
Sets the name of the scan list.
Definition radioddity_codeplug.cc:1147
virtual void clearSecondary()
Clears the secondary priority channel.
Definition radioddity_codeplug.cc:1249
virtual ~ScanListElement()
Destructor.
Definition radioddity_codeplug.cc:1125
virtual void setSelected(unsigned n)
Sets the n-th member to be the selected channel.
Definition radioddity_codeplug.cc:1195
virtual void setRevertSelected()
Sets the revert channel to be the selected one.
Definition radioddity_codeplug.cc:1270
void clear()
Resets the scan list.
Definition radioddity_codeplug.cc:1130
virtual void clearMember(unsigned n)
Clears the n-th member.
Definition radioddity_codeplug.cc:1199
virtual bool revertIsSelected() const
Returns true if the revert channel is the selected channel.
Definition radioddity_codeplug.cc:1258
virtual unsigned revert() const
Return the channel index for the revert channel.
Definition radioddity_codeplug.cc:1262
virtual bool secondaryIsSelected() const
Returns true if the secondary priority channel is the selected channel.
Definition radioddity_codeplug.cc:1233
virtual void enableTalkback(bool enable)
Enables/disables talk back.
Definition radioddity_codeplug.cc:1174
virtual void setPrioritySampleTime(unsigned ms)
Sets the priority sample time in ms.
Definition radioddity_codeplug.cc:1292
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:1156
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index.
Definition radioddity_codeplug.cc:1191
virtual Mode mode() const
Returns the scan mode.
Definition radioddity_codeplug.cc:1161
virtual void setRevert(unsigned idx)
Sets the revert channel index.
Definition radioddity_codeplug.cc:1266
virtual void setSecondarySelected()
Sets the secondary priority channel to be the selected channel.
Definition radioddity_codeplug.cc:1245
virtual unsigned prioritySampleTime() const
Returns the priority sample time in ms.
Definition radioddity_codeplug.cc:1288
virtual bool hasPrimary() const
Returns true if the primary priority channel is set.
Definition radioddity_codeplug.cc:1204
virtual void clearRevert()
Clears the revert channel, sets it to last active.
Definition radioddity_codeplug.cc:1274
virtual unsigned member(unsigned n) const
Returns the n-th member index.
Definition radioddity_codeplug.cc:1187
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:1254
virtual void setSecondary(unsigned idx)
Sets the secondary priority channel index.
Definition radioddity_codeplug.cc:1241
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:1303
virtual void setMode(Mode mode)
Sets the scan mode.
Definition radioddity_codeplug.cc:1165
virtual void setHoldTime(unsigned ms)
Sets the hold time in ms.
Definition radioddity_codeplug.cc:1283
virtual bool talkback() const
Returns true if talk back is enabled.
Definition radioddity_codeplug.cc:1170
virtual bool hasMember(unsigned n) const
Returns true if the n-th member is set.
Definition radioddity_codeplug.cc:1179
virtual unsigned primary() const
Return the channel index for the primary priority channel.
Definition radioddity_codeplug.cc:1212
virtual bool primaryIsSelected() const
Returns true if the primary priority channel is the selected channel.
Definition radioddity_codeplug.cc:1208
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:1354
virtual bool isSelected(unsigned n) const
Returns true if the n-th member is selected channel.
Definition radioddity_codeplug.cc:1183
virtual unsigned holdTime() const
Returns the hold time in ms.
Definition radioddity_codeplug.cc:1279
virtual void setPrimarySelected()
Sets the primary priority channel to be the selected channel.
Definition radioddity_codeplug.cc:1220
virtual bool channelMark() const
Returns true if channel mark is enabled.
Definition radioddity_codeplug.cc:1152
virtual QString name() const
Returns the name of the scan list.
Definition radioddity_codeplug.cc:1143
virtual void setPrimary(unsigned idx)
Sets the primary priority channel index.
Definition radioddity_codeplug.cc:1216
VFO Channel representation within the binary codeplug.
Definition radioddity_codeplug.hh:323
virtual void setOffsetMode(OffsetMode mode)
Sets the transmit frequency offset mode.
Definition radioddity_codeplug.cc:591
virtual void setStepSize(double kHz)
Sets the tuning step-size in kHz.
Definition radioddity_codeplug.cc:567
OffsetMode
Possible offset frequency modes.
Definition radioddity_codeplug.hh:326
@ Positive
Transmit offset frequency is positive (TX above RX).
@ Off
Disables transmit frequency offset.
@ Negative
Transmit offset frequency is negative (TX below RX).
virtual void setTXOffset(double f)
Sets the transmit frequency offset in MHz.
Definition radioddity_codeplug.cc:599
void setName(const QString &name)
The VFO channel has no name.
Definition radioddity_codeplug.cc:546
virtual OffsetMode offsetMode() const
Returns the transmit frequency offset mode.
Definition radioddity_codeplug.cc:587
StepSize
Possible tuning step sizes.
Definition radioddity_codeplug.hh:333
QString name() const
The VFO channel has no name.
Definition radioddity_codeplug.cc:542
virtual double txOffset() const
Returns the transmit frequency offset.
Definition radioddity_codeplug.cc:595
void clear()
Resets the channel.
Definition radioddity_codeplug.cc:534
virtual double stepSize() const
Returns the tuning step-size in kHz.
Definition radioddity_codeplug.cc:552
Implements the base class for all zone banks of Radioddity codeplugs.
Definition radioddity_codeplug.hh:596
void clear()
Resets the bank.
Definition radioddity_codeplug.cc:933
virtual uint8_t * get(unsigned idx) const
Returns a pointer to the channel at the given index.
Definition radioddity_codeplug.cc:949
~ZoneBankElement()
Destructor.
Definition radioddity_codeplug.cc:928
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:943
virtual bool isEnabled(unsigned idx) const
Returns true if the channel is enabled.
Definition radioddity_codeplug.cc:938
Represents a zone within Radioddity codeplugs.
Definition radioddity_codeplug.hh:526
void clear()
Resets the zone.
Definition radioddity_codeplug.cc:805
virtual Zone * toZoneObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a generic Zone object from this codeplug zone.
Definition radioddity_codeplug.cc:847
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:895
virtual QString name() const
Returns the name of the zone.
Definition radioddity_codeplug.cc:815
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:876
virtual unsigned member(unsigned n) const
Returns the n-th member index (+1).
Definition radioddity_codeplug.cc:830
virtual void setName(const QString &name)
Sets the name of the zone.
Definition radioddity_codeplug.cc:819
virtual bool hasMember(unsigned n) const
Returns true if a member is stored at the given index.
Definition radioddity_codeplug.cc:824
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:836
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:857
bool isValid() const
Returns true if the zone is valid.
Definition radioddity_codeplug.cc:810
virtual void clearMember(unsigned n)
Clears the n-th member index.
Definition radioddity_codeplug.cc:842
Base class of all Radioddity codeplugs.
Definition radioddity_codeplug.hh:24
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:2903
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.
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:3011
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:2984
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:2995
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:2921
virtual ~RadioddityCodeplug()
Destructor.
Definition radioddity_codeplug.cc:2799
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:2834
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:2804
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:2884
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.
MonitorType
Possible monitor types.
Definition radioddity_extensions.hh:373
ScanMode
Possible scan modes.
Definition radioddity_extensions.hh:380
ARTSTone
Possible ARTS tone settings.
Definition radioddity_extensions.hh:136
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:1527
static constexpr unsigned int lineLength()
The maximum length of the boot text line.
Definition radioddity_codeplug.hh:1528
Internal offsets within the element.
Definition radioddity_codeplug.hh:1533
Encoding/decoding of function key actions.
Definition radioddity_codeplug.hh:1143
static RadioddityButtonSettingsExtension::Function decode(uint8_t action)
Decodes the action.
Definition radioddity_codeplug.cc:1930
Action
Possible function key actions.
Definition radioddity_codeplug.hh:1152
@ ToggleMonitor
Toggle monitor on channel.
Definition radioddity_codeplug.hh:1157
@ OneTouch2
Performs the second of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1160
@ OneTouch6
Performs the sixt of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1164
@ OneTouch4
Performs the fourth of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1162
@ None
Disables button.
Definition radioddity_codeplug.hh:1153
@ OneTouch1
Performs the first of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1159
@ OneTouch3
Performs the third of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1161
@ OneTouch5
Performs the fifth of 6 user-programmable actions (call, message).
Definition radioddity_codeplug.hh:1163
static uint8_t encode(RadioddityButtonSettingsExtension::Function func)
Encodes the given function.
Definition radioddity_codeplug.cc:1900
Some limits.
Definition radioddity_codeplug.hh:1253
static constexpr TimeRange longPressDuration()
Range of valid long-press durations.
Definition radioddity_codeplug.hh:1255
static constexpr unsigned int oneTouchActions()
Number of one-touch actions.
Definition radioddity_codeplug.hh:1259
Internal used offsets within the element.
Definition radioddity_codeplug.hh:1264
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:1646
static constexpr unsigned int keyCount()
The maximum number of keys.
Definition radioddity_codeplug.hh:1648
static constexpr unsigned int keySize()
The required key size.
Definition radioddity_codeplug.hh:1650
Internal offsets within the element.
Definition radioddity_codeplug.hh:1655
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:1576
static constexpr unsigned int messageLength()
Maximum length of each message.
Definition radioddity_codeplug.hh:1578
static constexpr unsigned int messages()
Maximum number of messages.
Definition radioddity_codeplug.hh:1577
Some internal used offset.
Definition radioddity_codeplug.hh:1583
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