设为首页 加入收藏

TOP

Tiny6410声卡驱动——录音与回放
2014-11-24 02:01:49 来源: 作者: 【 】 浏览:1
Tags:Tiny6410 声卡驱动 录音 回放

在Linux下,音频设备程序的实现与文件系统的操作密切相关。Linux将各种设备以文件的形式给出统一的接口,这样的设计使得对设备的编程与对文件的操作基本相同,对Linux内核的系统调用也基本一致,从而简化了设备编程


如何对各种音频设备进行操作是在Linux上进行音频编程的关键,通过内核提供的一组系统调用,应用程序能够访问声卡驱动程序提供的各种音频设备接口,这是在Linux下进行音频编程最简单也是最直接的方法。


声卡不是Linux控制台的一部分,它是一个特殊的设备。声卡主要提供3个重要的特征:


这3个特征都有它们自己的设备驱动程序接口





混音设备(如音量、平衡或者贝斯)可以通过/dev/mixer接口来控制。


为了满足兼容性的需要,还提供了一个/dev/audio设备,该设备可用于读SUN_law的声音数据,但它是映射到数字取样设备的。



程序员可以使用ioctl()来操作这些设备,ioctl()请求是在linux/soundcard.h中定义的,它们以SNDCTL_开头。





系统调用open可以获得对声卡的访问权,同时还能为随后的系统调用做好准备,其函数原型如下所示:



int open(const char *pathname, int flags, int mode);



如果open系统调用失败,它将返回-1,同时还会设置全局变量errno,指明是什么原因导致了错误的发生。




read用来从声卡读取数据,其函数原型如下所示



int read(int fd, char *buf, size_t count);




如果read系统调用成功完成,它将返回从声卡实际读取的字节数,通常情况会比count的值小一些;如果read系统调用失败,它将返回-1,同时还会设置全局变量errno,来指明是什么原因导致了错误的发生。


相关阅读


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇GCC内嵌AT&T汇编语法 下一篇Linux内核--内核数据类型

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: