Navigation
API > API/Plugins > API/Plugins/DMXProtocol
Higher level abstraction of a DMX input hiding networking specific and protocol specific complexity. Ment to be constructed by DMXPortManger only.
Use SendDMX method to send DMX.
To loopback outputs, refer to DMXRawListener.
| Name | FDMXOutputPort |
| Type | class |
| Header File | /Engine/Plugins/VirtualProduction/DMX/DMXProtocol/Source/DMXProtocol/Public/IO/DMXOutputPort.h |
| Include Path | #include "IO/DMXOutputPort.h" |
Syntax
class FDMXOutputPort :
public FDMXPort ,
public FRunnable ,
public FSingleThreadRunnable
Inheritance Hierarchy
- FSharedFromThisBase → TSharedFromThis → FDMXPort → FDMXOutputPort
- FRunnable → FDMXOutputPort
- FSingleThreadRunnable → FDMXOutputPort
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FDMXOutputPort() |
IO/DMXOutputPort.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bPendingRegistration | bool | True while registration is pending | IO/DMXOutputPort.h | |
| bRegistered | TAtomic< bool > | True if the port is registered with its protocol | IO/DMXOutputPort.h | |
| bStopping | TAtomic< bool > | Flag indicating that the thread is stopping. | IO/DMXOutputPort.h | |
| CommunicationDeterminator | FDMXOutputPortCommunicationDeterminator | Helper to determine how dmx should be communicated (loopback, send) | IO/DMXOutputPort.h | |
| DelayFrameRate | FFrameRate | The frame rate of the delay | IO/DMXOutputPort.h | |
| DelaySeconds | double | Delay to apply on packets being sent | IO/DMXOutputPort.h | |
| DestinationAddresses | TArray< FDMXOutputPortDestinationAddress > | The Destination Address to send to, can be irrelevant, e.g. for art-net broadcast | IO/DMXOutputPort.h | |
| DMXSenderArray | TArray< TSharedPtr< IDMXSender > > | The DMX senders in use | IO/DMXOutputPort.h | |
| ExternUniverseToLatestSignalMap_GameThread | TMap< int32, FDMXSignalSharedPtr > | Map that holds the latest Signal per Universe on the Game Thread | IO/DMXOutputPort.h | |
| ExternUniverseToLatestSignalMap_PortThread | TMap< int32, FDMXSignalSharedPtr > | Map that holds the latest Signal per Universe on the Port Thread | IO/DMXOutputPort.h | |
| FDMXPortManager | friend | Friend DMXPortManager so it can create instances and unregister void instances. | IO/DMXOutputPort.h | |
| FDMXRawListener | friend | Friend Raw Listener so it can add and remove itself to the port. | IO/DMXOutputPort.h | |
| PortGuid | FGuid | The unique identifier of this port, shared with the port config this was constructed from. | IO/DMXOutputPort.h | |
| Priority | int32 | Priority on which packets are being sent | IO/DMXOutputPort.h | |
| RawListeners | TSet< TSharedRef< FDMXRawListener > > | Map of raw Inputs | IO/DMXOutputPort.h | |
| SendDMXEvent | FEvent * | Send DMX sync event | IO/DMXOutputPort.h | |
| SendDMXMutex | FCriticalSection | Mutex access to members required to send DMX | IO/DMXOutputPort.h | |
| SendRate | TAtomic< uint32 > | Current send rate, set from project settings (see OnSendingRefreshRateChanged) | IO/DMXOutputPort.h | |
| SignalFragments | TQueue< TSharedPtr< FDMXSignalFragment, ESPMode::ThreadSafe > > | Buffer of the signals that are to be sent in the next frame | IO/DMXOutputPort.h | |
| Thread | FRunnableThread * | Holds this thread object | IO/DMXOutputPort.h | |
| TimeToLive | uint8 | Multicast Time-to-Live (TTL), only used when the port is set to multicast | IO/DMXOutputPort.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ClearBuffers() |
Clears all buffers | IO/DMXOutputPort.h | |
bool GameThreadGetDMXSignal
(
int32 LocalUniverseID, |
Game-Thread only: Gets the last signal received in specified local universe. | IO/DMXOutputPort.h | |
bool GameThreadGetDMXSignalFromRemoteUniverse
(
FDMXSignalSharedPtr& OutDMXSignal, |
DEPRECATED 4.27. Gets the DMX signal from an extern (remote) Universe ID. | IO/DMXOutputPort.h | |
double GetDelaySeconds() |
Returns the output port's delay in seconds | IO/DMXOutputPort.h | |
| Returns the Destination Addresses | IO/DMXOutputPort.h | ||
uint8 GetTimeToLive() |
Returns the multicast Time-to-Live (TTL), only used when the port is set to multicast | IO/DMXOutputPort.h | |
FDMXOutputPortConfig MakeOutputPortConfig() |
Creates a dmx output port config that corresponds to the port | IO/DMXOutputPort.h | |
void SendDMX
(
int32 LocalUniverseID, |
Sends DMX over the port | IO/DMXOutputPort.h | |
void SendDMXToRemoteUniverse
(
const TMap< int32, uint8 >& ChannelToValueMap, |
DEPRECATED 4.27. | IO/DMXOutputPort.h | |
void UpdateFromConfig
(
FDMXOutputPortConfig& OutputPortConfig, |
Updates the Port to use the config of the OutputPortConfig. Makes the config valid if it's invalid. | IO/DMXOutputPort.h |
Overridden from FDMXPort
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual const FGuid & GetPortGuid() |
Returns the Guid of the Port | IO/DMXOutputPort.h | |
virtual bool IsRegistered () |
~Begin DMXPort Interface declaration | IO/DMXOutputPort.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void OnSendingRefreshRateChanged() |
Called when the DMX send rate changed | IO/DMXOutputPort.h | |
void OnSetReceiveDMXEnabled
(
bool bEnabled |
Called to set if DMX should be enabled | IO/DMXOutputPort.h | |
void OnSetSendDMXEnabled
(
bool bEnabled |
Called to set if DMX should be enabled | IO/DMXOutputPort.h | |
void ProcessSendDMX() |
Updates the thread, sending DMX | IO/DMXOutputPort.h |
Overridden from FDMXPort
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddRawListener
(
TSharedRef< FDMXRawListener > InRawListener |
Adds a Raw Listener that receives all raw signals received on this port. | IO/DMXOutputPort.h | |
virtual bool Register() |
Registers the port with its protocol. Returns true if successfully registered | IO/DMXOutputPort.h | |
virtual void RemoveRawListener
(
TSharedRef< FDMXRawListener > InRawListener |
Removes the Raw Listener from the port. Should not be used directly, instead see DMXRawListener. | IO/DMXOutputPort.h | |
virtual void Unregister() |
Unregisteres the port if it was registered with its protocol | IO/DMXOutputPort.h |
Overridden from FRunnable
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void Exit() |
IO/DMXOutputPort.h | ||
virtual FSingleThreadRunnable * GetSingleThreadInterface() |
IO/DMXOutputPort.h | ||
virtual bool Init() |
IO/DMXOutputPort.h | ||
virtual uint32 Run() |
IO/DMXOutputPort.h | ||
virtual void Stop() |
IO/DMXOutputPort.h |
Overridden from FSingleThreadRunnable
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void Tick() |
IO/DMXOutputPort.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static FDMXOutputPortSharedRef CreateFromConfig
(
FDMXOutputPortConfig& OutputPortConfig |
Creates an output port tied to a specific config. | IO/DMXOutputPort.h |