AVDECC Controller  v0.4.8
 All Classes Namespaces Files Functions Enumerations Enumerator Macros
Classes | Enumerations | Functions
avdecc_lib Namespace Reference

Classes

class  audio_cluster_descriptor
 
class  audio_map_descriptor
 
class  audio_unit_descriptor
 
class  avb_interface_descriptor
 
class  clock_domain_descriptor
 
class  clock_source_descriptor
 
class  configuration_descriptor
 
class  controller
 
class  descriptor_base
 
class  end_station
 
class  entity_descriptor
 
class  jack_input_descriptor
 
class  jack_output_descriptor
 
class  locale_descriptor
 
class  net_interface
 
class  stream_input_descriptor
 
class  stream_output_descriptor
 
class  stream_port_input_descriptor
 
class  stream_port_output_descriptor
 
class  strings_descriptor
 
class  system
 
class  util
 

Enumerations

enum  aem_cmds_values {
  AEM_CMD_ACQUIRE_ENTITY, AEM_CMD_LOCK_ENTITY, AEM_CMD_ENTITY_AVAILABLE, AEM_CMD_CONTROLLER_AVAILABLE,
  AEM_CMD_READ_DESCRIPTOR, AEM_CMD_WRITE_DESCRIPTOR, AEM_CMD_SET_CONFIGURATION, AEM_CMD_GET_CONFIGURATION,
  AEM_CMD_SET_STREAM_FORMAT, AEM_CMD_GET_STREAM_FORMAT, AEM_CMD_SET_VIDEO_FORMAT, AEM_CMD_GET_VIDEO_FORMAT,
  AEM_CMD_SET_SENSOR_FORMAT, AEM_CMD_GET_SENSOR_FORMAT, AEM_CMD_SET_STREAM_INFO, AEM_CMD_GET_STREAM_INFO,
  AEM_CMD_SET_NAME, AEM_CMD_GET_NAME, AEM_CMD_SET_ASSOCIATION_ID, AEM_CMD_GET_ASSOCIATION_ID,
  AEM_CMD_SET_SAMPLING_RATE, AEM_CMD_GET_SAMPLING_RATE, AEM_CMD_SET_CLOCK_SOURCE, AEM_CMD_GET_CLOCK_SOURCE,
  AEM_CMD_SET_CONTROL, AEM_CMD_GET_CONTROL, AEM_CMD_INCREMENT_CONTROL, AEM_CMD_DECREMENT_CONTROL,
  AEM_CMD_SET_SIGNAL_SELECTOR, AEM_CMD_GET_SIGNAL_SELECTOR, AEM_CMD_SET_MIXER, AEM_CMD_GET_MIXER,
  AEM_CMD_SET_MATRIX, AEM_CMD_GET_MATRIX, AEM_CMD_START_STREAMING, AEM_CMD_STOP_STREAMING,
  AEM_CMD_REGISTER_UNSOLICITED_NOTIFICATION, AEM_CMD_DEREGISTER_UNSOLICITED_NOTIFICATION, AEM_CMD_IDENTIFY_NOTIFICATION, AEM_CMD_GET_AVB_INFO,
  AEM_CMD_GET_AS_PATH, AEM_CMD_GET_COUNTERS, AEM_CMD_REBOOT, AEM_CMD_GET_AUDIO_MAP,
  AEM_CMD_ADD_AUDIO_MAPPINGS, AEM_CMD_REMOVE_AUDIO_MAPPINGS, AEM_CMD_GET_VIDEO_MAP, AEM_CMD_ADD_VIDEO_MAPPINGS,
  AEM_CMD_REMOVE_VIDEO_MAPPINGS, AEM_CMD_GET_SENSOR_MAP, AEM_CMD_ADD_SENSOR_MAPPINGS, AEM_CMD_REMOVE_SENSOR_MAPPINGS,
  AEM_CMD_START_OPERATION, AEM_CMD_ABORT_OPERATION, AEM_CMD_OPERATION_STATUS, AEM_CMD_AUTH_ADD_KEY,
  AEM_CMD_AUTH_DELETE_KEY, AEM_CMD_AUTH_GET_KEY_LIST, AEM_CMD_AUTH_GET_KEY, AEM_CMD_AUTH_ADD_KEY_TO_CHAIN,
  AEM_CMD_AUTH_DELETE_KEY_FROM_CHAIN, AEM_CMD_AUTH_GET_KEYCHAIN_LIST, AEM_CMD_AUTH_GET_IDENTITY, AEM_CMD_AUTH_ADD_TOKEN,
  AEM_CMD_AUTH_DELETE_TOKEN, AEM_CMD_AUTHENTICATE, AEM_CMD_DEAUTHENTICATE, AEM_CMD_ENABLE_TRANSPORT_SECURITY,
  AEM_CMD_DISABLE_TRANSPORT_SECURITY, AEM_CMD_ENABLE_STREAM_ENCRYPTION, AEM_CMD_DISABLE_STREAM_ENCRYPTION, AEM_CMD_SET_MEMORY_OBJECT_LENGTH,
  AEM_CMD_GET_MEMORY_OBJECT_LENGTH, AEM_CMD_SET_STREAM_BACKUP, AEM_CMD_GET_STREAM_BACKUP, TOTAL_NUM_OF_AEM_CMDS = 75,
  AEM_CMD_ERROR = 0xffff
}
 The command codes values for AEM commands. More...
 
