1#ifndef RADIODDITYCODEPLUG_HH
2#define RADIODDITYCODEPLUG_HH
8#include "radioddity_extensions.hh"
23class RadioddityCodeplug :
public Codeplug
56 ChannelElement(uint8_t *ptr,
size_t size);
60 explicit ChannelElement(uint8_t *ptr);
62 virtual ~ChannelElement();
65 static constexpr unsigned int size() {
return 0x0038; }
71 virtual QString name()
const;
73 virtual void setName(
const QString &n);
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);
85 virtual Mode mode()
const;
87 virtual void setMode(Mode mode);
90 virtual unsigned txTimeOut()
const;
92 virtual void setTXTimeOut(
unsigned tot);
94 virtual unsigned txTimeOutRekeyDelay()
const;
96 virtual void setTXTimeOutRekeyDelay(
unsigned delay);
99 virtual Admit admitCriterion()
const;
101 virtual void setAdmitCriterion(Admit admit);
104 virtual bool hasScanList()
const;
106 virtual unsigned scanListIndex()
const;
108 virtual void setScanListIndex(
unsigned index);
120 virtual unsigned txSignalingIndex()
const;
122 virtual void setTXSignalingIndex(
unsigned index);
124 virtual unsigned rxSignalingIndex()
const;
126 virtual void setRXSignalingIndex(
unsigned index);
129 virtual PrivacyGroup privacyGroup()
const;
131 virtual void setPrivacyGroup(PrivacyGroup grp);
134 virtual unsigned txColorCode()
const;
136 virtual void setTXColorCode(
unsigned cc);
139 virtual bool hasGroupList()
const;
141 virtual unsigned groupListIndex()
const;
143 virtual void setGroupListIndex(
unsigned index);
146 virtual unsigned rxColorCode()
const;
148 virtual void setRXColorCode(
unsigned cc);
151 virtual bool hasEmergencySystem()
const;
153 virtual unsigned emergencySystemIndex()
const;
155 virtual void setEmergencySystemIndex(
unsigned index);
158 virtual bool hasContact()
const;
160 virtual unsigned contactIndex()
const;
162 virtual void setContactIndex(
unsigned index);
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);
187 virtual bool dualCapacityDirectMode()
const;
189 virtual void enableDualCapacityDirectMode(
bool enable);
191 virtual bool nonSTEFrequency()
const;
193 virtual void enableNonSTEFrequency(
bool enable);
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);
229 static constexpr unsigned int nameLength() {
return 16; }
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}; }
273 class ChannelBankElement:
public Element
277 ChannelBankElement(uint8_t *ptr,
unsigned size);
281 explicit ChannelBankElement(uint8_t *ptr);
283 virtual ~ChannelBankElement();
286 static constexpr unsigned int size() {
return 0x1c10; }
292 virtual bool isEnabled(
unsigned idx)
const ;
294 virtual void enable(
unsigned idx,
bool enabled);
296 virtual uint8_t *get(
unsigned idx)
const;
298 ChannelElement channel(
unsigned int n);
304 static constexpr unsigned int channelCount() {
return 128; }
311 static constexpr unsigned int bitmask() {
return 0x0000; }
312 static constexpr unsigned int channels() {
return 0x0010; }
321 class VFOChannelElement:
public ChannelElement
325 enum class OffsetMode {
332 enum class StepSize {
345 VFOChannelElement(uint8_t *ptr,
unsigned size);
349 explicit VFOChannelElement(uint8_t *ptr);
354 QString name()
const;
356 void setName(
const QString &name);
359 virtual double stepSize()
const;
361 virtual void setStepSize(
double kHz);
364 virtual OffsetMode offsetMode()
const;
366 virtual double txOffset()
const;
368 virtual void setTXOffset(
double f);
370 virtual void setOffsetMode(OffsetMode mode);
374 struct Offset:
public ChannelElement::Offset {
375 static constexpr Bit stepSize() {
return {0x0036, 4} ; }
376 static constexpr Bit offsetMode() {
return {0x0036, 2} ; }
377 static constexpr unsigned int txOffset() {
return 0x0034; }
387 class ContactElement:
public Element
391 ContactElement(uint8_t *ptr,
unsigned size);
395 explicit ContactElement(uint8_t *ptr);
397 virtual ~ContactElement();
400 static constexpr unsigned int size() {
return 0x0018; }
405 bool isValid()
const;
408 virtual QString name()
const;
410 virtual void setName(
const QString name);
413 virtual unsigned number()
const;
415 virtual void setNumber(
unsigned id);
423 virtual bool ring()
const;
425 virtual void enableRing(
bool enable);
428 virtual unsigned ringStyle()
const;
430 virtual void setRingStyle(
unsigned style);
441 static constexpr unsigned int nameLength() {
return 16; }
443 static constexpr unsigned int ringStyle() {
return 10; }
450 static constexpr unsigned int name() {
return 0x0000; }
451 static constexpr unsigned int number() {
return 0x0010; }
452 static constexpr unsigned int type() {
return 0x0014; }
453 static constexpr unsigned int ring() {
return 0x0015; }
454 static constexpr unsigned int ringStyle() {
return 0x0016; }
465 class DTMFContactElement:
public Element
469 DTMFContactElement(uint8_t *ptr,
unsigned size);
473 explicit DTMFContactElement(uint8_t *ptr);
475 virtual ~DTMFContactElement();
478 static constexpr unsigned int size() {
return 0x0020; }
483 bool isValid()
const;
486 virtual QString name()
const;
488 virtual void setName(
const QString &name);
491 virtual QString number()
const;
493 virtual void setNumber(
const QString &number);
504 static constexpr unsigned int nameLength() {
return 16; }
506 static constexpr unsigned int numberLength() {
return 16; }
513 static constexpr unsigned int name() {
return 0x0000; }
514 static constexpr unsigned int number() {
return 0x0010; }
524 class ZoneElement:
public Element
528 ZoneElement(uint8_t *ptr,
unsigned size);
532 explicit ZoneElement(uint8_t *ptr);
533 virtual ~ZoneElement();
536 static constexpr unsigned int size() {
return 0x0030; }
541 bool isValid()
const;
544 virtual QString name()
const;
546 virtual void setName(
const QString &name);
550 virtual bool hasMember(
unsigned n)
const;
552 virtual unsigned member(
unsigned n)
const;
554 virtual void setMember(
unsigned n,
unsigned idx);
556 virtual void clearMember(
unsigned n);
572 static constexpr unsigned int nameLength() {
return 16; }
574 static constexpr unsigned int memberCount() {
return 16; }
581 static constexpr unsigned int name() {
return 0x0000; }
582 static constexpr unsigned int channels() {
return 0x0010; }
583 static constexpr unsigned int betweenChannels() {
return 0x0002; }
594 class ZoneBankElement:
public Element
598 ZoneBankElement(uint8_t *ptr,
unsigned size);
602 explicit ZoneBankElement(uint8_t *ptr);
607 static constexpr unsigned int size() {
return 0x2f00; }
613 virtual bool isEnabled(
unsigned idx)
const ;
615 virtual void enable(
unsigned idx,
bool enabled);
618 virtual uint8_t *get(
unsigned idx)
const;
620 ZoneElement zone(
unsigned int n);
626 static constexpr unsigned int zoneCount() {
return 250; }
633 static constexpr unsigned int bitmap() {
return 0x0000; }
634 static constexpr unsigned int zones() {
return 0x0020; }
644 class GroupListElement:
public Element
648 GroupListElement(uint8_t *ptr,
unsigned size);
652 explicit GroupListElement(uint8_t *ptr);
654 virtual ~GroupListElement();
657 static constexpr unsigned int size() {
return 0x0030; }
663 virtual QString name()
const;
665 virtual void setName(
const QString &name);
669 virtual bool hasMember(
unsigned n)
const;
671 virtual unsigned member(
unsigned n)
const;
673 virtual void setMember(
unsigned n,
unsigned idx);
675 virtual void clearMember(
unsigned n);
687 static constexpr unsigned int nameLength() {
return 16; }
688 static constexpr unsigned int memberCount() {
return 16; }
695 static constexpr unsigned int name() {
return 0x0000; }
696 static constexpr unsigned int members() {
return 0x0010; }
697 static constexpr unsigned int betweenMembers() {
return 0x0002; }
707 class GroupListBankElement:
public Element
711 GroupListBankElement(uint8_t *ptr,
unsigned size);
715 explicit GroupListBankElement(uint8_t *ptr);
717 virtual ~GroupListBankElement();
720 static constexpr unsigned int size() {
return 0x0c80; }
726 virtual bool isEnabled(
unsigned n)
const;
728 virtual unsigned contactCount(
unsigned n)
const;
731 virtual void setContactCount(
unsigned n,
unsigned size);
733 virtual void disable(
unsigned n);
736 virtual uint8_t *get(
unsigned n)
const;
741 static constexpr unsigned int groupListCount() {
return 64; }
748 static constexpr unsigned int contactCounts() {
return 0x0000; }
749 static constexpr unsigned int groupLists() {
return 0x0080; }
759 class ScanListElement:
public Element
772 ScanListElement(uint8_t *ptr,
unsigned size);
776 explicit ScanListElement(uint8_t *ptr);
778 virtual ~ScanListElement();
781 static constexpr unsigned int size() {
return 0x0058; }
787 virtual QString name()
const;
789 virtual void setName(
const QString &name);
792 virtual bool channelMark()
const;
794 virtual void enableChannelMark(
bool enable);
797 virtual Mode mode()
const;
799 virtual void setMode(Mode mode);
802 virtual bool talkback()
const;
804 virtual void enableTalkback(
bool enable);
807 virtual bool hasMember(
unsigned n)
const;
809 virtual bool isSelected(
unsigned n)
const;
811 virtual unsigned member(
unsigned n)
const;
813 virtual void setMember(
unsigned n,
unsigned idx);
815 virtual void setSelected(
unsigned n);
817 virtual void clearMember(
unsigned n);
820 virtual bool hasPrimary()
const;
822 virtual bool primaryIsSelected()
const;
824 virtual unsigned primary()
const;
826 virtual void setPrimary(
unsigned idx);
828 virtual void setPrimarySelected();
830 virtual void clearPrimary();
833 virtual bool hasSecondary()
const;
835 virtual bool secondaryIsSelected()
const;
837 virtual unsigned secondary()
const;
839 virtual void setSecondary(
unsigned idx);
841 virtual void setSecondarySelected();
843 virtual void clearSecondary();
847 virtual bool hasRevert()
const;
849 virtual bool revertIsSelected()
const;
851 virtual unsigned revert()
const;
853 virtual void setRevert(
unsigned idx);
855 virtual void setRevertSelected();
857 virtual void clearRevert();
860 virtual unsigned holdTime()
const;
862 virtual void setHoldTime(
unsigned ms);
865 virtual unsigned prioritySampleTime()
const;
867 virtual void setPrioritySampleTime(
unsigned ms);
878 struct Limit:
public Element::Limit {
880 static constexpr unsigned int name() {
return 15; }
882 static constexpr unsigned int members() {
return 32; }
887 struct Offset:
public Element::Offset {
888 static constexpr unsigned int name() {
return 0x0000; }
889 static constexpr Bit channelMark() {
return {0x000f, 4}; }
890 static constexpr Bit mode() {
return {0x000f, 6}; }
891 static constexpr Bit talkback() {
return {0x000f, 7}; }
892 static constexpr unsigned int members() {
return 0x0010; }
893 static constexpr unsigned int betweenMembers() {
return 0x0002; }
894 static constexpr unsigned int primary() {
return 0x0050; }
895 static constexpr unsigned int secondary() {
return 0x0052; }
896 static constexpr unsigned int revert() {
return 0x0054; }
897 static constexpr unsigned int holdTime() {
return 0x0056; }
898 static constexpr unsigned int primaryHoldTime() {
return 0x0057; }
908 class ScanListBankElement:
public Element
912 ScanListBankElement(uint8_t *ptr,
unsigned size);
916 explicit ScanListBankElement(uint8_t *ptr);
918 virtual ~ScanListBankElement();
921 static constexpr unsigned int size() {
return 0x56f0; }
927 virtual bool isEnabled(
unsigned n)
const;
929 virtual void enable(
unsigned n,
bool enabled);
931 virtual uint8_t *get(
unsigned n)
const;
936 static constexpr unsigned int scanListCount() {
return 250; }
943 static constexpr unsigned int bytemap() {
return 0x0000; }
944 static constexpr unsigned int scanLists() {
return 0x0040; }
955 class GeneralSettingsElement:
public Element
967 GeneralSettingsElement(uint8_t *ptr,
unsigned size);
971 explicit GeneralSettingsElement(uint8_t *ptr);
973 virtual ~GeneralSettingsElement();
976 static constexpr unsigned int size() {
return 0x0028; }
982 virtual QString name()
const;
984 virtual void setName(
const QString &name);
987 virtual unsigned radioID()
const;
989 virtual void setRadioID(
unsigned id);
992 virtual unsigned preambleDuration()
const;
994 virtual void setPreambleDuration(
unsigned ms);
997 virtual MonitorType monitorType()
const;
999 virtual void setMonitorType(MonitorType type);
1002 virtual unsigned voxSensitivity()
const;
1004 virtual void setVOXSensitivity(
unsigned value);
1007 virtual unsigned lowBatteryWarnInterval()
const;
1009 virtual void setLowBatteryWarnInterval(
unsigned sec);
1012 virtual unsigned callAlertDuration()
const;
1014 virtual void setCallAlertDuration(
unsigned sec);
1017 virtual unsigned loneWorkerResponsePeriod()
const;
1019 virtual void setLoneWorkerResponsePeriod(
unsigned min);
1021 virtual unsigned loneWorkerReminderPeriod()
const;
1023 virtual void setLoneWorkerReminderPeriod(
unsigned sec);
1026 virtual unsigned groupCallHangTime()
const;
1028 virtual void setGroupCallHangTime(
unsigned ms);
1030 virtual unsigned privateCallHangTime()
const;
1032 virtual void setPrivateCallHangTime(
unsigned ms);
1035 virtual bool downChannelModeVFO()
const;
1037 virtual void enableDownChannelModeVFO(
bool enable);
1039 virtual bool upChannelModeVFO()
const;
1041 virtual void enableUpChannelModeVFO(
bool enable);
1043 virtual bool resetTone()
const;
1045 virtual void enableResetTone(
bool enable);
1047 virtual bool unknownNumberTone()
const;
1049 virtual void enableUnknownNumberTone(
bool enable);
1051 virtual ARTSTone artsToneMode()
const;
1053 virtual void setARTSToneMode(ARTSTone mode);
1056 virtual bool digitalTalkPermitTone()
const;
1058 virtual void enableDigitalTalkPermitTone(
bool enable);
1060 virtual bool analogTalkPermitTone()
const;
1062 virtual void enableAnalogTalkPermitTone(
bool enable);
1064 virtual bool selftestTone()
const;
1066 virtual void enableSelftestTone(
bool enable);
1068 virtual bool channelFreeIndicationTone()
const;
1070 virtual void enableChannelFreeIndicationTone(
bool enable);
1072 virtual bool allTonesDisabled()
const;
1074 virtual void disableAllTones(
bool disable);
1076 virtual bool batsaveRX()
const;
1078 virtual void enableBatsaveRX(
bool enable);
1080 virtual bool batsavePreamble()
const;
1082 virtual void enableBatsavePreamble(
bool enable);
1085 virtual bool allLEDsDisabled()
const;
1087 virtual void disableAllLEDs(
bool disable);
1089 virtual bool quickKeyOverrideInhibited()
const;
1091 virtual void inhibitQuickKeyOverride(
bool inhibit);
1094 virtual bool txExitTone()
const;
1096 virtual void enableTXExitTone(
bool enable);
1098 virtual bool txOnActiveChannel()
const;
1100 virtual void enableTXOnActiveChannel(
bool enable);
1102 virtual bool animation()
const;
1104 virtual void enableAnimation(
bool enable);
1106 virtual ScanMode scanMode()
const;
1108 virtual void setScanMode(ScanMode mode);
1111 virtual unsigned repeaterEndDelay()
const;
1113 virtual void setRepeaterEndDelay(
unsigned delay);
1115 virtual unsigned repeaterSTE()
const;
1117 virtual void setRepeaterSTE(
unsigned ste);
1120 virtual bool hasProgPassword()
const;
1122 virtual QString progPassword()
const;
1124 virtual void setProgPassword(
const QString &pwd);
1126 virtual void clearProgPassword();
1138 class ButtonSettingsElement:
public Element
1142 struct KeyFunction {
1153 ToggleAllAlertTones = 0x01,
1155 EmergencyOff = 0x03,
1156 ToggleMonitor = 0x05,
1157 NuiaceDelete = 0x06,
1164 ToggleRepeatTalkaround = 0x0d,
1166 TogglePrivacy = 0x10,
1169 BatteryIndicator = 0x13,
1170 ToggleLoneWorker = 0x14,
1172 ToggleFlashLight = 0x1a,
1173 ToggleFMRadio = 0x1b
1178 enum class OneTouchAction {
1181 DigitalMessage = 0x11,
1187 ButtonSettingsElement(uint8_t *ptr,
unsigned size);
1191 explicit ButtonSettingsElement(uint8_t *ptr);
1193 virtual ~ButtonSettingsElement();
1199 virtual Interval longPressDuration()
const;
1201 virtual void setLongPressDuration(
Interval ms);
1231 virtual OneTouchAction oneTouchAction(
unsigned n)
const;
1233 virtual unsigned oneTouchContact(
unsigned n)
const;
1235 virtual unsigned oneTouchMessage(
unsigned n)
const;
1237 virtual void disableOneTouch(
unsigned n);
1239 virtual void setOneTouchDigitalCall(
unsigned n,
unsigned index);
1241 virtual void setOneTouchDigitalMessage(
unsigned n,
unsigned index);
1243 virtual void setOneTouchAnalogCall(
unsigned n);
1254 static constexpr TimeRange longPressDuration() {
1258 static constexpr unsigned int oneTouchActions() {
return 6; }
1265 static constexpr unsigned int longPressDuration() {
return 0x0001; }
1266 static constexpr unsigned int sk1ShortPress() {
return 0x0002; }
1267 static constexpr unsigned int sk1LongPress() {
return 0x0003; }
1268 static constexpr unsigned int sk2ShortPress() {
return 0x0004; }
1269 static constexpr unsigned int sk2LongPress() {
return 0x0005; }
1270 static constexpr unsigned int tkShortPress() {
return 0x0006; }
1271 static constexpr unsigned int tkLongPress() {
return 0x0007; }
1272 static constexpr unsigned int oneTouchActions() {
return 0x0008; }
1273 static constexpr unsigned int betweenOneTouchActions() {
return 0x0004; }
1282 class MenuSettingsElement:
public Element
1286 enum class ChannelDisplayMode {
1293 enum class DualWatchMode {
1300 MenuSettingsElement(uint8_t *ptr,
unsigned size);
1304 explicit MenuSettingsElement(uint8_t *ptr);
1306 virtual ~MenuSettingsElement();
1312 virtual unsigned menuHangTime()
const;
1314 virtual void setMenuHangTime(
unsigned sec);
1317 virtual bool message()
const;
1319 virtual void enableMessage(
bool enable);
1321 virtual bool scanStart()
const;
1323 virtual void enableScanStart(
bool enable);
1325 virtual bool editScanList()
const;
1327 virtual void enableEditScanList(
bool enable);
1329 virtual bool callAlert()
const;
1331 virtual void enableCallAlert(
bool enable);
1333 virtual bool editContact()
const;
1335 virtual void enableEditContact(
bool enable);
1337 virtual bool manualDial()
const;
1339 virtual void enableManualDial(
bool enable);
1341 virtual bool radioCheck()
const;
1343 virtual void enableRadioCheck(
bool enable);
1345 virtual bool remoteMonitor()
const;
1347 virtual void enableRemoteMonitor(
bool enable);
1350 virtual bool radioEnable()
const;
1352 virtual void enableRadioEnable(
bool enable);
1354 virtual bool radioDisable()
const;
1356 virtual void enableRadioDisable(
bool enable);
1358 virtual bool progPassword()
const;
1360 virtual void enableProgPassword(
bool enable);
1362 virtual bool talkaround()
const;
1364 virtual void enableTalkaround(
bool enable);
1366 virtual bool tone()
const;
1368 virtual void enableTone(
bool enable);
1370 virtual bool power()
const;
1372 virtual void enablePower(
bool enable);
1374 virtual bool backlight()
const;
1376 virtual void enableBacklight(
bool enable);
1378 virtual bool introScreen()
const;
1380 virtual void enableIntroScreen(
bool enable);
1383 virtual bool keypadLock()
const;
1385 virtual void enableKeypadLock(
bool enable);
1387 virtual bool ledIndicator()
const;
1389 virtual void enableLEDIndicator(
bool enable);
1391 virtual bool squelch()
const;
1393 virtual void enableSquelch(
bool enable);
1395 virtual bool privacy()
const;
1397 virtual void enablePrivacy(
bool enable);
1399 virtual bool vox()
const;
1401 virtual void enableVOX(
bool enable);
1403 virtual bool passwordLock()
const;
1405 virtual void enablePasswordLock(
bool enable);
1407 virtual bool missedCalls()
const;
1409 virtual void enableMissedCalls(
bool enable);
1411 virtual bool answeredCalls()
const;
1413 virtual void enableAnsweredCalls(
bool enable);
1416 virtual bool outgoingCalls()
const;
1418 virtual void enableOutgoingCalls(
bool enable);
1420 virtual bool channelDisplay()
const;
1422 virtual void enableChannelDisplay(
bool enable);
1424 virtual bool dualWatch()
const;
1426 virtual void enableDualWatch(
bool enable);
1429 virtual unsigned keypadLockTime()
const;
1431 virtual void setKeypadLockTime(
unsigned sec);
1434 virtual unsigned backlightTime()
const;
1436 virtual void setBacklightTime(
unsigned sec);
1439 virtual ChannelDisplayMode channelDisplayMode()
const;
1441 virtual void setChannelDisplayMode(ChannelDisplayMode mode);
1444 virtual bool keyTone()
const;
1446 virtual void enableKeyTone(
bool enable);
1449 virtual DualWatchMode dualWatchMode()
const;
1451 virtual void setDualWatchMode(DualWatchMode mode);
1458 class BootSettingsElement:
public Element
1462 BootSettingsElement(uint8_t *ptr,
unsigned size);
1466 explicit BootSettingsElement(uint8_t *ptr);
1468 virtual ~BootSettingsElement();
1474 virtual bool bootText()
const;
1476 virtual void enableBootText(
bool enable);
1479 virtual bool bootPasswordEnabled()
const;
1481 virtual void enableBootPassword(
bool enable);
1483 virtual unsigned bootPassword()
const;
1485 virtual void setBootPassword(
unsigned passwd);
1492 class BootTextElement:
public Element
1496 BootTextElement(uint8_t *ptr,
unsigned size);
1500 explicit BootTextElement(uint8_t *ptr);
1502 virtual ~BootTextElement();
1505 static constexpr unsigned int size() {
return 0x0020; }
1511 virtual QString line1()
const;
1513 virtual void setLine1(
const QString &text);
1515 virtual QString line2()
const;
1517 virtual void setLine2(
const QString &text);
1527 static constexpr unsigned int lineLength() {
return 16; }
1534 static constexpr unsigned int line1() {
return 0x0000;}
1535 static constexpr unsigned int line2() {
return 0x0010;}
1544 class MessageBankElement:
public Element
1548 MessageBankElement(uint8_t *ptr,
unsigned size);
1552 explicit MessageBankElement(uint8_t *ptr);
1554 virtual ~MessageBankElement();
1557 static constexpr unsigned int size() {
return 0x1248; }
1562 virtual unsigned numMessages()
const;
1564 virtual QString message(
unsigned n)
const;
1566 virtual void appendMessage(
const QString msg);
1576 static constexpr unsigned int messages() {
return 32; }
1577 static constexpr unsigned int messageLength() {
return 144; }
1584 static constexpr unsigned int messageConut() {
return 0x0000; }
1585 static constexpr unsigned int messageLengths() {
return 0x0008; }
1586 static constexpr unsigned int messages() {
return 0x0048; }
1587 static constexpr unsigned int betweenMessages() {
return Limit::messageLength(); }
1601 enum class PrivacyType {
1608 EncryptionElement(uint8_t *ptr,
size_t size);
1612 explicit EncryptionElement(uint8_t *ptr);
1614 virtual ~EncryptionElement();
1617 static constexpr unsigned int size() {
return 0x0088; }
1622 virtual PrivacyType privacyType()
const;
1624 virtual void setPrivacyType(PrivacyType type);
1628 virtual bool isBasicKeySet(
unsigned n)
const;
1630 virtual QByteArray basicKey(
unsigned n)
const;
1632 virtual void setBasicKey(
unsigned n,
const QByteArray &key);
1634 virtual void clearBasicKey(
unsigned n);
1647 static constexpr unsigned int keyCount() {
return 16; }
1649 static constexpr unsigned int keySize() {
return 4; }
1656 static constexpr unsigned int privacyType() {
return 0x0000; }
1657 static constexpr unsigned int bitmap() {
return 0x0002; }
1658 static constexpr unsigned int keys() {
return 0x0008; }
1659 static constexpr unsigned int key() {
return 0x0008;}
1666 explicit RadioddityCodeplug(QObject *parent=
nullptr);
1670 virtual ~RadioddityCodeplug();
1673 virtual void clear();
1688 virtual bool encodeElements(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack());
1691 virtual void clearGeneralSettings() = 0;
1693 virtual bool encodeGeneralSettings(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1698 virtual void clearButtonSettings() = 0;
1700 virtual bool encodeButtonSettings(Context &ctx,
const Flags &flags,
const ErrorStack &err=
ErrorStack()) = 0;
1705 virtual void clearMessages() = 0;
1707 virtual bool encodeMessages(Context &ctx,
const Flags &flags,
const ErrorStack &err=
ErrorStack()) = 0;
1712 virtual void clearContacts() = 0;
1714 virtual bool encodeContacts(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1719 virtual void clearDTMFContacts() = 0;
1721 virtual bool encodeDTMFContacts(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1726 virtual void clearChannels() = 0;
1728 virtual bool encodeChannels(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1735 virtual void clearBootSettings() = 0;
1738 virtual void clearMenuSettings() = 0;
1741 virtual void clearBootText() = 0;
1743 virtual bool encodeBootText(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1748 virtual void clearVFOSettings() = 0;
1751 virtual void clearZones() = 0;
1753 virtual bool encodeZones(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1760 virtual void clearScanLists() = 0;
1762 virtual bool encodeScanLists(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1769 virtual void clearGroupLists() = 0;
1771 virtual bool encodeGroupLists(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1778 virtual void clearEncryption() = 0;
1780 virtual bool encodeEncryption(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
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
Represents the abstract base class of all codeplug elements.
Definition codeplug.hh:52
This class defines the interface all device-specific code-plugs must implement.
Definition codeplug.hh:20
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
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:389
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:240
Represents a time interval.
Definition interval.hh:11
static constexpr Interval fromMilliseconds(unsigned long long ms)
Definition interval.hh:57
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
MonitorType
Possible monitor types.
Definition radioddity_extensions.hh:372
ScanMode
Possible scan modes.
Definition radioddity_extensions.hh:379
ARTSTone
Possible ARTS tone settings.
Definition radioddity_extensions.hh:135
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:11
Encodes a selective call.
Definition signaling.hh:13