The ArtNet plugin.
An Art-Net device is an instance of libartnet bound to a single IP address Art-Net is limited to four ports per direction per IP, so in this case our device has 8 ports :
IDs 0-3 : Input ports (recv DMX) IDs 4-7 : Output ports (send DMX)
|
|
typedef map< UID, std::pair< IPV4Address, uint8_t > > | uid_map |
| |
|
typedef enum ola::plugin::artnet::artnet_packet_type_e | artnet_packet_type |
| |
|
typedef struct artnet_poll_s | artnet_poll_t |
| |
|
typedef struct artnet_reply_s | artnet_reply_t |
| |
|
typedef struct artnet_timecode_s | artnet_timecode_t |
| |
|
typedef struct artnet_dmx_s | artnet_dmx_t |
| |
|
typedef struct artnet_todrequest_s | artnet_todrequest_t |
| |
|
typedef struct artnet_toddata_s | artnet_toddata_t |
| |
|
typedef struct artnet_todcontrol_s | artnet_todcontrol_t |
| |
|
typedef struct artnet_rdm_s | artnet_rdm_t |
| |
|
typedef struct artnet_ip_prog_s | artnet_ip_prog_t |
| |
|
typedef struct artnet_ip_reply_s | artnet_ip_reply_t |
| |
| typedef ola::BaseCallback1< void, RDMReply * > | RDMCallback |
| | The callback run when a RDM request completes.
|
| |
| typedef ola::BaseCallback1< void, const ola::rdm::UIDSet & > | RDMDiscoveryCallback |
| | The callback run when a discovery operation completes.
|
| |
|
| enum | artnet_port_type { ARTNET_INPUT_PORT
, ARTNET_OUTPUT_PORT
} |
| |
| enum | artnet_merge_mode { ARTNET_MERGE_HTP
, ARTNET_MERGE_LTP
} |
| |
| enum | { ARTNET_LONG_NAME_LENGTH = 64
} |
| |
| enum | { ARTNET_MAX_PORTS = ARTNET_PORT_COUNT
} |
| |
| enum | { ARTNET_MAX_RDM_ADDRESS_COUNT = 32
} |
| |
| enum | { ARTNET_MAX_RDM_DATA = 512
} |
| |
| enum | { ARTNET_MAX_UID_COUNT = 200
} |
| |
| enum | { ARTNET_REPORT_LENGTH = 64
} |
| |
| enum | { ARTNET_SHORT_NAME_LENGTH = 18
} |
| |
| enum | artnet_packet_type_e {
ARTNET_POLL = 0x2000
, ARTNET_REPLY = 0x2100
, ARTNET_DMX = 0x5000
, ARTNET_SYNC = 0x5200
,
ARTNET_TODREQUEST = 0x8000
, ARTNET_TODDATA = 0x8100
, ARTNET_TODCONTROL = 0x8200
, ARTNET_RDM = 0x8300
,
ARTNET_RDM_SUB = 0x8400
, ARTNET_TIME_CODE = 0x9700
, ARTNET_IP_PROGRAM = 0xf800
, ARTNET_IP_PROGRAM_REPLY = 0xf900
} |
| |
|
|
| PACK (struct artnet_poll_s { uint16_t version;uint8_t talk_to_me;uint8_t priority;}) |
| |
|
| PACK (struct artnet_reply_s { uint8_t ip[ola::network::IPV4Address::LENGTH];uint16_t port;uint16_t version;uint8_t net_address;uint8_t subnet_address;uint16_t oem;uint8_t ubea;uint8_t status1;uint16_t esta_id;char short_name[ARTNET_SHORT_NAME_LENGTH];char long_name[ARTNET_LONG_NAME_LENGTH];char node_report[ARTNET_REPORT_LENGTH];uint8_t number_ports[2];uint8_t port_types[ARTNET_MAX_PORTS];uint8_t good_input[ARTNET_MAX_PORTS];uint8_t good_output[ARTNET_MAX_PORTS];uint8_t sw_in[ARTNET_MAX_PORTS];uint8_t sw_out[ARTNET_MAX_PORTS];uint8_t sw_video;uint8_t sw_macro;uint8_t sw_remote;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t style;uint8_t mac[ola::network::MACAddress::LENGTH];uint8_t bind_ip[ola::network::IPV4Address::LENGTH];uint8_t bind_index;uint8_t status2;uint8_t filler[26];}) |
| |
|
| PACK (struct artnet_timecode_s { uint16_t version;uint8_t filler;uint8_t filler2;uint8_t frames;uint8_t seconds;uint8_t minutes;uint8_t hours;uint8_t type;}) |
| |
|
| PACK (struct artnet_dmx_s { uint16_t version;uint8_t sequence;uint8_t physical;uint8_t universe;uint8_t net;uint8_t length[2];uint8_t data[DMX_UNIVERSE_SIZE];}) |
| |
|
| PACK (struct artnet_todrequest_s { uint16_t version;uint8_t filler1;uint8_t filler2;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t spare4;uint8_t spare5;uint8_t spare6;uint8_t spare7;uint8_t net;uint8_t command;uint8_t address_count;uint8_t addresses[ARTNET_MAX_RDM_ADDRESS_COUNT];}) |
| |
|
| PACK (struct artnet_toddata_s { uint16_t version;uint8_t rdm_version;uint8_t port;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t spare4;uint8_t spare5;uint8_t spare6;uint8_t spare7;uint8_t net;uint8_t command_response;uint8_t address;uint16_t uid_total;uint8_t block_count;uint8_t uid_count;uint8_t tod[ARTNET_MAX_UID_COUNT][ola::rdm::UID::UID_SIZE];}) |
| |
|
| PACK (struct artnet_todcontrol_s { uint16_t version;uint8_t filler1;uint8_t filler2;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t spare4;uint8_t spare5;uint8_t spare6;uint8_t spare7;uint8_t net;uint8_t command;uint8_t address;}) |
| |
|
| PACK (struct artnet_rdm_s { uint16_t version;uint8_t rdm_version;uint8_t filler2;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t spare4;uint8_t spare5;uint8_t spare6;uint8_t spare7;uint8_t net;uint8_t command;uint8_t address;uint8_t data[ARTNET_MAX_RDM_DATA];}) |
| |
|
| PACK (struct artnet_ip_prog_s { uint16_t version;uint16_t filler;uint8_t command;uint8_t filler1;uint8_t ip[ola::network::IPV4Address::LENGTH];uint8_t subnet[ola::network::IPV4Address::LENGTH];uint16_t port;uint8_t spare[8];}) |
| |
|
| PACK (struct artnet_ip_reply_s { uint16_t version;uint16_t filler;uint8_t command;uint8_t filler1;uint8_t ip[ola::network::IPV4Address::LENGTH];uint8_t subnet[ola::network::IPV4Address::LENGTH];uint16_t port;uint8_t spare[8];}) |
| |
| bool | StringToInt (const std::string &value, unsigned int *output, bool strict=false) |
| | Convert a string to a unsigned int.
|
| |
|
uint16_t | HostToLittleEndian (uint16_t value) |
| | 16-bit unsigned host to little endian conversion.
|
| |
|
uint16_t | HostToNetwork (uint16_t value) |
| | 16-bit unsigned host to network conversion.
|
| |
|
uint16_t | LittleEndianToHost (uint16_t value) |
| | 16-bit unsigned little endian to host conversion.
|
| |
|
uint16_t | NetworkToHost (uint16_t value) |
| | 16-bit unsigned network to host conversion.
|
| |
| void | RunRDMCallback (RDMCallback *callback, RDMStatusCode status_code) |
| | A helper message to run a RDMCallback with the given status code.
|
| |
| void | CopyToFixedLengthBuffer (const std::string &input, char *buffer, unsigned int size) |
| | Copy a string to a fixed length buffer without NULL terminating.
|
| |
| template<typename T> |
| _ToHex< T > | ToHex (T v, bool prefix=true) |
| | Convert a value to a hex string.
|
| |
| template<typename ReturnType> |
| Callback0< ReturnType > * | NewCallback (ReturnType(*callback)()) |
| | A helper function to create a new Callback with 0 create-time arguments and 0 execution time arguments.
|
| |