From 4cd35a04b907fcf450f3571b0f3288df848c4b07 Mon Sep 17 00:00:00 2001 From: arpi_esp Date: Sun, 3 Jun 2001 00:31:41 +0000 Subject: FreeBSD support by Vladimir Kushnir vkushnir@Alfacom.net git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@959 b3059339-0415-0410-9bf9-f77b7e298cf2 --- vcd_read_fbsd.h | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 vcd_read_fbsd.h (limited to 'vcd_read_fbsd.h') diff --git a/vcd_read_fbsd.h b/vcd_read_fbsd.h new file mode 100644 index 0000000000..b5de6e6866 --- /dev/null +++ b/vcd_read_fbsd.h @@ -0,0 +1,141 @@ +//=================== VideoCD ========================== +#define CDROM_LEADOUT 0xAA + +typedef struct { + unsigned char unused; + unsigned char minute; + unsigned char second; + unsigned char frame; +} cdrom_msf; + +static struct ioc_read_toc_single_entry vcd_entry; + +static inline void vcd_set_msf(unsigned int sect){ + vcd_entry.entry.addr.msf.frame=sect%75; + sect=sect/75; + vcd_entry.entry.addr.msf.second=sect%60; + sect=sect/60; + vcd_entry.entry.addr.msf.minute=sect; +} + +static inline unsigned int vcd_get_msf(){ + return vcd_entry.entry.addr.msf.frame + + (vcd_entry.entry.addr.msf.second+ + vcd_entry.entry.addr.msf.minute*60)*75; +} + +int vcd_seek_to_track(int fd,int track){ + vcd_entry.address_format = CD_MSF_FORMAT; + vcd_entry.track = track; + if (ioctl(fd, CDIOREADTOCENTRY, &vcd_entry)) { + perror("ioctl dif1"); + return -1; + } + return VCD_SECTOR_DATA*vcd_get_msf(); +} + +int vcd_get_track_end(int fd,int track){ + struct ioc_toc_header tochdr; + if (ioctl(fd,CDIOREADTOCHEADER,&tochdr)==-1) + { perror("read CDROM toc header: "); return -1; } + vcd_entry.address_format = CD_MSF_FORMAT; + vcd_entry.track = track=vcd_cache_size)vcd_cache_index=0; + // read data! + vcd_set_msf(vcd_cache_current); + memcpy(vcd_buf,&vcd_entry.entry.addr.msf,sizeof(struct cdrom_msf)); +/* if(ioctl(fd,CDROMREADRAW,vcd_buf)==-1) return 0; */ // EOF? + ++vcd_cache_current; + memcpy(mem,&vcd_buf[VCD_SECTOR_OFFS],VCD_SECTOR_DATA); + return VCD_SECTOR_DATA; +} + +#endif -- cgit v1.2.3