mikroSDK Reference Manual
Audio

Data Structures

struct  TU_ATTR_PACKED
 AUDIO Channel Cluster Descriptor (4.1) More...
 

Macros

#define audio_desc_clock_selector_n_t(source_num)
 AUDIO Clock Selector Descriptor (4.7.2.2) for multiple pins.
 
#define audio_desc_feature_unit_n_t(ch_num)
 AUDIO Feature Unit Descriptor(4.7.2.8) for multiple channels.
 
#define audio_control_range_1_n_t(numSubRanges)
 
#define audio_control_range_2_n_t(numSubRanges)
 5.2.3.2 2-byte Control RANGE Parameter Block
 
#define audio_control_range_4_n_t(numSubRanges)
 

Typedefs

typedef struct TU_ATTR_PACKED audio_desc_channel_cluster_t
 AUDIO Channel Cluster Descriptor (4.1)
 
typedef struct TU_ATTR_PACKED audio_desc_cs_ac_interface_t
 AUDIO Class-Specific AC Interface Header Descriptor (4.7.2)
 
typedef struct TU_ATTR_PACKED audio_desc_clock_source_t
 AUDIO Clock Source Descriptor (4.7.2.1)
 
typedef struct TU_ATTR_PACKED audio_desc_clock_selector_t
 AUDIO Clock Selector Descriptor (4.7.2.2) for ONE pin.
 
typedef struct TU_ATTR_PACKED audio_desc_clock_multiplier_t
 AUDIO Clock Multiplier Descriptor (4.7.2.3)
 
typedef struct TU_ATTR_PACKED audio_desc_input_terminal_t
 AUDIO Input Terminal Descriptor(4.7.2.4)
 
typedef struct TU_ATTR_PACKED audio_desc_output_terminal_t
 AUDIO Output Terminal Descriptor(4.7.2.5)
 
typedef struct TU_ATTR_PACKED audio_desc_feature_unit_t
 AUDIO Feature Unit Descriptor(4.7.2.8) for ONE channel.
 
typedef struct TU_ATTR_PACKED audio_desc_cs_as_interface_t
 AUDIO Class-Specific AS Interface Descriptor(4.9.2)
 
typedef struct TU_ATTR_PACKED audio_desc_type_I_format_t
 AUDIO Type I Format Type Descriptor(2.3.1.6 - Audio Formats)
 
typedef struct TU_ATTR_PACKED audio_desc_cs_as_iso_data_ep_t
 AUDIO Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2)
 
typedef struct TU_ATTR_PACKED audio_control_request_t
 
typedef struct TU_ATTR_PACKED audio_control_cur_1_t
 
typedef struct TU_ATTR_PACKED audio_control_cur_2_t
 
typedef struct TU_ATTR_PACKED audio_control_cur_4_t
 
typedef struct TU_ATTR_PACKED audio_control_range_1_t
 
typedef struct TU_ATTR_PACKED audio_control_range_2_t
 
typedef struct TU_ATTR_PACKED audio_control_range_4_t
 

Enumerations

enum  audio_function_subclass_type_t { AUDIO_FUNCTION_SUBCLASS_UNDEFINED = 0x00 }
 Audio Device Class Codes. More...
 
enum  audio_function_protocol_code_t { AUDIO_FUNC_PROTOCOL_CODE_UNDEF = 0x00 , AUDIO_FUNC_PROTOCOL_CODE_V2 = 0x20 }
 A.3 - Audio Function Protocol Codes. More...
 
enum  audio_subclass_type_t { AUDIO_SUBCLASS_UNDEFINED = 0x00 , AUDIO_SUBCLASS_CONTROL , AUDIO_SUBCLASS_STREAMING , AUDIO_SUBCLASS_MIDI_STREAMING }
 A.5 - Audio Interface Subclass Codes. More...
 
enum  audio_interface_protocol_code_t { AUDIO_INT_PROTOCOL_CODE_UNDEF = 0x00 , AUDIO_INT_PROTOCOL_CODE_V2 = 0x20 }
 A.6 - Audio Interface Protocol Codes. More...
 
enum  audio_function_code_t {
  AUDIO_FUNC_UNDEF = 0x00 , AUDIO_FUNC_DESKTOP_SPEAKER = 0x01 , AUDIO_FUNC_HOME_THEATER = 0x02 , AUDIO_FUNC_MICROPHONE = 0x03 ,
  AUDIO_FUNC_HEADSET = 0x04 , AUDIO_FUNC_TELEPHONE = 0x05 , AUDIO_FUNC_CONVERTER = 0x06 , AUDIO_FUNC_SOUND_RECODER = 0x07 ,
  AUDIO_FUNC_IO_BOX = 0x08 , AUDIO_FUNC_MUSICAL_INSTRUMENT = 0x09 , AUDIO_FUNC_PRO_AUDIO = 0x0A , AUDIO_FUNC_AUDIO_VIDEO = 0x0B ,
  AUDIO_FUNC_CONTROL_PANEL = 0x0C , AUDIO_FUNC_OTHER = 0xFF
}
 A.7 - Audio Function Category Codes.
 
