{
struct cdrom_msf0 msf;
int lba;
};
在利用该结构作为参数时,需要先在cdte_format域中指明期望返回的地址格式,CDROM_MSF或者LEA。除了地址格式之外,在调用ioctl()前还需要在cdte_track域中指明要返回哪一条音轨的相应信息,需要注意的是,如果想返回第一条有效音轨的信息,应该使用1而不是0,而如果想返回起始(leadout)音轨的信息,则应该使用CDROM_LEADOUT宏来实现。
4) cdrom_msf结构
在使用CDROMPLAYMSF命令控制CD播放时,需要指明播放的起始位置和终止位置,此时就是通过向ioctl()的第三个参数传递一个这样的指针结构。
struct cdrom_msf
{
__u8 cdmsf_min0; /* start minute */
__u8 cdmsf_sec0; /* start second */
__u8 cdmsf_frame0; /* start frame */
__u8 cdmsf_min1; /* end minute */
__u8 cdmsf_sec1; /* end second */
__u8 cdmsf_frame1; /* end frame */
};
在将cdrom_msf结构传递给ioctl()系统调用之前,需要在cdmsf_min0、cdmsf_sec0和cdmsf_frame0域中指明播放的起始位置,并在cdmsf_min1、cdmsf_sec1和cdmsf_frame1域中指明播放的终止位置。一旦ioctl()系统调用成功完成,CD驱动程序就将从指定的位置处开始播放,并在到达终止位置时自动停止。 Linux环境下CD播放器的设计与实现(7):http://www.youerw.com/jisuanji/lunwen_7816.html