USB 音频设备驱动程序

用途

支持通用串行总线 (USB) 音频设备。

语法

#include <sys/usbdi.h>

描述

USB 音频设备驱动程序支持同步 USB 设备 (如 USB 音频扬声器)。 每个 USB 音频设备都表示为以下接口: 音频控制和音频流。 虽然这些接口与单个设备相关联,但这些接口实际上被视为单独的设备。 将为音频控制接口创建 /dev/paud0 特殊文件,并为音频流接口创建 /dev/paudas0 特殊文件。

音频控制接口用于访问一个音频设备的内部功能。 任何在音频功能的单元或终端内更改音频控制的请求都被定向到该功能的音频控制接口。

音频流接口可以配置为以单声道或立体声模式运行。 输入通道数据流的数量根据所选方式不同而有所变化。 音频流接口必须具有同步端点。 此接口可以具有备用设置,这些设置可用于更改端点的某些特征。

注: 您必须使用外部或第三方音频软件在受支持的 USB 音频设备上流式采集和播放音频文件。

下表列出了 ioctl 操作:

ioctl 操作 描述
Audio_INIT 驱动程序会搜索接口和备用设置以确定可支持所请求的采样率,每个采样的位数,方式和通道的设置。
AUDIO_STATUS 该驱动程序返回有关其内部数据结构的信息。
AUDIO_CONTROL 该驱动程序将处理更改音频属性的请求,例如,启动,停止和暂停。
Audio_buffer 驱动程序根据有关其数据结构的信息,缓冲区中的数据量,请求中的数据量, bDelay 字段中指定的时间延迟以及特定于一般类的接口描述符来计算并返回值。
AUDIO_WAIT 该驱动程序将等待所有剩余回放数据的请求完成。 如果指定了 bDelay 字段,那么它将等待该时间量。 必须在 AUDIO_STOP 操作之前调用此操作,以避免回放缓冲区中最后剩余的样本中断。
AUDIO_SET_CHANNELS 驱动程序会更新其在驱动程序内部数据结构中的记录和回放设置的副本。
  • 如果记录路径处于活动状态,并且其中一个记录设置已更改,那么驱动程序会向 USB 音频设备发送请求以更改单元中的设置。
  • 如果回放路径处于活动状态,并且其中一个回放设置已更改,那么驱动程序将向 USB 音频设备发送请求以更改回放和回放骑手路径的单元中的设置。 对于回放路径,必须先在计算中包含主设置卷,然后再设置回放路径卷。
AUDIO_GET_CHANNELS 该驱动程序会返回基于四个输入和一个输出设备模型的信息。
AUDIO_CHANNEL_STATUS 该驱动程序返回存储在其内部数据结构中的信息。
AUDIO_SET_GAIN 该驱动程序会更新其内部数据结构中设置的副本。 如果记录路径处于活动状态,那么驱动程序会向 USB 音频设备发送请求以更改单元中的设置。
AUDIO_MODIFY_LIMITS 驱动程序会更新其内部数据结构中的值。 如果 select() 调用处于暂挂状态,并且满足取消阻止 select() 调用的条件之一,那么将取消阻止 select() 调用。
AUDIO_MASTER_VOLUME 驱动程序将保存新的主卷值。 它将根据新的主卷值和回放卷值来计算新的单元卷值。 如果回放处于活动状态,那么驱动程序会向 USB 音频设备发送请求以更改回放和回放骑手路径的单元中的设置。