1 diff -ur cdparanoia-III-10.2/interface/cdda_interface.h cdparanoia/interface/cdda_interface.h
2 --- cdparanoia-III-10.2/interface/cdda_interface.h 2008-09-11 12:43:52.000000000 +0200
3 +++ cdparanoia/interface/cdda_interface.h 2009-01-28 18:02:11.000000000 +0100
8 - cdda_private_data_t *private;
9 + cdda_private_data_t *private_data;
11 unsigned char inqbytes[4];
13 diff -ur cdparanoia-III-10.2/interface/cooked_interface.c cdparanoia/interface/cooked_interface.c
14 --- cdparanoia-III-10.2/interface/cooked_interface.c 2008-08-26 11:55:22.000000000 +0200
15 +++ cdparanoia/interface/cooked_interface.c 2009-01-28 18:02:11.000000000 +0100
17 static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
20 - int ret1=clock_gettime(d->private->clock,&tv1);
21 + int ret1=clock_gettime(d->private_data->clock,&tv1);
22 int ret2=ioctl(fd, command,arg);
23 - int ret3=clock_gettime(d->private->clock,&tv2);
24 + int ret3=clock_gettime(d->private_data->clock,&tv2);
26 - d->private->last_milliseconds=-1;
27 + d->private_data->last_milliseconds=-1;
29 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
30 + d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
34 diff -ur cdparanoia-III-10.2/interface/interface.c cdparanoia/interface/interface.c
35 --- cdparanoia-III-10.2/interface/interface.c 2008-09-11 12:43:52.000000000 +0200
36 +++ cdparanoia/interface/interface.c 2009-01-28 18:02:11.000000000 +0100
38 if(d->drive_model)free(d->drive_model);
39 if(d->cdda_fd!=-1)close(d->cdda_fd);
40 if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd);
42 - if(d->private->sg_hd)free(d->private->sg_hd);
44 + if(d->private_data){
45 + if(d->private_data->sg_hd)free(d->private_data->sg_hd);
46 + free(d->private_data);
54 + if(d->bigendianp==-1)d->bigendianp=data_bigendianp(d);
56 if((ret=d->enable_cdda(d,1)))
59 - /* d->select_speed(d,d->maxspeed); most drives are full speed by default */
60 - if(d->bigendianp==-1)d->bigendianp=data_bigendianp(d);
65 if(d->bigendianp==-1) /* not determined yet */
66 d->bigendianp=data_bigendianp(d);
68 - if(d->bigendianp!=bigendianp()){
69 + if(buffer && d->bigendianp!=bigendianp()){
71 u_int16_t *p=(u_int16_t *)buffer;
72 long els=sectors*CD_FRAMESIZE_RAW/2;
77 - if(ms)*ms=d->private->last_milliseconds;
78 + if(ms)*ms=d->private_data->last_milliseconds;
82 diff -ur cdparanoia-III-10.2/interface/scan_devices.c cdparanoia/interface/scan_devices.c
83 --- cdparanoia-III-10.2/interface/scan_devices.c 2008-08-26 11:55:22.000000000 +0200
84 +++ cdparanoia/interface/scan_devices.c 2009-01-28 18:02:11.000000000 +0100
86 d->interface=COOKED_IOCTL;
87 d->bigendianp=-1; /* We don't know yet... */
89 - d->private=calloc(1,sizeof(*d->private));
90 + d->private_data=calloc(1,sizeof(*d->private_data));
94 - d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
95 + d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
97 idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
100 d->bigendianp=-1; /* We don't know yet... */
102 d->messagedest = messagedest;
103 - d->private=calloc(1,sizeof(*d->private));
104 + d->private_data=calloc(1,sizeof(*d->private_data));
108 - d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
109 + d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
112 d->interface=SGIO_SCSI;
113 - d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
114 + d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
115 g_fd=d->cdda_fd=dup(d->ioctl_fd);
117 version=verify_SG_version(d,messagedest,messages);
121 /* malloc our big buffer for scsi commands */
122 - d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
123 - d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
124 + d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
125 + d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
130 if(i_fd!=-1)close(i_fd);
131 if(g_fd!=-1)close(g_fd);
134 - if(d->private->sg_hd)free(d->private->sg_hd);
136 + if(d->private_data){
137 + if(d->private_data->sg_hd)free(d->private_data->sg_hd);
138 + free(d->private_data);
143 d->interface=TEST_INTERFACE;
144 d->bigendianp=-1; /* We don't know yet... */
146 - d->private=calloc(1,sizeof(*d->private));
147 + d->private_data=calloc(1,sizeof(*d->private_data));
148 d->drive_model=copystring("File based test interface");
149 idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);
151 diff -ur cdparanoia-III-10.2/interface/scsi_interface.c cdparanoia/interface/scsi_interface.c
152 --- cdparanoia-III-10.2/interface/scsi_interface.c 2008-09-11 22:33:30.000000000 +0200
153 +++ cdparanoia/interface/scsi_interface.c 2009-01-28 18:02:11.000000000 +0100
155 static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
158 - int ret1=clock_gettime(d->private->clock,&tv1);
159 + int ret1=clock_gettime(d->private_data->clock,&tv1);
160 int ret2=ioctl(fd, command,arg);
161 - int ret3=clock_gettime(d->private->clock,&tv2);
162 + int ret3=clock_gettime(d->private_data->clock,&tv2);
163 if(ret1<0 || ret3<0){
164 - d->private->last_milliseconds=-1;
165 + d->private_data->last_milliseconds=-1;
167 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
168 + d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
173 static void clear_garbage(cdrom_drive *d){
176 - struct sg_header *sg_hd=d->private->sg_hd;
177 + struct sg_header *sg_hd=d->private_data->sg_hd;
180 /* clear out any possibly preexisting garbage */
185 - struct sg_header *sg_hd=d->private->sg_hd;
186 + struct sg_header *sg_hd=d->private_data->sg_hd;
187 long writebytes=SG_OFF+cmd_len+in_size;
189 /* generic scsi device services */
192 memset(sg_hd,0,sizeof(sg_hd));
193 memset(sense_buffer,0,SG_MAX_SENSE);
194 - memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
195 + memcpy(d->private_data->sg_buffer,cmd,cmd_len+in_size);
196 sg_hd->twelve_byte = cmd_len == 12;
198 sg_hd->reply_len = SG_OFF + out_size;
200 tell if the command failed. Scared yet? */
202 if(bytecheck && out_size>in_size){
203 - memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
204 + memset(d->private_data->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
205 /* the size does not remove cmd_len due to the way the kernel
206 driver copies buffers */
207 writebytes+=(out_size-in_size);
211 sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
212 - tret1=clock_gettime(d->private->clock,&tv1);
213 + tret1=clock_gettime(d->private_data->clock,&tv1);
215 status = write(d->cdda_fd, sg_hd, writebytes );
221 - tret2=clock_gettime(d->private->clock,&tv2);
222 + tret2=clock_gettime(d->private_data->clock,&tv2);
224 status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
225 sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL );
227 if(bytecheck && in_size+cmd_len<out_size){
229 for(i=in_size;i<out_size;i++)
230 - if(d->private->sg_buffer[i]!=bytefill){
231 + if(d->private_data->sg_buffer[i]!=bytefill){
238 if(tret1<0 || tret2<0){
239 - d->private->last_milliseconds=-1;
240 + d->private_data->last_milliseconds=-1;
242 - d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
243 + d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
249 memset(&hdr,0,sizeof(hdr));
250 memset(sense,0,sizeof(sense));
251 - memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
252 + memcpy(d->private_data->sg_buffer,cmd+cmd_len,in_size);
255 hdr.cmd_len = cmd_len;
257 hdr.mx_sb_len = SG_MAX_SENSE;
259 hdr.interface_id = 'S';
260 - hdr.dxferp = d->private->sg_buffer;
261 + hdr.dxferp = d->private_data->sg_buffer;
262 hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
264 /* scary buffer fill hack */
266 if(bytecheck && in_size<out_size){
268 for(i=in_size;i<out_size;i++)
269 - if(d->private->sg_buffer[i]!=bytefill){
270 + if(d->private_data->sg_buffer[i]!=bytefill){
277 /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
278 - /* d->private->last_milliseconds = hdr.duration; */
279 + /* d->private_data->last_milliseconds = hdr.duration; */
285 handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
287 - key = d->private->sg_buffer[2] & 0xf;
288 - ASC = d->private->sg_buffer[12];
289 - ASCQ = d->private->sg_buffer[13];
290 + key = d->private_data->sg_buffer[2] & 0xf;
291 + ASC = d->private_data->sg_buffer[12];
292 + ASCQ = d->private_data->sg_buffer[13];
294 if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
297 if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1);
300 - unsigned char *b=d->private->sg_buffer;
301 + unsigned char *b=d->private_data->sg_buffer;
302 if(b[0])return(1); /* Handles only up to 256 bytes */
303 if(b[6])return(1); /* Handles only up to 256 bytes */
306 static unsigned int get_orig_sectorsize(cdrom_drive *d){
307 if(mode_sense(d,12,0x01))return(-1);
309 - d->orgdens = d->private->sg_buffer[4];
310 - return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
311 + d->orgdens = d->private_data->sg_buffer[4];
312 + return(d->orgsize = ((int)(d->private_data->sg_buffer[10])<<8)+d->private_data->sg_buffer[11]);
315 /* switch CDROM scsi drives to given sector size */
320 - first=d->private->sg_buffer[2];
321 - last=d->private->sg_buffer[3];
322 + first=d->private_data->sg_buffer[2];
323 + last=d->private_data->sg_buffer[3];
326 if (last > MAXTRK || first > MAXTRK || last<0 || first<0) {
331 - scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
332 + scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
334 d->disc_toc[i-first].bFlags=toc->bFlags;
335 d->disc_toc[i-first].bTrack=i;
340 - scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
341 + scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
343 d->disc_toc[i-first].bFlags=toc->bFlags;
344 d->disc_toc[i-first].bTrack=0xAA;
348 /* copy to our structure and convert start sector */
349 - tracks = d->private->sg_buffer[1];
350 + tracks = d->private_data->sg_buffer[1];
351 if (tracks > MAXTRK) {
352 cderror(d,"003: CDROM reporting illegal number of tracks\n");
354 @@ -754,33 +754,33 @@
358 - d->disc_toc[i].bFlags = d->private->sg_buffer[10];
359 + d->disc_toc[i].bFlags = d->private_data->sg_buffer[10];
360 d->disc_toc[i].bTrack = i + 1;
362 d->disc_toc[i].dwStartSector= d->adjust_ssize *
363 - (((signed char)(d->private->sg_buffer[2])<<24) |
364 - (d->private->sg_buffer[3]<<16)|
365 - (d->private->sg_buffer[4]<<8)|
366 - (d->private->sg_buffer[5]));
367 + (((signed char)(d->private_data->sg_buffer[2])<<24) |
368 + (d->private_data->sg_buffer[3]<<16)|
369 + (d->private_data->sg_buffer[4]<<8)|
370 + (d->private_data->sg_buffer[5]));
373 d->disc_toc[i].bFlags = 0;
374 d->disc_toc[i].bTrack = i + 1;
375 - memcpy (&foo, d->private->sg_buffer+2, 4);
376 - memcpy (&bar, d->private->sg_buffer+6, 4);
377 + memcpy (&foo, d->private_data->sg_buffer+2, 4);
378 + memcpy (&bar, d->private_data->sg_buffer+6, 4);
379 d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
382 d->disc_toc[i].dwStartSector= d->adjust_ssize *
383 - ((((signed char)(d->private->sg_buffer[2])<<24) |
384 - (d->private->sg_buffer[3]<<16)|
385 - (d->private->sg_buffer[4]<<8)|
386 - (d->private->sg_buffer[5]))+
387 + ((((signed char)(d->private_data->sg_buffer[2])<<24) |
388 + (d->private_data->sg_buffer[3]<<16)|
389 + (d->private_data->sg_buffer[4]<<8)|
390 + (d->private_data->sg_buffer[5]))+
392 - ((((signed char)(d->private->sg_buffer[6])<<24) |
393 - (d->private->sg_buffer[7]<<16)|
394 - (d->private->sg_buffer[8]<<8)|
395 - (d->private->sg_buffer[9]))));
396 + ((((signed char)(d->private_data->sg_buffer[6])<<24) |
397 + (d->private_data->sg_buffer[7]<<16)|
398 + (d->private_data->sg_buffer[8]<<8)|
399 + (d->private_data->sg_buffer[9]))));
402 d->cd_extra = FixupTOC(d,tracks+1);
405 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
407 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
408 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
414 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
416 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
417 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
423 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
425 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
426 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
432 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
434 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
435 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
441 if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
443 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
444 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
450 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
452 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
453 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
459 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
461 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
462 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
468 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
470 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
471 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
477 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
479 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
480 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
486 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
488 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
489 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
495 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
497 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
498 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
504 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
506 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
507 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
511 @@ -1026,7 +1026,7 @@
513 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
515 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
516 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
520 @@ -1039,7 +1039,7 @@
522 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
524 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
525 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
529 @@ -1052,7 +1052,7 @@
531 if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
533 - if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
534 + if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
538 @@ -1275,7 +1275,7 @@
539 static int count_2352_bytes(cdrom_drive *d){
542 - if(d->private->sg_buffer[i]!=(unsigned char)'\177')
543 + if(d->private_data->sg_buffer[i]!=(unsigned char)'\177')
544 return(((i+3)>>2)<<2);
547 @@ -1284,7 +1284,7 @@
548 static int verify_nonzero(cdrom_drive *d){
551 - if(d->private->sg_buffer[i]!=0){
552 + if(d->private_data->sg_buffer[i]!=0){
556 @@ -1298,7 +1298,7 @@
558 static int verify_read_command(cdrom_drive *d){
563 int (*enablecommand) (struct cdrom_drive *d, int speed);
564 long (*readcommand) (struct cdrom_drive *d, void *p, long begin,
565 @@ -1313,7 +1313,7 @@
568 if(d->enable_cdda(d,1)==0){
571 for(i=1;i<=d->tracks;i++){
572 if(cdda_track_audiop(d,i)==1){
573 long firstsector=cdda_track_firstsector(d,i);
574 @@ -1358,115 +1358,111 @@
575 /* NEC test must come before sony; the nec drive expects d8 to be
576 10 bytes, and a 12 byte verson (Sony) crashes the drive */
579 - int densitypossible=1;
585 - d->read_audio=scsi_read_28;
588 + d->enable_cdda=Dummy;
592 - d->read_audio=scsi_read_A8;
595 + d->enable_cdda=scsi_enable_cdda;
600 - d->read_audio=scsi_read_mmcB;
604 + d->enable_cdda=scsi_enable_cdda;
608 - d->read_audio=scsi_read_mmc2B;
612 + d->enable_cdda=scsi_enable_cdda;
616 - d->read_audio=scsi_read_mmc3B;
622 - d->read_audio=scsi_read_mmc;
627 - d->read_audio=scsi_read_mmc2;
632 - d->read_audio=scsi_read_mmc3;
638 - d->read_audio=scsi_read_msf;
643 - d->read_audio=scsi_read_msf2;
648 - d->read_audio=scsi_read_msf3;
654 - d->read_audio=scsi_read_D4_10;
658 - d->read_audio=scsi_read_D4_12;
662 - d->read_audio=scsi_read_D5;
666 - d->read_audio=scsi_read_D8;
669 + d->enable_cdda=scsi_enable_cdda;
682 - d->enable_cdda=Dummy;
684 - if(!densitypossible)i=5; /* short circuit MMC style commands */
685 + d->read_audio=scsi_read_28;
690 - d->enable_cdda=scsi_enable_cdda;
692 + d->read_audio=scsi_read_A8;
696 + /* 2 through 10 do not allow/require density */
699 - d->enable_cdda=scsi_enable_cdda;
702 + d->read_audio=scsi_read_mmcB;
707 - d->enable_cdda=scsi_enable_cdda;
711 + d->read_audio=scsi_read_mmc2B;
716 - d->enable_cdda=scsi_enable_cdda;
719 + d->read_audio=scsi_read_mmc3B;
724 + d->read_audio=scsi_read_mmc;
729 + d->read_audio=scsi_read_mmc2;
734 + d->read_audio=scsi_read_mmc3;
739 + d->read_audio=scsi_read_msf;
744 + d->read_audio=scsi_read_msf2;
749 + d->read_audio=scsi_read_msf3;
754 + d->read_audio=scsi_read_D4_10;
758 + d->read_audio=scsi_read_D4_12;
762 + d->read_audio=scsi_read_D5;
766 + d->read_audio=scsi_read_D8;
772 cdmessage(d,"\ttest -> density: [");
774 cdmessage(d,"] command: [");
775 @@ -1525,21 +1521,21 @@
778 sprintf(buffer,"\t\tDrive returned %d packet(s), but contents\n"
779 - "\t\twere entirely zero\n",zeroflag);
780 + "\t\twere entirely zero\n",zeroflag);
790 d->read_audio=readcommand;
791 d->enable_cdda=enablecommand;
794 cdmessage(d,"\tUnable to find any suitable command set from probe;\n"
795 "\tdrive probably not CDDA capable.\n");
798 cderror(d,"006: Could not read any data from drive\n");
801 @@ -1625,7 +1621,7 @@
803 if(mode_sense(d,22,0x2A)==0){
805 - b=d->private->sg_buffer;
806 + b=d->private_data->sg_buffer;
809 if((b[0]&0x3F)==0x2A){
810 @@ -1673,7 +1669,7 @@
811 cderror(d,"008: Unable to identify CDROM model\n");
814 - return (d->private->sg_buffer);
815 + return (d->private_data->sg_buffer);
818 int scsi_init_drive(cdrom_drive *d){
819 @@ -1690,33 +1686,20 @@
820 if(d->is_atapi)d->lun=0; /* it should already be; just to make sure */
824 d->read_audio = scsi_read_mmc2B;
827 check_exceptions(d,mmc_list);
832 /* Not MMC maybe still uses 0xbe */
834 d->read_audio = scsi_read_mmc2B;
837 check_exceptions(d,atapi_list);
841 check_exceptions(d,scsi_list);
846 - if(!d->is_atapi)set_sectorsize(d,2048); /* we really do want the
847 - sector size at 2048 to begin.*/
848 - d->enable_cdda(d,0);
850 d->read_toc = (!memcmp(d->drive_model, "IMS", 3) && !d->is_atapi) ? scsi_read_toc2 :
852 d->set_speed = scsi_set_speed;
853 @@ -1742,8 +1725,8 @@
857 - d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
858 - d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
859 + d->private_data->sg_hd=realloc(d->private_data->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
860 + d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
864 diff -ur cdparanoia-III-10.2/interface/test_interface.c cdparanoia/interface/test_interface.c
865 --- cdparanoia-III-10.2/interface/test_interface.c 2008-09-11 22:33:30.000000000 +0200
866 +++ cdparanoia/interface/test_interface.c 2009-01-28 18:02:11.000000000 +0100
868 if(!fd)fd=fdopen(d->cdda_fd,"r");
871 - d->private->last_milliseconds=20;
872 + d->private_data->last_milliseconds=20;
874 - d->private->last_milliseconds=sectors;
875 + d->private_data->last_milliseconds=sectors;
877 #ifdef CDDA_TEST_UNDERRUN
879 diff -ur cdparanoia-III-10.2/main.c cdparanoia/main.c
880 --- cdparanoia-III-10.2/main.c 2008-09-11 23:11:02.000000000 +0200
881 +++ cdparanoia/main.c 2009-01-28 18:02:11.000000000 +0100
887 + output_endian=bigendianp();
891 diff -ur cdparanoia-III-10.2/version.h cdparanoia/version.h
892 --- cdparanoia-III-10.2/version.h 2008-09-11 22:33:30.000000000 +0200
893 +++ cdparanoia/version.h 2009-01-28 18:02:11.000000000 +0100
895 /******************************************************************
896 * CopyPolicy: GNU Public License 2 applies
898 - * cdda_paranoia generation III release 10.2
899 + * cdda_paranoia generation III release 10.3
900 * Copyright (C) 2008 Monty monty@xiph.org
902 ******************************************************************/
905 -#define VERSIONNUM "10.2"
906 -#define VERSION "cdparanoia III release " VERSIONNUM " (September 11, 2008)\n"
907 +#define VERSIONNUM "10.3pre"
908 +#define VERSION "cdparanoia III release " VERSIONNUM " (September 16, 2008)\n"