ALSA學習筆記 (1) ALSA 簡介
1. ALSA接口
1.1 對用戶空間的接口
1.1.1 設備節點:
/dev/snd/目錄下
controlC0:聲卡0控制文件
pcmC0D0c:聲卡0,設備0,錄製聲音流操作文件
pcmC0D0p:聲卡0,設備1,播放音樂流操作文件
pcmC0D1c pcmC0D1p 。。。。。。。。
1.1.2 proc文件系統
/proc/asound/
1.1.3 debug 文件系統節點
/sys/kernel/debug/asoc/
1.2 對驅動的接口
(1) 聲卡相關的接口
(2) PCM流的接口
(3) Control相關的接口
2. Hello ALSA 創建一個聲卡必要流程
2.1 創建一個聲卡的實例
struct snd_card *card;
snd_card_new(&dev->dev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, THIS_MODULE, 0, &card);
2.2 創建聲卡的PCM部件
snd_pcm_new(card, "ALSA-TEST-PCM", 0, play, capt, &rpcm);
snd_pcm_set_ops(rpcm, stream, &hello_pcm_ops);
snd_pcm_set_ops(rpcm, stream, &hello_pcm_ops);
2.3 創建聲卡的control部件(Mixer,volume)
static struct snd_kcontrol_new my_control = {}
snd_ctl_new1(my_control,NULL)
snd_ctl_add(card, snd_ctl_new1(my_control,NULL));
2.4 註冊聲卡
snd_card_register(card);