sACN
2.0.2
Implementation of ANSI E1.31 (Streaming ACN)
|
View other versions:
|
#include <dmx_merger.h>
Data Fields | |
uint8_t * | levels |
uint8_t * | per_address_priorities |
bool * | per_address_priorities_active |
uint8_t * | universe_priority |
sacn_dmx_merger_source_t * | owners |
int | source_count_max |
A set of configuration information for a merger instance.
uint8_t* levels |
Buffer of DMX_ADDRESS_COUNT levels that this library keeps up to date as it merges. Slots that are not sourced are set to 0. Memory is owned by the application and must remain allocated until the merger is destroyed. While this merger exists, the application must not modify this buffer directly! Doing so would affect the results of the merge.
sacn_dmx_merger_source_t* owners |
Buffer of DMX_ADDRESS_COUNT source IDs that indicate the current winner of the merge for that slot, or SACN_DMX_MERGER_SOURCE_INVALID to indicate that there is no winner for that slot. This is used if you need to know the source of each slot. If you only need to know whether or not a slot is sourced, set this to NULL and use per_address_priorities (which has half the memory footprint) to check if the slot has a priority of 0 (not sourced). Memory is owned by the application and must remain allocated until the merger is destroyed.
uint8_t* per_address_priorities |
Buffer of DMX_ADDRESS_COUNT per-address priorities for each winning slot. This is used if the merge results need to be sent over sACN. Otherwise this can just be set to NULL. If a source with a universe priority of 0 wins, that priority is converted to 1. If there is no winner for a slot, then a per-address priority of 0 is used to show that there is no source for that slot. Memory is owned by the application and must remain allocated until the merger is destroyed.
bool* per_address_priorities_active |
If the merger output is being transmitted via sACN, this is set to true if per-address-priority packets should be transmitted. Otherwise this is set to false. This can be set to NULL if not needed, which can save some performance.
int source_count_max |
The maximum number of sources this merger will listen to. May be SACN_RECEIVER_INFINITE_SOURCES. This parameter is ignored when configured to use static memory – SACN_DMX_MERGER_MAX_SOURCES_PER_MERGER is used instead.
uint8_t* universe_priority |
If the merger output is being transmitted via sACN, this is set to the universe priority that should be used in the transmitted sACN packets. This can be set to NULL if not needed, which can save some performance.