|
libdrmconf
0.12.0
A library to program DMR radios.
|
Implements the base class of button settings for all Radioddity codeplugs. More...
#include <radioddity_codeplug.hh>


Classes | |
| struct | KeyFunction |
| Encoding/decoding of function key actions. More... | |
| struct | Limits |
| Some limits. More... | |
| struct | Offset |
| Internal used offsets within the element. More... | |
Public Types | |
| enum class | OneTouchAction { None = 0x00 , DigitalCall = 0x10 , DigitalMessage = 0x11 , AnalogCall = 0x20 } |
| Possible one-touch actions. More... | |
Public Member Functions | |
| ButtonSettingsElement (uint8_t *ptr) | |
| Constructor. | |
| virtual | ~ButtonSettingsElement () |
| Destructor. | |
| void | clear () |
| Clears the button settings. | |
| virtual Interval | longPressDuration () const |
| Returns the long-press duration in ms. | |
| virtual void | setLongPressDuration (Interval ms) |
| Sets the long-press duration in ms. | |
| virtual RadioddityButtonSettingsExtension::Function | sk1ShortPress () const |
| Returns the side-key 1 short-press action. | |
| virtual void | setSK1ShortPress (RadioddityButtonSettingsExtension::Function action) |
| Sets the side-key 1 short-press action. | |
| virtual RadioddityButtonSettingsExtension::Function | sk1LongPress () const |
| Returns the side-key 1 long-press action. | |
| virtual void | setSK1LongPress (RadioddityButtonSettingsExtension::Function action) |
| Sets the side-key 1 long-press action. | |
| virtual RadioddityButtonSettingsExtension::Function | sk2ShortPress () const |
| Returns the side-key 2 short-press action. | |
| virtual void | setSK2ShortPress (RadioddityButtonSettingsExtension::Function action) |
| Sets the side-key 2 short-press action. | |
| virtual RadioddityButtonSettingsExtension::Function | sk2LongPress () const |
| Returns the side-key 2 long-press action. | |
| virtual void | setSK2LongPress (RadioddityButtonSettingsExtension::Function action) |
| Sets the side-key 2 long-press action. | |
| virtual RadioddityButtonSettingsExtension::Function | tkShortPress () const |
| Returns the top-key short-press action. | |
| virtual void | setTKShortPress (RadioddityButtonSettingsExtension::Function action) |
| Sets the top-key short-press action. | |
| virtual RadioddityButtonSettingsExtension::Function | tkLongPress () const |
| Returns the top-key long-press action. | |
| virtual void | setTKLongPress (RadioddityButtonSettingsExtension::Function action) |
| Sets the top-key long-press action. | |
| virtual OneTouchAction | oneTouchAction (unsigned n) const |
| Returns the n-th one-touch action. | |
| virtual unsigned | oneTouchContact (unsigned n) const |
Returns the n-th one-touch contact index (if action is OneTouchAction::DigitalCall). | |
| virtual unsigned | oneTouchMessage (unsigned n) const |
Returns the n-th one-touch message index (if action is OneTouchAction::DigitalMessage). | |
| virtual void | disableOneTouch (unsigned n) |
| Disables the n-th one-touch action. | |
| virtual void | setOneTouchDigitalCall (unsigned n, unsigned index) |
| Configures n-th one-touch action as a digital call to contact index. | |
| virtual void | setOneTouchDigitalMessage (unsigned n, unsigned index) |
| Configures n-th one-touch action as a digital message using given index. | |
| virtual void | setOneTouchAnalogCall (unsigned n) |
| Configures n-th one-touch action as a analog call. | |
| bool | encode (Context &ctx, const ErrorStack &err=ErrorStack()) |
| Encodes the button settings (if set). | |
| bool | decode (Context &ctx, const ErrorStack &err=ErrorStack()) |
| Decodes the button settings. | |
Public Member Functions inherited from Codeplug::Element | |
| Element (const Element &other) | |
| Copy constructor. | |
| virtual | ~Element () |
| Destructor. | |
| Element & | operator= (const Element &other) |
| Copy assignment. | |
| virtual bool | isValid () const |
Returns true if the pointer is not null. | |
| bool | fill (uint8_t value, unsigned offset=0, int size=-1) |
| Fills the memsets the entire element to the given value. | |
| bool | getBit (const Offset::BitOffset &offset) const |
| Reads a specific bit at the given byte-offset. | |
| bool | getBit (unsigned offset, unsigned bit) const |
| Reads a specific bit at the given byte-offset. | |
| void | setBit (const Offset::BitOffset &offset, bool value=true) |
| Sets a specific bit at the given byte-offset. | |
| void | setBit (unsigned offset, unsigned bit, bool value=true) |
| Sets a specific bit at the given byte-offset. | |
| void | clearBit (unsigned offset, unsigned bit) |
| Clears a specific bit at the given byte-offset. | |
| uint8_t | getUInt2 (unsigned offset, unsigned bit) const |
| Reads a 2bit unsigned integer at the given byte- and bit-offset. | |
| void | setUInt2 (unsigned offset, unsigned bit, uint8_t value) |
| Stores a 2bit unsigned integer at the given byte- and bit-offset. | |
| uint8_t | getUInt3 (unsigned offset, unsigned bit) const |
| Reads a 3bit unsigned integer at the given byte- and bit-offset. | |
| void | setUInt3 (unsigned offset, unsigned bit, uint8_t value) |
| Stores a 3bit unsigned integer at the given byte- and bit-offset. | |
| uint8_t | getUInt4 (unsigned offset, unsigned bit) const |
| Reads a 4bit unsigned integer at the given byte- and bit-offset. | |
| void | setUInt4 (unsigned offset, unsigned bit, uint8_t value) |
| Stores a 4bit unsigned integer at the given byte- and bit-offset. | |
| uint8_t | getUInt5 (unsigned offset, unsigned bit) const |
| Reads a 5bit unsigned integer at the given byte- and bit-offset. | |
| void | setUInt5 (unsigned offset, unsigned bit, uint8_t value) |
| Stores a 5bit iunsinged nteger at the given byte- and bit-offset. | |
| uint8_t | getUInt6 (unsigned offset, unsigned bit) const |
| Reads a 6bit unsigned integer at the given byte- and bit-offset. | |
| void | setUInt6 (unsigned offset, unsigned bit, uint8_t value) |
| Stores a 6bit unsigned integer at the given byte- and bit-offset. | |
| uint8_t | getUInt8 (unsigned offset) const |
| Reads a 8bit unsigned integer at the given byte- and bit-offset. | |
| void | setUInt8 (unsigned offset, uint8_t value) |
| Reads a 8bit unsigned integer at the given byte- and bit-offset. | |
| int8_t | getInt8 (unsigned offset) const |
| Reads a 8bit signed integer at the given byte- and bit-offset. | |
| void | setInt8 (unsigned offset, int8_t value) |
| Reads a 8bit signed integer at the given byte- and bit-offset. | |
| uint16_t | getUInt16_be (unsigned offset) const |
| Reads a 16bit big-endian unsigned integer at the given byte-offset. | |
| uint16_t | getUInt16_le (unsigned offset) const |
| Reads a 16bit little-endian unsigned integer at the given byte-offset. | |
| void | setUInt16_be (unsigned offset, uint16_t value) |
| Stores a 16bit big-endian unsigned integer at the given byte-offset. | |
| void | setUInt16_le (unsigned offset, uint16_t value) |
| Stores a 16bit little-endian unsigned integer at the given byte-offset. | |
| uint32_t | getUInt24_be (unsigned offset) const |
| Reads a 24bit big-endian unsigned integer at the given byte-offset. | |
| uint32_t | getUInt24_le (unsigned offset) const |
| Reads a 24bit little-endian unsigned integer at the given byte-offset. | |
| void | setUInt24_be (unsigned offset, uint32_t value) |
| Stores a 24bit big-endian unsigned integer at the given byte-offset. | |
| void | setUInt24_le (unsigned offset, uint32_t value) |
| Stores a 24bit little-endian unsigned integer at the given byte-offset. | |
| uint32_t | getUInt32_be (unsigned offset) const |
| Reads a 32bit big-endian unsigned integer at the given byte-offset. | |
| uint32_t | getUInt32_le (unsigned offset) const |
| Reads a 32bit little-endian unsigned integer at the given byte-offset. | |
| void | setUInt32_be (unsigned offset, uint32_t value) |
| Stores a 32bit big-endian unsigned integer at the given byte-offset. | |
| void | setUInt32_le (unsigned offset, uint32_t value) |
| Stores a 32bit little-endian unsigned integer at the given byte-offset. | |
| uint64_t | getUInt64_be (unsigned offset) const |
| Reads a 64bit big-endian unsigned integer at the given byte-offset. | |
| uint64_t | getUInt64_le (unsigned offset) const |
| Reads a 64bit little-endian unsigned integer at the given byte-offset. | |
| void | setUInt64_be (unsigned offset, uint64_t value) |
| Stores a 64bit big-endian unsigned integer at the given byte-offset. | |
| void | setUInt64_le (unsigned offset, uint64_t value) |
| Stores a 64bit little-endian unsigned integer at the given byte-offset. | |
| uint8_t | getBCD2 (unsigned offset) const |
| Reads a 2-digit (1-byte/8bit) BDC value in big-endian at the given byte-offset. | |
| void | setBCD2 (unsigned offset, uint8_t value) |
| Stores a 2-digit (1-byte/8bit) BDC value in big-endian at the given byte-offset. | |
| uint16_t | getBCD4_be (unsigned offset) const |
| Reads a 4-digit (2-byte/16bit) BDC value in big-endian at the given byte-offset. | |
| void | setBCD4_be (unsigned offset, uint16_t value) |
| Stores a 4-digit (2-byte/16bit) BDC value in big-endian at the given byte-offset. | |
| uint16_t | getBCD4_le (unsigned offset) const |
| Reads a 4-digit (2-byte/16bit) BDC value in little-endian at the given byte-offset. | |
| void | setBCD4_le (unsigned offset, uint16_t value) |
| Stores a 4-digit (1-byte/16bit) BDC value in little-endian at the given byte-offset. | |
| uint32_t | getBCD8_be (unsigned offset) const |
| Reads a 8-digit (4-byte/32bit) BDC value in big-endian at the given byte-offset. | |
| void | setBCD8_be (unsigned offset, uint32_t value) |
| Stores a 8-digit (4-byte/32bit) BDC value in big-endian at the given byte-offset. | |
| uint32_t | getBCD8_le (unsigned offset) const |
| Reads a 8-digit (4-byte/32bit) BDC value in little-endian at the given byte-offset. | |
| void | setBCD8_le (unsigned offset, uint32_t value) |
| Stores a 8-digit (4-byte/32bit) BDC value in little-endian at the given byte-offset. | |
| QString | readASCII (unsigned offset, unsigned maxlen, uint8_t eos=0x00) const |
Reads up to maxlen ASCII chars at the given byte-offset using eos as the string termination char. | |
| void | writeASCII (unsigned offset, const QString &txt, unsigned maxlen, uint8_t eos=0x00) |
Stores up to maxlen ASCII chars at the given byte-offset using eos as the string termination char. More... | |
| QString | readUnicode (unsigned offset, unsigned maxlen, uint16_t eos=0x0000) const |
Reads up to maxlen unicode chars at the given byte-offset using eos as the string termination char. | |
| void | writeUnicode (unsigned offset, const QString &txt, unsigned maxlen, uint16_t eos=0x0000) |
Stores up to maxlen unicode chars at the given byte-offset using eos as the string termination char. More... | |
Protected Member Functions | |
| ButtonSettingsElement (uint8_t *ptr, unsigned size) | |
| Hidden constructor. | |
Protected Member Functions inherited from Codeplug::Element | |
| Element (uint8_t *ptr, size_t size) | |
| Hidden constructor. More... | |
Additional Inherited Members | |
Protected Attributes inherited from Codeplug::Element | |
| uint8_t * | _data |
| Holds the pointer to the element. | |
| size_t | _size |
| Holds the size of the element. | |
Implements the base class of button settings for all Radioddity codeplugs.
Encoding of button settings (size 0x20b):
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
00 | Unknown, set to 0x01 | Long press duration in 250ms | Short SK1 event | Long SK1 event |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
04 | Short SK2 event | Long press SK2 event | Short press TK action (GD77) | Long press TK action (GD77) |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
08 | One-touch 0 action type | One-touch 0, contact index | One-touch 0, message index |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
... ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1c | One-touch 5 action type | One-touch 5, contact index | One-touch 5, message index |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+