enum  aem_descs_values {
  AEM_DESC_ENTITY, AEM_DESC_CONFIGURATION, AEM_DESC_AUDIO_UNIT, AEM_DESC_VIDEO_UNIT,
  AEM_DESC_SENSOR_UNIT, AEM_DESC_STREAM_INPUT, AEM_DESC_STREAM_OUTPUT, AEM_DESC_JACK_INPUT,
  AEM_DESC_JACK_OUTPUT, AEM_DESC_AVB_INTERFACE, AEM_DESC_CLOCK_SOURCE, AEM_DESC_MEMORY_OBJECT,
  AEM_DESC_LOCALE, AEM_DESC_STRINGS, AEM_DESC_STREAM_PORT_INPUT, AEM_DESC_STREAM_PORT_OUTPUT,
  AEM_DESC_EXTERNAL_PORT_INPUT, AEM_DESC_EXTERNAL_PORT_OUTPUT, AEM_DESC_INTERNAL_PORT_INPUT, AEM_DESC_INTERNAL_PORT_OUTPUT,
  AEM_DESC_AUDIO_CLUSTER, AEM_DESC_VIDEO_CLUSTER, AEM_DESC_SENSOR_CLUSTER, AEM_DESC_AUDIO_MAP,
  AEM_DESC_VIDEO_MAP, AEM_DESC_SENSOR_MAP, AEM_DESC_CONTROL, AEM_DESC_SIGNAL_SELECTOR,
  AEM_DESC_MIXER, AEM_DESC_MATRIX, AEM_DESC_MATRIX_SIGNAL, AEM_DESC_SIGNAL_SPLITTER,
  AEM_DESC_SIGNAL_COMBINER, AEM_DESC_SIGNAL_DEMULTIPLEXER, AEM_DESC_SIGNAL_MULTIPLEXER, AEM_DESC_SIGNAL_TRANSCODER,
  AEM_DESC_CLOCK_DOMAIN, AEM_DESC_CONTROL_BLOCK, TOTAL_NUM_OF_AEM_DESCS = 38, AEM_DESC_ERROR = 0xffff
}
 The descriptor types values for AEM descriptors. More...
 