enum  audio_cs_ac_interface_subtype_t {
  AUDIO_CS_AC_INTERFACE_AC_DESCRIPTOR_UNDEF = 0x00 , AUDIO_CS_AC_INTERFACE_HEADER = 0x01 , AUDIO_CS_AC_INTERFACE_INPUT_TERMINAL = 0x02 , AUDIO_CS_AC_INTERFACE_OUTPUT_TERMINAL = 0x03 ,
  AUDIO_CS_AC_INTERFACE_MIXER_UNIT = 0x04 , AUDIO_CS_AC_INTERFACE_SELECTOR_UNIT = 0x05 , AUDIO_CS_AC_INTERFACE_FEATURE_UNIT = 0x06 , AUDIO_CS_AC_INTERFACE_EFFECT_UNIT = 0x07 ,
  AUDIO_CS_AC_INTERFACE_PROCESSING_UNIT = 0x08 , AUDIO_CS_AC_INTERFACE_EXTENSION_UNIT = 0x09 , AUDIO_CS_AC_INTERFACE_CLOCK_SOURCE = 0x0A , AUDIO_CS_AC_INTERFACE_CLOCK_SELECTOR = 0x0B ,
  AUDIO_CS_AC_INTERFACE_CLOCK_MULTIPLIER = 0x0C , AUDIO_CS_AC_INTERFACE_SAMPLE_RATE_CONVERTER = 0x0D
}
 A.9 - Audio Class-Specific AC Interface Descriptor Subtypes UAC2.
 
enum  audio_cs_as_interface_subtype_t {
  AUDIO_CS_AS_INTERFACE_AS_DESCRIPTOR_UNDEF = 0x00 , AUDIO_CS_AS_INTERFACE_AS_GENERAL = 0x01 , AUDIO_CS_AS_INTERFACE_FORMAT_TYPE = 0x02 , AUDIO_CS_AS_INTERFACE_ENCODER = 0x03 ,
  AUDIO_CS_AS_INTERFACE_DECODER = 0x04
}
 A.10 - Audio Class-Specific AS Interface Descriptor Subtypes UAC2.
 
enum  audio_effect_unit_effect_type_t {
  AUDIO_EFFECT_TYPE_UNDEF = 0x00 , AUDIO_EFFECT_TYPE_PARAM_EQ_SECTION = 0x01 , AUDIO_EFFECT_TYPE_REVERBERATION = 0x02 , AUDIO_EFFECT_TYPE_MOD_DELAY = 0x03 ,
  AUDIO_EFFECT_TYPE_DYN_RANGE_COMP = 0x04
}
 A.11 - Effect Unit Effect Types.
 
enum  audio_processing_unit_process_type_t { AUDIO_PROCESS_TYPE_UNDEF = 0x00 , AUDIO_PROCESS_TYPE_UP_DOWN_MIX = 0x01 , AUDIO_PROCESS_TYPE_DOLBY_PROLOGIC = 0x02 , AUDIO_PROCESS_TYPE_STEREO_EXTENDER = 0x03 }
 A.12 - Processing Unit Process Types.
 
enum  audio_cs_ep_subtype_t { AUDIO_CS_EP_SUBTYPE_UNDEF = 0x00 , AUDIO_CS_EP_SUBTYPE_GENERAL = 0x01 }
 A.13 - Audio Class-Specific EP Descriptor Subtypes UAC2.
 
enum  audio_cs_req_t { AUDIO_CS_REQ_UNDEF = 0x00 , AUDIO_CS_REQ_CUR = 0x01 , AUDIO_CS_REQ_RANGE = 0x02 , AUDIO_CS_REQ_MEM = 0x03 }
 A.14 - Audio Class-Specific Request Codes.
 
enum  audio_clock_src_control_selector_t { AUDIO_CS_CTRL_UNDEF = 0x00 , AUDIO_CS_CTRL_SAM_FREQ = 0x01 , AUDIO_CS_CTRL_CLK_VALID = 0x02 }
 A.17 - Control Selector Codes. More...
 
enum  audio_clock_sel_control_selector_t { AUDIO_CX_CTRL_UNDEF = 0x00 , AUDIO_CX_CTRL_CONTROL = 0x01 }
 A.17.2 - Clock Selector Control Selectors.
 
enum  audio_clock_mul_control_selector_t { AUDIO_CM_CTRL_UNDEF = 0x00 , AUDIO_CM_CTRL_NUMERATOR_CONTROL = 0x01 , AUDIO_CM_CTRL_DENOMINATOR_CONTROL = 0x02 }
 A.17.3 - Clock Multiplier Control Selectors.
 
enum  audio_terminal_control_selector_t {
  AUDIO_TE_CTRL_UNDEF = 0x00 , AUDIO_TE_CTRL_COPY_PROTECT = 0x01 , AUDIO_TE_CTRL_CONNECTOR = 0x02 , AUDIO_TE_CTRL_OVERLOAD = 0x03 ,
  AUDIO_TE_CTRL_CLUSTER = 0x04 , AUDIO_TE_CTRL_UNDERFLOW = 0x05 , AUDIO_TE_CTRL_OVERFLOW = 0x06 , AUDIO_TE_CTRL_LATENCY = 0x07
}
 A.17.4 - Terminal Control Selectors.
 
