/dev/snd/pcmC0D0c -->MultiMedia1-->msm-pcm-dsp-->msm-pcm-q6-v2.c PCM Record
/dev/snd/pcmC0D0p -->MultiMedia1-->msm-pcm-dsp-->msm-pcm-q6-v2.c PCM PlayBack
/dev/snd/pcmC0D2c -->CS-Voice-->msm-pcm-voice-->msm-pcm-q6-v2.c CS Voice TX
/dev/snd/pcmC0D2p -->CS-Voice-->msm-pcm-voice-->msm-pcm-q6-v2.c CS Voice RX
/dev/snd/pcmC0D0p
enum {
SNDRV_PCM_STREAM_PLAYBACK = 0,
SNDRV_PCM_STREAM_CAPTURE,
SNDRV_PCM_STREAM_LAST = SNDRV_PCM_STREAM_CAPTURE,
};
//msm-pcm-q6-v2.c
msm_pcm_probe
struct msm_pcm_loopback *pcm;
struct snd_pcm_substream *playback_substream;
struct snd_pcm *pcm;
struct snd_pcm_substream *capture_substream;
Open:
snd_pcm_f_ops pcm_native.c
snd_pcm_playback_open
snd_pcm_open
snd_pcm_open_file
snd_pcm_open_substream
substream->ops->open(substream)
msm_pcm_open //msm-pcm-q6-v2.c
每打开一次都是一个substream.
阅读(1389) | 评论(0) | 转发(0) |