33#ifndef _TUSB_AUDIO_H__
34#define _TUSB_AUDIO_H__
692#define audio_desc_clock_selector_n_t(source_num) \
693 struct TU_ATTR_PACKED { \
695 uint8_t bDescriptorType ; \
696 uint8_t bDescriptorSubType ; \
698 uint8_t bNrInPins ; \
699 struct TU_ATTR_PACKED { \
700 uint8_t baSourceID ; \
701 } sourceID[source_num] ; \
702 uint8_t bmControls ; \
703 uint8_t iClockSource ; \
765#define audio_desc_feature_unit_n_t(ch_num)\
766 struct TU_ATTR_PACKED { \
768 uint8_t bDescriptorType ; \
769 uint8_t bDescriptorSubType ; \
771 uint8_t bSourceID ; \
772 struct TU_ATTR_PACKED { \
773 uint32_t bmaControls ; \
774 } controls[ch_num+1] ; \
775 uint8_t iTerminal ; \
895#define audio_control_range_1_n_t(numSubRanges) \
896 struct TU_ATTR_PACKED { \
897 uint16_t wNumSubRanges; \
898 struct TU_ATTR_PACKED { \
902 } subrange[numSubRanges] ; \
906#define audio_control_range_2_n_t(numSubRanges) \
907 struct TU_ATTR_PACKED { \
908 uint16_t wNumSubRanges; \
909 struct TU_ATTR_PACKED { \
913 } subrange[numSubRanges]; \
917#define audio_control_range_4_n_t(numSubRanges) \
918 struct TU_ATTR_PACKED { \
919 uint16_t wNumSubRanges; \
920 struct TU_ATTR_PACKED { \
924 } subrange[numSubRanges]; \
struct TU_ATTR_PACKED audio_desc_clock_multiplier_t
AUDIO Clock Multiplier Descriptor (4.7.2.3)
audio_clock_source_attribute_t
Audio Class-Clock Source Attributes UAC2.
audio_cs_as_interface_subtype_t
A.10 - Audio Class-Specific AS Interface Descriptor Subtypes UAC2.
struct TU_ATTR_PACKED audio_desc_type_I_format_t
AUDIO Type I Format Type Descriptor(2.3.1.6 - Audio Formats)
audio_cs_ac_interface_subtype_t
A.9 - Audio Class-Specific AC Interface Descriptor Subtypes UAC2.
struct TU_ATTR_PACKED audio_desc_output_terminal_t
AUDIO Output Terminal Descriptor(4.7.2.5)
struct TU_ATTR_PACKED audio_control_range_4_t
audio_DTS_decoder_control_selector_t
A.17.13.4 DTS Decoder Control Selectors.
audio_AC3_decoder_control_selector_t
A.17.13.2 AC-3 Decoder Control Selectors.
audio_encoder_control_selector_t
A.17.12 Encoder Control Selectors.
struct TU_ATTR_PACKED audio_desc_channel_cluster_t
AUDIO Channel Cluster Descriptor (4.1)
audio_modulation_delay_control_selector_t
A.17.8.3 Modulation Delay Effect Unit Control Selectors.
audio_effect_unit_effect_type_t
A.11 - Effect Unit Effect Types.
audio_EP_control_selector_t
A.17.14 Endpoint Control Selectors.
audio_data_format_type_I_t
struct TU_ATTR_PACKED audio_desc_input_terminal_t
AUDIO Input Terminal Descriptor(4.7.2.4)
audio_terminal_input_type_t
2.2 - Audio Class-Input Terminal Types UAC2
audio_sel_control_selector_t
A.17.6 - Selector Control Selectors.
struct TU_ATTR_PACKED audio_control_cur_1_t
audio_clock_source_control_pos_t
Audio Class-Clock Source Controls UAC2.
struct TU_ATTR_PACKED audio_control_range_2_t
struct TU_ATTR_PACKED audio_interrupt_data_t
audio_clock_selector_control_pos_t
Audio Class-Clock Selector Controls UAC2.
audio_parametric_equalizer_control_selector_t
A.17.8 Effect Unit Control Selectors.
struct TU_ATTR_PACKED audio_desc_feature_unit_t
AUDIO Feature Unit Descriptor(4.7.2.8) for ONE channel.
audio_clock_multiplier_control_pos_t
Audio Class-Clock Multiplier Controls UAC2.
struct TU_ATTR_PACKED audio_desc_clock_source_t
AUDIO Clock Source Descriptor (4.7.2.1)
audio_extension_unit_control_selector_t
A.17.10 Extension Unit Control Selectors.
audio_clock_src_control_selector_t
A.17 - Control Selector Codes.
struct TU_ATTR_PACKED audio_control_range_1_t
audio_cs_as_iso_data_ep_lock_delay_unit_t
Audio Class-Specific AS Isochronous Data EP Lock Delay Units UAC2.
audio_cs_as_iso_data_ep_attribute_t
Audio Class-Specific AS Isochronous Data EP Attributes UAC2.
struct TU_ATTR_PACKED audio_control_cur_4_t
audio_clock_sel_control_selector_t
A.17.2 - Clock Selector Control Selectors.
audio_function_subclass_type_t
Audio Device Class Codes.
audio_stereo_extender_control_selector_t
A.17.9.3 Stereo Extender Processing Unit Control Selectors.
audio_audiostreaming_interface_control_selector_t
A.17.11 AudioStreaming Interface Control Selectors.
audio_terminal_control_selector_t
A.17.4 - Terminal Control Selectors.
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)
audio_subclass_type_t
A.5 - Audio Interface Subclass Codes.
audio_clock_mul_control_selector_t
A.17.3 - Clock Multiplier Control Selectors.
audio_cs_ac_interface_control_pos_t
Audio Class-Specific AC Interface Descriptor Controls UAC2.
audio_dynamic_range_compression_control_selector_t
A.17.8.4 Dynamic Range Compressor Effect Unit Control Selectors.
audio_terminal_input_control_pos_t
Audio Class-Input Terminal Controls UAC2.
audio_feature_unit_control_pos_t
Audio Class-Feature Unit Controls UAC2.
audio_WMA_decoder_control_selector_t
A.17.13.3 WMA Decoder Control Selectors.
audio_cs_as_iso_data_ep_control_pos_t
Audio Class-Specific AS Isochronous Data EP Controls UAC2.
audio_cs_req_t
A.14 - Audio Class-Specific Request Codes.
audio_terminal_type_t
Terminal Types.
struct TU_ATTR_PACKED audio_desc_clock_selector_t
AUDIO Clock Selector Descriptor (4.7.2.2) for ONE pin.
audio_processing_unit_process_type_t
A.12 - Processing Unit Process Types.
struct TU_ATTR_PACKED audio_desc_cs_as_interface_t
AUDIO Class-Specific AS Interface Descriptor(4.9.2)
audio_up_down_mix_control_selector_t
A.17.9 Processing Unit Control Selectors.
audio_control_t
All remaining definitions are taken from the descriptor descriptions in the UAC2 main specification.
struct TU_ATTR_PACKED audio_desc_cs_ac_interface_t
AUDIO Class-Specific AC Interface Header Descriptor (4.7.2)
audio_cs_as_interface_control_pos_t
Audio Class-Specific AS Interface Descriptor Controls UAC2.
audio_cs_ep_subtype_t
A.13 - Audio Class-Specific EP Descriptor Subtypes UAC2.
audio_MPEG_decoder_control_selector_t
A.17.13 Decoder Control Selectors.
struct TU_ATTR_PACKED audio_control_cur_2_t
audio_interface_protocol_code_t
A.6 - Audio Interface Protocol Codes.
audio_function_code_t
A.7 - Audio Function Category Codes.
audio_feature_unit_control_selector_t
A.17.7 - Feature Unit Control Selectors.
audio_terminal_output_control_pos_t
Audio Class-Output Terminal Controls UAC2.
audio_format_type_t
Rest is yet to be implemented.
audio_channel_config_t
Audio Class-Audio Channel Configuration UAC2.
audio_function_protocol_code_t
A.3 - Audio Function Protocol Codes.
audio_mixer_control_selector_t
A.17.5 - Mixer Control Selectors.
struct TU_ATTR_PACKED audio_control_request_t
audio_dolby_prologic_control_selector_t
A.17.9.2 Dolby Prologic â„¢ Processing Unit Control Selectors.
audio_terminal_output_type_t
2.3 - Audio Class-Output Terminal Types UAC2
audio_reverberation_effect_control_selector_t
A.17.8.2 Reverberation Effect Unit Control Selectors.
@ AUDIO_CLOCK_SOURCE_ATT_INT_FIX_CLK
@ AUDIO_CLOCK_SOURCE_ATT_EXT_CLK
@ AUDIO_CLOCK_SOURCE_ATT_INT_PRO_CLK
@ AUDIO_CLOCK_SOURCE_ATT_CLK_SYC_SOF
@ AUDIO_CLOCK_SOURCE_ATT_INT_VAR_CLK
@ AUDIO_CS_AS_INTERFACE_FORMAT_TYPE
@ AUDIO_CS_AS_INTERFACE_ENCODER
@ AUDIO_CS_AS_INTERFACE_AS_GENERAL
@ AUDIO_CS_AS_INTERFACE_AS_DESCRIPTOR_UNDEF
@ AUDIO_CS_AS_INTERFACE_DECODER
@ AUDIO_CS_AC_INTERFACE_EXTENSION_UNIT
@ AUDIO_CS_AC_INTERFACE_HEADER
@ AUDIO_CS_AC_INTERFACE_INPUT_TERMINAL
@ AUDIO_CS_AC_INTERFACE_CLOCK_SOURCE
@ AUDIO_CS_AC_INTERFACE_SELECTOR_UNIT
@ AUDIO_CS_AC_INTERFACE_FEATURE_UNIT
@ AUDIO_CS_AC_INTERFACE_OUTPUT_TERMINAL
@ AUDIO_CS_AC_INTERFACE_AC_DESCRIPTOR_UNDEF
@ AUDIO_CS_AC_INTERFACE_SAMPLE_RATE_CONVERTER
@ AUDIO_CS_AC_INTERFACE_MIXER_UNIT
@ AUDIO_CS_AC_INTERFACE_EFFECT_UNIT
@ AUDIO_CS_AC_INTERFACE_CLOCK_MULTIPLIER
@ AUDIO_CS_AC_INTERFACE_CLOCK_SELECTOR
@ AUDIO_CS_AC_INTERFACE_PROCESSING_UNIT
@ AUDIO_DD_CTRL_DECODER_ERROR
@ AUDIO_DD_CTRL_UNDERFLOW
@ AUDIO_AD_CTRL_HILO_SCALING
@ AUDIO_AD_CTRL_UNDERFLOW
@ AUDIO_AD_CTRL_DECODER_ERROR
@ AUDIO_AD_CTRL_DYN_RANGE
@ AUDIO_EN_CTRL_ENCODER_ERROR
@ AUDIO_EN_CTRL_UNDERFLOW
@ AUDIO_MD_CTRL_UNDERFLOW
@ AUDIO_EFFECT_TYPE_PARAM_EQ_SECTION
@ AUDIO_EFFECT_TYPE_MOD_DELAY
@ AUDIO_EFFECT_TYPE_REVERBERATION
@ AUDIO_EFFECT_TYPE_DYN_RANGE_COMP
@ AUDIO_EFFECT_TYPE_UNDEF
@ AUDIO_EP_CTRL_DATA_OVERRUN
@ AUDIO_EP_CTRL_DATA_UNDERRUN
@ AUDIO_DATA_FORMAT_TYPE_I_ALAW
@ AUDIO_DATA_FORMAT_TYPE_I_MULAW
@ AUDIO_DATA_FORMAT_TYPE_I_IEEE_FLOAT
@ AUDIO_DATA_FORMAT_TYPE_I_RAW_DATA
@ AUDIO_DATA_FORMAT_TYPE_I_PCM
@ AUDIO_DATA_FORMAT_TYPE_I_PCM8
@ AUDIO_TERM_TYPE_IN_OMNI_MIC
@ AUDIO_TERM_TYPE_IN_ARRAY_MIC
@ AUDIO_TERM_TYPE_IN_PROC_ARRAY_MIC
@ AUDIO_TERM_TYPE_IN_UNDEFINED
@ AUDIO_TERM_TYPE_IN_DESKTOP_MIC
@ AUDIO_TERM_TYPE_IN_GENERIC_MIC
@ AUDIO_TERM_TYPE_IN_PERSONAL_MIC
@ AUDIO_CLOCK_SOURCE_CTRL_CLK_FRQ_POS
@ AUDIO_CLOCK_SOURCE_CTRL_CLK_VAL_POS
@ AUDIO_CLOCK_SELECTOR_CTRL_POS
@ AUDIO_PE_CTRL_UNDERFLOW
@ AUDIO_PE_CTRL_CENTERFREQ
@ AUDIO_CLOCK_MULTIPLIER_CTRL_NUMERATOR_POS
@ AUDIO_CLOCK_MULTIPLIER_CTRL_DENOMINATOR_POS
@ AUDIO_XU_CTRL_UNDERFLOW
@ AUDIO_CS_CTRL_CLK_VALID
@ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED
@ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_MILLISEC
@ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_PCM_SAMPLES
@ AUDIO_CS_AS_ISO_DATA_EP_ATT_MAX_PACKETS_ONLY
@ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK
@ AUDIO_FUNCTION_SUBCLASS_UNDEFINED
@ AUDIO_ST_EXT_CTRL_UNDERFLOW
@ AUDIO_ST_EXT_CTRL_LATENCY
@ AUDIO_ST_EXT_CTRL_ENABLE
@ AUDIO_ST_EXT_CTRL_OVERFLOW
@ AUDIO_ST_EXT_CTRL_WIDTH
@ AUDIO_ST_EXT_CTRL_UNDEF
@ AUDIO_AS_CTRL_AUDIO_DATA_FORMAT
@ AUDIO_AS_CTRL_VAL_ALT_SETTINGS
@ AUDIO_AS_CTRL_ACT_ALT_SETTING
@ AUDIO_TE_CTRL_COPY_PROTECT
@ AUDIO_TE_CTRL_UNDERFLOW
@ AUDIO_TE_CTRL_CONNECTOR
@ AUDIO_SUBCLASS_UNDEFINED
@ AUDIO_SUBCLASS_MIDI_STREAMING
MIDI Streaming.
@ AUDIO_SUBCLASS_CONTROL
Audio Control.
@ AUDIO_SUBCLASS_STREAMING
Audio Streaming.
@ AUDIO_CM_CTRL_DENOMINATOR_CONTROL
@ AUDIO_CM_CTRL_NUMERATOR_CONTROL
@ AUDIO_CS_AS_INTERFACE_CTRL_LATENCY_POS
@ AUDIO_DR_CTRL_UNDERFLOW
@ AUDIO_DR_CTRL_RELEASE_TIME
@ AUDIO_DR_CTRL_ATTACK_TIME
@ AUDIO_DR_CTRL_COMPRESSION_RATE
@ AUDIO_DR_CTRL_THRESHOLD
@ AUDIO_IN_TERM_CTRL_OVERLOAD_POS
@ AUDIO_IN_TERM_CTRL_UNDERFLOW_POS
@ AUDIO_IN_TERM_CTRL_CPY_PROT_POS
@ AUDIO_IN_TERM_CTRL_CLUSTER_POS
@ AUDIO_IN_TERM_CTRL_CONNECTOR_POS
@ AUDIO_IN_TERM_CTRL_OVERFLOW_POS
@ AUDIO_FEATURE_UNIT_CTRL_OVERFLOW_POS
@ AUDIO_FEATURE_UNIT_CTRL_LOUDNESS_POS
@ AUDIO_FEATURE_UNIT_CTRL_BASS_BOOST_POS
@ AUDIO_FEATURE_UNIT_CTRL_MUTE_POS
@ AUDIO_FEATURE_UNIT_CTRL_TREBLE_POS
@ AUDIO_FEATURE_UNIT_CTRL_BASS_POS
@ AUDIO_FEATURE_UNIT_CTRL_VOLUME_POS
@ AUDIO_FEATURE_UNIT_CTRL_PHASE_INV_POS
@ AUDIO_FEATURE_UNIT_CTRL_GRAPHIC_EQU_POS
@ AUDIO_FEATURE_UNIT_CTRL_UNDERFLOW_POS
@ AUDIO_FEATURE_UNIT_CTRL_INPUT_GAIN_PAD_POS
@ AUDIO_FEATURE_UNIT_CTRL_DELAY_POS
@ AUDIO_FEATURE_UNIT_CTRL_MID_POS
@ AUDIO_FEATURE_UNIT_CTRL_AGC_POS
@ AUDIO_FEATURE_UNIT_CTRL_INPUT_GAIN_POS
@ AUDIO_WD_CTRL_DECODER_ERROR
@ AUDIO_WD_CTRL_UNDERFLOW
@ AUDIO_CS_AS_ISO_DATA_EP_CTRL_DATA_UNDERRUN_POS
@ AUDIO_CS_AS_ISO_DATA_EP_CTRL_PITCH_POS
@ AUDIO_CS_AS_ISO_DATA_EP_CTRL_DATA_OVERRUN_POS
@ AUDIO_TERM_TYPE_USB_VENDOR_SPEC
@ AUDIO_TERM_TYPE_USB_UNDEFINED
@ AUDIO_TERM_TYPE_USB_STREAMING
@ AUDIO_PROCESS_TYPE_UNDEF
@ AUDIO_PROCESS_TYPE_STEREO_EXTENDER
@ AUDIO_PROCESS_TYPE_UP_DOWN_MIX
@ AUDIO_PROCESS_TYPE_DOLBY_PROLOGIC
@ AUDIO_UD_CTRL_UNDERFLOW
@ AUDIO_UD_CTRL_MODE_SELECT
@ AUDIO_CTRL_NONE
No Host access.
@ AUDIO_CTRL_R
Host read access only.
@ AUDIO_CTRL_RW
Host read write access.
@ AUDIO_CS_AS_INTERFACE_CTRL_ACTIVE_ALT_SET_POS
@ AUDIO_CS_AS_INTERFACE_CTRL_VALID_ALT_SET_POS
@ AUDIO_CS_EP_SUBTYPE_UNDEF
@ AUDIO_CS_EP_SUBTYPE_GENERAL
@ AUDIO_MPD_CTRL_HILO_SCALING
@ AUDIO_MPD_CTRL_MULTILINGUAL
@ AUDIO_MPD_CTRL_DUAL_CHANNEL
@ AUDIO_MPD_CTRL_DECODER_ERROR
@ AUDIO_MPD_CTRL_UNDERFLOW
@ AUDIO_MPD_CTRL_DYN_RANGE
@ AUDIO_MPD_CTRL_OVERFLOW
@ AUDIO_MPD_CTRL_SECOND_STEREO
@ AUDIO_INT_PROTOCOL_CODE_UNDEF
@ AUDIO_INT_PROTOCOL_CODE_V2
Version 2.0.
@ AUDIO_FUNC_HOME_THEATER
@ AUDIO_FUNC_CONTROL_PANEL
@ AUDIO_FUNC_MUSICAL_INSTRUMENT
@ AUDIO_FUNC_SOUND_RECODER
@ AUDIO_FUNC_DESKTOP_SPEAKER
@ AUDIO_FU_CTRL_INPUT_GAIN
@ AUDIO_FU_CTRL_BASS_BOOST
@ AUDIO_FU_CTRL_UNDERFLOW
@ AUDIO_FU_CTRL_GRAPHIC_EQUALIZER
@ AUDIO_OUT_TERM_CTRL_OVERLOAD_POS
@ AUDIO_OUT_TERM_CTRL_CPY_PROT_POS
@ AUDIO_OUT_TERM_CTRL_CONNECTOR_POS
@ AUDIO_OUT_TERM_CTRL_OVERFLOW_POS
@ AUDIO_OUT_TERM_CTRL_UNDERFLOW_POS
@ AUDIO_FORMAT_TYPE_UNDEFINED
@ AUDIO_EXT_FORMAT_TYPE_II
@ AUDIO_EXT_FORMAT_TYPE_III
@ AUDIO_EXT_FORMAT_TYPE_I
@ AUDIO_CHANNEL_CONFIG_RAW_DATA
@ AUDIO_CHANNEL_CONFIG_TOP_FRONT_LEFT
@ AUDIO_CHANNEL_CONFIG_TOP_BACK_CENTER
@ AUDIO_CHANNEL_CONFIG_TOP_FRONT_RIGHT
@ AUDIO_CHANNEL_CONFIG_BOTTOM_CENTER
@ AUDIO_CHANNEL_CONFIG_SIDE_LEFT
@ AUDIO_CHANNEL_CONFIG_TOP_CENTER
@ AUDIO_CHANNEL_CONFIG_NON_PREDEFINED
@ AUDIO_CHANNEL_CONFIG_BACK_RIGHT_OF_CENTER
@ AUDIO_CHANNEL_CONFIG_BACK_LEFT
@ AUDIO_CHANNEL_CONFIG_FRONT_RIGHT_OF_CENTER
@ AUDIO_CHANNEL_CONFIG_BACK_RIGHT
@ AUDIO_CHANNEL_CONFIG_LOW_FRQ_EFFECTS
@ AUDIO_CHANNEL_CONFIG_RIGHT_LOW_FRQ_EFFECTS
@ AUDIO_CHANNEL_CONFIG_BACK_LEFT_OF_CENTER
@ AUDIO_CHANNEL_CONFIG_TOP_BACK_RIGHT
@ AUDIO_CHANNEL_CONFIG_FRONT_CENTER
@ AUDIO_CHANNEL_CONFIG_FRONT_RIGHT
@ AUDIO_CHANNEL_CONFIG_SIDE_RIGHT
@ AUDIO_CHANNEL_CONFIG_TOP_BACK_LEFT
@ AUDIO_CHANNEL_CONFIG_TOP_FRONT_CENTER
@ AUDIO_CHANNEL_CONFIG_BACK_CENTER
@ AUDIO_CHANNEL_CONFIG_FRONT_LEFT_OF_CENTER
@ AUDIO_CHANNEL_CONFIG_TOP_FRONT_RIGHT_OF_CENTER
@ AUDIO_CHANNEL_CONFIG_TOP_SIDE_RIGHT
@ AUDIO_CHANNEL_CONFIG_TOP_SIDE_LEFT
@ AUDIO_CHANNEL_CONFIG_TOP_FRONT_LEFT_OF_CENTER
@ AUDIO_CHANNEL_CONFIG_LEFT_LOW_FRQ_EFFECTS
@ AUDIO_CHANNEL_CONFIG_FRONT_LEFT
@ AUDIO_FUNC_PROTOCOL_CODE_V2
Version 2.0.
@ AUDIO_FUNC_PROTOCOL_CODE_UNDEF
@ AUDIO_MU_CTRL_UNDERFLOW
@ AUDIO_DP_CTRL_UNDERFLOW
@ AUDIO_DP_CTRL_MODE_SELECT
@ AUDIO_TERM_TYPE_OUT_ROOM_SPEAKER
@ AUDIO_TERM_TYPE_OUT_HEAD_MNT_DISP_AUIDO
@ AUDIO_TERM_TYPE_OUT_DESKTOP_SPEAKER
@ AUDIO_TERM_TYPE_OUT_LOW_FRQ_EFFECTS_SPEAKER
@ AUDIO_TERM_TYPE_OUT_UNDEFINED
@ AUDIO_TERM_TYPE_OUT_COMMUNICATION_SPEAKER
@ AUDIO_TERM_TYPE_OUT_GENERIC_SPEAKER
@ AUDIO_TERM_TYPE_OUT_HEADPHONES
@ AUDIO_RV_CTRL_HIFREQ_ROLLOFF
@ AUDIO_RV_CTRL_UNDERFLOW
uint32_t bmaControls
See: audio_feature_unit_control_pos_t. Controls0 is master channel 0 (always present) and Controls1 i...
AUDIO Channel Cluster Descriptor (4.1)
uint8_t bUnitID
Constant uniquely identifying the Unit within the audio function. This value is used in all requests ...
uint8_t bAssocTerminal
Terminal ID of the Terminal that is associated with this Clock Source.
uint8_t bCSourceID
ID of the Clock Entity to which the last Clock Input Pin of this Clock Selector Entity is connected.
uint8_t bmControls
See: audio_cs_ac_interface_control_pos_t.
struct TU_ATTR_PACKED::TU_ATTR_PACKED subrange[]
uint8_t baCSourceID
ID of the Clock Entity to which the first Clock Input Pin of this Clock Selector Entity is connected....
uint8_t bDescriptorSubType
Descriptor SubType. Value: AUDIO_CS_AC_INTERFACE_HEADER.
uint8_t bBitResolution
The number of effectively used bits from the available bits in an audio subslot.
uint8_t type
Request type tusb_request_type_t.
int32_t bCur
The setting for the CUR attribute of the addressed Control.
uint16_t wTotalLength
Total number of bytes returned for the class-specific AudioControl interface descriptor....
uint8_t bTerminalID
Constant uniquely identifying the Terminal within the audio function. This value is used in all reque...
uint8_t bSourceID
ID of the Unit or Terminal to which this Terminal is connected.
uint32_t bmFormats
The Audio Data Format(s) that can be used to communicate with this interface.See: audio_data_format_t...
uint16_t bmControls
See: audio_terminal_input_control_pos_t.
uint16_t wTerminalType
Constant characterizing the type of Terminal. See: audio_terminal_type_t for USB streaming and audio_...
struct TU_ATTR_PACKED::@16::TU_ATTR_PACKED bmRequestType_bit
int16_t bCur
The setting for the CUR attribute of the addressed Control.
uint8_t bmAttributes
See: audio_clock_source_attribute_t.
uint16_t bcdADC
Audio Device Class Specification Release Number in Binary-Coded Decimal. Value: U16_TO_U8S_LE(0x0200)...
uint8_t bTerminalLink
The Terminal ID of the Terminal to which this interface is connected.
struct TU_ATTR_PACKED::TU_ATTR_PACKED controls[2]
uint8_t iChannelNames
Index of a string descriptor, describing the name of the first inserted channel with a non-predefined...
uint8_t bCategory
Constant, indicating the primary use of this audio function, as intended by the manufacturer....
uint8_t iTerminal
Index of a string descriptor, describing the Input Terminal.
uint8_t direction
Direction type. tusb_dir_t.
uint8_t bLockDelayUnits
Indicates the units used for the wLockDelay field. See: audio_cs_as_iso_data_ep_lock_delay_unit_t.
uint8_t bDescriptorType
Descriptor Type. Value: TUSB_DESC_CS_INTERFACE.
uint8_t iClockSource
Index of a string descriptor, describing the Clock Source Entity.
uint8_t bSubslotSize
The number of bytes occupied by one audio subslot. Can be 1, 2, 3 or 4.
uint8_t bLength
Size of this descriptor in bytes: 9.
uint8_t bNrInPins
Number of Input Pins of this Unit: p = 1 thus bNrInPins = 1.
uint16_t wLockDelay
Indicates the time it takes this endpoint to reliably lock its internal clock recovery circuitry....
int8_t bCur
The setting for the CUR attribute of the addressed Control.
uint8_t bNrChannels
Number of channels currently connected.
uint8_t recipient
Recipient type tusb_request_recipient_t.
uint8_t bRequest
Request type audio_cs_req_t.
audio_channel_config_t bmChannelConfig
Bitmap according to 'audio_channel_config_t' with a 1 set if channel is connected and 0 else....
uint8_t bClockID
Constant uniquely identifying the Clock Source Entity within the audio function. This value is used i...
uint8_t bFormatType
Constant identifying the Format Type the AudioStreaming interface is using. See: audio_format_type_t.