enum  aem_cmds_status {
  AEM_STATUS_SUCCESS = 0, AEM_STATUS_NOT_IMPLEMENTED = 1, AEM_STATUS_NO_SUCH_DESCRIPTOR = 2, AEM_STATUS_ENTITY_LOCKED = 3,
  AEM_STATUS_ENTITY_ACQUIRED = 4, AEM_STATUS_NOT_AUTHENTICATED = 5, AEM_STATUS_AUTHENTICATION_DISABLED = 6, AEM_STATUS_BAD_ARGUMENTS = 7,
  AEM_STATUS_NO_RESOURCES = 8, AEM_STATUS_IN_PROGRESS = 9, AEM_STATUS_ENTITY_MISBEHAVING = 10, AEM_STATUS_NOT_SUPPORTED = 11,
  AEM_STATUS_STREAM_IS_RUNNING = 12, TOTAL_NUM_OF_AEM_CMDS_STATUS = 13, AVDECC_LIB_STATUS_INVALID = 1023, AVDECC_LIB_STATUS_TICK_TIMEOUT = 1024
}
 
enum  acmp_cmds_values {
  CONNECT_TX_COMMAND, CONNECT_TX_RESPONSE, DISCONNECT_TX_COMMAND, DISCONNECT_TX_RESPONSE,
  GET_TX_STATE_COMMAND, GET_TX_STATE_RESPONSE, CONNECT_RX_COMMAND, CONNECT_RX_RESPONSE,
  DISCONNECT_RX_COMMAND, DISCONNECT_RX_RESPONSE, GET_RX_STATE_COMMAND, GET_RX_STATE_RESPONSE,
  GET_TX_CONNECTION_COMMAND, GET_TX_CONNECTION_RESPONSE, TOTAL_NUM_OF_ACMP_CMDS = 14, AEM_ACMP_ERROR = 0xffff
}
 The command codes values for ACMP commands. More...
 
enum  acmp_cmds_status {
  ACMP_STATUS_SUCCESS = 0, ACMP_STATUS_LISTENER_UNKNOWN_ID = 1, ACMP_STATUS_TALKER_UNKNOWN_ID = 2, ACMP_STATUS_TALKER_DEST_MAC_FAIL = 3,
  ACMP_STATUS_TALKER_NO_STREAM_INDEX = 4, ACMP_STATUS_TALKER_NO_BANDWIDTH = 5, ACMP_STATUS_TALKER_EXCLUSIVE = 6, ACMP_STATUS_LISTENER_TALKER_TIMEOUT = 7,
  ACMP_STATUS_LISTENER_EXCLUSIVE = 8, ACMP_STATUS_STATE_UNAVAILABLE = 9, ACMP_STATUS_NOT_CONNECTED = 10, ACMP_STATUS_NO_SUCH_CONNECTION = 11,
  ACMP_STATUS_COULD_NOT_SEND_MESSAGE = 12, ACMP_STATUS_TALKER_MISBEHAVING = 13, ACMP_STATUS_LISTENER_MISBEHAVING = 14, ACMP_STATUS_RESERVED = 15,
  ACMP_STATUS_CONTROLLER_NOT_AUTHORIZED = 16, ACMP_STATUS_INCOMPATIBLE_REQUEST = 17, ACMP_STATUS_LISTENER_INVALID_CONNECTION = 18, TOTAL_NUM_OF_ACMP_CMDS_STATUS = 19
}
 
enum  aem_cmd_waiting { CMD_WITHOUT_NOTIFICATION = 0, CMD_WITH_NOTIFICATION = 1 }
 
enum  ether_hdr_info { SRC_MAC_SIZE = 6, DEST_MAC_SIZE = 6, ETHER_PROTOCOL_SIZE = 2, ETHER_HDR_SIZE = SRC_MAC_SIZE + DEST_MAC_SIZE + ETHER_PROTOCOL_SIZE }
 
enum  protocol_hdr_info { PROTOCOL_HDR_SIZE = 4 }
 
enum  frame_lengths { ADP_FRAME_LEN = 82, ACMP_FRAME_LEN = 70, AECP_FRAME_LEN = 64 }
 
