27#ifndef SACN_MERGE_RECEIVER_H_
28#define SACN_MERGE_RECEIVER_H_
55#define SACN_MERGE_RECEIVER_INVALID SACN_RECEIVER_INVALID
186#define SACN_MERGE_RECEIVER_CONFIG_DEFAULT_INIT \
188 0, {NULL, NULL, NULL, NULL}, {1, DMX_ADDRESS_COUNT}, SACN_RECEIVER_INFINITE_SOURCES, true, kSacnIpV4AndIpV6 \
232 size_t num_per_receiver_netint_lists);
234 size_t netints_size);
sACN DMX Merger API definitions
sacn_ip_support_t
Definition common.h:71
#define SACN_SOURCE_NAME_MAX_LEN
The maximum length of an sACN source name, including the null-terminator.
Definition common.h:50
uint16_t sacn_remote_source_t
Definition common.h:58
etcpal_error_t sacn_merge_receiver_reset_networking(const SacnNetintConfig *sys_netint_config)
Resets underlying network sockets and packet receipt state, determines network interfaces for all mer...
Definition merge_receiver.c:376
size_t sacn_merge_receiver_get_network_interfaces(sacn_merge_receiver_t handle, EtcPalMcastNetintId *netints, size_t netints_size)
Obtain a list of a merge receiver's network interfaces.
Definition merge_receiver.c:472
etcpal_error_t sacn_merge_receiver_destroy(sacn_merge_receiver_t handle)
Destroy a sACN Merge Receiver instance.
Definition merge_receiver.c:182
etcpal_error_t sacn_merge_receiver_change_footprint(sacn_merge_receiver_t handle, const SacnRecvUniverseSubrange *new_footprint)
Change the footprint within the universe on which an sACN receiver is listening. TODO: Not yet implem...
Definition merge_receiver.c:322
struct SacnMergeReceiverConfig SacnMergeReceiverConfig
etcpal_error_t sacn_merge_receiver_reset_networking_per_receiver(const SacnNetintConfig *sys_netint_config, const SacnMergeReceiverNetintList *per_receiver_netint_lists, size_t num_per_receiver_netint_lists)
Resets underlying network sockets and packet receipt state, determines network interfaces for each me...
Definition merge_receiver.c:413
struct SacnMergeReceiverNetintList SacnMergeReceiverNetintList
void(* SacnMergeReceiverNonDmxCallback)(sacn_merge_receiver_t receiver_handle, const EtcPalSockAddr *source_addr, const SacnRemoteSource *source_info, const SacnRecvUniverseData *universe_data, void *context)
Notify that a non-data packet has been received.
Definition merge_receiver.h:130
etcpal_error_t sacn_merge_receiver_get_footprint(sacn_merge_receiver_t handle, SacnRecvUniverseSubrange *footprint)
Get the footprint within the universe on which a sACN Merge Receiver is currently listening.
Definition merge_receiver.c:245
void(* SacnMergeReceiverMergedDataCallback)(sacn_merge_receiver_t handle, const SacnRecvMergedData *merged_data, void *context)
Notify that a new data packet has been received and merged.
Definition merge_receiver.h:106
void(* SacnMergeReceiverSourceLimitExceededCallback)(sacn_merge_receiver_t handle, uint16_t universe, void *context)
Notify that more than the configured maximum number of sources are currently sending on the universe ...
Definition merge_receiver.h:144
etcpal_error_t sacn_merge_receiver_get_universe(sacn_merge_receiver_t handle, uint16_t *universe_id)
Get the universe on which a sACN Merge Receiver is currently listening.
Definition merge_receiver.c:226
etcpal_error_t sacn_merge_receiver_get_source(sacn_merge_receiver_t merge_receiver_handle, sacn_remote_source_t source_handle, SacnMergeReceiverSource *source_info)
Gets a copy of the information for the specified merge receiver source.
Definition merge_receiver.c:491
etcpal_error_t sacn_merge_receiver_change_universe(sacn_merge_receiver_t handle, uint16_t new_universe_id)
Change the universe on which a sACN Merge Receiver is listening.
Definition merge_receiver.c:268
etcpal_error_t sacn_merge_receiver_create(const SacnMergeReceiverConfig *config, sacn_merge_receiver_t *handle, const SacnNetintConfig *netint_config)
Create a new sACN Merge Receiver to listen and merge sACN data on a universe.
Definition merge_receiver.c:88
struct SacnMergeReceiverCallbacks SacnMergeReceiverCallbacks
etcpal_error_t sacn_merge_receiver_change_universe_and_footprint(sacn_merge_receiver_t handle, uint16_t new_universe_id, const SacnRecvUniverseSubrange *new_footprint)
Change the universe and footprint on which an sACN merge receiver is listening. TODO: Not yet impleme...
Definition merge_receiver.c:342
void sacn_merge_receiver_config_init(SacnMergeReceiverConfig *config)
Initialize an sACN Merge Receiver Config struct to default values.
Definition merge_receiver.c:55
int sacn_merge_receiver_t
Definition merge_receiver.h:53
struct SacnMergeReceiverSource SacnMergeReceiverSource
struct SacnRecvMergedData SacnRecvMergedData
sACN Receiver API definitions
Definition merge_receiver.h:149
SacnMergeReceiverMergedDataCallback universe_data
Definition merge_receiver.h:150
SacnMergeReceiverSourceLimitExceededCallback source_limit_exceeded
Definition merge_receiver.h:152
void * callback_context
Definition merge_receiver.h:153
SacnMergeReceiverNonDmxCallback universe_non_dmx
Definition merge_receiver.h:151
Definition merge_receiver.h:158
SacnRecvUniverseSubrange footprint
Definition merge_receiver.h:169
uint16_t universe_id
Definition merge_receiver.h:162
int source_count_max
Definition merge_receiver.h:174
sacn_ip_support_t ip_supported
Definition merge_receiver.h:182
SacnMergeReceiverCallbacks callbacks
Definition merge_receiver.h:164
bool use_pap
Definition merge_receiver.h:179
Definition merge_receiver.h:193
size_t num_netints
Definition merge_receiver.h:201
sacn_merge_receiver_t handle
Definition merge_receiver.h:195
SacnMcastInterface * netints
Definition merge_receiver.h:199
Definition merge_receiver.h:206
EtcPalUuid cid
Definition merge_receiver.h:210
EtcPalSockAddr addr
Definition merge_receiver.h:214
char name[SACN_SOURCE_NAME_MAX_LEN]
Definition merge_receiver.h:212
sacn_remote_source_t handle
Definition merge_receiver.h:208
Definition merge_receiver.h:61
const uint8_t * levels
Definition merge_receiver.h:73
size_t num_active_sources
Definition merge_receiver.h:83
uint16_t universe_id
Definition merge_receiver.h:65
SacnRecvUniverseSubrange slot_range
Definition merge_receiver.h:69
const sacn_remote_source_t * owners
Definition merge_receiver.h:79
Definition receiver.h:124