毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
Linux环境下CD播放器的设计与实现(5)
CDROMMULTISESSION Struct cdrom_multisession 读取混合型光盘的数据
CDROMRESET 无 重置CD驱动器
CDROM_GET_UPC 无 获得CD的唯一代码
CDROMAUDIOBUFSIZ int 设置音频缓冲区的大小
作为应用程序和设备驱动之间的接口,ioctl()负责将用户请求转换成对硬件设备的操作,它在调用时需要指定三个参数。第一个参数是要对其进行操作的设备描述符;第二个参数是一个整型的数值,它可以用来指定将对硬件进行何种请求;第三个参数是可选的,通常情况下是一个void型的指针,其主要作用是在应用程序和设备驱动之间交换一定数量的信息,具体到CD驱动器来讲一般是指向某个特定结构的指针,这些结构的具体定义可以在<linux/cdrom.h>中找到。
3 编译环境的搭建和检测
安装好的系统中已经有GCC,因此不需要对GCC的问题进行过多的关心。同时系统对设备的控制也在系统安装时自动弄好了,因此搭建环境任务主要是Qt的安装与设置以及光驱是否能够正常工作。
3.1 Qt的安装与测试
Qt的安装有在线安装和离线安装两种方式。这里选择的是离线安装。具体的操作就是先下载好Qt_SDK_Lin32_offline_v1_2_en.run离线包,然后进入虚拟终端进入离线包所放置的位置,运行安装命令:
./ Qt_SDK_Lin32_offline_v1_2_en.run
安装完成后提示没有编译桌面软件的工具链,此时需要手动设置工具链如图2。
图2 Qt工具链的手动设置
图上的工具链即为GCC,这也意着Linux中Qt下的编译是通过GCC进行编译的。
至此,Qt的设置基本就绪。创建一个测试程序来验证是否是正确的。
新建一个工程,选择Widget作为主窗口,在窗口中加入一个Label控件,设置Label的text属性为“Hello Qt!”,编译运行出现结果图3:
图3 测试结果
出现上述结果说明配置正确,Qt能够正常的工作。
3.2 光驱的测试
因为编写的是对CD的播放的程序,因此依赖于光驱的好坏,如果光驱不好,即使编写出来的程序是可运行的,也无法进行验证。因此对光驱好坏的验证是必要的。如果光驱坏了,就需要更换光驱再验证,直到确认光驱是好的为止。
对光驱的检验其实非常简单,只需要一个光驱可支持的CD盘,插入光驱,然后对光驱进行挂载,挂载后,如果查看挂载文件上的内容能够显示出来,就说明光驱是好的,否则就是坏的。测试结果如图4所示
图4 光驱的测试
出现这个结果说明PC机上的光驱是好的,并且显示该音频CD上有11首歌曲,也就是说有11个具有有效数据信息的音轨。实际上音频CD还有一个空白音轨,大约2秒钟,该空白音轨虽然没有数据,但对音频CD的控制等却有很重要的作用。
4 程序的设计
4.1 程序设计目标
程序设计的目标是:使用Qt和设备控制中的ioctl系统调用实现对插入光驱的音频CD进行播放及其他控制以及读取其中的信息。
具体目标如下:
1) 在音频CD插入光驱并挂载(mount)后,打开光驱设备文件
2) 对CD进行播放,在播放的过程中,可以暂停或停止。
3) 播放状态为暂停时能够从暂停处恢复播放,或者直接停止
4) 在播放过程中,再次按播放时,CD从头开始播放
5) 实现上一曲,下一曲
6) 歌曲播放时实时动态的显示播放时间
共7页:
上一页
1
2
3
4
5
6
7
下一页
上一篇:
智能交互式指法练习系统的设计和开发
下一篇:
智能手机电影订票系统网站设计
基于android的环境信息管理系统设计
多频激励下典型非线性系统的振动特性研究
大数据时代下电子商务个性化信息服务研究
基于Linux的员工管理系统的设计与实现
SSM框架移动乐豆游戏下载系统设计+源代码
基于神经网络的水下机器人路径规划算法研究
Linux系统下web服务器的搭建与设计
上海居民的社会参与研究
压疮高危人群的标准化中...
基于Joomla平台的计算机学院网站设计与开发
浅论职工思想政治工作茬...
浅谈高校行政管理人员的...
AES算法GPU协处理下分组加...
STC89C52单片机NRF24L01的无线病房呼叫系统设计
提高教育质量,构建大學生...
酵母菌发酵生产天然香料...
从政策角度谈黑龙江對俄...