enum  timeouts {
  NETIF_READ_TIMEOUT_MS = 100, AVDECC_MSG_TIMEOUT_MS = 250, ACMP_CONNECT_TX_COMMAND_TIMEOUT_MS = 2000, ACMP_DISCONNECT_TX_COMMAND_TIMEOUT_MS = 200,
  ACMP_GET_TX_STATE_COMMAND_TIMEOUT_MS = 200, ACMP_CONNECT_RX_COMMAND_TIMEOUT_MS = 4500, ACMP_DISCONNECT_RX_COMMAND_TIMEOUT_MS = 500, ACMP_GET_RX_STATE_COMMAND_TIMEOUT_MS = 200,
  ACMP_GET_TX_CONNECTION_COMMAND_TIMEOUT_MS = 200
}
 
enum  flags { CMD_LOOKUP = 1024 }
 
enum  notifications {
  NO_MATCH_FOUND = 0, END_STATION_CONNECTED = 1, END_STATION_DISCONNECTED = 2, COMMAND_TIMEOUT = 3,
  RESPONSE_RECEIVED = 4, END_STATION_READ_COMPLETED = 5, TOTAL_NUM_OF_NOTIFICATIONS = 6
}
 Notifications for the AVDECC library implementation, not part of the 1722.1 specification. More...
 
enum  logging_levels {
  LOGGING_LEVEL_ERROR = 0, LOGGING_LEVEL_WARNING = 1, LOGGING_LEVEL_NOTICE = 2, LOGGING_LEVEL_INFO = 3,
  LOGGING_LEVEL_DEBUG = 4, LOGGING_LEVEL_VERBOSE = 5, TOTAL_NUM_OF_LOGGING_LEVELS = 6
}
 

Functions

AVDECC_CONTROLLER_LIB32_API
controller *STDCALL 
create_controller (net_interface *netif, void(*notification_callback)(void *notification_user_obj, int32_t notification_type, uint64_t guid, uint16_t cmd_type, uint16_t desc_type, uint16_t desc_index, uint32_t cmd_status, void *notification_id), void(*log_callback)(void *log_user_obj, int32_t log_level, const char *log_msg, int32_t time_stamp_ms))
 
AVDECC_CONTROLLER_LIB32_API
net_interface *STDCALL 
create_net_interface ()
 
AVDECC_CONTROLLER_LIB32_API
system *STDCALL 
create_system (system::system_type type, net_interface *netif, controller *controller_obj)
 
AVDECC_CONTROLLER_LIB32_API
util *STDCALL 
create_util ()
 

Enumeration Type Documentation

Enumerator
ACMP_STATUS_SUCCESS 

Command executed successfully.

ACMP_STATUS_LISTENER_UNKNOWN_ID 

Listener does not have the specified unique identifier.

ACMP_STATUS_TALKER_UNKNOWN_ID 

Talker does not have the specified unique identifier.

ACMP_STATUS_TALKER_DEST_MAC_FAIL 

Talker could not allocate a destination MAC for the steam.

ACMP_STATUS_TALKER_NO_STREAM_INDEX 

Talker does not have an available stream index for the stream.

ACMP_STATUS_TALKER_NO_BANDWIDTH 

Talker could not allocate bandwidth for the stream.

ACMP_STATUS_TALKER_EXCLUSIVE 

Talker already has an established stream and only supports one listener.

ACMP_STATUS_LISTENER_TALKER_TIMEOUT 

Listener had timeout for all retries when trying to send command to Talker.

ACMP_STATUS_LISTENER_EXCLUSIVE 

Listener already has an established connection to a stream.

ACMP_STATUS_STATE_UNAVAILABLE 

Could not get the state from the AVDECC Entity.

ACMP_STATUS_NOT_CONNECTED 

Trying to disconnect when not connected or not connected to the Talker specified.

ACMP_STATUS_NO_SUCH_CONNECTION 

Trying to obtain connection info for an Talker connection which does not exist.

ACMP_STATUS_COULD_NOT_SEND_MESSAGE 