enum  audio_mixer_control_selector_t {
  AUDIO_MU_CTRL_UNDEF = 0x00 , AUDIO_MU_CTRL_MIXER = 0x01 , AUDIO_MU_CTRL_CLUSTER = 0x02 , AUDIO_MU_CTRL_UNDERFLOW = 0x03 ,
  AUDIO_MU_CTRL_OVERFLOW = 0x04 , AUDIO_MU_CTRL_LATENCY = 0x05
}
 A.17.5 - Mixer Control Selectors.
 
enum  audio_sel_control_selector_t { AUDIO_SU_CTRL_UNDEF = 0x00 , AUDIO_SU_CTRL_SELECTOR = 0x01 , AUDIO_SU_CTRL_LATENCY = 0x02 }
 A.17.6 - Selector Control Selectors.
 
enum  audio_feature_unit_control_selector_t {
  AUDIO_FU_CTRL_UNDEF = 0x00 , AUDIO_FU_CTRL_MUTE = 0x01 , AUDIO_FU_CTRL_VOLUME = 0x02 , AUDIO_FU_CTRL_BASS = 0x03 ,
  AUDIO_FU_CTRL_MID = 0x04 , AUDIO_FU_CTRL_TREBLE = 0x05 , AUDIO_FU_CTRL_GRAPHIC_EQUALIZER = 0x06 , AUDIO_FU_CTRL_AGC = 0x07 ,
  AUDIO_FU_CTRL_DELAY = 0x08 , AUDIO_FU_CTRL_BASS_BOOST = 0x09 , AUDIO_FU_CTRL_LOUDNESS = 0x0A , AUDIO_FU_CTRL_INPUT_GAIN = 0x0B ,
  AUDIO_FU_CTRL_GAIN_PAD = 0x0C , AUDIO_FU_CTRL_INVERTER = 0x0D , AUDIO_FU_CTRL_UNDERFLOW = 0x0E , AUDIO_FU_CTRL_OVERVLOW = 0x0F ,
  AUDIO_FU_CTRL_LATENCY = 0x10
}
 A.17.7 - Feature Unit Control Selectors.
 
enum  audio_parametric_equalizer_control_selector_t {
  AUDIO_PE_CTRL_UNDEF = 0x00 , AUDIO_PE_CTRL_ENABLE = 0x01 , AUDIO_PE_CTRL_CENTERFREQ = 0x02 , AUDIO_PE_CTRL_QFACTOR = 0x03 ,
  AUDIO_PE_CTRL_GAIN = 0x04 , AUDIO_PE_CTRL_UNDERFLOW = 0x05 , AUDIO_PE_CTRL_OVERFLOW = 0x06 , AUDIO_PE_CTRL_LATENCY = 0x07
}
 A.17.8 Effect Unit Control Selectors. More...
 
enum  audio_reverberation_effect_control_selector_t {
  AUDIO_RV_CTRL_UNDEF = 0x00 , AUDIO_RV_CTRL_ENABLE = 0x01 , AUDIO_RV_CTRL_TYPE = 0x02 , AUDIO_RV_CTRL_LEVEL = 0x03 ,
  AUDIO_RV_CTRL_TIME = 0x04 , AUDIO_RV_CTRL_FEEDBACK = 0x05 , AUDIO_RV_CTRL_PREDELAY = 0x06 , AUDIO_RV_CTRL_DENSITY = 0x07 ,
  AUDIO_RV_CTRL_HIFREQ_ROLLOFF = 0x08 , AUDIO_RV_CTRL_UNDERFLOW = 0x09 , AUDIO_RV_CTRL_OVERFLOW = 0x0A , AUDIO_RV_CTRL_LATENCY = 0x0B
}
 A.17.8.2 Reverberation Effect Unit Control Selectors.
 
enum  audio_modulation_delay_control_selector_t {
  AUDIO_MD_CTRL_UNDEF = 0x00 , AUDIO_MD_CTRL_ENABLE = 0x01 , AUDIO_MD_CTRL_BALANCE = 0x02 , AUDIO_MD_CTRL_RATE = 0x03 ,
  AUDIO_MD_CTRL_DEPTH = 0x04 , AUDIO_MD_CTRL_TIME = 0x05 , AUDIO_MD_CTRL_FEEDBACK = 0x06 , AUDIO_MD_CTRL_UNDERFLOW = 0x07 ,
  AUDIO_MD_CTRL_OVERFLOW = 0x08 , AUDIO_MD_CTRL_LATENCY = 0x09
}
 A.17.8.3 Modulation Delay Effect Unit Control Selectors.
 
