sACN
3.0.0
Implementation of ANSI E1.31 (Streaming ACN)
|
View other versions:
|
A base class for a class that receives notification callbacks from a sACN merge receiver. More...
#include <merge_receiver.h>
Public Member Functions | |
virtual void | HandleMergedData (Handle handle, const SacnRecvMergedData &merged_data)=0 |
Notify that a new data packet has been received and merged. | |
virtual void | HandleNonDmxData (Handle receiver_handle, const etcpal::SockAddr &source_addr, const SacnRemoteSource &source_info, const SacnRecvUniverseData &universe_data) |
Notify that a non-data packet has been received. | |
virtual void | HandleSourcesLost (Handle handle, uint16_t universe, const std::vector< SacnLostSource > &lost_sources) |
Notify that one or more sources have entered a source loss state. | |
virtual void | HandleSamplingPeriodStarted (Handle handle, uint16_t universe) |
Notify that a merge receiver's sampling period has begun. | |
virtual void | HandleSamplingPeriodEnded (Handle handle, uint16_t universe) |
Notify that a merge receiver's sampling period has ended. | |
virtual void | HandleSourcePapLost (Handle handle, uint16_t universe, const SacnRemoteSource &source) |
Notify that a source has stopped transmission of per-address priority packets. | |
virtual void | HandleSourceLimitExceeded (Handle handle, uint16_t universe) |
Notify that more than the configured maximum number of sources are currently sending on the universe being listened to. | |
A base class for a class that receives notification callbacks from a sACN merge receiver.
|
pure virtual |
Notify that a new data packet has been received and merged.
This callback will be called in multiple ways:
After a networking reset, some of the sources on the universe may not be included in the resulting sampling period. Therefore, expect this to continue to be called during said sampling period.
This callback should be processed quickly, since it will interfere with the receipt and processing of other sACN packets on the universe.
[in] | handle | The merge receiver's handle. |
[in] | merged_data | The merged data (and relevant information about that data), starting from the first slot of the currently configured footprint. Only sources that are not currently part of a sampling period are part of the merged result. |
|
inlinevirtual |
Notify that a non-data packet has been received.
When an established source sends a sACN data packet that doesn't contain DMX values or priorities, the raw data within the configured footprint is immediately and synchronously passed to this callback.
This callback should be processed quickly, since it will interfere with the receipt and processing of other sACN packets on the universe.
If the source is sending sACN Sync packets, this callback will only be called when the sync packet is received, if the source forces the packet, or if the source sends a data packet without a sync universe. TODO: this version of the sACN library does not support sACN Sync. This paragraph will be valid in the future.
[in] | receiver_handle | The merge receiver's handle. |
[in] | source_addr | The network address from which the sACN packet originated. |
[in] | source_info | Information about the source that sent this data. |
[in] | universe_data | The universe data (and relevant information about that data), starting from the first slot of the currently configured footprint. |
|
inlinevirtual |
Notify that a merge receiver's sampling period has ended.
All sources that were included in this sampling period will now officially be included in merged data notifications. If there was a networking reset during this sampling period, another sampling period may have been scheduled, in which case this will be immediately followed by a sampling period started notification.
If there were any active levels received during the sampling period, they were factored into the merged data notification called immediately before this notification. If the merged data notification wasn't called before this notification, that means there currently isn't any active data on the universe.
handle | The merge receiver's handle. |
universe | The universe the merge receiver is monitoring. |
|
inlinevirtual |
Notify that a merge receiver's sampling period has begun.
If this sampling period was due to a networking reset, some sources may not be included in it. The sources that are not part of the sampling period will continue to be included in merged data notifications.
handle | The merge receiver's handle. |
universe | The universe the merge receiver is monitoring. |
|
inlinevirtual |
Notify that more than the configured maximum number of sources are currently sending on the universe being listened to.
This is a notification that is directly forwarded from the sACN Receiver module.
[in] | handle | The merge receiver's handle. |
[in] | universe | The universe this merge receiver is monitoring. |
|
inlinevirtual |
Notify that a source has stopped transmission of per-address priority packets.
handle | The merge receiver's handle. |
universe | The universe this merge receiver is monitoring. |
source | Information about the source that has stopped transmission of per-address priority. |
|
inlinevirtual |
Notify that one or more sources have entered a source loss state.
handle | The merge receiver's handle. |
universe | The universe this merge receiver is monitoring. |
lost_sources | Vector of structs describing the source or sources that have been lost. |