Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 什么API用于耳机插孔感知?_C_Linux_Audio_Alsa - Fatal编程技术网

C 什么API用于耳机插孔感知?

C 什么API用于耳机插孔感知?,c,linux,audio,alsa,C,Linux,Audio,Alsa,我可以使用alsa API检测耳机的插入和移除吗?我应该使用哪种API?我的内核是在ARM上运行的3.0 Linux。在一个嵌入式项目中需要这一功能后,我做了一些调查,得出结论(大约6个月前),ALSA中没有任何针对插孔插入检测的通用支持 有趣的是,我确实在我使用的编解码器驱动程序(tlv310aic3xxx)中找到了耳机(和麦克风)检测支持,但它似乎没有深入到任何上层。我怀疑这个存在的原因是Android 基本上有两种添加此支持的方法: 添加对编解码器驱动程序的支持-可能会公开一个sysfs节

我可以使用alsa API检测耳机的插入和移除吗?我应该使用哪种API?我的内核是在ARM上运行的3.0 Linux。

在一个嵌入式项目中需要这一功能后,我做了一些调查,得出结论(大约6个月前),ALSA中没有任何针对插孔插入检测的通用支持

有趣的是,我确实在我使用的编解码器驱动程序(tlv310aic3xxx)中找到了耳机(和麦克风)检测支持,但它似乎没有深入到任何上层。我怀疑这个存在的原因是Android

基本上有两种添加此支持的方法:

  • 添加对编解码器驱动程序的支持-可能会公开一个
    sysfs
    节点,然后用户空间中的某些内容可以阻止该节点

  • 强制访问挂起编解码器的I2C总线(编解码器驱动程序通常“拥有”设备),并从用户空间对相关寄存器进行编程


  • 您可能会面临另一个体系结构问题,即虽然编解码器可以检测插入事件,但它需要某种方式中断CPU。tlv310aic3xxx设备具有可编程GPIO引脚,可以连接到主CPU上的中断线(如果在嵌入式平台上,这将是另一条GPIO线)。如果没有这个,你需要投票

    在一个嵌入式项目中需要这个功能之后,我做了一些调查,得出结论(大约6个月前),ALSA中没有任何针对插孔插入检测的通用支持

    有趣的是,我确实在我使用的编解码器驱动程序(tlv310aic3xxx)中找到了耳机(和麦克风)检测支持,但它似乎没有深入到任何上层。我怀疑这个存在的原因是Android

    基本上有两种添加此支持的方法:

  • 添加对编解码器驱动程序的支持-可能会公开一个
    sysfs
    节点,然后用户空间中的某些内容可以阻止该节点

  • 强制访问挂起编解码器的I2C总线(编解码器驱动程序通常“拥有”设备),并从用户空间对相关寄存器进行编程


  • 您可能会面临另一个体系结构问题,即虽然编解码器可以检测插入事件,但它需要某种方式中断CPU。tlv310aic3xxx设备具有可编程GPIO引脚,可以连接到主CPU上的中断线(如果在嵌入式平台上,这将是另一条GPIO线)。如果没有这个,你需要投票

    你在使用哪些驱动程序?你在使用哪些驱动程序?