enum  audio_dynamic_range_compression_control_selector_t {
  AUDIO_DR_CTRL_UNDEF = 0x00 , AUDIO_DR_CTRL_ENABLE = 0x01 , AUDIO_DR_CTRL_COMPRESSION_RATE = 0x02 , AUDIO_DR_CTRL_MAXAMPL = 0x03 ,
  AUDIO_DR_CTRL_THRESHOLD = 0x04 , AUDIO_DR_CTRL_ATTACK_TIME = 0x05 , AUDIO_DR_CTRL_RELEASE_TIME = 0x06 , AUDIO_DR_CTRL_UNDERFLOW = 0x07 ,
  AUDIO_DR_CTRL_OVERFLOW = 0x08 , AUDIO_DR_CTRL_LATENCY = 0x09
}
 A.17.8.4 Dynamic Range Compressor Effect Unit Control Selectors.
 
enum  audio_up_down_mix_control_selector_t {
  AUDIO_UD_CTRL_UNDEF = 0x00 , AUDIO_UD_CTRL_ENABLE = 0x01 , AUDIO_UD_CTRL_MODE_SELECT = 0x02 , AUDIO_UD_CTRL_CLUSTER = 0x03 ,
  AUDIO_UD_CTRL_UNDERFLOW = 0x04 , AUDIO_UD_CTRL_OVERFLOW = 0x05 , AUDIO_UD_CTRL_LATENCY = 0x06
}
 A.17.9 Processing Unit Control Selectors. More...
 
enum  audio_dolby_prologic_control_selector_t {
  AUDIO_DP_CTRL_UNDEF = 0x00 , AUDIO_DP_CTRL_ENABLE = 0x01 , AUDIO_DP_CTRL_MODE_SELECT = 0x02 , AUDIO_DP_CTRL_CLUSTER = 0x03 ,
  AUDIO_DP_CTRL_UNDERFLOW = 0x04 , AUDIO_DP_CTRL_OVERFLOW = 0x05 , AUDIO_DP_CTRL_LATENCY = 0x06
}
 A.17.9.2 Dolby Prologic ™ Processing Unit Control Selectors.
 
enum  audio_stereo_extender_control_selector_t {
  AUDIO_ST_EXT_CTRL_UNDEF = 0x00 , AUDIO_ST_EXT_CTRL_ENABLE = 0x01 , AUDIO_ST_EXT_CTRL_WIDTH = 0x02 , AUDIO_ST_EXT_CTRL_UNDERFLOW = 0x03 ,
  AUDIO_ST_EXT_CTRL_OVERFLOW = 0x04 , AUDIO_ST_EXT_CTRL_LATENCY = 0x05
}
 A.17.9.3 Stereo Extender Processing Unit Control Selectors.
 
enum  audio_extension_unit_control_selector_t {
  AUDIO_XU_CTRL_UNDEF = 0x00 , AUDIO_XU_CTRL_ENABLE = 0x01 , AUDIO_XU_CTRL_CLUSTER = 0x02 , AUDIO_XU_CTRL_UNDERFLOW = 0x03 ,
  AUDIO_XU_CTRL_OVERFLOW = 0x04 , AUDIO_XU_CTRL_LATENCY = 0x05
}
 A.17.10 Extension Unit Control Selectors.
 
enum  audio_audiostreaming_interface_control_selector_t { AUDIO_AS_CTRL_UNDEF = 0x00 , AUDIO_AS_CTRL_ACT_ALT_SETTING = 0x01 , AUDIO_AS_CTRL_VAL_ALT_SETTINGS = 0x02 , AUDIO_AS_CTRL_AUDIO_DATA_FORMAT = 0x03 }
 A.17.11 AudioStreaming Interface Control Selectors.
 
enum  audio_encoder_control_selector_t {
  AUDIO_EN_CTRL_UNDEF = 0x00 , AUDIO_EN_CTRL_BIT_RATE = 0x01 , AUDIO_EN_CTRL_QUALITY = 0x02 , AUDIO_EN_CTRL_VBR = 0x03 ,
  AUDIO_EN_CTRL_TYPE = 0x04 , AUDIO_EN_CTRL_UNDERFLOW = 0x05 , AUDIO_EN_CTRL_OVERFLOW = 0x06 , AUDIO_EN_CTRL_ENCODER_ERROR = 0x07 ,
  AUDIO_EN_CTRL_PARAM1 = 0x08 , AUDIO_EN_CTRL_PARAM2 = 0x09 , AUDIO_EN_CTRL_PARAM3 = 0x0A , AUDIO_EN_CTRL_PARAM4 = 0x0B ,
  AUDIO_EN_CTRL_PARAM5 = 0x0C , AUDIO_EN_CTRL_PARAM6 = 0x0D , AUDIO_EN_CTRL_PARAM7 = 0x0E , AUDIO_EN_CTRL_PARAM8 = 0x0F
}
 A.17.12 Encoder Control Selectors.
 
enum  audio_MPEG_decoder_control_selector_t {
  AUDIO_MPD_CTRL_UNDEF = 0x00 , AUDIO_MPD_CTRL_DUAL_CHANNEL = 0x01 , AUDIO_MPD_CTRL_SECOND_STEREO = 0x02 , AUDIO_MPD_CTRL_MULTILINGUAL = 0x03 ,
  AUDIO_MPD_CTRL_DYN_RANGE = 0x04 , AUDIO_MPD_CTRL_SCALING = 0x05 , AUDIO_MPD_CTRL_HILO_SCALING = 0x06 , AUDIO_MPD_CTRL_UNDERFLOW = 0x07 ,
  AUDIO_MPD_CTRL_OVERFLOW = 0x08 , AUDIO_MPD_CTRL_DECODER_ERROR = 0x09
}
 A.17.13 Decoder Control Selectors. More...
 