Listener failed to send the message to the Talker.

ACMP_STATUS_TALKER_MISBEHAVING 

Talker was unable to complete the command because an internal error occurred.

ACMP_STATUS_LISTENER_MISBEHAVING 

Listener was unable to complete the command because an internal error occurred.

ACMP_STATUS_RESERVED 

Reserved field for new status.

ACMP_STATUS_CONTROLLER_NOT_AUTHORIZED 

The AVDECC Controller with the specified Entity ID is not authorized to change stream connections.

ACMP_STATUS_INCOMPATIBLE_REQUEST 

Listener is trying to connect a Talker that is already streaming with a different traffic class, etc, or does not support the request traffic class

ACMP_STATUS_LISTENER_INVALID_CONNECTION 
TOTAL_NUM_OF_ACMP_CMDS_STATUS 

The total number of AEM commands status currently supported in the 1722.1 specification.

The command codes values for ACMP commands.

Enumerator
CONNECT_TX_COMMAND 
CONNECT_TX_RESPONSE 
DISCONNECT_TX_COMMAND 
DISCONNECT_TX_RESPONSE 
GET_TX_STATE_COMMAND 
GET_TX_STATE_RESPONSE 
CONNECT_RX_COMMAND 
CONNECT_RX_RESPONSE 
DISCONNECT_RX_COMMAND 
DISCONNECT_RX_RESPONSE 
GET_RX_STATE_COMMAND 
GET_RX_STATE_RESPONSE 
GET_TX_CONNECTION_COMMAND 
GET_TX_CONNECTION_RESPONSE 
TOTAL_NUM_OF_ACMP_CMDS 

The total number of ACMP commands currently supported in the 1722.1 specification.

AEM_ACMP_ERROR 
Enumerator
CMD_WITHOUT_NOTIFICATION 

All internal commands are sent without notification ids.

CMD_WITH_NOTIFICATION 

All user commands are sent with unique notification ids.

Enumerator
AEM_STATUS_SUCCESS 

The AVDECC Entity successfully performed the command and has valid results.

AEM_STATUS_NOT_IMPLEMENTED 

The AVDECC Entity does not support the command type.

AEM_STATUS_NO_SUCH_DESCRIPTOR 

A descriptor with the descriptor type and index does not exist.

AEM_STATUS_ENTITY_LOCKED 

The AVDECC Entity has been locked by another AVDECC Controller.

AEM_STATUS_ENTITY_ACQUIRED 

The AVDECC Entity has been acquired by another AVDECC Controller.

AEM_STATUS_NOT_AUTHENTICATED 

The AVDECC Controller is not authenticated with the AVDECC Entity.

AEM_STATUS_AUTHENTICATION_DISABLED 

The AVDECC Controller is trying to use an authentication command when authentication is not enabled on the AVDECC Entity.

AEM_STATUS_BAD_ARGUMENTS 

One or more of the values in the fields of the frame were deemed to be bad by the AVDECC Entity.

AEM_STATUS_NO_RESOURCES 

The AVDECC Entity cannot complete the command because it does not have the resources to support it.

AEM_STATUS_IN_PROGRESS 

The AVDECC Entity is processing the command and will send a second response at a later time with the result of the command.

AEM_STATUS_ENTITY_MISBEHAVING 

The AVDECC Entity is generating an internal error while trying to process the command.

AEM_STATUS_NOT_SUPPORTED 

The command is implemented, but the target of the command is not supported.

AEM_STATUS_STREAM_IS_RUNNING 

The stream is currently streaming and the command is one which cannot be executed on a streaming stream.

TOTAL_NUM_OF_AEM_CMDS_STATUS 

The total number of AEM commands status currently supported in the 1722.1 specification.

AVDECC_LIB_STATUS_INVALID 

AVDECC library specific status, not part of the 1722.1 specification The response received has a subtype different from the subtype of the command sent

AVDECC_LIB_STATUS_TICK_TIMEOUT 

