libdrmconf 0.13.3
A library to program DMR radios.
Loading...
Searching...
No Matches
RadioddityCodeplug::ButtonSettingsElement Class Reference

Implements the base class of button settings for all Radioddity codeplugs. More...

#include <radioddity_codeplug.hh>

Inheritance diagram for RadioddityCodeplug::ButtonSettingsElement:
Collaboration diagram for RadioddityCodeplug::ButtonSettingsElement:

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.
Elementoperator= (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::Bit &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::Bit &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.
void clearBit (const Offset::Bit &offset)
 Clears a specific bit.
uint8_t getUInt2 (const Offset::Bit &offset) const
 Reads a 2bit unsigned integer at the given bit-offset.
uint8_t getUInt2 (unsigned offset, unsigned bit) const
 Reads a 2bit unsigned integer at the given byte- and bit-offset.
void setUInt2 (const Offset::Bit &offset, uint8_t value)
 Stores a 2bit unsigned integer at the given 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 (const Offset::Bit &offset) const
 Reads a 3bit unsigned integer at the given bit-offset.
uint8_t getUInt3 (unsigned offset, unsigned bit) const
 Reads a 3bit unsigned integer at the given byte- and bit-offset.
void setUInt3 (const Offset::Bit &offset, uint8_t value)
 Stores a 3bit unsigned integer at the given 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 (const Offset::Bit &offset) const
 Reads a 4bit unsigned integer at the given bit-offset.
uint8_t getUInt4 (unsigned offset, unsigned bit) const
 Reads a 4bit unsigned integer at the given byte- and bit-offset.
void setUInt4 (const Offset::Bit &offset, uint8_t value)
 Stores a 4bit unsigned integer at the given 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 (const Offset::Bit &offset) const
 Reads a 5bit 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 (const Offset::Bit &offset, uint8_t value)
 Stores a 5bit unsigned integer at the given byte- and bit-offset.
void setUInt5 (unsigned offset, unsigned bit, uint8_t value)
 Stores a 5bit unsigned integer at the given byte- and bit-offset.
uint8_t getUInt6 (const Offset::Bit &offset) const
 Reads a 6bit unsigned integer 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 (const Offset::Bit &offset, uint8_t value)
 Stores 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.
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.

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.

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.

Detailed Description

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    |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

Member Enumeration Documentation

◆ OneTouchAction

Possible one-touch actions.

Enumerator
None 

Disabled.

DigitalCall 

Calls a digital contact.

DigitalMessage 

Sends a SMS.

AnalogCall 

Calls an analog contact.

Member Function Documentation

◆ clear()

void RadioddityCodeplug::ButtonSettingsElement::clear ( )
virtual

Clears the button settings.

Reimplemented from Codeplug::Element.


The documentation for this class was generated from the following files:
  • /builddir/build/BUILD/qdmr-0.13.3-build/qdmr-0.13.3/lib/radioddity_codeplug.hh
  • /builddir/build/BUILD/qdmr-0.13.3-build/qdmr-0.13.3/lib/radioddity_codeplug.cc