enum  audio_AC3_decoder_control_selector_t {
  AUDIO_AD_CTRL_UNDEF = 0x00 , AUDIO_AD_CTRL_MODE = 0x01 , AUDIO_AD_CTRL_DYN_RANGE = 0x02 , AUDIO_AD_CTRL_SCALING = 0x03 ,
  AUDIO_AD_CTRL_HILO_SCALING = 0x04 , AUDIO_AD_CTRL_UNDERFLOW = 0x05 , AUDIO_AD_CTRL_OVERFLOW = 0x06 , AUDIO_AD_CTRL_DECODER_ERROR = 0x07
}
 A.17.13.2 AC-3 Decoder Control Selectors.
 
enum  audio_WMA_decoder_control_selector_t { AUDIO_WD_CTRL_UNDEF = 0x00 , AUDIO_WD_CTRL_UNDERFLOW = 0x01 , AUDIO_WD_CTRL_OVERFLOW = 0x02 , AUDIO_WD_CTRL_DECODER_ERROR = 0x03 }
 A.17.13.3 WMA Decoder Control Selectors.
 
enum  audio_DTS_decoder_control_selector_t { AUDIO_DD_CTRL_UNDEF = 0x00 , AUDIO_DD_CTRL_UNDERFLOW = 0x01 , AUDIO_DD_CTRL_OVERFLOW = 0x02 , AUDIO_DD_CTRL_DECODER_ERROR = 0x03 }
 A.17.13.4 DTS Decoder Control Selectors.
 
enum  audio_EP_control_selector_t { AUDIO_EP_CTRL_UNDEF = 0x00 , AUDIO_EP_CTRL_PITCH = 0x01 , AUDIO_EP_CTRL_DATA_OVERRUN = 0x02 , AUDIO_EP_CTRL_DATA_UNDERRUN = 0x03 }
 A.17.14 Endpoint Control Selectors.
 
enum  audio_terminal_type_t { AUDIO_TERM_TYPE_USB_UNDEFINED = 0x0100 , AUDIO_TERM_TYPE_USB_STREAMING = 0x0101 , AUDIO_TERM_TYPE_USB_VENDOR_SPEC = 0x01FF }
 Terminal Types. More...
 
enum  audio_terminal_input_type_t {
  AUDIO_TERM_TYPE_IN_UNDEFINED = 0x0200 , AUDIO_TERM_TYPE_IN_GENERIC_MIC = 0x0201 , AUDIO_TERM_TYPE_IN_DESKTOP_MIC = 0x0202 , AUDIO_TERM_TYPE_IN_PERSONAL_MIC = 0x0203 ,
  AUDIO_TERM_TYPE_IN_OMNI_MIC = 0x0204 , AUDIO_TERM_TYPE_IN_ARRAY_MIC = 0x0205 , AUDIO_TERM_TYPE_IN_PROC_ARRAY_MIC = 0x0206
}
 2.2 - Audio Class-Input Terminal Types UAC2
 
enum  audio_terminal_output_type_t {
  AUDIO_TERM_TYPE_OUT_UNDEFINED = 0x0300 , AUDIO_TERM_TYPE_OUT_GENERIC_SPEAKER = 0x0301 , AUDIO_TERM_TYPE_OUT_HEADPHONES = 0x0302 , AUDIO_TERM_TYPE_OUT_HEAD_MNT_DISP_AUIDO = 0x0303 ,
  AUDIO_TERM_TYPE_OUT_DESKTOP_SPEAKER = 0x0304 , AUDIO_TERM_TYPE_OUT_ROOM_SPEAKER = 0x0305 , AUDIO_TERM_TYPE_OUT_COMMUNICATION_SPEAKER = 0x0306 , AUDIO_TERM_TYPE_OUT_LOW_FRQ_EFFECTS_SPEAKER = 0x0307
}
 2.3 - Audio Class-Output Terminal Types UAC2
 
enum  audio_format_type_t {
  AUDIO_FORMAT_TYPE_UNDEFINED = 0x00 , AUDIO_FORMAT_TYPE_I = 0x01 , AUDIO_FORMAT_TYPE_II = 0x02 , AUDIO_FORMAT_TYPE_III = 0x03 ,
  AUDIO_FORMAT_TYPE_IV = 0x04 , AUDIO_EXT_FORMAT_TYPE_I = 0x81 , AUDIO_EXT_FORMAT_TYPE_II = 0x82 , AUDIO_EXT_FORMAT_TYPE_III = 0x83
}
 Rest is yet to be implemented. More...
 
enum  audio_data_format_type_I_t {
  AUDIO_DATA_FORMAT_TYPE_I_PCM = (uint32_t) (1 << 0) , AUDIO_DATA_FORMAT_TYPE_I_PCM8 = (uint32_t) (1 << 1) , AUDIO_DATA_FORMAT_TYPE_I_IEEE_FLOAT = (uint32_t) (1 << 2) , AUDIO_DATA_FORMAT_TYPE_I_ALAW = (uint32_t) (1 << 3) ,
  AUDIO_DATA_FORMAT_TYPE_I_MULAW = (uint32_t) (1 << 4) , AUDIO_DATA_FORMAT_TYPE_I_RAW_DATA = 0x80000000
}
 
enum  audio_control_t { AUDIO_CTRL_NONE = 0x00 , AUDIO_CTRL_R = 0x01 , AUDIO_CTRL_RW = 0x03 }
 All remaining definitions are taken from the descriptor descriptions in the UAC2 main specification. More...
 
enum  audio_cs_ac_interface_control_pos_t { AUDIO_CS_AS_INTERFACE_CTRL_LATENCY_POS = 0 }
 Audio Class-Specific AC Interface Descriptor Controls UAC2.
 
enum  audio_cs_as_interface_control_pos_t { AUDIO_CS_AS_INTERFACE_CTRL_ACTIVE_ALT_SET_POS = 0 , AUDIO_CS_AS_INTERFACE_CTRL_VALID_ALT_SET_POS = 2 }
 Audio Class-Specific AS Interface Descriptor Controls UAC2.
 
enum  audio_cs_as_iso_data_ep_attribute_t { AUDIO_CS_AS_ISO_DATA_EP_ATT_MAX_PACKETS_ONLY = 0x80 , AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK = 0x00 }
 Audio Class-Specific AS Isochronous Data EP Attributes UAC2.
 
enum  audio_cs_as_iso_data_ep_control_pos_t { AUDIO_CS_AS_ISO_DATA_EP_CTRL_PITCH_POS = 0 , AUDIO_CS_AS_ISO_DATA_EP_CTRL_DATA_OVERRUN_POS = 2 , AUDIO_CS_AS_ISO_DATA_EP_CTRL_DATA_UNDERRUN_POS = 4 }
 Audio Class-Specific AS Isochronous Data EP Controls UAC2.
 
enum  audio_cs_as_iso_data_ep_lock_delay_unit_t { AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED = 0x00 , AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_MILLISEC = 0x01 , AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_PCM_SAMPLES = 0x02 }
 Audio Class-Specific AS Isochronous Data EP Lock Delay Units UAC2.
 
enum  audio_clock_source_attribute_t {
  AUDIO_CLOCK_SOURCE_ATT_EXT_CLK = 0x00 , AUDIO_CLOCK_SOURCE_ATT_INT_FIX_CLK = 0x01 , AUDIO_CLOCK_SOURCE_ATT_INT_VAR_CLK = 0x02 , AUDIO_CLOCK_SOURCE_ATT_INT_PRO_CLK = 0x03 ,
  AUDIO_CLOCK_SOURCE_ATT_CLK_SYC_SOF = 0x04
}
 Audio Class-Clock Source Attributes UAC2.
 
enum  audio_clock_source_control_pos_t { AUDIO_CLOCK_SOURCE_CTRL_CLK_FRQ_POS = 0 , AUDIO_CLOCK_SOURCE_CTRL_CLK_VAL_POS = 2 }
 Audio Class-Clock Source Controls UAC2.
 
enum  audio_clock_selector_control_pos_t { AUDIO_CLOCK_SELECTOR_CTRL_POS = 0 }
 Audio Class-Clock Selector Controls UAC2.
 
enum  audio_clock_multiplier_control_pos_t { AUDIO_CLOCK_MULTIPLIER_CTRL_NUMERATOR_POS = 0 , AUDIO_CLOCK_MULTIPLIER_CTRL_DENOMINATOR_POS = 2 }
 Audio Class-Clock Multiplier Controls UAC2.
 
enum  audio_terminal_input_control_pos_t {
  AUDIO_IN_TERM_CTRL_CPY_PROT_POS = 0 , AUDIO_IN_TERM_CTRL_CONNECTOR_POS = 2 , AUDIO_IN_TERM_CTRL_OVERLOAD_POS = 4 , AUDIO_IN_TERM_CTRL_CLUSTER_POS = 6 ,
  AUDIO_IN_TERM_CTRL_UNDERFLOW_POS = 8 , AUDIO_IN_TERM_CTRL_OVERFLOW_POS = 10
}
 Audio Class-Input Terminal Controls UAC2.
 
enum  audio_terminal_output_control_pos_t {
  AUDIO_OUT_TERM_CTRL_CPY_PROT_POS = 0 , AUDIO_OUT_TERM_CTRL_CONNECTOR_POS = 2 , AUDIO_OUT_TERM_CTRL_OVERLOAD_POS = 4 , AUDIO_OUT_TERM_CTRL_UNDERFLOW_POS = 6 ,
  AUDIO_OUT_TERM_CTRL_OVERFLOW_POS = 8
}
 Audio Class-Output Terminal Controls UAC2.
 