AVDECC library specific status, not part of the 1722.1 specification The response is not received within the timeout period after re-sending a command

The command codes values for AEM commands.

Enumerator
AEM_CMD_ACQUIRE_ENTITY 
AEM_CMD_LOCK_ENTITY 
AEM_CMD_ENTITY_AVAILABLE 
AEM_CMD_CONTROLLER_AVAILABLE 
AEM_CMD_READ_DESCRIPTOR 
AEM_CMD_WRITE_DESCRIPTOR 
AEM_CMD_SET_CONFIGURATION 
AEM_CMD_GET_CONFIGURATION 
AEM_CMD_SET_STREAM_FORMAT 
AEM_CMD_GET_STREAM_FORMAT 
AEM_CMD_SET_VIDEO_FORMAT 
AEM_CMD_GET_VIDEO_FORMAT 
AEM_CMD_SET_SENSOR_FORMAT 
AEM_CMD_GET_SENSOR_FORMAT 
AEM_CMD_SET_STREAM_INFO 
AEM_CMD_GET_STREAM_INFO 
AEM_CMD_SET_NAME 
AEM_CMD_GET_NAME 
AEM_CMD_SET_ASSOCIATION_ID 
AEM_CMD_GET_ASSOCIATION_ID 
AEM_CMD_SET_SAMPLING_RATE 
AEM_CMD_GET_SAMPLING_RATE 
AEM_CMD_SET_CLOCK_SOURCE 
AEM_CMD_GET_CLOCK_SOURCE 
AEM_CMD_SET_CONTROL 
AEM_CMD_GET_CONTROL 
AEM_CMD_INCREMENT_CONTROL 
AEM_CMD_DECREMENT_CONTROL 
AEM_CMD_SET_SIGNAL_SELECTOR 
AEM_CMD_GET_SIGNAL_SELECTOR 
AEM_CMD_SET_MIXER 
AEM_CMD_GET_MIXER 
AEM_CMD_SET_MATRIX 
AEM_CMD_GET_MATRIX 
AEM_CMD_START_STREAMING 
AEM_CMD_STOP_STREAMING 
AEM_CMD_REGISTER_UNSOLICITED_NOTIFICATION 
AEM_CMD_DEREGISTER_UNSOLICITED_NOTIFICATION 
AEM_CMD_IDENTIFY_NOTIFICATION 
AEM_CMD_GET_AVB_INFO 
AEM_CMD_GET_AS_PATH 
AEM_CMD_GET_COUNTERS 
AEM_CMD_REBOOT 
AEM_CMD_GET_AUDIO_MAP 
AEM_CMD_ADD_AUDIO_MAPPINGS 
AEM_CMD_REMOVE_AUDIO_MAPPINGS 
AEM_CMD_GET_VIDEO_MAP 
AEM_CMD_ADD_VIDEO_MAPPINGS 
AEM_CMD_REMOVE_VIDEO_MAPPINGS 
AEM_CMD_GET_SENSOR_MAP 
AEM_CMD_ADD_SENSOR_MAPPINGS 
AEM_CMD_REMOVE_SENSOR_MAPPINGS 
AEM_CMD_START_OPERATION 
AEM_CMD_ABORT_OPERATION 
AEM_CMD_OPERATION_STATUS 
AEM_CMD_AUTH_ADD_KEY 
AEM_CMD_AUTH_DELETE_KEY 
AEM_CMD_AUTH_GET_KEY_LIST 
AEM_CMD_AUTH_GET_KEY 
AEM_CMD_AUTH_ADD_KEY_TO_CHAIN 
AEM_CMD_AUTH_DELETE_KEY_FROM_CHAIN 
AEM_CMD_AUTH_GET_KEYCHAIN_LIST 
AEM_CMD_AUTH_GET_IDENTITY 
AEM_CMD_AUTH_ADD_TOKEN 
AEM_CMD_AUTH_DELETE_TOKEN 
AEM_CMD_AUTHENTICATE 
AEM_CMD_DEAUTHENTICATE 
AEM_CMD_ENABLE_TRANSPORT_SECURITY 
AEM_CMD_DISABLE_TRANSPORT_SECURITY 
AEM_CMD_ENABLE_STREAM_ENCRYPTION 
AEM_CMD_DISABLE_STREAM_ENCRYPTION 
AEM_CMD_SET_MEMORY_OBJECT_LENGTH 
AEM_CMD_GET_MEMORY_OBJECT_LENGTH 
AEM_CMD_SET_STREAM_BACKUP 
AEM_CMD_GET_STREAM_BACKUP 
TOTAL_NUM_OF_AEM_CMDS 

