sACN  HEAD (unstable)
Implementation of ANSI E1.31 (Streaming ACN)
View other versions:
Loading...
Searching...
No Matches
dmx_merger.h File Reference

sACN DMX Merger API definitions More...

#include <stdbool.h>
#include <stdint.h>
#include "etcpal/error.h"
#include "sacn/common.h"
#include "sacn/receiver.h"
#include "sacn/opts.h"

Go to the source code of this file.

Classes

struct  SacnDmxMergerConfig
 A set of configuration information for a merger instance. More...
 
struct  SacnDmxMergerSource
 The current input data for a single source of the merge. More...
 

Macros

#define SACN_DMX_MERGER_CONFIG_INIT   {NULL, NULL, NULL, NULL, NULL, kSacnReceiverInfiniteSources}
 An initializer for an SacnDmxMergerConfig struct.
 
#define SACN_DMX_MERGER_SOURCE_IS_VALID(owners_array, slot_index)    (owners_array[slot_index] != kSacnDmxMergerSourceInvalid)
 Utility to see if a slot owner is valid.
 

Typedefs

typedef int sacn_dmx_merger_t
 Each merger has a handle associated with it.
 
typedef uint16_t sacn_dmx_merger_source_t
 A source handle used by the DMX merger, could represent a remote source or another logical source (e.g.
 
typedef struct SacnDmxMergerConfig SacnDmxMergerConfig
 A set of configuration information for a merger instance.
 
typedef struct SacnDmxMergerSource SacnDmxMergerSource
 The current input data for a single source of the merge.
 

Functions

etcpal_error_t sacn_dmx_merger_create (const SacnDmxMergerConfig *config, sacn_dmx_merger_t *handle)
 Create a new merger instance.
 
etcpal_error_t sacn_dmx_merger_destroy (sacn_dmx_merger_t handle)
 Destroy a merger instance.
 
etcpal_error_t sacn_dmx_merger_add_source (sacn_dmx_merger_t merger, sacn_dmx_merger_source_t *source_id)
 Adds a new source to the merger.
 
etcpal_error_t sacn_dmx_merger_remove_source (sacn_dmx_merger_t merger, sacn_dmx_merger_source_t source)
 Removes a source from the merger.
 
const SacnDmxMergerSource * sacn_dmx_merger_get_source (sacn_dmx_merger_t merger, sacn_dmx_merger_source_t source)
 Gets a read-only view of the source data.
 
etcpal_error_t sacn_dmx_merger_update_levels (sacn_dmx_merger_t merger, sacn_dmx_merger_source_t source, const uint8_t *new_levels, size_t new_levels_count)
 Updates a source's levels and recalculates outputs.
 
etcpal_error_t sacn_dmx_merger_update_pap (sacn_dmx_merger_t merger, sacn_dmx_merger_source_t source, const uint8_t *pap, size_t pap_count)
 Updates a source's per-address priorities (PAP) and recalculates outputs.
 
etcpal_error_t sacn_dmx_merger_update_universe_priority (sacn_dmx_merger_t merger, sacn_dmx_merger_source_t source, uint8_t universe_priority)
 Updates a source's universe priority and recalculates outputs.
 
etcpal_error_t sacn_dmx_merger_remove_pap (sacn_dmx_merger_t merger, sacn_dmx_merger_source_t source)
 Removes the per-address priority (PAP) data from the source and recalculate outputs.
 

Variables

static const sacn_dmx_merger_t kSacnDmxMergerInvalid = -1
 An invalid sACN merger handle value.
 
static const sacn_dmx_merger_source_t kSacnDmxMergerSourceInvalid = 0xFFFF
 An invalid DMX merger source handle value.
 

Detailed Description

sACN DMX Merger API definitions

Functions and definitions for the sACN DMX Merger API are contained in this header.