Mercurial > mplayer.hg
comparison vcd_read.h @ 2089:d7920c8257e2
BSD/OS support
author | arpi |
---|---|
date | Fri, 05 Oct 2001 00:39:54 +0000 |
parents | 5216f108cb4f |
children |
comparison
equal
deleted
inserted
replaced
2088:c42b1e60934a | 2089:d7920c8257e2 |
---|---|
1 //=================== VideoCD ========================== | 1 //=================== VideoCD ========================== |
2 #if defined(linux) || defined(sun) | 2 #if defined(linux) || defined(sun) || defined(__bsdi__) |
3 | 3 |
4 #if defined(linux) | 4 #if defined(linux) |
5 #include <linux/cdrom.h> | 5 #include <linux/cdrom.h> |
6 #elif defined(sun) | 6 #elif defined(sun) |
7 #include <sys/cdio.h> | 7 #include <sys/cdio.h> |
8 static int sun_vcd_read(int, int*); | 8 static int sun_vcd_read(int, int*); |
9 #elif defined(__bsdi__) | |
10 #include <dvd.h> | |
9 #endif | 11 #endif |
10 | 12 |
11 | 13 |
12 static struct cdrom_tocentry vcd_entry; | 14 static struct cdrom_tocentry vcd_entry; |
13 | 15 |
77 | 79 |
78 | 80 |
79 static char vcd_buf[VCD_SECTOR_SIZE]; | 81 static char vcd_buf[VCD_SECTOR_SIZE]; |
80 | 82 |
81 static int vcd_read(int fd,char *mem){ | 83 static int vcd_read(int fd,char *mem){ |
82 #if defined(linux) | 84 #if defined(linux) || defined(__bsdi__) |
83 memcpy(vcd_buf,&vcd_entry.cdte_addr.msf,sizeof(struct cdrom_msf)); | 85 memcpy(vcd_buf,&vcd_entry.cdte_addr.msf,sizeof(struct cdrom_msf)); |
84 if(ioctl(fd,CDROMREADRAW,vcd_buf)==-1) return 0; // EOF? | 86 if(ioctl(fd,CDROMREADRAW,vcd_buf)==-1) return 0; // EOF? |
85 memcpy(mem,&vcd_buf[VCD_SECTOR_OFFS],VCD_SECTOR_DATA); | 87 memcpy(mem,&vcd_buf[VCD_SECTOR_OFFS],VCD_SECTOR_DATA); |
86 #elif defined(sun) | 88 #elif defined(sun) |
87 { | 89 { |
234 vcd_buf=&vcd_cache_data[vcd_cache_index*VCD_SECTOR_SIZE]; | 236 vcd_buf=&vcd_cache_data[vcd_cache_index*VCD_SECTOR_SIZE]; |
235 vcd_cache_sectors[vcd_cache_index]=vcd_cache_current; | 237 vcd_cache_sectors[vcd_cache_index]=vcd_cache_current; |
236 ++vcd_cache_index;if(vcd_cache_index>=vcd_cache_size)vcd_cache_index=0; | 238 ++vcd_cache_index;if(vcd_cache_index>=vcd_cache_size)vcd_cache_index=0; |
237 // read data! | 239 // read data! |
238 vcd_set_msf(vcd_cache_current); | 240 vcd_set_msf(vcd_cache_current); |
239 #if defined(linux) | 241 #if defined(linux) || defined(__bsdi__) |
240 memcpy(vcd_buf,&vcd_entry.cdte_addr.msf,sizeof(struct cdrom_msf)); | 242 memcpy(vcd_buf,&vcd_entry.cdte_addr.msf,sizeof(struct cdrom_msf)); |
241 if(ioctl(fd,CDROMREADRAW,vcd_buf)==-1) return 0; // EOF? | 243 if(ioctl(fd,CDROMREADRAW,vcd_buf)==-1) return 0; // EOF? |
242 memcpy(mem,&vcd_buf[VCD_SECTOR_OFFS],VCD_SECTOR_DATA); | 244 memcpy(mem,&vcd_buf[VCD_SECTOR_OFFS],VCD_SECTOR_DATA); |
243 #elif defined(sun) | 245 #elif defined(sun) |
244 { | 246 { |