The total number of AEM commands currently supported in the 1722.1 specification.

AEM_CMD_ERROR 

The descriptor types values for AEM descriptors.

Enumerator
AEM_DESC_ENTITY 
AEM_DESC_CONFIGURATION 
AEM_DESC_AUDIO_UNIT 
AEM_DESC_VIDEO_UNIT 
AEM_DESC_SENSOR_UNIT 
AEM_DESC_STREAM_INPUT 
AEM_DESC_STREAM_OUTPUT 
AEM_DESC_JACK_INPUT 
AEM_DESC_JACK_OUTPUT 
AEM_DESC_AVB_INTERFACE 
AEM_DESC_CLOCK_SOURCE 
AEM_DESC_MEMORY_OBJECT 
AEM_DESC_LOCALE 
AEM_DESC_STRINGS 
AEM_DESC_STREAM_PORT_INPUT 
AEM_DESC_STREAM_PORT_OUTPUT 
AEM_DESC_EXTERNAL_PORT_INPUT 
AEM_DESC_EXTERNAL_PORT_OUTPUT 
AEM_DESC_INTERNAL_PORT_INPUT 
AEM_DESC_INTERNAL_PORT_OUTPUT 
AEM_DESC_AUDIO_CLUSTER 
AEM_DESC_VIDEO_CLUSTER 
AEM_DESC_SENSOR_CLUSTER 
AEM_DESC_AUDIO_MAP 
AEM_DESC_VIDEO_MAP 
AEM_DESC_SENSOR_MAP 
AEM_DESC_CONTROL 
AEM_DESC_SIGNAL_SELECTOR 
AEM_DESC_MIXER 
AEM_DESC_MATRIX 
AEM_DESC_MATRIX_SIGNAL 
AEM_DESC_SIGNAL_SPLITTER 
AEM_DESC_SIGNAL_COMBINER 
AEM_DESC_SIGNAL_DEMULTIPLEXER 
AEM_DESC_SIGNAL_MULTIPLEXER 
AEM_DESC_SIGNAL_TRANSCODER 
AEM_DESC_CLOCK_DOMAIN 
AEM_DESC_CONTROL_BLOCK 
TOTAL_NUM_OF_AEM_DESCS 

The total number of AEM descriptors currently supported in the 1722.1 specification.

AEM_DESC_ERROR 
Enumerator
SRC_MAC_SIZE 
DEST_MAC_SIZE 
ETHER_PROTOCOL_SIZE 
ETHER_HDR_SIZE 

The header size of the Ethernet frame = dest mac + src mac + ether protocol sizes.

Enumerator
CMD_LOOKUP 

Check if the command is an ACMP or AEM command.

Enumerator
ADP_FRAME_LEN 

Length of ADP packet is 82 bytes.

ACMP_FRAME_LEN 

Length of ACMP packet is 70 bytes.

AECP_FRAME_LEN 

Length of AECP packet is 64 bytes.

Enumerator
LOGGING_LEVEL_ERROR 
LOGGING_LEVEL_WARNING 
LOGGING_LEVEL_NOTICE 
LOGGING_LEVEL_INFO 
LOGGING_LEVEL_DEBUG 
LOGGING_LEVEL_VERBOSE 
TOTAL_NUM_OF_LOGGING_LEVELS 

