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 {