首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux ALSA声卡驱动之二:声卡的创建

list_head controls:记录该声卡下所有的控制单元的链表 void *private_data:声卡的私有数据,可以在创建声卡时通过参数指定数据的大小 二、声卡的建立流程: 2.1.1....第二步,创建声卡的芯片专用数据: 声卡的专用数据主要用于存放该声卡的一些资源信息,例如中断资源、io资源、dma资源等。...第三步,设置Driver的ID和名字: strcpy(card->driver, "My Chip"); strcpy(card->shortname, "My Own Chip 123"); sprintf...第四步,创建声卡的功能部件(逻辑设备),例如PCM,Mixer,MIDI等: 这时候可以创建声卡的各种功能部件了,还记得开头的snd_card结构体的devices字段吗?...三、snd_card_create(): 这个接口在新的Linux内核里面可能找不到,这里我们主要是学习思想! snd_card_create()在/sound/core/init.c中定义。

56410
您找到你想要的搜索结果了吗?
是的
没有找到

Linux下使用alsamixer配置系统默认声卡设备(默认音频输出设备、输入设备、系统音量)

一、系统环境 操作系统: ubuntu 18.04 64位 二、查看系统有哪些声卡可用(麦克风和扬声器) 当系统下存在多个麦克风或者扬声器的时候,配置默认的设备是很有必要的。...2.1 运行alsamixer命令,打开图形界面 wbyq@wbyq:~$ alsamixer 打开图形界面之后,按下F6,即可查看系统默认声卡。...三、设置系统默认的音量 3.1. 使用 alsamixer 图形界面手动设置 打开图形界面之后,按下键盘上的方向键即可设置音量。...四、测试声卡设备是否正常(录音和放音) 4.1 使用系统默认声卡录音和放音 wbyq@wbyq:~$ arecord -d 10 test.wav 正在录音 WAVE 'test.wav' : Unsigned...五、设置系统默认的麦克风设备和扬声器设备 5.1 创建声卡配置文件 针对全局配置: 在/etc目录下创建文件asound.conf 针对指定用户配置: 在用户目录下创建文件.asoundrc 5.2

17.4K20

解密:Android设置默认程序

Android作为一个伟大的系统,自然提供了设置默认打开程序的实现.在这篇文章中,我会介绍如何在Android系统中设置默认的程序....在设置默认程序之前,无非有两种情况,一种是已经有默认的程序,另一种则是没有任何默认程序....原因是这样的Android因为基于Linux 内核,Linux有着很棒的用户概念,而Android中每个应用就是一个在Linux内核中的用户.两个级别相同的用户无法删除对方....如果用户从安装详情页回到你的程序,你需要检测是不是用户清理了默认的程序设置,判断依据还是是否有默认的程序设置,如果还有默认的,继续提示需要手动清理其他已设置的程序,直到用户彻底清理完成之后,然后按照下面的没有默认设置程序的情况处理...注意,存在多次清理的情况,如设置浏览器,先清理了UC默认设置后,可能还需要清理海豚浏览器的情况. 没有默认的程序.

2.6K20

Linux ALSA声卡驱动之三:PCM设备的创建

每个声卡最多可以包含4个pcm的实例,每个pcm实例对应一个pcm设备文件。pcm实例数量的这种限制源于linux设备号所占用的位大小,如果以后使用64位的设备号,我们将可以创建更多的pcm实例。...另一个用于设置pcm操作函数接口的api: void snd_pcm_set_ops(struct snd_pcm *pcm, int direction, struct snd_pcm_ops *ops...); 新建一个pcm可以用下面一张新建pcm的调用的序列图进行描述: 图3.1 新建pcm的序列图 snd_card_create pcm是声卡下的一个设备(部件),所以第一步是要创建一个声卡...,参数ops中的dev_register字段指向了函数snd_pcm_dev_register,这个回调函数会在声卡的注册阶段被调用。...snd_pcm_set_ops 设置操作该pcm的控制/操作接口函数,参数中的snd_pcm_ops结构中的函数通常就是我们驱动要实现的函数 snd_card_register 注册声卡,在这个阶段会遍历声卡下的所有逻辑设备

49720

Linux ALSA声卡驱动之四:Control设备的创建

默认的访问类型是:SNDDRV_CTL_ELEM_ACCESS_READWRITE,表明该control支持读和写操作。...很多声卡的驱动利用它存储硬件寄存器的地址、bit-shift和bit-mask,这时,private_value字段可以按以下例子进行设置: .private_value = reg | (shift...3、put回调函数: put回调函数用于把应用程序的控制值设置到control中。...详细的创建过程可以参考本博的另一篇文章:Linux音频驱动之三:PCM设备的创建。下面我们只讨论有区别的地方。...所以我们无需显式地创建control设备,只要建立声卡,control设备被自动地创建。 和pcm设备一样,control设备的名字遵循一定的规则:controlCxx,这里的xx代表声卡的编号。

21910
领券