一. 概述
二. ALSA設備文件結構
-
controlC0 --> 用於聲卡的控制,例如通道選擇,混音,麥克風的控制等
-
midiC0D0 --> 用於播放midi音頻
-
pcmC0D0c --〉 用於錄音的pcm設備
-
pcmC0D0p --〉 用於播放的pcm設備
-
seq --〉 音序器
-
timer --〉 定時器
-
#define SNDRV_DEV_TOPLEVEL ((__force snd_device_type_t) 0)
-
#define SNDRV_DEV_CONTROL ((__force snd_device_type_t) 1)
-
#define SNDRV_DEV_LOWLEVEL_PRE ((__force snd_device_type_t) 2)
-
#define SNDRV_DEV_LOWLEVEL_NORMAL ((__force snd_device_type_t) 0x1000)
-
#define SNDRV_DEV_PCM ((__force snd_device_type_t) 0x1001)
-
#define SNDRV_DEV_RAWMIDI ((__force snd_device_type_t) 0x1002)
-
#define SNDRV_DEV_TIMER ((__force snd_device_type_t) 0x1003)
-
#define SNDRV_DEV_SEQUENCER ((__force snd_device_type_t) 0x1004)
-
#define SNDRV_DEV_HWDEP ((__force snd_device_type_t) 0x1005)
-
#define SNDRV_DEV_INFO ((__force snd_device_type_t) 0x1006)
-
#define SNDRV_DEV_BUS ((__force snd_device_type_t) 0x1007)
-
#define SNDRV_DEV_CODEC ((__force snd_device_type_t) 0x1008)
-
#define SNDRV_DEV_JACK ((__force snd_device_type_t) 0x1009)
-
#define SNDRV_DEV_LOWLEVEL ((__force snd_device_type_t) 0x2000)
三. 驅動的代碼文件結構
-
core 該目錄包含了ALSA驅動的中間層,它是整個ALSA驅動的核心部分
-
core/oss 包含模擬舊的OSS架構的PCM和Mixer模塊
-
core/seq 有關音序器相關的代碼
-
include ALSA驅動的公共頭文件目錄,該目錄的頭文件需要導出給用戶空間的應用程序使用,通常,驅動模塊私有的頭文件不應放置在這裏
-
drivers 放置一些與CPU、BUS架構無關的公用代碼
-
i2c ALSA自己的I2C控制代碼
-
pci pci聲卡的頂層目錄,子目錄包含各種pci聲卡的代碼
-
isa isa聲卡的頂層目錄,子目錄包含各種isa聲卡的代碼
-
soc 針對system-on-chip體系的中間層代碼
-
soc/codecs 針對soc體系的各種codec的代碼,與平臺無關