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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章