Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15498944
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: LINUX

2009-11-19 12:42:51

static int snd_pcm_oss_make_ready(struct snd_pcm_substream *substream)
{
    struct snd_pcm_runtime *runtime;
    int err;

    if (substream == NULL)
        return 0;
    runtime = substream->runtime;
// 在snd_pcm_oss_open
// ==> snd_pcm_oss_open_file
// ==> snd_pcm_oss_init_substream
// ==> runtime->oss.params = 1;
    if (runtime->oss.params) {
        err = snd_pcm_oss_change_params(substream);  《浅析alsa声卡驱动snd_pcm_oss_change_params函数》
// snd_pcm_oss_change_params中会设置runtime->oss.prepare = 1;
        if (err < 0)
            return err;
    }
    if (runtime->oss.prepare) {
        err = snd_pcm_oss_prepare(substream); // 调用snd_pcm_kernel_ioctl发送SNDRV_PCM_IOCTL_PREPARE 《浅析alsa声卡驱动snd_pcm_kernel_ioctl函数》
        if (err < 0)                          // 准备就绪,音频数据从现在开始可以操作了[luther.gliethttp]
            return err;
    }
    return 0;
}
阅读(1076) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~