enum  audio_feature_unit_control_pos_t {
  AUDIO_FEATURE_UNIT_CTRL_MUTE_POS = 0 , AUDIO_FEATURE_UNIT_CTRL_VOLUME_POS = 2 , AUDIO_FEATURE_UNIT_CTRL_BASS_POS = 4 , AUDIO_FEATURE_UNIT_CTRL_MID_POS = 6 ,
  AUDIO_FEATURE_UNIT_CTRL_TREBLE_POS = 8 , AUDIO_FEATURE_UNIT_CTRL_GRAPHIC_EQU_POS = 10 , AUDIO_FEATURE_UNIT_CTRL_AGC_POS = 12 , AUDIO_FEATURE_UNIT_CTRL_DELAY_POS = 14 ,
  AUDIO_FEATURE_UNIT_CTRL_BASS_BOOST_POS = 16 , AUDIO_FEATURE_UNIT_CTRL_LOUDNESS_POS = 18 , AUDIO_FEATURE_UNIT_CTRL_INPUT_GAIN_POS = 20 , AUDIO_FEATURE_UNIT_CTRL_INPUT_GAIN_PAD_POS = 22 ,
  AUDIO_FEATURE_UNIT_CTRL_PHASE_INV_POS = 24 , AUDIO_FEATURE_UNIT_CTRL_UNDERFLOW_POS = 26 , AUDIO_FEATURE_UNIT_CTRL_OVERFLOW_POS = 28
}
 Audio Class-Feature Unit Controls UAC2.
 
enum  audio_channel_config_t {
  AUDIO_CHANNEL_CONFIG_NON_PREDEFINED = 0x00000000 , AUDIO_CHANNEL_CONFIG_FRONT_LEFT = 0x00000001 , AUDIO_CHANNEL_CONFIG_FRONT_RIGHT = 0x00000002 , AUDIO_CHANNEL_CONFIG_FRONT_CENTER = 0x00000004 ,
  AUDIO_CHANNEL_CONFIG_LOW_FRQ_EFFECTS = 0x00000008 , AUDIO_CHANNEL_CONFIG_BACK_LEFT = 0x00000010 , AUDIO_CHANNEL_CONFIG_BACK_RIGHT = 0x00000020 , AUDIO_CHANNEL_CONFIG_FRONT_LEFT_OF_CENTER = 0x00000040 ,
  AUDIO_CHANNEL_CONFIG_FRONT_RIGHT_OF_CENTER = 0x00000080 , AUDIO_CHANNEL_CONFIG_BACK_CENTER = 0x00000100 , AUDIO_CHANNEL_CONFIG_SIDE_LEFT = 0x00000200 , AUDIO_CHANNEL_CONFIG_SIDE_RIGHT = 0x00000400 ,
  AUDIO_CHANNEL_CONFIG_TOP_CENTER = 0x00000800 , AUDIO_CHANNEL_CONFIG_TOP_FRONT_LEFT = 0x00001000 , AUDIO_CHANNEL_CONFIG_TOP_FRONT_CENTER = 0x00002000 , AUDIO_CHANNEL_CONFIG_TOP_FRONT_RIGHT = 0x00004000 ,
  AUDIO_CHANNEL_CONFIG_TOP_BACK_LEFT = 0x00008000 , AUDIO_CHANNEL_CONFIG_TOP_BACK_CENTER = 0x00010000 , AUDIO_CHANNEL_CONFIG_TOP_BACK_RIGHT = 0x00020000 , AUDIO_CHANNEL_CONFIG_TOP_FRONT_LEFT_OF_CENTER = 0x00040000 ,
  AUDIO_CHANNEL_CONFIG_TOP_FRONT_RIGHT_OF_CENTER = 0x00080000 , AUDIO_CHANNEL_CONFIG_LEFT_LOW_FRQ_EFFECTS = 0x00100000 , AUDIO_CHANNEL_CONFIG_RIGHT_LOW_FRQ_EFFECTS = 0x00200000 , AUDIO_CHANNEL_CONFIG_TOP_SIDE_LEFT = 0x00400000 ,
  AUDIO_CHANNEL_CONFIG_TOP_SIDE_RIGHT = 0x00800000 , AUDIO_CHANNEL_CONFIG_BOTTOM_CENTER = 0x01000000 , AUDIO_CHANNEL_CONFIG_BACK_LEFT_OF_CENTER = 0x02000000 , AUDIO_CHANNEL_CONFIG_BACK_RIGHT_OF_CENTER = 0x04000000 ,
  AUDIO_CHANNEL_CONFIG_RAW_DATA = 0x80000000
}
 Audio Class-Audio Channel Configuration UAC2.
 

Macro Definition Documentation

◆ audio_control_range_1_n_t

#define audio_control_range_1_n_t ( numSubRanges)
Value:
struct TU_ATTR_PACKED { \
uint16_t wNumSubRanges; \
struct TU_ATTR_PACKED { \
int8_t bMin ; /*The setting for the MIN attribute of the nth subrange of the addressed Control*/\
int8_t bMax ; /*The setting for the MAX attribute of the nth subrange of the addressed Control*/\
uint8_t bRes ; /*The setting for the RES attribute of the nth subrange of the addressed Control*/\
} subrange[numSubRanges] ; \
}
AUDIO Channel Cluster Descriptor (4.1)
Definition audio.h:647

