mirror of
https://github.com/azure-rtos/usbx.git
synced 2025-10-21 06:01:50 +08:00
1201 lines
48 KiB
C
1201 lines
48 KiB
C
/***************************************************************************
|
|
* Copyright (c) 2024 Microsoft Corporation
|
|
*
|
|
* This program and the accompanying materials are made available under the
|
|
* terms of the MIT License which is available at
|
|
* https://opensource.org/licenses/MIT.
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
**************************************************************************/
|
|
|
|
|
|
/**************************************************************************/
|
|
/**************************************************************************/
|
|
/** */
|
|
/** USBX Component */
|
|
/** */
|
|
/** Audio Class */
|
|
/** */
|
|
/**************************************************************************/
|
|
/**************************************************************************/
|
|
|
|
|
|
/**************************************************************************/
|
|
/* */
|
|
/* COMPONENT DEFINITION RELEASE */
|
|
/* */
|
|
/* ux_class_audio10.h PORTABLE C */
|
|
/* 6.1.12 */
|
|
/* AUTHOR */
|
|
/* */
|
|
/* Chaoqiong Xiao, Microsoft Corporation */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* This file contains all the header and structures used by the */
|
|
/* USBX Audio Class (UAC) 1.0. */
|
|
/* */
|
|
/* RELEASE HISTORY */
|
|
/* */
|
|
/* DATE NAME DESCRIPTION */
|
|
/* */
|
|
/* 07-29-2022 Chaoqiong Xiao Initial Version 6.1.12 */
|
|
/* */
|
|
/**************************************************************************/
|
|
|
|
#ifndef UX_CLASS_AUDIO10_H
|
|
#define UX_CLASS_AUDIO10_H
|
|
|
|
/* Define Audio Class Codes. */
|
|
|
|
#define UX_CLASS_AUDIO10_CLASS 0x01
|
|
#define UX_CLASS_AUDIO10_SUBCLASS_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_SUBCLASS_AUDIOCONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_SUBCLASS_AUDIOSTREAMING 0x02
|
|
#define UX_CLASS_AUDIO10_SUBCLASS_MIDISTREAMING 0x03
|
|
#define UX_CLASS_AUDIO10_PROTOCOL_UNDEFINED 0x00
|
|
|
|
|
|
/* Define Audio Class desctiptor types. */
|
|
#define UX_CLASS_AUDIO10_CS_UNDEFINED 0x20
|
|
#define UX_CLASS_AUDIO10_CS_DEVICE 0x21
|
|
#define UX_CLASS_AUDIO10_CS_CONFIGURATION 0x22
|
|
#define UX_CLASS_AUDIO10_CS_STRING 0x23
|
|
#define UX_CLASS_AUDIO10_CS_INTERFACE 0x24
|
|
#define UX_CLASS_AUDIO10_CS_ENDPOINT 0x25
|
|
|
|
|
|
/* Define Audio Class AC interface descriptor subclasses. */
|
|
|
|
#define UX_CLASS_AUDIO10_AC_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_AC_HEADER 0x01
|
|
#define UX_CLASS_AUDIO10_AC_INPUT_TERMINAL 0x02
|
|
#define UX_CLASS_AUDIO10_AC_OUTPUT_TERMINAL 0x03
|
|
#define UX_CLASS_AUDIO10_AC_MIXER_UNIT 0x04
|
|
#define UX_CLASS_AUDIO10_AC_SELECTOR_UNIT 0x05
|
|
#define UX_CLASS_AUDIO10_AC_FEATURE_UNIT 0x06
|
|
#define UX_CLASS_AUDIO10_AC_PROCESSING_UNIT 0x07
|
|
#define UX_CLASS_AUDIO10_AC_EXTENSION_UNIT 0x08
|
|
|
|
|
|
/* Define Audio Class Processing Unit (PU) Process Types (PT). */
|
|
|
|
#define UX_CLASS_AUDIO10_PROCESS_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_PROCESS_UP_DOWN_MIX 0x01
|
|
#define UX_CLASS_AUDIO10_PROCESS_DOLBY_PROLOGIC 0x02
|
|
#define UX_CLASS_AUDIO10_PROCESS_3D_STEREO_EXTENDER 0x03
|
|
#define UX_CLASS_AUDIO10_PROCESS_REVERBERATION 0x04
|
|
#define UX_CLASS_AUDIO10_PROCESS_CHORUS 0x05
|
|
#define UX_CLASS_AUDIO10_PROCESS_DYN_RANGE_COMP 0x06
|
|
|
|
|
|
/* Define Audio Class AS interface descriptor subclasses. */
|
|
|
|
#define UX_CLASS_AUDIO10_AS_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_AS_GENERAL 0x01
|
|
#define UX_CLASS_AUDIO10_AS_FORMAT_TYPE 0x02
|
|
#define UX_CLASS_AUDIO10_AS_FORMAT_SPECIFIC 0x03
|
|
|
|
|
|
/* Define Audio Class endpoint descriptor subtypes. */
|
|
|
|
#define UX_CLASS_AUDIO10_EP_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_EP_GENERAL 0x01
|
|
|
|
|
|
/* Define Audio Class request codes. */
|
|
|
|
#define UX_CLASS_AUDIO10_REQUEST_CODE_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_SET_CUR 0x01
|
|
#define UX_CLASS_AUDIO10_GET_CUR 0x81
|
|
#define UX_CLASS_AUDIO10_SET_MIN 0x02
|
|
#define UX_CLASS_AUDIO10_GET_MIN 0x82
|
|
#define UX_CLASS_AUDIO10_SET_MAX 0x03
|
|
#define UX_CLASS_AUDIO10_GET_MAX 0x83
|
|
#define UX_CLASS_AUDIO10_SET_RES 0x04
|
|
#define UX_CLASS_AUDIO10_GET_RES 0x84
|
|
#define UX_CLASS_AUDIO10_SET_MEM 0x05
|
|
#define UX_CLASS_AUDIO10_GET_MEM 0x85
|
|
#define UX_CLASS_AUDIO10_GET_STAT 0xFF
|
|
|
|
|
|
/* Define Audio Class terminal control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_TE_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_TE_COPY_PROTECT_CONTROL 0x01
|
|
|
|
/* Define Audio Class feature unit control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_FU_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_FU_MUTE_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_FU_VOLUME_CONTROL 0x02
|
|
#define UX_CLASS_AUDIO10_FU_BASS_CONTROL 0x03
|
|
#define UX_CLASS_AUDIO10_FU_MID_CONTROL 0x04
|
|
#define UX_CLASS_AUDIO10_FU_TREBLE_CONTROL 0x05
|
|
#define UX_CLASS_AUDIO10_FU_GRAPHIC_EQUALIZER_CONTROL 0x06
|
|
#define UX_CLASS_AUDIO10_FU_AUTOMATIC_GAIN_CONTROL 0x07
|
|
#define UX_CLASS_AUDIO10_FU_DELAY_CONTROL 0x08
|
|
#define UX_CLASS_AUDIO10_FU_BASS_BOOST_CONTROL 0x09
|
|
#define UX_CLASS_AUDIO10_FU_LOUNDNESS_CONTROL 0x0A
|
|
|
|
|
|
/* Define Audio Class processing unit control selectors. */
|
|
|
|
/* Define Audio Class up/down-mix (UD) processing unit control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_UD_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_UD_ENABLE_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_UD_MODE_SELECT_CONTROL 0x02
|
|
|
|
/* Define Audio Class dolby prologic (DP) processing unit control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_DP_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_DP_ENABLE_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_DP_MODE_SELECT_CONTROL 0x02
|
|
|
|
/* Define Audio Class 3D stereo extender (3D) processing unit control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_3D_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_3D_ENABLE_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_3D_SPACIOUSNESS_CONTROL 0x02
|
|
|
|
/* Define Audio Class reverberation (RV) processing unit control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_RV_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_RV_ENABLE_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_RV_LEVEL_CONTROL 0x02
|
|
#define UX_CLASS_AUDIO10_RV_TIME_CONTROL 0x03
|
|
#define UX_CLASS_AUDIO10_RV_FEEDBACK_CONTROL 0x04
|
|
|
|
/* Define Audio Class chorus (CH) processing unit control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_CHORUS_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_CHORUS_ENABLE_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_CHORUS_LEVEL_CONTROL 0x02
|
|
#define UX_CLASS_AUDIO10_CHORUS_RATE_CONTROL 0x03
|
|
#define UX_CLASS_AUDIO10_CHORUS_DEPTH_CONTROL 0x04
|
|
|
|
/* Define Audio Class dynamic range compressor (DR) processing unit control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_DR_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_DR_ENABLE_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_DR_COMPRESSION_RATE_CONTROL 0x02
|
|
#define UX_CLASS_AUDIO10_DR_MAXAMPL_CONTROL 0x03
|
|
#define UX_CLASS_AUDIO10_DR_THRESHOLD_CONTROL 0x04
|
|
#define UX_CLASS_AUDIO10_DR_ATTACK_TIME 0x05
|
|
#define UX_CLASS_AUDIO10_DR_RELEASE_TIME 0x06
|
|
|
|
/* Define Audio Class extension unit (XU) control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_XU_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_XU_ENABLE_CONTROL 0x01
|
|
|
|
|
|
/* Define Audio Class endpoint control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_EP_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_EP_SAMPLING_FREQ_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_EP_PITCH_CONTROL 0x02
|
|
|
|
|
|
/* Define Audio Class format type codes. */
|
|
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_I 0x01
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_II 0x02
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III 0x03
|
|
|
|
/* Define Audio Class format tag codes. */
|
|
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_I_UNDEFINED 0x0000
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_I_PCM 0x0001
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_I_PCM8 0x0002
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_I_IEEE_FLOAT 0x0003
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_I_ALAW 0x0004
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_I_MULAW 0x0005
|
|
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_II_UNDEFINED 0x1000
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_II_MPEG 0x1001
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_II_AC3 0x1002
|
|
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III_UNDEFINED 0x2000
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III_IEC1937_AC3 0x2001
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III_IEC1937_MPEG1_L1 0x2002
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III_IEC1937_MPEG1_L2_3 0x2003
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III_IEC1937_MPEG2_NOEXT 0x2003
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III_IEC1937_MPEG2_EXT 0x2004
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III_IEC1937_MPEG2_L1_LS 0x2005
|
|
#define UX_CLASS_AUDIO10_FORMAT_TYPE_III_IEC1937_MPEG2_L2_3_LS 0x2006
|
|
|
|
|
|
/* Define Audio Class MPEG (MP) control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_MP_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_MP_DUAL_CHANNEL_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_MP_SECOND_STEREO_CONTROL 0x02
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_CONTROL 0x03
|
|
#define UX_CLASS_AUDIO10_MP_DYN_RANGE_CONTROL 0x04
|
|
#define UX_CLASS_AUDIO10_MP_SCALING_CONTROL 0x05
|
|
#define UX_CLASS_AUDIO10_MP_HILO_SCALING_CONTROL 0x06
|
|
|
|
/* Define Audio Class AC-3 (AC) control selectors. */
|
|
|
|
#define UX_CLASS_AUDIO10_AC_CONTROL_UNDEFINED 0x00
|
|
#define UX_CLASS_AUDIO10_AC_MODE_CONTROL 0x01
|
|
#define UX_CLASS_AUDIO10_AC_DYN_RANGE_CONTROL 0x02
|
|
#define UX_CLASS_AUDIO10_AC_SCALING_CONTROL 0x03
|
|
#define UX_CLASS_AUDIO10_AC_HILO_SCALING_CONTROL 0x04
|
|
|
|
|
|
/* Class descriptor structures (packed).
|
|
* Typedefs to be used:
|
|
* - for byte : UCHAR/CHAR
|
|
* - for word : USHORT/SHORT
|
|
* - for double word (dword): ULONG/LONG
|
|
* - for 64-bit-width word : ULONG64
|
|
* Field offset considerations inside descriptor:
|
|
* - Minimum fields alignment: byte (8-bit)
|
|
* - Field is not byte and not aligned : field declared as bytes array (UCHAR[])
|
|
* - Field is word and word aligned : field declared as USHORT/SHORT
|
|
* - Field is dword and dword aligned : field declared as ULONG/LONG
|
|
*/
|
|
|
|
|
|
/* Audio Class AC interface header descriptors (bInCollection=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_HEADER_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bcdADC[2];
|
|
UCHAR wTotalLength[2];
|
|
UCHAR bInCollection;
|
|
UCHAR baInterfaceNr[1];
|
|
} UX_CLASS_AUDIO10_AC_HEADER_DESCRIPTOR;
|
|
|
|
/* Define Audio Class input terminal descriptor (ITD). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_INPUT_TERMINAL_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bTerminalID;
|
|
USHORT wTerminalType;
|
|
UCHAR bAssocTerminal;
|
|
UCHAR bNrChannels;
|
|
USHORT wChannelConfig;
|
|
UCHAR iChannelNames;
|
|
UCHAR iTerminal;
|
|
} UX_CLASS_AUDIO10_AC_INPUT_TERMINAL_DESCRIPTOR, UX_CLASS_AUDIO10_AC_ITD;
|
|
|
|
/* Define Audio Class output terminal descriptor (OTD). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_OUTPUT_TERMINAL_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bTerminalID;
|
|
USHORT wTerminalType;
|
|
UCHAR bAssocTerminal;
|
|
UCHAR bSourceID;
|
|
UCHAR iTerminal;
|
|
} UX_CLASS_AUDIO10_AC_OUTPUT_TERMINAL_DESCRIPTOR, UX_CLASS_AUDIO10_AC_OTD;
|
|
|
|
/* Define Audio Class mixer unit descriptor (MUD, bNrInPins=1, bmMixerControls N=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_MIXER_UNIT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bUnitID;
|
|
UCHAR bNrInPins;
|
|
UCHAR baSourceID[1];
|
|
UCHAR bNrChannels;
|
|
UCHAR wChannelConfig[2];
|
|
UCHAR iChannelNames;
|
|
UCHAR bmControls[1];
|
|
UCHAR iMixer;
|
|
} UX_CLASS_AUDIO10_AC_MIXER_UNIT_DESCRIPTOR, UX_CLASS_AUDIO10_AC_MUD;
|
|
|
|
/* Define Audio Class selector unit descriptor (SUD, bNrInPins=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_SELECTOR_UNIT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bUnitID;
|
|
UCHAR bNrInPins;
|
|
UCHAR baSourceID[1];
|
|
UCHAR iSelector;
|
|
} UX_CLASS_AUDIO10_AC_SELECTOR_UNIT_DESCRIPTOR, UX_CLASS_AUDIO10_AC_SUD;
|
|
|
|
/* Define Audio Class feature unit descriptor (FUD, ch=1, bControlSize=2). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_FEATURE_UNIT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bUnitID;
|
|
UCHAR bSourceID;
|
|
UCHAR bControlSize;
|
|
UCHAR bmaControls[2 * 2];
|
|
UCHAR iFeature;
|
|
} UX_CLASS_AUDIO10_AC_FEATURE_UNIT_DESCRIPTOR, UX_CLASS_AUDIO10_AC_FUD;
|
|
|
|
/* FUD::bmControls. */
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_MUTE (1u << 0)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_VOLUME (1u << 1)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_BASS (1u << 2)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_MID (1u << 3)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_TREBLE (1u << 4)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_GRAPHIC_EQ (1u << 5)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_AUTO_GAIN (1u << 6)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_DELAY (1u << 7)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_BASS_BOOST (1u << 8)
|
|
#define UX_CLASS_AUDIO10_FUD_CONTROL_LOUDNESS (1u << 9)
|
|
|
|
/* Define Audio Class processing unit descriptor (PUD, bNrInPins=1,bControlSize=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_PROCESSING_UNIT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bUnitID;
|
|
USHORT wProcessType;
|
|
UCHAR bNrInPins;
|
|
UCHAR baSourceID[1];
|
|
UCHAR bNrChannels;
|
|
UCHAR wChannelConfig;
|
|
UCHAR iChannelNames;
|
|
UCHAR bControlSize;
|
|
UCHAR bmControls[1];
|
|
UCHAR iProcessing;
|
|
} UX_CLASS_AUDIO10_AC_PROCESSING_UNIT_DESCRIPTOR, UX_CLASS_AUDIO10_AC_PUD;
|
|
|
|
/* Define Audio Class up/down processing unit descriptor (PUD, bNrInPins=1,bControlSize=1,bNrModes=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_UP_DOWN_PROCESSING_UNIT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bUnitID;
|
|
USHORT wProcessType;
|
|
UCHAR bNrInPins;
|
|
UCHAR bSourceID;
|
|
UCHAR bNrChannels;
|
|
UCHAR wChannelConfig[2];
|
|
UCHAR iChannelNames;
|
|
UCHAR bControlSize;
|
|
UCHAR bmControls[1];
|
|
UCHAR iProcessing;
|
|
UCHAR bNrModes;
|
|
UCHAR waModes[2 * 1];
|
|
} UX_CLASS_AUDIO10_AC_UP_DOWN_PROCESSING_UNIT_DESCRIPTOR, UX_CLASS_AUDIO10_AC_UDD;
|
|
|
|
/* UDD::bmControls. */
|
|
#define UX_CLASS_AUDIO10_UDD_CONTROL_ENABLE (1u << 0)
|
|
#define UX_CLASS_AUDIO10_UDD_CONTROL_MODE_SELECT (1u << 1)
|
|
|
|
/* Define Audio Class dolby prologic processing unit descriptor (DPD, bNrInPins=1,bControlSize=1,bNrModes=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_DOLBY_PROCESSING_UNIT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bUnitID;
|
|
USHORT wProcessType;
|
|
UCHAR bNrInPins;
|
|
UCHAR bSourceID;
|
|
UCHAR bNrChannels;
|
|
UCHAR wChannelConfig[2];
|
|
UCHAR iChannelNames;
|
|
UCHAR bControlSize;
|
|
UCHAR bmControls[1];
|
|
UCHAR iProcessing;
|
|
UCHAR bNrModes;
|
|
UCHAR daModes[2 * 1];
|
|
} UX_CLASS_AUDIO10_AC_DOLBY_PROCESSING_UNIT_DESCRIPTOR, UX_CLASS_AUDIO10_AC_DPD;
|
|
|
|
/* DPD::bmaControls. */
|
|
#define UX_CLASS_AUDIO10_DPD_CONTROL_ENABLE (1u << 0)
|
|
#define UX_CLASS_AUDIO10_DPD_CONTROL_MODE_SELECT (1u << 1)
|
|
|
|
/* Define Audio Class 3D Stereo Extender (3D) Processing Unit Descriptor. */
|
|
typedef UX_CLASS_AUDIO10_AC_PUD UX_CLASS_AUDIO10_AC_3D_STEREO_EXT_PROCESSING_UNIT_DESCRIPTOR;
|
|
typedef UX_CLASS_AUDIO10_AC_PUD UX_CLASS_AUDIO10_AC_3DD;
|
|
|
|
/* 3DD::bmaControls. */
|
|
#define UX_CLASS_AUDIO10_3DD_CONTROL_ENABLE (1u << 0)
|
|
#define UX_CLASS_AUDIO10_3DD_CONTROL_MODE_SELECT (1u << 1)
|
|
|
|
/* Define Audio Class Reverberation (RV) Processing Unit Descriptor. */
|
|
typedef UX_CLASS_AUDIO10_AC_PUD UX_CLASS_AUDIO10_AC_REVERBERATION_PROCESSING_UNIT_DESCRIPTOR;
|
|
typedef UX_CLASS_AUDIO10_AC_PUD UX_CLASS_AUDIO10_AC_RVD;
|
|
|
|
/* RVD::bmaControls. */
|
|
#define UX_CLASS_AUDIO10_RVD_CONTROL_ENABLE (1u << 0)
|
|
#define UX_CLASS_AUDIO10_RVD_CONTROL_REVERB_TYPE (1u << 1)
|
|
#define UX_CLASS_AUDIO10_RVD_CONTROL_REVERB_LEVEL (1u << 2)
|
|
#define UX_CLASS_AUDIO10_RVD_CONTROL_REVERB_TIME (1u << 3)
|
|
#define UX_CLASS_AUDIO10_RVD_CONTROL_REVERB_DELAY_FEEDBACK (1u << 4)
|
|
|
|
/* Define Audio Class Chorus (CH) Processing Unit Descriptor. */
|
|
typedef UX_CLASS_AUDIO10_AC_PUD UX_CLASS_AUDIO10_AC_CHORUS_PROCESSING_UNIT_DESCRIPTOR;
|
|
typedef UX_CLASS_AUDIO10_AC_PUD UX_CLASS_AUDIO10_AC_CHORUSD;
|
|
|
|
/* CHORUSD::bmaControls. */
|
|
#define UX_CLASS_AUDIO10_CHORUSD_CONTROL_ENABLE (1u << 0)
|
|
#define UX_CLASS_AUDIO10_CHORUSD_CONTROL_CHORUS_LEVEL (1u << 1)
|
|
#define UX_CLASS_AUDIO10_CHORUSD_CONTROL_CHORUS_MODULATION_RATE (1u << 2)
|
|
#define UX_CLASS_AUDIO10_CHORUSD_CONTROL_CHORUS_MODULATION_DEPTH (1u << 3)
|
|
|
|
/* Define Audio Class Dynamic Range Compressor (DR) Processing Unit Descriptor. */
|
|
typedef UX_CLASS_AUDIO10_AC_PUD UX_CLASS_AUDIO10_AC_DYN_RNG_COMP_PROCESSING_UNIT_DESCRIPTOR;
|
|
typedef UX_CLASS_AUDIO10_AC_PUD UX_CLASS_AUDIO10_AC_DRD;
|
|
|
|
/* DRD::bmaControls. */
|
|
#define UX_CLASS_AUDIO10_DRD_CONTROL_ENABLE (1u << 0)
|
|
#define UX_CLASS_AUDIO10_DRD_CONTROL_COMPRESSION_RATIO (1u << 1)
|
|
#define UX_CLASS_AUDIO10_DRD_CONTROL_MAXAMPL (1u << 2)
|
|
#define UX_CLASS_AUDIO10_DRD_CONTROL_THRESHOLD (1u << 3)
|
|
#define UX_CLASS_AUDIO10_DRD_CONTROL_ATTACH_TIME (1u << 4)
|
|
#define UX_CLASS_AUDIO10_DRD_CONTROL_RELEASE_TIME (1u << 5)
|
|
|
|
/* Define Audio Class Extension unit descriptor (XUD, bNrInPins=1,bControlSize=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AC_EXTENSION_UNIT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bUnitID;
|
|
USHORT wExtensionCode;
|
|
UCHAR bNrInPins;
|
|
UCHAR baSourceID[1];
|
|
UCHAR bNrChannels;
|
|
UCHAR wChannelConfig[2];
|
|
UCHAR iChannelNames;
|
|
UCHAR bControlSize;
|
|
UCHAR bmControls[1];
|
|
UCHAR iExtension;
|
|
} UX_CLASS_AUDIO10_AC_EXTENSION_UNIT_DESCRIPTOR, UX_CLASS_AUDIO10_AC_XUD;
|
|
|
|
/* XUD::bmaControls. */
|
|
#define UX_CLASS_AUDIO10_XUD_CONTROL_ENABLE (1u << 0)
|
|
|
|
/* Define Audio Class Associated Interface descriptor (Association-specific x=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_ASSOCIATED_INTERFACE_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bInterfaceNr;
|
|
UCHAR assoc_specific;
|
|
} UX_CLASS_AUDIO10_ASSOCIATED_INTERFACE_DESCRIPTOR;
|
|
|
|
/* Define Audio Class Interrupt/Isochronous Endpoint Descriptor. */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_ENDPOINT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bEndpointAddress;
|
|
UCHAR bmAttributes;
|
|
UCHAR wMaxPacketSize;
|
|
UCHAR bInterval;
|
|
UCHAR bRefresh;
|
|
UCHAR bSynchAddress;
|
|
} UX_CLASS_AUDIO10_ENDPOINT_DESCRIPTOR, UX_CLASS_AUDIO10_EPD;
|
|
|
|
/* Audio class-specific AS interface descriptor. */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AS_INTERFACE_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bTerminalLink;
|
|
UCHAR bDelay;
|
|
UCHAR wFormatTag[2];
|
|
} UX_CLASS_AUDIO10_AS_INTERFACE_DESCRIPTOR, UX_CLASS_AUDIO10_AS_IFACED;
|
|
|
|
|
|
/* Audio class-specific isochronous audio data endpoint descriptor (EPD). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_ISOCH_ENDPOINT_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bmAttributes;
|
|
UCHAR bLockDelayUnits;
|
|
UCHAR wLockDelay[2];
|
|
} UX_CLASS_AUDIO10_ISOCH_ENDPOINT_DESCRIPTOR, UX_CLASS_AUDIO10_ISOCH_EPD;
|
|
|
|
/* EPD::bmAttributes. */
|
|
#define UX_CLASS_AUDIO10_ISOCH_EPD_ATTR_SAMPLING_FREQ (0x1u << 0)
|
|
#define UX_CLASS_AUDIO10_ISOCH_EPD_ATTR_PITCH (0x1u << 1)
|
|
#define UX_CLASS_AUDIO10_ISOCH_EPD_ATTR_MAX_PACKET_SIZE_ONLY (0x1u << 7)
|
|
|
|
/* EPD::bLockDelayUnits. */
|
|
#define UX_CLASS_AUDIO10_EPD_LOCK_DELAY_UNITS_UNDEFINED 0
|
|
#define UX_CLASS_AUDIO10_EPD_LOCK_DELAY_UNITS_MS 1
|
|
#define UX_CLASS_AUDIO10_EPD_LOCK_DELAY_UNITS_DEC_PCM_SAMPLES 2
|
|
|
|
|
|
/* Audio class control request layout. */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REQUEST_VALUE_CS_STRUCT {
|
|
UCHAR unused_zero;
|
|
UCHAR control_sel; /* Control Selector (CS) */
|
|
} UX_CLASS_AUDIO10_REQUEST_VALUE_CS;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REQUEST_VALUE_MIXER_STRUCT {
|
|
UCHAR output_ch_num; /* Output Channel Number (OCN) */
|
|
UCHAR input_ch_num; /* Input Channel Number (ICN) */
|
|
} UX_CLASS_AUDIO10_REQUEST_VALUE_MIXER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REQUEST_VALUE_CONTROL_STRUCT {
|
|
UCHAR unused_zero;
|
|
UCHAR cs; /* CS */
|
|
} UX_CLASS_AUDIO10_REQUEST_VALUE_CONTROL;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REQUEST_INDEX_EP_STRUCT {
|
|
UCHAR ep_addr; /* Endpoint Address */
|
|
UCHAR unused_zero;
|
|
} UX_CLASS_AUDIO10_REQUEST_INDEX_EP;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REQUEST_INDEX_INTERFACE_STRUCT {
|
|
UCHAR iface_num; /* Interface number */
|
|
UCHAR entity_id;
|
|
} UX_CLASS_AUDIO10_REQUEST_INDEX_INTERFACE;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REQUEST_INDEX_CONTROL_STRUCT {
|
|
UCHAR ep_iface; /* Endpoint Address/Interface Number */
|
|
UCHAR entity_id_zero; /* Entity ID/Zero */
|
|
} UX_CLASS_AUDIO10_REQUEST_INDEX_CONTROL;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REQUEST_STRUCT
|
|
{
|
|
UCHAR bmRequestType;
|
|
UCHAR bRequest;
|
|
union UX_CLASS_AUDIO10_REQUEST_VALUE_UNION {
|
|
USHORT value;
|
|
UX_CLASS_AUDIO10_REQUEST_VALUE_CS
|
|
control_cs;
|
|
UX_CLASS_AUDIO10_REQUEST_VALUE_MIXER
|
|
control_mixer;
|
|
UX_CLASS_AUDIO10_REQUEST_VALUE_CONTROL
|
|
control;
|
|
USHORT mem_offset;
|
|
} wValue;
|
|
union UX_CLASS_AUDIO10_REQUEST_INDEX_UNION {
|
|
USHORT value;
|
|
UX_CLASS_AUDIO10_REQUEST_INDEX_EP
|
|
ep;
|
|
UX_CLASS_AUDIO10_REQUEST_INDEX_INTERFACE
|
|
iface;
|
|
UX_CLASS_AUDIO10_REQUEST_INDEX_CONTROL
|
|
control;
|
|
} wIndex;
|
|
USHORT wLength;
|
|
} UX_CLASS_AUDIO10_REQUEST;
|
|
|
|
/* Audio Class 1.0 Copy Protect Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_COPY_PROTECT_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bCopyProtect;
|
|
} UX_CLASS_AUDIO10_COPY_PROTECT_CONTROL_PARAMETER;
|
|
|
|
#define UX_CLASS_AUDIO10_COPY_PROTECT_CONTROL_CPL0 (1u << 0)
|
|
#define UX_CLASS_AUDIO10_COPY_PROTECT_CONTROL_CPL1 (1u << 1)
|
|
#define UX_CLASS_AUDIO10_COPY_PROTECT_CONTROL_CPL2 (1u << 2)
|
|
|
|
/* Audio Class 1.0 Mixer Control Parameter (specific control or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MIXER_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wMixer;
|
|
} UX_CLASS_AUDIO10_MIXER_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MIXER_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
USHORT wMixer[1];
|
|
} UX_CLASS_AUDIO10_MIXER_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Selector Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_SELECTOR_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bSelector;
|
|
} UX_CLASS_AUDIO10_SELECTOR_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Mute Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MUTE_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bMute;
|
|
} UX_CLASS_AUDIO10_MUTE_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MUTE_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
UCHAR bMute[1];
|
|
} UX_CLASS_AUDIO10_MUTE_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Volume Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_VOLUME_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
SHORT wVolume;
|
|
} UX_CLASS_AUDIO10_VOLUME_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_VOLUME_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
SHORT wVolume[1];
|
|
} UX_CLASS_AUDIO10_VOLUME_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Bass Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_BASS_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bBass;
|
|
} UX_CLASS_AUDIO10_BASS_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_BASS_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
UCHAR bBass[1];
|
|
} UX_CLASS_AUDIO10_BASS_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Mid Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MID_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bMid;
|
|
} UX_CLASS_AUDIO10_MID_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MID_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
UCHAR bMid[1];
|
|
} UX_CLASS_AUDIO10_MID_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Treble Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TREBLE_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bTreble;
|
|
} UX_CLASS_AUDIO10_TREBLE_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TREBLE_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
UCHAR bTreble[1];
|
|
} UX_CLASS_AUDIO10_TREBLE_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Graphic Equalizer Control Parameter (NrBits=1) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_GRAPHIC_EQ_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
ULONG bmBandsPresent;
|
|
UCHAR bBand[1];
|
|
} UX_CLASS_AUDIO10_GRAPHIC_EQ_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Automatic Gain Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AG_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bAGC;
|
|
} UX_CLASS_AUDIO10_AG_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AG_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
UCHAR bAGC[1];
|
|
} UX_CLASS_AUDIO10_AG_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Delay Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_DELAY_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
SHORT wDelay;
|
|
} UX_CLASS_AUDIO10_DELAY_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_DELAY_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
SHORT wDelay[1];
|
|
} UX_CLASS_AUDIO10_DELAY_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 BassBoost Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_BASSBOOST_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bBassBoost;
|
|
} UX_CLASS_AUDIO10_BASSBOOST_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_BASSBOOST_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
UCHAR bBassBoost[1];
|
|
} UX_CLASS_AUDIO10_BASSBOOST_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Loudness Control Parameter (specific CH or 0xFF) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_LOUDNESS_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bLoudness;
|
|
} UX_CLASS_AUDIO10_LOUDNESS_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_LOUDNESS_CONTROL_PARAMETER_FF_STRUCT
|
|
{
|
|
UCHAR bLoudness[1];
|
|
} UX_CLASS_AUDIO10_LOUDNESS_CONTROL_PARAMETER_FF;
|
|
|
|
/* Audio Class 1.0 Enable Processing Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_ENABLE_PROCESSING_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bEnable;
|
|
} UX_CLASS_AUDIO10_ENABLE_PROCESSING_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Spaciousness Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_SPACIOUSNESS_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bSpaciousness;
|
|
} UX_CLASS_AUDIO10_SPACIOUSNESS_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 ReverbType Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REVERB_TYPE_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bReverbType;
|
|
} UX_CLASS_AUDIO10_REVERB_TYPE_CONTROL_PARAMETER;
|
|
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_ROOM_1 0
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_SMALL_ROOM 0
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_ROOM_2 1
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_MEDIUM_ROOM 1
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_ROOM_3 2
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_LARGE_ROOM 2
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_HALL_1 3
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_MEDIUM_CONCERT_HALL 3
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_HALL_2 4
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_LARGE_CONCERT_HALL 4
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_PLATE 5
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_PLATE_REVERBERATION 5
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_DELAY 6
|
|
#define UX_CLASS_AUDIO10_REVERB_TYPE_PANNING_DELAY 7
|
|
|
|
/* Audio Class 1.0 ReverbLevel Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REVERB_LEVEL_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bReverbLevel;
|
|
} UX_CLASS_AUDIO10_REVERB_LEVEL_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 ReverTime Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REVERB_TIME_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wReverTime;
|
|
} UX_CLASS_AUDIO10_REVERB_TIME_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 ReverbDelayFeedback Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_REVERB_FEEDBACK_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bReverbFeedback;
|
|
} UX_CLASS_AUDIO10_REVERB_FEEDBACK_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 ChorusLevel Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_CHORUS_LEVEL_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bChorusLevel;
|
|
} UX_CLASS_AUDIO10_CHORUS_LEVEL_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 ChorusRate Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_CHORUS_RATE_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wChorusRate;
|
|
} UX_CLASS_AUDIO10_CHORUS_RATE_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 ChorusModulationDepth Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_CHORUS_DEPTH_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wChorusDepth;
|
|
} UX_CLASS_AUDIO10_CHORUS_DEPTH_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Dynamic Range Compressor Compression Ratio Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_COMPRESSION_RATIO_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wRatio;
|
|
} UX_CLASS_AUDIO10_COMPRESSION_RATIO_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Dynamic Range Compressor MaxAmpl Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MAXAMPL_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wMaxAmpl;
|
|
} UX_CLASS_AUDIO10_MAXAMPL_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Dynamic Range Compressor Threshold Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_THRESHOLD_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wThreshold;
|
|
} UX_CLASS_AUDIO10_THRESHOLD_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Dynamic Range Compressor AttachTime Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_ATTACK_TIME_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wAttachTime;
|
|
} UX_CLASS_AUDIO10_ATTACK_TIME_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Dynamic Range Compressor ReleaseTime Control Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_RELEASE_TIME_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
USHORT wReleaseTime;
|
|
} UX_CLASS_AUDIO10_RELEASE_TIME_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Enable Processing Control (XU_ENABLE_CONTROL) Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_XU_ENABLE_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bOn;
|
|
} UX_CLASS_AUDIO10_XU_ENABLE_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Sampling Frequency Control (SAMPLING_FREQ_CONTROL) Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_SAMPLING_FREQ_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR tSampleFreq[3];
|
|
} UX_CLASS_AUDIO10_SAMPLING_FREQ_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Pitch Control (PITCH_CONTROL) Parameter */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_PITCH_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bPitchEnable;
|
|
} UX_CLASS_AUDIO10_PITCH_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Continuous Sampling Frequency. */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_CONTINUOUS_SAMPLING_FREQ_STRUCT
|
|
{
|
|
UCHAR tLowerSamFreq[3];
|
|
UCHAR tUpperSamFreq[3];
|
|
} UX_CLASS_AUDIO10_CONTINUOUS_SAMPLING_FREQ;
|
|
|
|
/* Audio Class 1.0 Discrete Sampling Frequency (N=1). */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_DISCRETE_SAMPLING_FREQ_STRUCT
|
|
{
|
|
UCHAR tSamFreq[3 * 1];
|
|
} UX_CLASS_AUDIO10_DISCRETE_SAMPLING_FREQ;
|
|
|
|
/* Audio Class 1.0 Type I Format Type Descriptor */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_I_FORMAT_TYPE_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
UCHAR bNrChannels;
|
|
UCHAR bSubframeSize;
|
|
UCHAR bBitResolution;
|
|
UCHAR bSamFreqType;
|
|
} UX_CLASS_AUDIO10_TYPE_I_FORMAT_TYPE_DESCRIPTOR;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_I_FORMAT_TYPE_CONTINUOUS_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
UCHAR bNrChannels;
|
|
UCHAR bSubframeSize;
|
|
UCHAR bBitResolution;
|
|
UCHAR bSamFreqType; /* 0 */
|
|
UCHAR tLowerSamFreq[3];
|
|
UCHAR tUpperSamFreq[3];
|
|
}
|
|
UX_CLASS_AUDIO10_TYPE_I_FORMAT_TYPE_CONTINUOUS_DESCRIPTOR,
|
|
UX_CLASS_AUDIO10_TYPE_I_FORMAT_TYPE_DESCRIPTOR_0;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_I_FORMAT_TYPE_DISCRETE_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
UCHAR bNrChannels;
|
|
UCHAR bSubframeSize;
|
|
UCHAR bBitResolution;
|
|
UCHAR bSamFreqType; /* 1 */
|
|
UCHAR tSamFreq[3 * 1];
|
|
}
|
|
UX_CLASS_AUDIO10_TYPE_I_FORMAT_TYPE_DISCRETE_DESCRIPTOR,
|
|
UX_CLASS_AUDIO10_TYPE_I_FORMAT_TYPE_DESCRIPTOR_1;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_II_FORMAT_TYPE_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
USHORT wMaxBitRate;
|
|
USHORT wSamplesPerFrame;
|
|
UCHAR bSamFreqType;
|
|
} UX_CLASS_AUDIO10_TYPE_II_FORMAT_TYPE_DESCRIPTOR;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_II_FORMAT_TYPE_CONTINUOUS_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
USHORT wMaxBitRate;
|
|
USHORT wSamplesPerFrame;
|
|
UCHAR bSamFreqType; /* 0 */
|
|
UCHAR tLowerSamFreq[3];
|
|
UCHAR tUpperSamFreq[3];
|
|
}
|
|
UX_CLASS_AUDIO10_TYPE_II_FORMAT_TYPE_CONTINUOUS_DESCRIPTOR,
|
|
UX_CLASS_AUDIO10_TYPE_II_FORMAT_TYPE_DESCRIPTOR_0;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_II_FORMAT_TYPE_DISCRETE_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
USHORT wMaxBitRate;
|
|
USHORT wSamplesPerFrame;
|
|
UCHAR bSamFreqType; /* 1 */
|
|
UCHAR tSamFreq[3 * 1];
|
|
}
|
|
UX_CLASS_AUDIO10_TYPE_II_FORMAT_TYPE_DISCRETE_DESCRIPTOR,
|
|
UX_CLASS_AUDIO10_TYPE_II_FORMAT_TYPE_DESCRIPTOR_1;
|
|
|
|
|
|
/* Audio Class 1.0 MPEG (MP) Format-Specific Descriptor (MPEGD) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MPEG_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR wFormatTag[2];
|
|
UCHAR bmMPEGCapabilities[2];
|
|
UCHAR bmMPEGFeatures;
|
|
} UX_CLASS_AUDIO10_MPEG_DESCRIPTOR, UX_CLASS_AUDIO10_MPEGD;
|
|
|
|
/* MPEG::bmMPEGCapabilities. */
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_LAYER_MASK (0x7u << 0)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_LAYER_I (0x1u << 0)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_LAYER_II (0x1u << 1)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_LAYER_III (0x1u << 2)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_MPEG1_ONLY (0x1u << 3)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_MPEG1_DUAL_CH (0x1u << 4)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_MPEG2_STEREO (0x1u << 5)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_MPEG2_7_1_CH (0x1u << 6)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_ADAPTIVE_MULTI_CH_PREDICT (0x1u << 7)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_MPEG2_MULTILINGUAL_MASK (0x3u << 8)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_MPEG2_MULTI_NOT_SUPPORT (0x0u << 8)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_MPEG2_MULTI_FS (0x1u << 8)
|
|
#define UX_CLASS_AUDIO10_MPEGD_CAP_MPEG2_MULTI_FS_HALF_FS (0x3u << 8)
|
|
|
|
/* MPEG::bmMPEGFeatures. */
|
|
#define UX_CLASS_AUDIO10_MPEGD_FEAT_IDYN_RNG_CTRL_MASK (0x3u << 4) /* Internal Dynamic Range Control */
|
|
#define UX_CLASS_AUDIO10_MPEGD_FEAT_IDYN_RNG_CTRL_NOT_SUP (0x0u << 4) /* Not support */
|
|
#define UX_CLASS_AUDIO10_MPEGD_FEAT_IDYN_RNG_CTRL_NOT_SCAL (0x1u << 4) /* Not scalable */
|
|
#define UX_CLASS_AUDIO10_MPEGD_FEAT_IDYN_RNG_CTRL_SCAL_COMMON (0x2u << 4) /* Common boost and cut scaling value */
|
|
#define UX_CLASS_AUDIO10_MPEGD_FEAT_IDYN_RNG_CTRL_SCAL_SEPARA (0x3u << 4) /* Separate boost and cut scaling value */
|
|
|
|
/* Audio Class 1.0 Dual Channel Control */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MP_DUAL_CHANNEL_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR BChannel2Enable;
|
|
} UX_CLASS_AUDIO10_MP_DUAL_CHANNEL_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Second Stereo Control */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MP_2ND_STEREO_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR B2ndStereoEnable;
|
|
} UX_CLASS_AUDIO10_MP_2ND_STEREO_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Multilingual Control */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MP_MULTILINGUAL_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bMultiLingual;
|
|
} UX_CLASS_AUDIO10_MP_MULTILINGUAL_CONTROL_PARAMETER;
|
|
|
|
/* bMultiLingual */
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_DECODE_NO_CHANNEL 0
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_DECODE_CHANNEL_1 1
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_DECODE_CHANNEL_2 2
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_DECODE_CHANNEL_3 3
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_DECODE_CHANNEL_4 4
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_DECODE_CHANNEL_5 5
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_DECODE_CHANNEL_6 6
|
|
#define UX_CLASS_AUDIO10_MP_MULTILINGUAL_DECODE_CHANNEL_7 7
|
|
|
|
/* Audio Class 1.0 Dynamic Range Control (MP_DYN_RANGE_CONTROL) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MP_DYN_RANGE_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bEnable;
|
|
} UX_CLASS_AUDIO10_MP_DYN_RANGE_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 Scaling Control */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MP_SCALING_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bScale;
|
|
} UX_CLASS_AUDIO10_MP_SCALING_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 High/Low (HILO) Scaling Control */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_MP_HILO_SCALING_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bLowScale;
|
|
UCHAR bHighScale;
|
|
} UX_CLASS_AUDIO10_MP_HILO_SCALING_CONTROL_PARAMETER;
|
|
|
|
|
|
/* Audio Class 1.0 AC-3 Format Descriptor */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AS_AC_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubType;
|
|
UCHAR wFormatTag[2];
|
|
UCHAR bmBSID[4];
|
|
UCHAR bmAC3Features;
|
|
} UX_CLASS_AUDIO10_AS_AC_DESCRIPTOR, UX_CLASS_AUDIO10_AS_ACD;
|
|
|
|
/* AC3 DECODER::bmAC3Features. */
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_RF_MODE (0x1u << 0)
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_LINE_MODE (0x1u << 1)
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_CUSTOM0_MODE (0x1u << 2)
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_CUSTOM1_MODE (0x1u << 3)
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_IDYN_RNG_CTRL_MASK (0x3u << 4) /* Internal Dynamic Range Control */
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_IDYN_RNG_CTRL_NOT_SUP (0x0u << 4) /* Not support */
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_IDYN_RNG_CTRL_NOT_SCAL (0x3u << 4) /* Not scalable */
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_IDYN_RNG_CTRL_SCAL_COMMON (0x3u << 4) /* Common boost and cut scaling value */
|
|
#define UX_CLASS_AUDIO10_ACD_FEAT_IDYN_RNG_CTRL_SCAL_SEPARATE (0x3u << 4) /* Separate boost and cut scaling value */
|
|
|
|
/* Audio Class 1.0 AC-3 Mode Control (AC_MODE_CONTROL) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AS_AC_MODE_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bMode;
|
|
} UX_CLASS_AUDIO10_AS_AC_MODE_CONTROL_PARAMETER;
|
|
|
|
/* AC-3 Compression Mode Control. */
|
|
#define UX_CLASS_AUDIO10_AC_MODE_RF (0x1u << 0)
|
|
#define UX_CLASS_AUDIO10_AC_MODE_LINE (0x1u << 1)
|
|
#define UX_CLASS_AUDIO10_AC_MODE_CUSTOM0 (0x1u << 2)
|
|
#define UX_CLASS_AUDIO10_AC_MODE_CUSTOM1 (0x1u << 3)
|
|
|
|
/* Audio Class 1.0 AC-3 Dynamic Range Control (AC_DYN_RANGE_CONTROL) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AS_AC_DYN_RANGE_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bMode;
|
|
} UX_CLASS_AUDIO10_AS_AC_DYN_RANGE_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 AC-3 Scaling Control (AC_SCALING_CONTROL) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AS_AC_SCALING_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bScale;
|
|
} UX_CLASS_AUDIO10_AS_AC_SCALING_CONTROL_PARAMETER;
|
|
|
|
/* Audio Class 1.0 AC-3 High/Low Scaling Control (AC_HILO_SCALING_CONTROL) */
|
|
|
|
typedef struct UX_CLASS_AUDIO10_AS_AC_HILO_SCALING_CONTROL_PARAMETER_STRUCT
|
|
{
|
|
UCHAR bLowScale;
|
|
UCHAR bHighScale;
|
|
} UX_CLASS_AUDIO10_AS_AC_HILO_SCALING_CONTROL_PARAMETER;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_III_FORMAT_TYPE_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
UCHAR bNrChannels;
|
|
UCHAR bSubframeSize;
|
|
UCHAR bBitResolution;
|
|
UCHAR bSamFreqType;
|
|
} UX_CLASS_AUDIO10_TYPE_III_FORMAT_TYPE_DESCRIPTOR;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_III_FORMAT_TYPE_CONTINUOUS_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
UCHAR bNrChannels;
|
|
UCHAR bSubframeSize;
|
|
UCHAR bBitResolution;
|
|
UCHAR bSamFreqType; /* 0 */
|
|
UCHAR tLowerSamFreq[3];
|
|
UCHAR tUpperSamFreq[3];
|
|
}
|
|
UX_CLASS_AUDIO10_TYPE_III_FORMAT_TYPE_CONTINUOUS_DESCRIPTOR,
|
|
UX_CLASS_AUDIO10_TYPE_III_FORMAT_TYPE_DESCRIPTOR_0;
|
|
|
|
typedef struct UX_CLASS_AUDIO10_TYPE_III_FORMAT_TYPE_DISCRETE_DESCRIPTOR_STRUCT
|
|
{
|
|
UCHAR bLength;
|
|
UCHAR bDescriptorType;
|
|
UCHAR bDescriptorSubtype;
|
|
UCHAR bFormatType;
|
|
UCHAR bNrChannels;
|
|
UCHAR bSubframeSize;
|
|
UCHAR bBitResolution;
|
|
UCHAR bSamFreqType; /* 1 */
|
|
UCHAR tSamFreq[3 * 1];
|
|
}
|
|
UX_CLASS_AUDIO10_TYPE_III_FORMAT_TYPE_DISCRETE_DESCRIPTOR,
|
|
UX_CLASS_AUDIO10_TYPE_III_FORMAT_TYPE_DESCRIPTOR_1;
|
|
|
|
/* Audio Class 1.0 Interrupt Status Word */
|
|
typedef struct UX_CLASS_AUDIO10_INT_STATUS_STRUCT
|
|
{
|
|
UCHAR bStatusType;
|
|
UCHAR bOriginator;
|
|
} UX_CLASS_AUDIO10_INT_STATUS;
|
|
|
|
/* Status Word::bStatusType. */
|
|
#define UX_CLASS_AUDIO10_INT_STATUS_TYPE_PENDING (0x1u << 7)
|
|
#define UX_CLASS_AUDIO10_INT_STATUS_TYPE_MEM_CHANGED (0x1u << 6)
|
|
#define UX_CLASS_AUDIO10_INT_STATUS_TYPE_ORIGINATOR_MASK (0xFu << 0)
|
|
#define UX_CLASS_AUDIO10_INT_STATUS_TYPE_ORIGINATOR_AC (0x0u << 0) /* AudioControl interface */
|
|
#define UX_CLASS_AUDIO10_INT_STATUS_TYPE_ORIGINATOR_AS (0x1u << 0) /* AudioStreaming interface */
|
|
#define UX_CLASS_AUDIO10_INT_STATUS_TYPE_ORIGINATOR_AS_EP (0x2u << 0) /* AudioStreaming endpoint */
|
|
|
|
|
|
#endif
|