UAC 类特定音频控制接口头描述符

欢迎加入字节流官方QQ群:952873936或联系站长进行技术交流。

UAC类特定音频控制头接口描述符这个名字有点绕,其实这个描述符是前接标准的音频控制接口描述符,后续关于音频控制的所有相关描述符,起着承上起下的作用。
当然也可以认为是音频控制相关描述符的前导。这是因为UAC类特定音频控制接口描述符含有一个关键的字段wTotalLength,用于包含音频控制所有接口描述符的总大小。

类特定音频控制接口头描述符数据结构定义-UAC1.0

typedef struct _USB_AC_HEADER
{
    UINT8  bLength;
    UINT8  bDescriptorType;
    UINT8  bDescriptorSubType;
    UINT16 bcdADC;
    UINT16 wTotalLength;
    UINT8  bInCollection;
    UINT8  baInterfaceNr[bInCollection];
} USB_AC_HEADER;
  • bLength:该接口本身的大小,固定为8+N。
  • bDescriptorType:属于接口描述符类型,CS_INTERFACE,值为0x24
  • bDescriptorSubType:描述符的子类型,属于头描述符子类型=0x01
  • bcdADC: UAC协议版本。
  • wTotalLength:总长度,包括自身及后续的如时钟描述符,单元描述符,终端描述符。
  • bInCollection:所有的音频流接口数量N。
  • baInterfaceNr:音频流的接口索引,多个依次后续连接。

类特定音频控制接口头描述符数据结构定义-UAC2.0

typedef struct _USB_AC_HEADER
{
    UINT8  bLength;
    UINT8  bDescriptorType;
    UINT8  bDescriptorSubType;
    UINT16 bcdADC;
    UINT8 bCategory;
    UINT16 wTotalLength;
    UINT8  bmControls;
} USB_AC_HEADER;
  • bCategory:常量,音频的功能。
Audio Function Subclass Code Value
FUNCTION_SUBCLASS_UNDEFINED 0x00
DESKTOP_SPEAKER 0x01
HOME_THEATER 0x02
MICROPHONE 0x03
HEADSET 0x04
TELEPHONE 0x05
CONVERTER 0x06
VOICE/SOUND_RECORDER 0x07
I/O_BOX 0x08
MUSICAL_INSTRUMENT 0x09
PRO-AUDIO 0x0A
AUDIO/VIDEO 0x0B
CONTROL_PANEL 0x0C
OTHER 0xFF
  • bmControls:位图,表示非可寻址控制功能的操作类型。D1..0: 控制类型,其它位必须为0。
    • b00:无控制
    • b01: 只读
    • b10: 保留
    • b11: 控制可编程即可读写
微信公众号
字节流公众号  字节流QQ群:952873936
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!