毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
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
下一页
上一篇:
智能交互式指法练习系统的设计和开发
下一篇:
智能手机电影订票系统网站设计
电子政务环境下公务员的...
架设Linux(2.6内核)的服务器集群【745字】
改善嵌入式Linux实时性能的方法研究【2067字】
搭建Linux桌面环境的影音平台【1261字】
Linux内核的键盘模拟实现【1538字】
使用http协议和winsockapi实现...
于PCI9656设备驱动程序的...
医院财务风险因素分析及管理措施【2367字】
10万元能开儿童乐园吗,我...
国内外图像分割技术研究现状
AT89C52单片机的超声波测距...
C#学校科研管理系统的设计
承德市事业单位档案管理...
志愿者活动的调查问卷表
公寓空调设计任务书
中国学术生态细节考察《...
神经外科重症监护病房患...