Repository navigation
V2.4
Major Refactor: RDM Discovery & Device API Stabilization
This release introduces a significant refactor of the RDM subsystem, stabilizing the device API and restructuring discovery handling. The changes aim to improve maintainability, consistency across modules, and future extensibility.
RDM Discovery Redesign
- Introduced new RDM headers:
- rdm_device_base.h
- rdm_device_info.h
- rdm_discovery.h
- The legacy rdmdiscovery implementation has been refactored and renamed to:
- rdm_discovery_statemachine
- Discovery logic and constants were reorganized and namespaced.
New RDM Device API - RDM device access has been migrated to structured types:
- rdm::device::Base
- rdm::device::Info
- Updated all call sites to use the new API.
- UID, serial number, and label handling now use the new device structures.
Configuration Store Changes
The configuration storage layout has been updated:
Changes
- Replaced set_list fields with flag-based configuration.
- Added helper:
- RdmDeviceCopyArray
- Corrected array update signatures and sizes.
Field Updates - label → port_name
- Buffer sizes adjusted to match the new naming.
Build system
- Removed GCC optimization flag: -fprefetch-loop-arrays
Miscellaneous
- Updated copyright years → 2026
- Minor formatting and include cleanups
- Variable rename:
- type → kType
- Simplified Sync() implementation to a one-line function.
- Reordered RDM conditional logic in:
- lib-pixeldmx/Rules.mk