◆ audio_control_range_2_n_t

#define audio_control_range_2_n_t ( numSubRanges)
Value:
struct TU_ATTR_PACKED { \
uint16_t wNumSubRanges; \
struct TU_ATTR_PACKED { \
int16_t bMin ; /*The setting for the MIN attribute of the nth subrange of the addressed Control*/\
int16_t bMax ; /*The setting for the MAX attribute of the nth subrange of the addressed Control*/\
uint16_t bRes ; /*The setting for the RES attribute of the nth subrange of the addressed Control*/\
} subrange[numSubRanges]; \
}

◆ audio_control_range_4_n_t

#define audio_control_range_4_n_t ( numSubRanges)
Value:
struct TU_ATTR_PACKED { \
uint16_t wNumSubRanges; \
struct TU_ATTR_PACKED { \
int32_t bMin ; /*The setting for the MIN attribute of the nth subrange of the addressed Control*/\
int32_t bMax ; /*The setting for the MAX attribute of the nth subrange of the addressed Control*/\
uint32_t bRes ; /*The setting for the RES attribute of the nth subrange of the addressed Control*/\
} subrange[numSubRanges]; \
}

◆ audio_desc_clock_selector_n_t

#define audio_desc_clock_selector_n_t ( source_num)
Value:
struct TU_ATTR_PACKED { \
uint8_t bLength ; \
uint8_t bDescriptorType ; \
uint8_t bDescriptorSubType ; \
uint8_t bClockID ; \
uint8_t bNrInPins ; \
struct TU_ATTR_PACKED { \
uint8_t baSourceID ; \
} sourceID[source_num] ; \
uint8_t bmControls ; \
uint8_t iClockSource ; \
}
uint8_t bDescriptorSubType
Descriptor SubType. Value: AUDIO_CS_AC_INTERFACE_HEADER.
Definition audio.h:658
uint8_t bDescriptorType
Descriptor Type. Value: TUSB_DESC_CS_INTERFACE.
Definition audio.h:657
uint8_t bLength
Size of this descriptor in bytes: 9.
Definition audio.h:656
uint8_t bmControls
See: audio_cs_ac_interface_control_pos_t.
Definition audio.h:662
uint8_t iClockSource
Index of a string descriptor, describing the Clock Source Entity.
Definition audio.h:675
uint8_t bNrInPins
Number of Input Pins of this Unit: p = 1 thus bNrInPins = 1.
Definition audio.h:685
uint8_t bClockID
Constant uniquely identifying the Clock Source Entity within the audio function. This value is used i...
Definition audio.h:671

◆ audio_desc_feature_unit_n_t

#define audio_desc_feature_unit_n_t ( ch_num)
Value:
struct TU_ATTR_PACKED { \
uint8_t bLength ; /* 6+(ch_num+1)*4 */\
uint8_t bDescriptorType ; \
uint8_t bDescriptorSubType ; \
uint8_t bUnitID ; \
uint8_t bSourceID ; \
struct TU_ATTR_PACKED { \
uint32_t bmaControls ; \
} controls[ch_num+1] ; \
uint8_t iTerminal ; \
}
uint8_t bUnitID
Constant uniquely identifying the Unit within the audio function. This value is used in all requests ...
Definition audio.h:756
uint8_t bSourceID
ID of the Unit or Terminal to which this Terminal is connected.
Definition audio.h:744
uint8_t iTerminal
Index of a string descriptor, describing the Input Terminal.
Definition audio.h:732

Enumeration Type Documentation

◆ audio_clock_src_control_selector_t

A.17.1 - Clock Source Control Selectors

◆ audio_control_t

Audio Class-Control Values UAC2

Enumerator
AUDIO_CTRL_NONE 

No Host access.

AUDIO_CTRL_R 

Host read access only.

AUDIO_CTRL_RW 

Host read write access.

◆ audio_format_type_t

Additional Audio Device Class Codes - Source: Audio Data Formats A.1 - Audio Class-Format Type Codes UAC2

◆ audio_function_protocol_code_t

Enumerator
AUDIO_FUNC_PROTOCOL_CODE_V2 

Version 2.0.

◆ audio_function_subclass_type_t

A.2 - Audio Function Subclass Codes

◆ audio_interface_protocol_code_t

Enumerator
AUDIO_INT_PROTOCOL_CODE_V2 

Version 2.0.

◆ audio_MPEG_decoder_control_selector_t

A.17.13.1 MPEG Decoder Control Selectors

◆ audio_parametric_equalizer_control_selector_t

A.17.8.1 Parametric Equalizer Section Effect Unit Control Selectors

◆ audio_subclass_type_t

Enumerator
AUDIO_SUBCLASS_CONTROL 

Audio Control.

AUDIO_SUBCLASS_STREAMING 

Audio Streaming.

AUDIO_SUBCLASS_MIDI_STREAMING 

MIDI Streaming.

◆ audio_terminal_type_t

2.1 - Audio Class-Terminal Types UAC2

◆ audio_up_down_mix_control_selector_t

A.17.9.1 Up/Down-mix Processing Unit Control Selectors