Notifications for the AVDECC library implementation, not part of the 1722.1 specification.

Enumerator
NO_MATCH_FOUND 

A command or response is not implemented.

END_STATION_CONNECTED 

An AVDECC End Station is discovered and connected.

END_STATION_DISCONNECTED 

An AVDECC End Station is disconnected.

COMMAND_TIMEOUT 

A command is sent, but the response is not received within a timeout period.

RESPONSE_RECEIVED 

A response is received after sending a command.

END_STATION_READ_COMPLETED 

An AVDECC End Station has finished internal READ_DESCRIPTOR processing for all top level descriptors.

TOTAL_NUM_OF_NOTIFICATIONS 
Enumerator
PROTOCOL_HDR_SIZE 

The Protocol Header size.

Enumerator
NETIF_READ_TIMEOUT_MS 

The network interface has a 100 milliseconds timeout in capturing ADP packets.

AVDECC_MSG_TIMEOUT_MS 

AVDECC messages have a 250 milliseconds timeout.

ACMP_CONNECT_TX_COMMAND_TIMEOUT_MS 
ACMP_DISCONNECT_TX_COMMAND_TIMEOUT_MS 
ACMP_GET_TX_STATE_COMMAND_TIMEOUT_MS 
ACMP_CONNECT_RX_COMMAND_TIMEOUT_MS 
ACMP_DISCONNECT_RX_COMMAND_TIMEOUT_MS 
ACMP_GET_RX_STATE_COMMAND_TIMEOUT_MS 
ACMP_GET_TX_CONNECTION_COMMAND_TIMEOUT_MS 

Function Documentation

AVDECC_CONTROLLER_LIB32_API controller* STDCALL avdecc_lib::create_controller ( net_interface *  netif,
void(*)(void *notification_user_obj, int32_t notification_type, uint64_t guid, uint16_t cmd_type, uint16_t desc_type, uint16_t desc_index, uint32_t cmd_status, void *notification_id)  notification_callback,
void(*)(void *log_user_obj, int32_t log_level, const char *log_msg, int32_t time_stamp_ms)  log_callback 
)

Create a public AVDECC Controller object with a network interface object, notification and post_log_msg callback functions used for accessing from outside the library.

Parameters
netifA network interface object created in the application level using the public network interface API provided.
notification_user_objA void pointer used to store any helpful C++ class object.
notification_typeThe type of notification that the callback function is called with. (Refer to notifications enumeration included in the library for a list of notification types supported.)
guidAn unique identifier of the End Station the command is targeted to.
cmd_typeThe type of the AEM command used in the command data to be sent.
desc_typeThe type of the AEM descriptor used in the command data to be sent.
desc_indexThe index associated with the corresponding descriptor type used in the command data to be sent.
notification_idA void pointer to the unique identifier for each notification message.
log_user_objA void pointer used to store any helpful class object.
log_levelThe log level that the callback function is called with. (Refer to logging levels enumeration included in the library for a list of log levels supported.)
log_msgA message containing additional information to be logged.
time_stamp_msThe time in milliseconds indicating when the message is logged.
AVDECC_CONTROLLER_LIB32_API net_interface* STDCALL avdecc_lib::create_net_interface ( )

Create a public network interface object used for accessing from outside the library.

AVDECC_CONTROLLER_LIB32_API system* STDCALL avdecc_lib::create_system ( system::system_type  type,
net_interface *  netif,
controller *  controller_obj 
)

Create a public AVDECC System object with a certain System type, network interface and controller objects used for accessing from outside the library.

Parameters
typeThe type of the system to be created.
netifA network interface object created in the application level using the public network interface API provided.
controller_objAn AVDECC Controller object created in the application level using the public Controller API provided.
AVDECC_CONTROLLER_LIB32_API util* STDCALL avdecc_lib::create_util ( )

Create a public Utility object used for accessing from outside the library.