本帖最后由 testh 于 2013-04-08 17:19 编辑 目前已经实现了两个设备,pcmC0D0p和pcmC0D1p,每个设备有两个通道。想把这2个物理设备虚拟成一个有4个通道的虚拟设备。通过查资料,现将配置文件asoundrc修改为如下:[code]pcm.!default{ type hw card 0 } ctl.!default{ type hw card 0 } ################################# ## create a virtul device which has 4 channels for playback. ##########################...
可以认为上层应用是通过名称标识name来遍历底层的snd_kcontrol链表,从而找到相匹配的kcontrol。见snd_ctl_find_id函数[code]/** * snd_ctl_find_id - find the control instance with the given id * @card: the card instance * @id: the id to search * * Finds the control instance with the given id from the card. * * Returns the pointer of the instance if found, or NULL if not. * * The caller must down ...
我们现在在三星的平台上开发,用的ak4671的codec,用的内核2.6.36版本上的codec 驱动,板文件时自己加的,加上后发现播放没有声音,但如果我在ak4671_hw_params()函数了之间写寄存器来打开开关能录能放。但是据说alsa只要注册了很多开关和widget后,它可以根据用户选择来自动切换路径,但现在应该如果配置,请高人给指点一下该如何配置?急啊!!!
export STAUDLX_alsa_LDDE2.2 export "STAUDLX_alsa_LDDE2.2" export STAUDLX_alsa_LDDE2.2=1 export "STAUDLX_alsa_LDDE2.2"=1 上述的都试验过了,值是多少无所谓 出错提示 无效的标识符
本帖最后由 testh 于 2012-12-27 11:34 编辑 我已经按照说明配置好了 CONFIG_SND_PCM_XRUN_DEBUG = y CONFIG_SND_VERBOSE_PROCFS = y CONFIG_SND_DEBUG =y 并且在加载完驱动后,文件/proc/asound/card0/pcm0p/xrun_debug存在; 执行 echo 128 > /proc/asound/card0/pcm0p/xrun_debug打开所有的调试level 运行测试程序时不能在终端看到有关的xrun_debug的信息,请熟悉的朋友指点一下,谢谢。
在对音频snd_soc_dapm_widget创建的链表后,对这个结构里面的connect赋值0,或者1,然后是怎么控制硬件音频的通道选择 下面是函数调用, tcc_soc_set_input--> tcc_soc_ext_control(codec)-->snd_soc_dapm_set_endpoint(codec, "MIC Jack", 1)-->snd_soc_dapm_disable_pin(codec,pin)--> snd_soc_dapm_set_pin(codec, pin, 0) --> w->connected = status;[snd_soc_dapm_widget *w] 如上给w->connected = 1后, 怎么去打开MIC呢?就是...
看了alsa官网上的一个pci声卡的驱动,没仔细看,有些昏,好像对我要做的i2s接口的驱动帮助不大. 请教高手应该看哪些东西,学习的过程. 谢谢.
在alsamixer 中的Channel Mode 是用来控制录放音的。但我试了一下,好像将该选项切换为“2ch”时才能录音,切换为“6ch”时声音才能放出,那如果我要在放音的同时将它录下来该怎么办? 现在很多声卡都支持全双工,那如此,在linux下岂不都被alsa给埋没了?请高手指点一下啊! 对声卡的读写,以及设备文件的初始化我用的都是在OSS驱动下的方法,只有对mixer的详细控制我才改为用alsa的API,但我每次都未能录到声音(单独放音时能听到...