libdrmconf  0.11.3
A library to program DMR radios.
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 
10 class DMRContact;
11 class Zone;
12 class RXGroupList;
13 class ScanList;
14 
22 {
23  Q_OBJECT
24 
25 public:
31  {
32  public:
34  enum Mode {
36  MODE_DIGITAL = 1
37  };
38 
40  enum Admit {
43  ADMIT_COLOR = 2
44  };
45 
47  enum PrivacyGroup {
49  PRIVGR_53474C39 = 1
50  };
51 
52  protected:
54  ChannelElement(uint8_t *ptr, size_t size);
55 
56  public:
58  explicit ChannelElement(uint8_t *ptr);
60  virtual ~ChannelElement();
61 
63  virtual void clear();
64 
66  virtual QString name() const;
68  virtual void setName(const QString &n);
69 
71  virtual uint32_t rxFrequency() const;
73  virtual void setRXFrequency(uint32_t freq);
75  virtual uint32_t txFrequency() const;
77  virtual void setTXFrequency(uint32_t freq);
78 
80  virtual Mode mode() const;
82  virtual void setMode(Mode mode);
83 
85  virtual unsigned txTimeOut() const;
87  virtual void setTXTimeOut(unsigned tot);
89  virtual unsigned txTimeOutRekeyDelay() const;
91  virtual void setTXTimeOutRekeyDelay(unsigned delay);
92 
94  virtual Admit admitCriterion() const;
96  virtual void setAdmitCriterion(Admit admit);
97 
99  virtual bool hasScanList() const;
101  virtual unsigned scanListIndex() const;
103  virtual void setScanListIndex(unsigned index);
104 
106  virtual Signaling::Code rxTone() const;
108  virtual void setRXTone(Signaling::Code code);
110  virtual Signaling::Code txTone() const;
112  virtual void setTXTone(Signaling::Code code);
113 
115  virtual unsigned txSignalingIndex() const;
117  virtual void setTXSignalingIndex(unsigned index);
119  virtual unsigned rxSignalingIndex() const;
121  virtual void setRXSignalingIndex(unsigned index);
122 
124  virtual PrivacyGroup privacyGroup() const;
126  virtual void setPrivacyGroup(PrivacyGroup grp);
127 
129  virtual unsigned txColorCode() const;
131  virtual void setTXColorCode(unsigned cc);
132 
134  virtual bool hasGroupList() const;
136  virtual unsigned groupListIndex() const;
138  virtual void setGroupListIndex(unsigned index);
139 
141  virtual unsigned rxColorCode() const;
143  virtual void setRXColorCode(unsigned cc);
144 
146  virtual bool hasEmergencySystem() const;
148  virtual unsigned emergencySystemIndex() const;
150  virtual void setEmergencySystemIndex(unsigned index);
151 
153  virtual bool hasContact() const;
155  virtual unsigned contactIndex() const;
157  virtual void setContactIndex(unsigned index);
158 
160  virtual bool dataCallConfirm() const;
162  virtual void enableDataCallConfirm(bool enable);
164  virtual bool emergencyAlarmACK() const;
166  virtual void enableEmergencyAlarmACK(bool enable);
168  virtual bool privateCallConfirm() const;
170  virtual void enablePrivateCallConfirm(bool enable);
172  virtual bool privacyEnabled() const;
174  virtual void enablePrivacy(bool enable);
175 
177  virtual DMRChannel::TimeSlot timeSlot() const;
179  virtual void setTimeSlot(DMRChannel::TimeSlot ts);
180 
182  virtual bool dualCapacityDirectMode() const;
184  virtual void enableDualCapacityDirectMode(bool enable);
186  virtual bool nonSTEFrequency() const;
188  virtual void enableNonSTEFrequency(bool enable);
189 
191  virtual FMChannel::Bandwidth bandwidth() const;
193  virtual void setBandwidth(FMChannel::Bandwidth bw);
194 
196  virtual bool rxOnly() const;
198  virtual void enableRXOnly(bool enable);
200  virtual bool talkaround() const;
202  virtual void enableTalkaround(bool enable);
204  virtual bool vox() const;
206  virtual void enableVOX(bool enable);
207 
209  virtual Channel::Power power() const;
211  virtual void setPower(Channel::Power pwr);
212 
214  virtual Channel *toChannelObj(Context &ctx) const;
216  virtual bool linkChannelObj(Channel *c, Context &ctx) const;
218  virtual bool fromChannelObj(const Channel *c, Context &ctx);
219  };
220 
226  {
227  protected:
229  ChannelBankElement(uint8_t *ptr, unsigned size);
230 
231  public:
233  explicit ChannelBankElement(uint8_t *ptr);
235  virtual ~ChannelBankElement();
236 
238  void clear();
239 
241  virtual bool isEnabled(unsigned idx) const ;
243  virtual void enable(unsigned idx, bool enabled);
245  virtual uint8_t *get(unsigned idx) const;
246  };
247 
253  {
254  public:
256  enum class OffsetMode {
257  Off = 0,
258  Positive = 1,
259  Negative = 2
260  };
261 
263  enum class StepSize {
264  SS2_5kHz = 0,
265  SS5kHz = 1,
266  SS6_25kHz = 2,
267  SS10kHz = 3,
268  SS12_5kHz = 4,
269  SS20kHz = 5,
270  SS30kHz = 6,
271  SS50kHz = 7
272  };
273 
274  protected:
276  VFOChannelElement(uint8_t *ptr, unsigned size);
277 
278  public:
280  explicit VFOChannelElement(uint8_t *ptr);
281 
282  void clear();
283 
285  QString name() const;
287  void setName(const QString &name);
288 
290  virtual double stepSize() const;
292  virtual void setStepSize(double kHz);
293 
295  virtual OffsetMode offsetMode() const;
297  virtual double txOffset() const;
299  virtual void setTXOffset(double f);
301  virtual void setOffsetMode(OffsetMode mode);
302  };
303 
304 
309  class ContactElement: public Element
310  {
311  protected:
313  ContactElement(uint8_t *ptr, unsigned size);
314 
315  public:
317  explicit ContactElement(uint8_t *ptr);
319  virtual ~ContactElement();
320 
322  void clear();
324  bool isValid() const;
325 
327  virtual QString name() const;
329  virtual void setName(const QString name);
330 
332  virtual unsigned number() const;
334  virtual void setNumber(unsigned id);
335 
337  virtual DMRContact::Type type() const;
339  virtual void setType(DMRContact::Type type);
340 
342  virtual bool ring() const;
344  virtual void enableRing(bool enable);
345 
347  virtual unsigned ringStyle() const;
349  virtual void setRingStyle(unsigned style);
350 
352  virtual DMRContact *toContactObj(Context &ctx) const;
354  virtual void fromContactObj(const DMRContact *obj, Context &ctx);
355  };
356 
363  {
364  protected:
366  DTMFContactElement(uint8_t *ptr, unsigned size);
367 
368  public:
370  explicit DTMFContactElement(uint8_t *ptr);
372  virtual ~DTMFContactElement();
373 
375  void clear();
377  bool isValid() const;
378 
380  virtual QString name() const;
382  virtual void setName(const QString &name);
383 
385  virtual QString number() const;
387  virtual void setNumber(const QString &number);
388 
390  virtual DTMFContact *toContactObj(Context &ctx) const;
392  virtual void fromContactObj(const DTMFContact *obj, Context &ctx);
393  };
394 
400  class ZoneElement: public Element
401  {
402  protected:
404  ZoneElement(uint8_t *ptr, unsigned size);
405 
406  public:
408  explicit ZoneElement(uint8_t *ptr);
409  virtual ~ZoneElement();
410 
412  void clear();
414  bool isValid() const;
415 
417  virtual QString name() const;
419  virtual void setName(const QString &name);
420 
423  virtual bool hasMember(unsigned n) const;
425  virtual unsigned member(unsigned n) const;
427  virtual void setMember(unsigned n, unsigned idx);
429  virtual void clearMember(unsigned n);
430 
432  virtual Zone *toZoneObj(Context &ctx) const;
435  virtual bool linkZoneObj(Zone *zone, Context &ctx, bool putInB) const;
437  virtual void fromZoneObjA(const Zone *zone, Context &ctx);
439  virtual void fromZoneObjB(const Zone *zone, Context &ctx);
440  };
441 
447  class ZoneBankElement: public Element
448  {
449  protected:
451  ZoneBankElement(uint8_t *ptr, unsigned size);
452 
453  public:
455  explicit ZoneBankElement(uint8_t *ptr);
458 
460  void clear();
461 
463  virtual bool isEnabled(unsigned idx) const ;
465  virtual void enable(unsigned idx, bool enabled);
467  virtual uint8_t *get(unsigned idx) const;
468  };
469 
475  class GroupListElement: public Element
476  {
477  protected:
479  GroupListElement(uint8_t *ptr, unsigned size);
480 
481  public:
483  explicit GroupListElement(uint8_t *ptr);
485  virtual ~GroupListElement();
486 
488  void clear();
489 
491  virtual QString name() const;
493  virtual void setName(const QString &name);
494 
497  virtual bool hasMember(unsigned n) const;
499  virtual unsigned member(unsigned n) const;
501  virtual void setMember(unsigned n, unsigned idx);
503  virtual void clearMember(unsigned n);
504 
506  virtual RXGroupList *toRXGroupListObj(Context &ctx, const ErrorStack &err=ErrorStack());
508  virtual bool linkRXGroupListObj(int ncnt, RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack()) const;
510  virtual void fromRXGroupListObj(const RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
511  };
512 
519  {
520  protected:
522  GroupListBankElement(uint8_t *ptr, unsigned size);
523 
524  public:
526  explicit GroupListBankElement(uint8_t *ptr);
528  virtual ~GroupListBankElement();
529 
531  void clear();
532 
534  virtual bool isEnabled(unsigned n) const;
536  virtual unsigned contactCount(unsigned n) const;
539  virtual void setContactCount(unsigned n, unsigned size);
541  virtual void disable(unsigned n);
542 
544  virtual uint8_t *get(unsigned n) const;
545  };
546 
552  class ScanListElement: public Element
553  {
554  public:
556  enum Mode {
557  PL_NONPRI = 0,
559  PL_PRI = 2,
560  PL_PRI_NONPRI = 3
561  };
562 
563  protected:
565  ScanListElement(uint8_t *ptr, unsigned size);
566 
567  public:
569  explicit ScanListElement(uint8_t *ptr);
571  virtual ~ScanListElement();
572 
574  void clear();
575 
577  virtual QString name() const;
579  virtual void setName(const QString &name);
580 
582  virtual bool channelMark() const;
584  virtual void enableChannelMark(bool enable);
585 
587  virtual Mode mode() const;
589  virtual void setMode(Mode mode);
590 
592  virtual bool talkback() const;
594  virtual void enableTalkback(bool enable);
595 
597  virtual bool hasMember(unsigned n) const;
599  virtual bool isSelected(unsigned n) const;
601  virtual unsigned member(unsigned n) const;
603  virtual void setMember(unsigned n, unsigned idx);
605  virtual void setSelected(unsigned n);
607  virtual void clearMember(unsigned n);
608 
610  virtual bool hasPrimary() const;
612  virtual bool primaryIsSelected() const;
614  virtual unsigned primary() const;
616  virtual void setPrimary(unsigned idx);
618  virtual void setPrimarySelected();
620  virtual void clearPrimary();
621 
623  virtual bool hasSecondary() const;
625  virtual bool secondaryIsSelected() const;
627  virtual unsigned secondary() const;
629  virtual void setSecondary(unsigned idx);
631  virtual void setSecondarySelected();
633  virtual void clearSecondary();
634 
637  virtual bool hasRevert() const;
639  virtual bool revertIsSelected() const;
641  virtual unsigned revert() const;
643  virtual void setRevert(unsigned idx);
645  virtual void setRevertSelected();
647  virtual void clearRevert();
648 
650  virtual unsigned holdTime() const;
652  virtual void setHoldTime(unsigned ms);
653 
655  virtual unsigned prioritySampleTime() const;
657  virtual void setPrioritySampleTime(unsigned ms);
658 
660  virtual ScanList *toScanListObj(Context &ctx) const;
662  virtual bool linkScanListObj(ScanList *lst, Context &ctx) const;
664  virtual void fromScanListObj(const ScanList *lst, Context &ctx);
665  };
666 
673  {
674  protected:
676  ScanListBankElement(uint8_t *ptr, unsigned size);
677 
678  public:
680  explicit ScanListBankElement(uint8_t *ptr);
682  virtual ~ScanListBankElement();
683 
685  void clear();
686 
688  virtual bool isEnabled(unsigned n) const;
690  virtual void enable(unsigned n, bool enabled);
692  virtual uint8_t *get(unsigned n) const;
693  };
694 
701  {
702  public:
709 
710  protected:
712  GeneralSettingsElement(uint8_t *ptr, unsigned size);
713 
714  public:
716  explicit GeneralSettingsElement(uint8_t *ptr);
718  virtual ~GeneralSettingsElement();
719 
721  void clear();
722 
724  virtual QString name() const;
726  virtual void setName(const QString &name);
727 
729  virtual unsigned radioID() const;
731  virtual void setRadioID(unsigned id);
732 
734  virtual unsigned preambleDuration() const;
736  virtual void setPreambleDuration(unsigned ms);
737 
739  virtual MonitorType monitorType() const;
741  virtual void setMonitorType(MonitorType type);
742 
744  virtual unsigned voxSensitivity() const;
746  virtual void setVOXSensitivity(unsigned value);
747 
749  virtual unsigned lowBatteryWarnInterval() const;
751  virtual void setLowBatteryWarnInterval(unsigned sec);
752 
754  virtual unsigned callAlertDuration() const;
756  virtual void setCallAlertDuration(unsigned sec);
757 
759  virtual unsigned loneWorkerResponsePeriod() const;
761  virtual void setLoneWorkerResponsePeriod(unsigned min);
763  virtual unsigned loneWorkerReminderPeriod() const;
765  virtual void setLoneWorkerReminderPeriod(unsigned sec);
766 
768  virtual unsigned groupCallHangTime() const;
770  virtual void setGroupCallHangTime(unsigned ms);
772  virtual unsigned privateCallHangTime() const;
774  virtual void setPrivateCallHangTime(unsigned ms);
775 
777  virtual bool downChannelModeVFO() const;
779  virtual void enableDownChannelModeVFO(bool enable);
781  virtual bool upChannelModeVFO() const;
783  virtual void enableUpChannelModeVFO(bool enable);
785  virtual bool resetTone() const;
787  virtual void enableResetTone(bool enable);
789  virtual bool unknownNumberTone() const;
791  virtual void enableUnknownNumberTone(bool enable);
793  virtual ARTSTone artsToneMode() const;
795  virtual void setARTSToneMode(ARTSTone mode);
796 
798  virtual bool digitalTalkPermitTone() const;
800  virtual void enableDigitalTalkPermitTone(bool enable);
802  virtual bool analogTalkPermitTone() const;
804  virtual void enableAnalogTalkPermitTone(bool enable);
806  virtual bool selftestTone() const;
808  virtual void enableSelftestTone(bool enable);
810  virtual bool channelFreeIndicationTone() const;
812  virtual void enableChannelFreeIndicationTone(bool enable);
814  virtual bool allTonesDisabled() const;
816  virtual void disableAllTones(bool disable);
818  virtual bool batsaveRX() const;
820  virtual void enableBatsaveRX(bool enable);
822  virtual bool batsavePreamble() const;
824  virtual void enableBatsavePreamble(bool enable);
825 
827  virtual bool allLEDsDisabled() const;
829  virtual void disableAllLEDs(bool disable);
831  virtual bool quickKeyOverrideInhibited() const;
833  virtual void inhibitQuickKeyOverride(bool inhibit);
834 
836  virtual bool txExitTone() const;
838  virtual void enableTXExitTone(bool enable);
840  virtual bool txOnActiveChannel() const;
842  virtual void enableTXOnActiveChannel(bool enable);
844  virtual bool animation() const;
846  virtual void enableAnimation(bool enable);
848  virtual ScanMode scanMode() const;
850  virtual void setScanMode(ScanMode mode);
851 
853  virtual unsigned repeaterEndDelay() const;
855  virtual void setRepeaterEndDelay(unsigned delay);
857  virtual unsigned repeaterSTE() const;
859  virtual void setRepeaterSTE(unsigned ste);
860 
862  virtual bool hasProgPassword() const;
864  virtual QString progPassword() const;
866  virtual void setProgPassword(const QString &pwd);
868  virtual void clearProgPassword();
869 
871  virtual bool fromConfig(const Config *conf, Context &ctx);
873  virtual bool updateConfig(Config *conf, Context &ctx);
874  };
875 
881  {
882  public:
884  enum class Action {
885  None = 0x00,
886  ToggleAllAlertTones = 0x01,
887  EmergencyOn = 0x02,
888  EmergencyOff = 0x03,
889  ToggleMonitor = 0x05,
890  NuiaceDelete = 0x06,
891  OneTouch1 = 0x07,
892  OneTouch2 = 0x08,
893  OneTouch3 = 0x09,
894  OneTouch4 = 0x0a,
895  OneTouch5 = 0x0b,
896  OneTouch6 = 0x0c,
897  ToggleRepeatTalkaround = 0x0d,
898  ToggleScan = 0x0e,
899  TogglePrivacy = 0x10,
900  ToggleVox = 0x11,
901  ZoneSelect = 0x12,
902  BatteryIndicator = 0x13,
903  ToggleLoneWorker = 0x14,
904  PhoneExit = 0x16,
905  ToggleFlashLight = 0x1a,
906  ToggleFMRadio = 0x1b
907  };
908 
910  enum class OneTouchAction {
911  None = 0x00,
912  DigitalCall = 0x10,
913  DigitalMessage = 0x11,
914  AnalogCall = 0x20
915  };
916 
917  protected:
919  ButtonSettingsElement(uint8_t *ptr, unsigned size);
920 
921  public:
923  explicit ButtonSettingsElement(uint8_t *ptr);
925  virtual ~ButtonSettingsElement();
926 
928  void clear();
929 
931  virtual unsigned longPressDuration() const;
933  virtual void setLongPressDuration(unsigned ms);
934 
936  virtual Action sk1ShortPress() const;
938  virtual void setSK1ShortPress(Action action);
940  virtual Action sk1LongPress() const;
942  virtual void setSK1LongPress(Action action);
943 
945  virtual Action sk2ShortPress() const;
947  virtual void setSK2ShortPress(Action action);
949  virtual Action sk2LongPress() const;
951  virtual void setSK2LongPress(Action action);
952 
954  virtual Action tkShortPress() const;
956  virtual void setTKShortPress(Action action);
958  virtual Action tkLongPress() const;
960  virtual void setTKLongPress(Action action);
961 
963  virtual OneTouchAction oneTouchAction(unsigned n) const;
965  virtual unsigned oneTouchContact(unsigned n) const;
967  virtual unsigned oneTouchMessage(unsigned n) const;
969  virtual void disableOneTouch(unsigned n);
971  virtual void setOneTouchDigitalCall(unsigned n, unsigned index);
973  virtual void setOneTouchDigitalMessage(unsigned n, unsigned index);
975  virtual void setOneTouchAnalogCall(unsigned n);
976  };
977 
983  {
984  public:
986  enum class ChannelDisplayMode {
987  Number = 0,
988  Name = 1,
989  Frequency = 2
990  };
991 
993  enum class DualWatchMode {
994  DualDual = 1,
995  DualSingle = 2
996  };
997 
998  protected:
1000  MenuSettingsElement(uint8_t *ptr, unsigned size);
1001 
1002  public:
1004  explicit MenuSettingsElement(uint8_t *ptr);
1006  virtual ~MenuSettingsElement();
1007 
1009  void clear();
1010 
1012  virtual unsigned menuHangTime() const;
1014  virtual void setMenuHangTime(unsigned sec);
1015 
1017  virtual bool message() const;
1019  virtual void enableMessage(bool enable);
1021  virtual bool scanStart() const;
1023  virtual void enableScanStart(bool enable);
1025  virtual bool editScanList() const;
1027  virtual void enableEditScanList(bool enable);
1029  virtual bool callAlert() const;
1031  virtual void enableCallAlert(bool enable);
1033  virtual bool editContact() const;
1035  virtual void enableEditContact(bool enable);
1037  virtual bool manualDial() const;
1039  virtual void enableManualDial(bool enable);
1041  virtual bool radioCheck() const;
1043  virtual void enableRadioCheck(bool enable);
1045  virtual bool remoteMonitor() const;
1047  virtual void enableRemoteMonitor(bool enable);
1048 
1050  virtual bool radioEnable() const;
1052  virtual void enableRadioEnable(bool enable);
1054  virtual bool radioDisable() const;
1056  virtual void enableRadioDisable(bool enable);
1058  virtual bool progPassword() const;
1060  virtual void enableProgPassword(bool enable);
1062  virtual bool talkaround() const;
1064  virtual void enableTalkaround(bool enable);
1066  virtual bool tone() const;
1068  virtual void enableTone(bool enable);
1070  virtual bool power() const;
1072  virtual void enablePower(bool enable);
1074  virtual bool backlight() const;
1076  virtual void enableBacklight(bool enable);
1078  virtual bool introScreen() const;
1080  virtual void enableIntroScreen(bool enable);
1081 
1083  virtual bool keypadLock() const;
1085  virtual void enableKeypadLock(bool enable);
1087  virtual bool ledIndicator() const;
1089  virtual void enableLEDIndicator(bool enable);
1091  virtual bool squelch() const;
1093  virtual void enableSquelch(bool enable);
1095  virtual bool privacy() const;
1097  virtual void enablePrivacy(bool enable);
1099  virtual bool vox() const;
1101  virtual void enableVOX(bool enable);
1103  virtual bool passwordLock() const;
1105  virtual void enablePasswordLock(bool enable);
1107  virtual bool missedCalls() const;
1109  virtual void enableMissedCalls(bool enable);
1111  virtual bool answeredCalls() const;
1113  virtual void enableAnsweredCalls(bool enable);
1114 
1116  virtual bool outgoingCalls() const;
1118  virtual void enableOutgoingCalls(bool enable);
1120  virtual bool channelDisplay() const;
1122  virtual void enableChannelDisplay(bool enable);
1124  virtual bool dualWatch() const;
1126  virtual void enableDualWatch(bool enable);
1127 
1129  virtual unsigned keypadLockTime() const;
1131  virtual void setKeypadLockTime(unsigned sec);
1132 
1134  virtual unsigned backlightTime() const;
1136  virtual void setBacklightTime(unsigned sec);
1137 
1139  virtual ChannelDisplayMode channelDisplayMode() const;
1141  virtual void setChannelDisplayMode(ChannelDisplayMode mode);
1142 
1144  virtual bool keyTone() const;
1146  virtual void enableKeyTone(bool enable);
1147 
1149  virtual DualWatchMode dualWatchMode() const;
1151  virtual void setDualWatchMode(DualWatchMode mode);
1152  };
1153 
1159  {
1160  protected:
1162  BootSettingsElement(uint8_t *ptr, unsigned size);
1163 
1164  public:
1166  explicit BootSettingsElement(uint8_t *ptr);
1168  virtual ~BootSettingsElement();
1169 
1171  void clear();
1172 
1174  virtual bool bootText() const;
1176  virtual void enableBootText(bool enable);
1177 
1179  virtual bool bootPasswordEnabled() const;
1181  virtual void enableBootPassword(bool enable);
1183  virtual unsigned bootPassword() const;
1185  virtual void setBootPassword(unsigned passwd);
1186  };
1187 
1192  class BootTextElement: public Element
1193  {
1194  protected:
1196  BootTextElement(uint8_t *ptr, unsigned size);
1197 
1198  public:
1200  explicit BootTextElement(uint8_t *ptr);
1202  virtual ~BootTextElement();
1203 
1205  void clear();
1206 
1208  virtual QString line1() const;
1210  virtual void setLine1(const QString &text);
1212  virtual QString line2() const;
1214  virtual void setLine2(const QString &text);
1215 
1217  virtual void fromConfig(Config *conf);
1219  virtual void updateConfig(Config *conf);
1220  };
1221 
1227  {
1228  protected:
1230  MessageBankElement(uint8_t *ptr, unsigned size);
1231 
1232  public:
1234  explicit MessageBankElement(uint8_t *ptr);
1236  virtual ~MessageBankElement();
1237 
1239  void clear();
1240 
1242  virtual unsigned numMessages() const;
1244  virtual QString message(unsigned n) const;
1246  virtual void appendMessage(const QString msg);
1247  };
1248 
1249 
1255  {
1256  public:
1259  enum class PrivacyType {
1260  None,
1261  Basic
1262  };
1263 
1264  protected:
1266  EncryptionElement(uint8_t *ptr, size_t size);
1267 
1268  public:
1270  explicit EncryptionElement(uint8_t *ptr);
1272  virtual ~EncryptionElement();
1273 
1274  void clear();
1275 
1277  virtual PrivacyType privacyType() const;
1279  virtual void setPrivacyType(PrivacyType type);
1280 
1283  virtual bool isBasicKeySet(unsigned n) const;
1285  virtual QByteArray basicKey(unsigned n) const;
1287  virtual void setBasicKey(unsigned n, const QByteArray &key);
1289  virtual void clearBasicKey(unsigned n);
1290 
1292  virtual bool fromCommercialExt(CommercialExtension *ext, Context &ctx);
1294  virtual bool updateCommercialExt(Context &ctx);
1296  virtual bool linkCommercialExt(CommercialExtension *ext, Context &ctx);
1297  };
1298 
1299 protected:
1301  explicit RadioddityCodeplug(QObject *parent=nullptr);
1302 
1303 public:
1305  virtual ~RadioddityCodeplug();
1306 
1308  virtual void clear();
1309 
1310  bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const;
1311 
1313  bool decode(Config *config, const ErrorStack &err=ErrorStack());
1315  bool encode(Config *config, const Flags &flags = Flags(), const ErrorStack &err=ErrorStack());
1316 
1317 public:
1320  virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
1322  virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1323 
1325  virtual void clearGeneralSettings() = 0;
1327  virtual bool encodeGeneralSettings(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1329  virtual bool decodeGeneralSettings(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1330 
1332  virtual void clearButtonSettings() = 0;
1333 
1335  virtual void clearMessages() = 0;
1336 
1338  virtual void clearContacts() = 0;
1340  virtual bool encodeContacts(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1342  virtual bool createContacts(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1343 
1345  virtual void clearDTMFContacts() = 0;
1347  virtual bool encodeDTMFContacts(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1349  virtual bool createDTMFContacts(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1350 
1352  virtual void clearChannels() = 0;
1354  virtual bool encodeChannels(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1356  virtual bool createChannels(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1358  virtual bool linkChannels(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1359 
1361  virtual void clearBootSettings() = 0;
1362 
1364  virtual void clearMenuSettings() = 0;
1365 
1367  virtual void clearBootText() = 0;
1369  virtual bool encodeBootText(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1371  virtual bool decodeBootText(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1372 
1374  virtual void clearVFOSettings() = 0;
1375 
1377  virtual void clearZones() = 0;
1379  virtual bool encodeZones(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1381  virtual bool createZones(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1383  virtual bool linkZones(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1384 
1386  virtual void clearScanLists() = 0;
1388  virtual bool encodeScanLists(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1390  virtual bool createScanLists(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1392  virtual bool linkScanLists(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1393 
1395  virtual void clearGroupLists() = 0;
1397  virtual bool encodeGroupLists(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1399  virtual bool createGroupLists(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1401  virtual bool linkGroupLists(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1402 
1404  virtual void clearEncryption() = 0;
1406  virtual bool encodeEncryption(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1408  virtual bool createEncryption(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1410  virtual bool linkEncryption(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1411 };
1412 
1413 #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:195
Represents the abstract base class of all codeplug elements.
Definition: codeplug.hh:47
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:69
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:385
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:41
Bandwidth
Possible bandwidth of an analog channel.
Definition: channel.hh:236
Generic representation of a RX group list.
Definition: rxgrouplist.hh:14
Implements the base class of boot settings for all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:1159
virtual bool bootPasswordEnabled() const
Returns true if the boot password is enabled.
Definition: radioddity_codeplug.cc:2326
virtual bool bootText() const
Returns true if the text is shown on boot, other wise an image is shown.
Definition: radioddity_codeplug.cc:2317
void clear()
Resets the settings.
Definition: radioddity_codeplug.cc:2308
BootSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:2291
virtual void enableBootPassword(bool enable)
Enables/disables the boot password.
Definition: radioddity_codeplug.cc:2330
virtual ~BootSettingsElement()
Destructor.
Definition: radioddity_codeplug.cc:2303
virtual unsigned bootPassword() const
Returns the boot password (6 digit).
Definition: radioddity_codeplug.cc:2335
virtual void enableBootText(bool enable)
Enables/disables boot text.
Definition: radioddity_codeplug.cc:2321
virtual void setBootPassword(unsigned passwd)
Sets the boot password (6 digit).
Definition: radioddity_codeplug.cc:2339
Implements the base class of boot messages for all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:1193
virtual void setLine1(const QString &text)
Sets the first line.
Definition: radioddity_codeplug.cc:2373
virtual QString line1() const
Returns the first line.
Definition: radioddity_codeplug.cc:2369
void clear()
Resets the intro text.
Definition: radioddity_codeplug.cc:2363
virtual QString line2() const
Returns the Second line.
Definition: radioddity_codeplug.cc:2378
virtual void updateConfig(Config *conf)
Updates the configuration with the boot text settings.
Definition: radioddity_codeplug.cc:2393
virtual void setLine2(const QString &text)
Sets the second line.
Definition: radioddity_codeplug.cc:2382
virtual ~BootTextElement()
Destructor.
Definition: radioddity_codeplug.cc:2358
BootTextElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:2346
virtual void fromConfig(Config *conf)
Encodes boot text settings from configuration.
Definition: radioddity_codeplug.cc:2387
Implements the base class of button settings for all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:881
virtual Action tkShortPress() const
Returns the top-key short-press action.
Definition: radioddity_codeplug.cc:1891
virtual Action tkLongPress() const
Returns the top-key long-press action.
Definition: radioddity_codeplug.cc:1899
ButtonSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:1818
virtual void setOneTouchDigitalMessage(unsigned n, unsigned index)
Configures n-th one-touch action as a digital message using given index.
Definition: radioddity_codeplug.cc:1930
virtual Action sk1ShortPress() const
Returns the side-key 1 short-press action.
Definition: radioddity_codeplug.cc:1857
void clear()
Clears the button settings.
Definition: radioddity_codeplug.cc:1835
virtual OneTouchAction oneTouchAction(unsigned n) const
Returns the n-th one-touch action.
Definition: radioddity_codeplug.cc:1908
virtual unsigned oneTouchContact(unsigned n) const
Returns the n-th one-touch contact index (if action is OneTouchAction::DigitalCall).
Definition: radioddity_codeplug.cc:1912
virtual Action sk1LongPress() const
Returns the side-key 1 long-press action.
Definition: radioddity_codeplug.cc:1865
virtual Action sk2ShortPress() const
Returns the side-key 2 short-press action.
Definition: radioddity_codeplug.cc:1874
virtual unsigned oneTouchMessage(unsigned n) const
Returns the n-th one-touch message index (if action is OneTouchAction::DigitalMessage).
Definition: radioddity_codeplug.cc:1916
virtual ~ButtonSettingsElement()
Destructor.
Definition: radioddity_codeplug.cc:1830
virtual void setSK1LongPress(Action action)
Sets the side-key 1 long-press action.
Definition: radioddity_codeplug.cc:1869
virtual void setOneTouchAnalogCall(unsigned n)
Configures n-th one-touch action as a analog call.
Definition: radioddity_codeplug.cc:1936
virtual void setSK1ShortPress(Action action)
Sets the side-key 1 short-press action.
Definition: radioddity_codeplug.cc:1861
virtual void disableOneTouch(unsigned n)
Disables the n-th one-touch action.
Definition: radioddity_codeplug.cc:1920
virtual void setSK2ShortPress(Action action)
Sets the side-key 2 short-press action.
Definition: radioddity_codeplug.cc:1878
virtual void setLongPressDuration(unsigned ms)
Sets the long-press duration in ms.
Definition: radioddity_codeplug.cc:1852
virtual void setTKShortPress(Action action)
Sets the top-key short-press action.
Definition: radioddity_codeplug.cc:1895
virtual void setOneTouchDigitalCall(unsigned n, unsigned index)
Configures n-th one-touch action as a digital call to contact index.
Definition: radioddity_codeplug.cc:1924
Action
Possible actions for each button on short and long press.
Definition: radioddity_codeplug.hh:884
@ OneTouch3
Performs the third of 6 user-programmable actions (call, message).
@ OneTouch4
Performs the fourth of 6 user-programmable actions (call, message).
@ OneTouch6
Performs the sixt of 6 user-programmable actions (call, message).
@ OneTouch2
Performs the second of 6 user-programmable actions (call, message).
@ OneTouch1
Performs the first of 6 user-programmable actions (call, message).
@ OneTouch5
Performs the fifth of 6 user-programmable actions (call, message).
virtual unsigned longPressDuration() const
Returns the long-press duration in ms.
Definition: radioddity_codeplug.cc:1848
virtual void setTKLongPress(Action action)
Sets the top-key long-press action.
Definition: radioddity_codeplug.cc:1903
virtual void setSK2LongPress(Action action)
Sets the side-key 2 long-press action.
Definition: radioddity_codeplug.cc:1886
OneTouchAction
Possible one-touch actions.
Definition: radioddity_codeplug.hh:910
virtual Action sk2LongPress() const
Returns the side-key 2 long-press action.
Definition: radioddity_codeplug.cc:1882
Implements the base for channel banks in Radioddity codeplugs.
Definition: radioddity_codeplug.hh:226
virtual ~ChannelBankElement()
Destructor.
Definition: radioddity_codeplug.cc:476
virtual uint8_t * get(unsigned idx) const
Returns a pointer to the channel at the given index.
Definition: radioddity_codeplug.cc:497
virtual void enable(unsigned idx, bool enabled)
Enable/disable a channel in the bank.
Definition: radioddity_codeplug.cc:491
ChannelBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:464
void clear()
Clears the bank.
Definition: radioddity_codeplug.cc:481
virtual bool isEnabled(unsigned idx) const
Returns true if the channel is enabled.
Definition: radioddity_codeplug.cc:486
Implements the base for all Radioddity channel encodings.
Definition: radioddity_codeplug.hh:31
virtual bool hasGroupList() const
Returns true if a group list is set.
Definition: radioddity_codeplug.cc:188
virtual void setRXSignalingIndex(unsigned index)
Sets RX signaling index (+1).
Definition: radioddity_codeplug.cc:165
virtual ~ChannelElement()
Destructor.
Definition: radioddity_codeplug.cc:28
virtual unsigned txSignalingIndex() const
Returns TX signaling index (+1).
Definition: radioddity_codeplug.cc:153
virtual unsigned emergencySystemIndex() const
Returns the emergency system index (+1).
Definition: radioddity_codeplug.cc:214
virtual void setTXFrequency(uint32_t freq)
Sets the TX frequency of the channel.
Definition: radioddity_codeplug.cc:83
virtual bool nonSTEFrequency() const
Returns true if non-STE is frequency (?!).
Definition: radioddity_codeplug.cc:286
virtual bool hasScanList() const
Returns true if a scan list is set.
Definition: radioddity_codeplug.cc:123
virtual void enablePrivacy(bool enable)
Enables/disables privacy.
Definition: radioddity_codeplug.cc:264
virtual void setContactIndex(unsigned index)
Sets the transmit contact index (+1).
Definition: radioddity_codeplug.cc:231
virtual void setPrivacyGroup(PrivacyGroup grp)
Sets the privacy group.
Definition: radioddity_codeplug.cc:174
virtual bool fromChannelObj(const Channel *c, Context &ctx)
Initializes this codeplug channel from the given generic configuration.
Definition: radioddity_codeplug.cc:407
Mode
Possible channel types.
Definition: radioddity_codeplug.hh:34
@ MODE_ANALOG
Analog channel, aka FM.
Definition: radioddity_codeplug.hh:35
@ MODE_DIGITAL
Digital channel, aka DMR.
Definition: radioddity_codeplug.hh:36
virtual uint32_t txFrequency() const
Returns the TX frequency of the channel.
Definition: radioddity_codeplug.cc:79
virtual Admit admitCriterion() const
Returns the admit criterion.
Definition: radioddity_codeplug.cc:114
virtual unsigned txColorCode() const
Returns the TX color code.
Definition: radioddity_codeplug.cc:179
virtual void setTXTimeOut(unsigned tot)
Sets the TX timeout in seconds.
Definition: radioddity_codeplug.cc:101
virtual void enableTalkaround(bool enable)
Enables/disables talkaround.
Definition: radioddity_codeplug.cc:316
virtual unsigned scanListIndex() const
Returns the scan list index (+1).
Definition: radioddity_codeplug.cc:127
virtual void setGroupListIndex(unsigned index)
Sets the group-list index (+1).
Definition: radioddity_codeplug.cc:196
virtual void enableDataCallConfirm(bool enable)
Enables/disables data-call-confirm.
Definition: radioddity_codeplug.cc:240
virtual void setRXColorCode(unsigned cc)
Sets the RX color code.
Definition: radioddity_codeplug.cc:205
virtual bool dataCallConfirm() const
Returns true if data-call-confirm is enabled.
Definition: radioddity_codeplug.cc:236
virtual void enableEmergencyAlarmACK(bool enable)
Enables/disables emergency alarm ACK.
Definition: radioddity_codeplug.cc:248
virtual Signaling::Code txTone() const
Returns the TX subtone.
Definition: radioddity_codeplug.cc:144
virtual void enableRXOnly(bool enable)
Enables/disables RX only.
Definition: radioddity_codeplug.cc:308
virtual void setAdmitCriterion(Admit admit)
Sets the admit criterion.
Definition: radioddity_codeplug.cc:118
virtual void enableNonSTEFrequency(bool enable)
Enables/disables non-STE is frequency (?!).
Definition: radioddity_codeplug.cc:290
virtual bool talkaround() const
Returns true if talkaround is enabled.
Definition: radioddity_codeplug.cc:312
virtual unsigned contactIndex() const
Returns the transmit contact index (+1).
Definition: radioddity_codeplug.cc:227
virtual uint32_t rxFrequency() const
Returns the RX frequency of the channel.
Definition: radioddity_codeplug.cc:71
ChannelElement(uint8_t *ptr, size_t size)
Constructs a channel from the given memory.
Definition: radioddity_codeplug.cc:16
virtual void setMode(Mode mode)
Sets the channel mode.
Definition: radioddity_codeplug.cc:92
virtual void setPower(Channel::Power pwr)
Sets the power setting of the channel.
Definition: radioddity_codeplug.cc:333
virtual Mode mode() const
Returns the channel mode.
Definition: radioddity_codeplug.cc:88
virtual Signaling::Code rxTone() const
Returns the RX subtone.
Definition: radioddity_codeplug.cc:136
virtual unsigned groupListIndex() const
Returns the group-list index (+1).
Definition: radioddity_codeplug.cc:192
virtual PrivacyGroup privacyGroup() const
Returns the privacy group.
Definition: radioddity_codeplug.cc:170
virtual unsigned txTimeOutRekeyDelay() const
Returns the transmit time-out re-key delay in seconds.
Definition: radioddity_codeplug.cc:105
virtual void setScanListIndex(unsigned index)
Sets the scan list index (+1).
Definition: radioddity_codeplug.cc:131
virtual bool privacyEnabled() const
Returns true if privacy is enabled.
Definition: radioddity_codeplug.cc:260
virtual bool privateCallConfirm() const
Returns true if private-call-confirm is enabled.
Definition: radioddity_codeplug.cc:252
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot of the channel.
Definition: radioddity_codeplug.cc:269
virtual void setRXFrequency(uint32_t freq)
Sets the RX frequency of the channel.
Definition: radioddity_codeplug.cc:75
virtual Channel * toChannelObj(Context &ctx) const
Constructs a generic Channel object from the codeplug channel.
Definition: radioddity_codeplug.cc:348
virtual void clear()
Resets the channel.
Definition: radioddity_codeplug.cc:33
virtual Channel::Power power() const
Returns the power setting of the channel.
Definition: radioddity_codeplug.cc:329
virtual bool vox() const
Returns true if VOX is enabled.
Definition: radioddity_codeplug.cc:320
virtual void enablePrivateCallConfirm(bool enable)
Enables/disables private-call-confirm.
Definition: radioddity_codeplug.cc:256
virtual bool hasEmergencySystem() const
Returns true if an emergency system is set.
Definition: radioddity_codeplug.cc:210
virtual unsigned rxSignalingIndex() const
Returns RX signaling index (+1).
Definition: radioddity_codeplug.cc:161
virtual void setEmergencySystemIndex(unsigned index)
Sets the emergency system index (+1).
Definition: radioddity_codeplug.cc:218
PrivacyGroup
Possible privacy groups, not used in ham radio.
Definition: radioddity_codeplug.hh:47
@ PRIVGR_NONE
No privacy group, default.
Definition: radioddity_codeplug.hh:48
@ PRIVGR_53474C39
Privacy group 53474C39 (wtf?).
Definition: radioddity_codeplug.hh:49
virtual FMChannel::Bandwidth bandwidth() const
Returns the bandwidth.
Definition: radioddity_codeplug.cc:295
virtual bool emergencyAlarmACK() const
Returns true if emergency alarm ACK is enabled.
Definition: radioddity_codeplug.cc:244
Admit
Possible admit criteria.
Definition: radioddity_codeplug.hh:40
@ ADMIT_CH_FREE
Allow TX on channel free.
Definition: radioddity_codeplug.hh:42
@ ADMIT_ALWAYS
Allow always.
Definition: radioddity_codeplug.hh:41
@ ADMIT_COLOR
Allow TX on matching color-code.
Definition: radioddity_codeplug.hh:43
virtual QString name() const
Returns the name of the channel.
Definition: radioddity_codeplug.cc:62
virtual void setBandwidth(FMChannel::Bandwidth bw)
Sets the bandwidth.
Definition: radioddity_codeplug.cc:299
virtual bool linkChannelObj(Channel *c, Context &ctx) const
Links a previously constructed channel to the rest of the configuration.
Definition: radioddity_codeplug.cc:390
virtual bool rxOnly() const
Returns true if RX only is enabled.
Definition: radioddity_codeplug.cc:304
virtual unsigned rxColorCode() const
Returns the RX color code.
Definition: radioddity_codeplug.cc:201
virtual void setTXTone(Signaling::Code code)
Sets the TX subtone.
Definition: radioddity_codeplug.cc:148
virtual void setName(const QString &n)
Sets the name of the channel.
Definition: radioddity_codeplug.cc:66
virtual bool hasContact() const
Returns true if a TX contact is set.
Definition: radioddity_codeplug.cc:223
virtual void setTXColorCode(unsigned cc)
Sets the TX color code.
Definition: radioddity_codeplug.cc:183
virtual void setTXTimeOutRekeyDelay(unsigned delay)
Sets the transmit time-out re-key delay in seconds.
Definition: radioddity_codeplug.cc:109
virtual unsigned txTimeOut() const
Returns the TX timeout in seconds.
Definition: radioddity_codeplug.cc:97
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slot of the channel.
Definition: radioddity_codeplug.cc:273
virtual void enableDualCapacityDirectMode(bool enable)
Enables/disables the dual-capacity direct mode.
Definition: radioddity_codeplug.cc:282
virtual void setTXSignalingIndex(unsigned index)
Sets TX signaling index (+1).
Definition: radioddity_codeplug.cc:157
virtual void enableVOX(bool enable)
Enables/disables VOX.
Definition: radioddity_codeplug.cc:324
virtual void setRXTone(Signaling::Code code)
Sets the RX subtone.
Definition: radioddity_codeplug.cc:140
virtual bool dualCapacityDirectMode() const
Returns true if the dual-capacity direct mode is enabled.
Definition: radioddity_codeplug.cc:278
Implements the base for digital contacts in Radioddity codeplugs.
Definition: radioddity_codeplug.hh:310
virtual unsigned ringStyle() const
Returns the ring tone style for this contact [0-10].
Definition: radioddity_codeplug.cc:672
virtual DMRContact * toContactObj(Context &ctx) const
Constructs a DigitalContact instance from this codeplug contact.
Definition: radioddity_codeplug.cc:682
virtual void enableRing(bool enable)
Enables/disables ring tone for this contact.
Definition: radioddity_codeplug.cc:664
virtual void fromContactObj(const DMRContact *obj, Context &ctx)
Resets this codeplug contact from the given DigitalContact.
Definition: radioddity_codeplug.cc:690
ContactElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:591
virtual void setName(const QString name)
Sets the name of the contact.
Definition: radioddity_codeplug.cc:627
virtual void setRingStyle(unsigned style)
Sets the ring tone style for this contact [0-10].
Definition: radioddity_codeplug.cc:676
virtual bool ring() const
Returns true if the ring tone is enabled for this contact.
Definition: radioddity_codeplug.cc:660
virtual ~ContactElement()
Destructor.
Definition: radioddity_codeplug.cc:603
void clear()
Resets the contact.
Definition: radioddity_codeplug.cc:608
bool isValid() const
Returns true if the contact is valid.
Definition: radioddity_codeplug.cc:618
virtual void setNumber(unsigned id)
Sets the DMR number of the contact.
Definition: radioddity_codeplug.cc:636
virtual unsigned number() const
Returns the DMR number of the contact.
Definition: radioddity_codeplug.cc:632
virtual DMRContact::Type type() const
Returns the call type.
Definition: radioddity_codeplug.cc:641
virtual QString name() const
Returns the name of the contact.
Definition: radioddity_codeplug.cc:623
virtual void setType(DMRContact::Type type)
Sets the call type.
Definition: radioddity_codeplug.cc:651
Implements a base DTMF (analog) contact for Radioddity codeplugs.
Definition: radioddity_codeplug.hh:363
virtual void setName(const QString &name)
Sets the name of the conact.
Definition: radioddity_codeplug.cc:737
DTMFContactElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:707
void clear()
Resets the contact.
Definition: radioddity_codeplug.cc:724
virtual QString number() const
Returns the number of the contact.
Definition: radioddity_codeplug.cc:742
virtual ~DTMFContactElement()
Destructor.
Definition: radioddity_codeplug.cc:719
virtual QString name() const
Returns the name of the contact.
Definition: radioddity_codeplug.cc:733
virtual void fromContactObj(const DTMFContact *obj, Context &ctx)
Resets this codeplug contact from the given DTMFContact.
Definition: radioddity_codeplug.cc:759
virtual DTMFContact * toContactObj(Context &ctx) const
Constructs a DTMFContact instance from this codeplug contact.
Definition: radioddity_codeplug.cc:751
bool isValid() const
Returns true if the contact is valid.
Definition: radioddity_codeplug.cc:728
virtual void setNumber(const QString &number)
Sets the number of the contact.
Definition: radioddity_codeplug.cc:746
Represents all encryption keys and settings within the codeplug on the device.
Definition: radioddity_codeplug.hh:1255
virtual void setPrivacyType(PrivacyType type)
Sets the privacy type.
Definition: radioddity_codeplug.cc:2484
virtual PrivacyType privacyType() const
Returns the privacy type set.
Definition: radioddity_codeplug.cc:2480
void clear()
Abstract method to reset the element within the codeplug.
Definition: radioddity_codeplug.cc:2472
PrivacyType
Encodes possible privacy types.
Definition: radioddity_codeplug.hh:1259
virtual QByteArray basicKey(unsigned n) const
Returns the n-th "basic" key (32bit).
Definition: radioddity_codeplug.cc:2496
virtual bool updateCommercialExt(Context &ctx)
Constructs the encryption extension.
Definition: radioddity_codeplug.cc:2547
virtual bool linkCommercialExt(CommercialExtension *ext, Context &ctx)
Links the given encryption extension.
Definition: radioddity_codeplug.cc:2569
virtual void clearBasicKey(unsigned n)
Resets the n-th basic key.
Definition: radioddity_codeplug.cc:2512
virtual ~EncryptionElement()
Destructor.
Definition: radioddity_codeplug.cc:2467
virtual bool fromCommercialExt(CommercialExtension *ext, Context &ctx)
Encodes given encryption extension.
Definition: radioddity_codeplug.cc:2522
virtual bool isBasicKeySet(unsigned n) const
Returns true if the n-th "basic" key (32bit) is set.
Definition: radioddity_codeplug.cc:2489
virtual void setBasicKey(unsigned n, const QByteArray &key)
Sets the n-th "basic" key (32bit).
Definition: radioddity_codeplug.cc:2502
EncryptionElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition: radioddity_codeplug.cc:2455
Implements the base class of general settings for all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:701
virtual bool allTonesDisabled() const
Returns true if all tones are disabled.
Definition: radioddity_codeplug.cc:1594
virtual void enableUpChannelModeVFO(bool enable)
Enables/disables up-channel mode is VFO.
Definition: radioddity_codeplug.cc:1531
virtual void setRepeaterEndDelay(unsigned delay)
Sets the repeater end delay in [0-10].
Definition: radioddity_codeplug.cc:1673
virtual bool batsaveRX() const
Returns true if reception is disabled for battery saving.
Definition: radioddity_codeplug.cc:1602
virtual void setCallAlertDuration(unsigned sec)
Sets the call-allert duration in seconds.
Definition: radioddity_codeplug.cc:1480
virtual unsigned preambleDuration() const
Returns the preamble duration in ms.
Definition: radioddity_codeplug.cc:1439
RadiodditySettingsExtension::MonitorType MonitorType
Use monitor type from extension.
Definition: radioddity_codeplug.hh:704
virtual void enableDownChannelModeVFO(bool enable)
Enables/disables down-channel mode is VFO.
Definition: radioddity_codeplug.cc:1523
virtual void enableBatsaveRX(bool enable)
Enables/disables battery saving by disabling RX.
Definition: radioddity_codeplug.cc:1606
virtual bool animation() const
Returns true if animation is enabled.
Definition: radioddity_codeplug.cc:1652
virtual void enableSelftestTone(bool enable)
Enables/disables reset tone.
Definition: radioddity_codeplug.cc:1582
virtual unsigned radioID() const
Returns the DMR radio ID.
Definition: radioddity_codeplug.cc:1430
virtual void enableDigitalTalkPermitTone(bool enable)
Enables/disables digital channel talk permit tone.
Definition: radioddity_codeplug.cc:1566
virtual ~GeneralSettingsElement()
Destructor.
Definition: radioddity_codeplug.cc:1366
virtual void setMonitorType(MonitorType type)
Sets the monitor type.
Definition: radioddity_codeplug.cc:1452
virtual bool batsavePreamble() const
Returns true if preable is disabled for battery saving.
Definition: radioddity_codeplug.cc:1610
GeneralSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:1354
virtual unsigned privateCallHangTime() const
Returns the private call hang time in ms.
Definition: radioddity_codeplug.cc:1510
virtual QString name() const
Returns the radio name.
Definition: radioddity_codeplug.cc:1421
virtual void setName(const QString &name)
Sets the radio name.
Definition: radioddity_codeplug.cc:1425
virtual bool channelFreeIndicationTone() const
Returns true if the channel free indication tone is enabled.
Definition: radioddity_codeplug.cc:1586
virtual void inhibitQuickKeyOverride(bool inhibit)
Inhibits quick-key override.
Definition: radioddity_codeplug.cc:1631
virtual bool upChannelModeVFO() const
Returns true if the up-channel mode is VFO.
Definition: radioddity_codeplug.cc:1527
virtual void disableAllTones(bool disable)
Disables/enables all tones.
Definition: radioddity_codeplug.cc:1598
virtual void enableAnimation(bool enable)
Enables/disables animation.
Definition: radioddity_codeplug.cc:1656
virtual QString progPassword() const
Returns the programming password.
Definition: radioddity_codeplug.cc:1690
virtual bool allLEDsDisabled() const
Returns true if all LEDs are disabled.
Definition: radioddity_codeplug.cc:1619
virtual void disableAllLEDs(bool disable)
Disables/enables all LEDs.
Definition: radioddity_codeplug.cc:1623
void clear()
Resets the general settings.
Definition: radioddity_codeplug.cc:1371
virtual bool digitalTalkPermitTone() const
Returns true if the digital channel talk permit tone is enabled.
Definition: radioddity_codeplug.cc:1562
virtual bool analogTalkPermitTone() const
Returns true if the analog channel talk permit tone is enabled.
Definition: radioddity_codeplug.cc:1570
virtual void setLoneWorkerResponsePeriod(unsigned min)
Sets the lone-worker response period in minutes.
Definition: radioddity_codeplug.cc:1489
RadiodditySettingsExtension::ScanMode ScanMode
Use scan mode from extension.
Definition: radioddity_codeplug.hh:708
virtual void setGroupCallHangTime(unsigned ms)
Sets the group call hang time in ms.
Definition: radioddity_codeplug.cc:1506
virtual void clearProgPassword()
Resets the programming password.
Definition: radioddity_codeplug.cc:1698
virtual void enableBatsavePreamble(bool enable)
Enables/disables battery saving by disabling preamble.
Definition: radioddity_codeplug.cc:1614
virtual bool unknownNumberTone() const
Returns true if the unknown number tone is enabled.
Definition: radioddity_codeplug.cc:1544
virtual unsigned repeaterEndDelay() const
Returns the repeater end delay in [0-10].
Definition: radioddity_codeplug.cc:1669
virtual ARTSTone artsToneMode() const
Returns the ARTS tone mode.
Definition: radioddity_codeplug.cc:1553
virtual void enableUnknownNumberTone(bool enable)
Enables/disables reset tone.
Definition: radioddity_codeplug.cc:1548
virtual bool hasProgPassword() const
Returns true if a programming password is set.
Definition: radioddity_codeplug.cc:1686
virtual unsigned loneWorkerReminderPeriod() const
Returns the lone-worker reminder period in seconds.
Definition: radioddity_codeplug.cc:1493
virtual void setRadioID(unsigned id)
Sets the DMR radio ID.
Definition: radioddity_codeplug.cc:1434
virtual ScanMode scanMode() const
Returns the scan mode.
Definition: radioddity_codeplug.cc:1660
virtual bool txOnActiveChannel() const
Returns true if the radio transmits on the active channel on double monitor.
Definition: radioddity_codeplug.cc:1644
virtual unsigned voxSensitivity() const
Returns the VOX sensitivity [1-10], 0=disabled.
Definition: radioddity_codeplug.cc:1457
virtual void setLowBatteryWarnInterval(unsigned sec)
Sets the low-battery warn interval in seconds.
Definition: radioddity_codeplug.cc:1471
virtual void enableChannelFreeIndicationTone(bool enable)
Enables/disables channel free indication tone.
Definition: radioddity_codeplug.cc:1590
virtual MonitorType monitorType() const
Returns the monitor type.
Definition: radioddity_codeplug.cc:1448
virtual void setARTSToneMode(ARTSTone mode)
Sets the ARTS tone mode.
Definition: radioddity_codeplug.cc:1557
virtual unsigned repeaterSTE() const
Returns the repeater STE in [0-10].
Definition: radioddity_codeplug.cc:1677
virtual void setRepeaterSTE(unsigned ste)
Sets the repeater STE in [0-10].
Definition: radioddity_codeplug.cc:1681
virtual unsigned groupCallHangTime() const
Returns the group call hang time in ms.
Definition: radioddity_codeplug.cc:1502
virtual unsigned callAlertDuration() const
Returns the call-alert duration in seconds.
Definition: radioddity_codeplug.cc:1476
virtual void setPrivateCallHangTime(unsigned ms)
Sets the private call hang time in ms.
Definition: radioddity_codeplug.cc:1514
virtual void enableTXExitTone(bool enable)
Enables/disables TX exit tone.
Definition: radioddity_codeplug.cc:1640
virtual void setPreambleDuration(unsigned ms)
Sets the preamble duration in ms.
Definition: radioddity_codeplug.cc:1443
virtual unsigned loneWorkerResponsePeriod() const
Returns the lone-worker response period in minutes.
Definition: radioddity_codeplug.cc:1485
virtual void enableAnalogTalkPermitTone(bool enable)
Enables/disables analog channel talk permit tone.
Definition: radioddity_codeplug.cc:1574
virtual bool downChannelModeVFO() const
Returns true if the down-channel mode is VFO.
Definition: radioddity_codeplug.cc:1519
virtual bool quickKeyOverrideInhibited() const
Returns true if quick-key override is inhibited.
Definition: radioddity_codeplug.cc:1627
virtual bool resetTone() const
Returns true if the reset tone is enabled.
Definition: radioddity_codeplug.cc:1536
virtual unsigned lowBatteryWarnInterval() const
Returns the low-battery warn interval in seconds.
Definition: radioddity_codeplug.cc:1467
RadiodditySettingsExtension::ARTSTone ARTSTone
Use ARTS tone mode from extension.
Definition: radioddity_codeplug.hh:706
virtual void setVOXSensitivity(unsigned value)
Sets the VOX sensitivity.
Definition: radioddity_codeplug.cc:1461
virtual void setProgPassword(const QString &pwd)
Sets the programming password.
Definition: radioddity_codeplug.cc:1694
virtual bool fromConfig(const Config *conf, Context &ctx)
Encodes the general setting from the given config.
Definition: radioddity_codeplug.cc:1703
virtual bool txExitTone() const
Returns true if the TX exit tone is enabled.
Definition: radioddity_codeplug.cc:1636
virtual void enableResetTone(bool enable)
Enables/disables reset tone.
Definition: radioddity_codeplug.cc:1540
virtual void setScanMode(ScanMode mode)
Sets the scan mode.
Definition: radioddity_codeplug.cc:1664
virtual bool selftestTone() const
Returns true if the reset tone is enabled.
Definition: radioddity_codeplug.cc:1578
virtual void setLoneWorkerReminderPeriod(unsigned sec)
Sets the lone-worker reminder period in seconds.
Definition: radioddity_codeplug.cc:1497
virtual bool updateConfig(Config *conf, Context &ctx)
Updates the given config from this settings.
Definition: radioddity_codeplug.cc:1758
virtual void enableTXOnActiveChannel(bool enable)
Enables/disables transmission on active channel on double monitor.
Definition: radioddity_codeplug.cc:1648
Implements a base class of group list memory banks for all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:519
virtual unsigned contactCount(unsigned n) const
Returns the number of contacts in the n-th group list.
Definition: radioddity_codeplug.cc:1043
virtual bool isEnabled(unsigned n) const
Returns true if the n-th group list is enabled.
Definition: radioddity_codeplug.cc:1039
virtual void setContactCount(unsigned n, unsigned size)
Sets the number of contacts in the n-th group list.
Definition: radioddity_codeplug.cc:1047
void clear()
Resets the bank.
Definition: radioddity_codeplug.cc:1034
virtual void disable(unsigned n)
Disables the n-th group list.
Definition: radioddity_codeplug.cc:1051
GroupListBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:1017
virtual ~GroupListBankElement()
Destructor.
Definition: radioddity_codeplug.cc:1029
virtual uint8_t * get(unsigned n) const
Returns a pointer to the n-th group list.
Definition: radioddity_codeplug.cc:1056
Represents a base class for all group lists within Radioddity codeplugs.
Definition: radioddity_codeplug.hh:476
virtual unsigned member(unsigned n) const
Returns the n-th member index (+1).
Definition: radioddity_codeplug.cc:959
virtual QString name() const
Returns the name of the group list.
Definition: radioddity_codeplug.cc:946
virtual void clearMember(unsigned n)
Clears the n-th member index.
Definition: radioddity_codeplug.cc:967
GroupListElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:923
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index (+1).
Definition: radioddity_codeplug.cc:963
void clear()
Resets the group list.
Definition: radioddity_codeplug.cc:940
virtual bool linkRXGroupListObj(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:978
virtual void fromRXGroupListObj(const RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Reset this codeplug representation from a RXGroupList object.
Definition: radioddity_codeplug.cc:992
virtual RXGroupList * toRXGroupListObj(Context &ctx, const ErrorStack &err=ErrorStack())
Constructs a RXGroupList object from the codeplug representation.
Definition: radioddity_codeplug.cc:972
virtual ~GroupListElement()
Destructor.
Definition: radioddity_codeplug.cc:935
virtual bool hasMember(unsigned n) const
Returns true if the group list has an n-th member.
Definition: radioddity_codeplug.cc:955
virtual void setName(const QString &name)
Sets the name of the group list.
Definition: radioddity_codeplug.cc:950
Implements the base class of menu settings for all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:983
virtual bool message() const
Returns true if the message menu is shown.
Definition: radioddity_codeplug.cc:2022
virtual void setMenuHangTime(unsigned sec)
Sets the menu hang time in seconds.
Definition: radioddity_codeplug.cc:2016
virtual bool squelch() const
Returns true if the squelch menu is shown.
Definition: radioddity_codeplug.cc:2168
virtual bool privacy() const
Returns true if the privacy menu is shown.
Definition: radioddity_codeplug.cc:2176
virtual void enableKeyTone(bool enable)
Enables/disables the keytone.
Definition: radioddity_codeplug.cc:2274
virtual bool radioEnable() const
Returns true if the radio-enable menu is shown.
Definition: radioddity_codeplug.cc:2087
virtual void enableRadioCheck(bool enable)
Enables/disables the radioCheck menu.
Definition: radioddity_codeplug.cc:2074
virtual void enablePower(bool enable)
Enables/disables the power menu.
Definition: radioddity_codeplug.cc:2131
virtual void enablePasswordLock(bool enable)
Enables/disables the password-lock menu.
Definition: radioddity_codeplug.cc:2196
virtual void enableRadioEnable(bool enable)
Enables/disables the radio-enable menu.
Definition: radioddity_codeplug.cc:2091
virtual void enableAnsweredCalls(bool enable)
Enables/disables the answered-calls menu.
Definition: radioddity_codeplug.cc:2212
virtual void enableProgPassword(bool enable)
Enables/disables the programming-password menu.
Definition: radioddity_codeplug.cc:2107
virtual bool tone() const
Returns true if the tone menu is shown.
Definition: radioddity_codeplug.cc:2119
virtual bool editContact() const
Returns true if the edit-contact menu is shown.
Definition: radioddity_codeplug.cc:2054
virtual void setDualWatchMode(DualWatchMode mode)
Sets the dual-watch mode.
Definition: radioddity_codeplug.cc:2283
virtual bool dualWatch() const
Returns true if the dual-watch menu is shown.
Definition: radioddity_codeplug.cc:2234
virtual bool introScreen() const
Returns true if the intro-screen menu is shown.
Definition: radioddity_codeplug.cc:2143
virtual bool keypadLock() const
Returns true if the keypad-lock menu is shown.
Definition: radioddity_codeplug.cc:2152
virtual void enableTalkaround(bool enable)
Enables/disables the talkaround menu.
Definition: radioddity_codeplug.cc:2115
virtual void enableMissedCalls(bool enable)
Enables/disables the missed-calls menu.
Definition: radioddity_codeplug.cc:2204
virtual void enablePrivacy(bool enable)
Enables/disables the privacy menu.
Definition: radioddity_codeplug.cc:2180
virtual void enableRadioDisable(bool enable)
Enables/disables the radio-disable menu.
Definition: radioddity_codeplug.cc:2099
virtual unsigned keypadLockTime() const
Returns the keypad lock time in seconds.
Definition: radioddity_codeplug.cc:2243
virtual unsigned menuHangTime() const
Returns the menu hang-time in seconds.
Definition: radioddity_codeplug.cc:2012
virtual bool keyTone() const
Returns true if the keytone is enabled.
Definition: radioddity_codeplug.cc:2270
virtual void enableManualDial(bool enable)
Enables/disables the manual-dial menu.
Definition: radioddity_codeplug.cc:2066
virtual void enableRemoteMonitor(bool enable)
Enables/disables the message menu.
Definition: radioddity_codeplug.cc:2082
virtual bool passwordLock() const
Returns true if the password-lock menu is shown.
Definition: radioddity_codeplug.cc:2192
virtual bool backlight() const
Returns true if the backlight menu is shown.
Definition: radioddity_codeplug.cc:2135
DualWatchMode
Possible dual-watch modes.
Definition: radioddity_codeplug.hh:993
virtual unsigned backlightTime() const
Retunrns the backlight time in seconds.
Definition: radioddity_codeplug.cc:2252
virtual void enableEditContact(bool enable)
Enables/disables the edit-contact menu.
Definition: radioddity_codeplug.cc:2058
virtual bool vox() const
Returns true if the VOX menu is shown.
Definition: radioddity_codeplug.cc:2184
virtual bool talkaround() const
Returns true if the talkaround menu is shown.
Definition: radioddity_codeplug.cc:2111
virtual bool editScanList() const
Returns true if the edit scan-list menu is shown.
Definition: radioddity_codeplug.cc:2038
virtual bool remoteMonitor() const
Returns true if the remote-monitor menu is shown.
Definition: radioddity_codeplug.cc:2078
virtual void enableKeypadLock(bool enable)
Enables/disables the keypad-lock menu.
Definition: radioddity_codeplug.cc:2156
virtual bool progPassword() const
Returns true if the programming-password menu is shown.
Definition: radioddity_codeplug.cc:2103
virtual void enableCallAlert(bool enable)
Enables/disables the call-alert menu.
Definition: radioddity_codeplug.cc:2050
virtual bool manualDial() const
Returns true if the manual-dial menu is shown.
Definition: radioddity_codeplug.cc:2062
ChannelDisplayMode
Possible channel display modes.
Definition: radioddity_codeplug.hh:986
virtual void enableOutgoingCalls(bool enable)
Enables/disables the outgoing-calls menu.
Definition: radioddity_codeplug.cc:2221
virtual bool ledIndicator() const
Returns true if the LED-indicator menu is shown.
Definition: radioddity_codeplug.cc:2160
virtual void enableEditScanList(bool enable)
Enables/disables the edit scan-list menu.
Definition: radioddity_codeplug.cc:2042
virtual bool radioCheck() const
Returns true if the radio-check menu is shown.
Definition: radioddity_codeplug.cc:2070
virtual bool callAlert() const
Returns true if the call-alert menu is shown.
Definition: radioddity_codeplug.cc:2046
virtual void enableMessage(bool enable)
Enables/disables the message menu.
Definition: radioddity_codeplug.cc:2026
virtual void enableTone(bool enable)
Enables/disables the tone menu.
Definition: radioddity_codeplug.cc:2123
virtual bool power() const
Returns true if the power menu is shown.
Definition: radioddity_codeplug.cc:2127
virtual bool answeredCalls() const
Returns true if the answered-calls menu is shown.
Definition: radioddity_codeplug.cc:2208
virtual bool scanStart() const
Returns true if the scan-start menu is shown.
Definition: radioddity_codeplug.cc:2030
void clear()
Resets the menu settings.
Definition: radioddity_codeplug.cc:1963
virtual void setBacklightTime(unsigned sec)
Sets the backlight time in seconds.
Definition: radioddity_codeplug.cc:2256
virtual void setKeypadLockTime(unsigned sec)
Sets the keypad lock time in seconds.
Definition: radioddity_codeplug.cc:2247
virtual void enableBacklight(bool enable)
Enables/disables the backlight menu.
Definition: radioddity_codeplug.cc:2139
virtual bool missedCalls() const
Returns true if the missed-calls menu is shown.
Definition: radioddity_codeplug.cc:2200
virtual void enableVOX(bool enable)
Enables/disables the VOX menu.
Definition: radioddity_codeplug.cc:2188
virtual ChannelDisplayMode channelDisplayMode() const
Returns the channel display mode.
Definition: radioddity_codeplug.cc:2261
virtual void enableChannelDisplay(bool enable)
Enables/disables the channel display mode menu.
Definition: radioddity_codeplug.cc:2230
virtual DualWatchMode dualWatchMode() const
Returns the dual-watch mode.
Definition: radioddity_codeplug.cc:2279
virtual ~MenuSettingsElement()
Destructor.
Definition: radioddity_codeplug.cc:1958
virtual bool channelDisplay() const
Returns true if the channel display-mode menu is shown.
Definition: radioddity_codeplug.cc:2226
virtual void setChannelDisplayMode(ChannelDisplayMode mode)
Sets the channel display mode.
Definition: radioddity_codeplug.cc:2265
virtual bool radioDisable() const
Returns true if the radio-disable menu is shown.
Definition: radioddity_codeplug.cc:2095
MenuSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:1946
virtual void enableDualWatch(bool enable)
Enables/disables the dual-watch menu.
Definition: radioddity_codeplug.cc:2238
virtual void enableIntroScreen(bool enable)
Enables/disables the message menu.
Definition: radioddity_codeplug.cc:2147
virtual void enableScanStart(bool enable)
Enables/disables the scan-start menu.
Definition: radioddity_codeplug.cc:2034
virtual void enableLEDIndicator(bool enable)
Enables/disables the LED-indicator menu.
Definition: radioddity_codeplug.cc:2164
virtual void enableSquelch(bool enable)
Enables/disables the squelch menu.
Definition: radioddity_codeplug.cc:2172
virtual bool outgoingCalls() const
Returns true if the outgoing-calls menu is shown.
Definition: radioddity_codeplug.cc:2217
Implements the base class of a message bank for all Radioddity message banks.
Definition: radioddity_codeplug.hh:1227
virtual QString message(unsigned n) const
Returns the n-th message.
Definition: radioddity_codeplug.cc:2432
virtual ~MessageBankElement()
Destructor.
Definition: radioddity_codeplug.cc:2414
virtual unsigned numMessages() const
Returns the number of messages.
Definition: radioddity_codeplug.cc:2428
MessageBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:2402
virtual void appendMessage(const QString msg)
Appends a message to the list.
Definition: radioddity_codeplug.cc:2438
void clear()
Resets all messages.
Definition: radioddity_codeplug.cc:2419
Implements the base class of scan lists banks for all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:673
virtual bool isEnabled(unsigned n) const
Returns true if the n-th scan list is enabled.
Definition: radioddity_codeplug.cc:1334
virtual ~ScanListBankElement()
Destructor.
Definition: radioddity_codeplug.cc:1324
virtual void enable(unsigned n, bool enabled)
Enable/disable n-th scan list.
Definition: radioddity_codeplug.cc:1338
virtual uint8_t * get(unsigned n) const
Returns a pointer to the n-th scan list.
Definition: radioddity_codeplug.cc:1346
void clear()
Resets the scan list bank.
Definition: radioddity_codeplug.cc:1329
ScanListBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:1312
Implements the base class for scan lists of all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:553
virtual bool hasSecondary() const
Returns true if the secondary priority channel is set.
Definition: radioddity_codeplug.cc:1180
virtual void clearPrimary()
Clears the primary priority channel.
Definition: radioddity_codeplug.cc:1175
virtual unsigned secondary() const
Return the channel index for the secondary priority channel.
Definition: radioddity_codeplug.cc:1188
virtual void fromScanListObj(const ScanList *lst, Context &ctx)
Initializes this codeplug representation from the given ScanList object.
Definition: radioddity_codeplug.cc:1280
virtual void setName(const QString &name)
Sets the name of the scan list.
Definition: radioddity_codeplug.cc:1098
virtual void clearSecondary()
Clears the secondary priority channel.
Definition: radioddity_codeplug.cc:1200
ScanListElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:1064
virtual ~ScanListElement()
Destructor.
Definition: radioddity_codeplug.cc:1076
virtual void setSelected(unsigned n)
Sets the n-th member to be the selected channel.
Definition: radioddity_codeplug.cc:1146
virtual void setRevertSelected()
Sets the revert channel to be the selected one.
Definition: radioddity_codeplug.cc:1221
void clear()
Resets the scan list.
Definition: radioddity_codeplug.cc:1081
virtual void clearMember(unsigned n)
Clears the n-th member.
Definition: radioddity_codeplug.cc:1150
virtual bool revertIsSelected() const
Returns true if the revert channel is the selected channel.
Definition: radioddity_codeplug.cc:1209
virtual unsigned revert() const
Return the channel index for the revert channel.
Definition: radioddity_codeplug.cc:1213
virtual bool secondaryIsSelected() const
Returns true if the secondary priority channel is the selected channel.
Definition: radioddity_codeplug.cc:1184
virtual void enableTalkback(bool enable)
Enables/disables talk back.
Definition: radioddity_codeplug.cc:1125
virtual void setPrioritySampleTime(unsigned ms)
Sets the priority sample time in ms.
Definition: radioddity_codeplug.cc:1243
virtual void enableChannelMark(bool enable)
Enables/disables channel mark.
Definition: radioddity_codeplug.cc:1107
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index.
Definition: radioddity_codeplug.cc:1142
virtual Mode mode() const
Returns the scan mode.
Definition: radioddity_codeplug.cc:1112
virtual void setRevert(unsigned idx)
Sets the revert channel index.
Definition: radioddity_codeplug.cc:1217
virtual void setSecondarySelected()
Sets the secondary priority channel to be the selected channel.
Definition: radioddity_codeplug.cc:1196
virtual unsigned prioritySampleTime() const
Returns the priority sample time in ms.
Definition: radioddity_codeplug.cc:1239
virtual bool hasPrimary() const
Returns true if the primary priority channel is set.
Definition: radioddity_codeplug.cc:1155
virtual void clearRevert()
Clears the revert channel, sets it to last active.
Definition: radioddity_codeplug.cc:1225
virtual unsigned member(unsigned n) const
Returns the n-th member index.
Definition: radioddity_codeplug.cc:1138
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:1205
virtual bool linkScanListObj(ScanList *lst, Context &ctx) const
Links a previously constructed ScanList object to the rest of the generic configuration.
Definition: radioddity_codeplug.cc:1254
virtual void setSecondary(unsigned idx)
Sets the secondary priority channel index.
Definition: radioddity_codeplug.cc:1192
virtual void setMode(Mode mode)
Sets the scan mode.
Definition: radioddity_codeplug.cc:1116
virtual void setHoldTime(unsigned ms)
Sets the hold time in ms.
Definition: radioddity_codeplug.cc:1234
virtual bool talkback() const
Returns true if talk back is enabled.
Definition: radioddity_codeplug.cc:1121
virtual bool hasMember(unsigned n) const
Returns true if the n-th member is set.
Definition: radioddity_codeplug.cc:1130
virtual ScanList * toScanListObj(Context &ctx) const
Constructs a ScanList object from this codeplug representation.
Definition: radioddity_codeplug.cc:1248
virtual unsigned primary() const
Return the channel index for the primary priority channel.
Definition: radioddity_codeplug.cc:1163
virtual bool primaryIsSelected() const
Returns true if the primary priority channel is the selected channel.
Definition: radioddity_codeplug.cc:1159
Mode
Possible priority channel types.
Definition: radioddity_codeplug.hh:556
@ PL_PRI_NONPRI
Priority and non-priority channels.
Definition: radioddity_codeplug.hh:560
@ PL_DISABLE
Disable priority channels.
Definition: radioddity_codeplug.hh:558
@ PL_NONPRI
Only non-priority channels.
Definition: radioddity_codeplug.hh:557
@ PL_PRI
Only priority channels.
Definition: radioddity_codeplug.hh:559
virtual bool isSelected(unsigned n) const
Returns true if the n-th member is selected channel.
Definition: radioddity_codeplug.cc:1134
virtual unsigned holdTime() const
Returns the hold time in ms.
Definition: radioddity_codeplug.cc:1230
virtual void setPrimarySelected()
Sets the primary priority channel to be the selected channel.
Definition: radioddity_codeplug.cc:1171
virtual bool channelMark() const
Returns true if channel mark is enabled.
Definition: radioddity_codeplug.cc:1103
virtual QString name() const
Returns the name of the scan list.
Definition: radioddity_codeplug.cc:1094
virtual void setPrimary(unsigned idx)
Sets the primary priority channel index.
Definition: radioddity_codeplug.cc:1167
VFO Channel representation within the binary codeplug.
Definition: radioddity_codeplug.hh:253
VFOChannelElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:505
virtual void setOffsetMode(OffsetMode mode)
Sets the transmit frequency offset mode.
Definition: radioddity_codeplug.cc:575
virtual void setStepSize(double kHz)
Sets the tuning step-size in kHz.
Definition: radioddity_codeplug.cc:551
OffsetMode
Possible offset frequency modes.
Definition: radioddity_codeplug.hh:256
@ 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:583
void setName(const QString &name)
The VFO channel has no name.
Definition: radioddity_codeplug.cc:530
virtual OffsetMode offsetMode() const
Returns the transmit frequency offset mode.
Definition: radioddity_codeplug.cc:571
StepSize
Possible tuning step sizes.
Definition: radioddity_codeplug.hh:263
QString name() const
The VFO channel has no name.
Definition: radioddity_codeplug.cc:526
virtual double txOffset() const
Returns the transmit frequency offset.
Definition: radioddity_codeplug.cc:579
void clear()
Resets the channel.
Definition: radioddity_codeplug.cc:518
virtual double stepSize() const
Returns the tuning step-size in kHz.
Definition: radioddity_codeplug.cc:536
Implements the base class for all zone banks of Radioddity codeplugs.
Definition: radioddity_codeplug.hh:448
void clear()
Resets the bank.
Definition: radioddity_codeplug.cc:900
virtual uint8_t * get(unsigned idx) const
Returns a pointer to the channel at the given index.
Definition: radioddity_codeplug.cc:915
ZoneBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:883
~ZoneBankElement()
Destructor.
Definition: radioddity_codeplug.cc:895
virtual void enable(unsigned idx, bool enabled)
Enable/disable a channel in the bank.
Definition: radioddity_codeplug.cc:910
virtual bool isEnabled(unsigned idx) const
Returns true if the channel is enabled.
Definition: radioddity_codeplug.cc:905
Represents a zone within Radioddity codeplugs.
Definition: radioddity_codeplug.hh:401
virtual void fromZoneObjA(const Zone *zone, Context &ctx)
Resets this codeplug zone representation from the given generic Zone object.
Definition: radioddity_codeplug.cc:851
void clear()
Resets the zone.
Definition: radioddity_codeplug.cc:786
virtual QString name() const
Returns the name of the zone.
Definition: radioddity_codeplug.cc:796
virtual void fromZoneObjB(const Zone *zone, Context &ctx)
Resets this codeplug zone representation from the given generic Zone object.
Definition: radioddity_codeplug.cc:866
virtual unsigned member(unsigned n) const
Returns the n-th member index (+1).
Definition: radioddity_codeplug.cc:809
virtual void setName(const QString &name)
Sets the name of the zone.
Definition: radioddity_codeplug.cc:800
virtual bool linkZoneObj(Zone *zone, Context &ctx, bool putInB) const
Links a previously constructed Zone object to the rest of the configuration.
Definition: radioddity_codeplug.cc:830
virtual bool hasMember(unsigned n) const
Returns true if a member is stored at the given index.
Definition: radioddity_codeplug.cc:805
ZoneElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition: radioddity_codeplug.cc:769
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index (+1).
Definition: radioddity_codeplug.cc:813
virtual Zone * toZoneObj(Context &ctx) const
Constructs a generic Zone object from this codeplug zone.
Definition: radioddity_codeplug.cc:822
bool isValid() const
Returns true if the zone is valid.
Definition: radioddity_codeplug.cc:791
virtual void clearMember(unsigned n)
Clears the n-th member index.
Definition: radioddity_codeplug.cc:817
Base class of all Radioddity codeplugs.
Definition: radioddity_codeplug.hh:22
virtual bool createScanLists(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Creates all scan lists.
virtual void clearChannels()=0
Clear all channels.
virtual void clearGeneralSettings()=0
Clears the general settings in the codeplug.
virtual bool encodeZones(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes zones.
bool encode(Config *config, const Flags &flags=Flags(), const ErrorStack &err=ErrorStack())
Encodes the given generic configuration as a binary codeplug.
Definition: radioddity_codeplug.cc:2672
virtual bool createDTMFContacts(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds all DTMF contacts to the configuration.
virtual bool createGroupLists(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Creates all group lists.
virtual bool encodeBootText(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes boot text.
virtual bool encodeScanLists(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all scan lists.
virtual bool createContacts(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds a digital contact to the configuration for each one in the codeplug.
virtual bool createChannels(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds all defined channels to the configuration.
virtual void clearVFOSettings()=0
Clears the VFO settings.
virtual bool encodeDTMFContacts(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all DTMF contacts.
virtual bool encodeChannels(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encode all channels.
virtual void clearMessages()=0
Clears the messages.
virtual bool createZones(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds zones to the configuration.
virtual void clearScanLists()=0
Clears all scan lists.
virtual bool linkGroupLists(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all group lists.
RadioddityCodeplug(QObject *parent=nullptr)
Hidden constructor, use a device specific class to instantiate.
Definition: radioddity_codeplug.cc:2579
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:2753
virtual bool linkScanLists(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all scan lists.
virtual bool encodeContacts(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all digital contacts in the configuration into the codeplug.
virtual void clearBootText()=0
Clears boot text.
virtual bool linkEncryption(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all encryption keys.
virtual bool decodeBootText(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Updates the given configuration from the boot text settings.
bool decode(Config *config, const ErrorStack &err=ErrorStack())
Decodes the binary codeplug and stores its content in the given generic configuration.
Definition: radioddity_codeplug.cc:2742
virtual void clearZones()=0
Clears all zones.
virtual bool encodeGeneralSettings(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Updates the general settings from the given configuration.
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:2690
virtual ~RadioddityCodeplug()
Destructor.
Definition: radioddity_codeplug.cc:2585
virtual void clearEncryption()=0
Clears all encryption keys.
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:2622
virtual void clear()
Clears and resets the complete codeplug to some default values.
Definition: radioddity_codeplug.cc:2590
virtual void clearMenuSettings()=0
Clears menu settings.
virtual void clearButtonSettings()=0
Clears the button settings.
virtual bool encodeEncryption(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all encryption keys defined.
virtual void clearBootSettings()=0
Clear boot settings.
virtual bool createEncryption(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Creates all encryption keys.
virtual void clearGroupLists()=0
Clears all group lists.
virtual bool decodeGeneralSettings(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Updates the given configuration from the general settings.
virtual bool linkChannels(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all channels.
virtual void clearContacts()=0
Clears all contacts in the codeplug.
virtual bool encodeGroupLists(Config *config, const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all group lists.
virtual bool linkZones(Config *config, Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all zones within the configuration.
ARTSTone
Possible ARTS tone settings.
Definition: radioddity_extensions.hh:88
MonitorType
Possible monitor types.
Definition: radioddity_extensions.hh:81
ScanMode
Possible scan modes.
Definition: radioddity_extensions.hh:96
Generic representation of a scan list.
Definition: scanlist.hh:15
Represents a zone within the generic configuration.
Definition: zone.hh:15
Code
This huge enum lists all possible RX/TX tones that can be associated with analog channels.
Definition: signaling.hh:14
Helper type to encode frequencies without any rounding error.
Definition: frequency.hh:11