1.1 --- a/src/drivers/cd_linux.c Tue Jan 01 05:08:38 2008 +0000
1.2 +++ b/src/drivers/cd_linux.c Sun Mar 02 11:38:08 2008 +0000
1.5 disc->read_sector = linux_read_sector;
1.6 disc->drive_status = linux_drive_status;
1.7 - ((gdrom_image_t)disc)->disc_type = IDE_DISC_CDROM;
1.12 int last_track = -1;
1.14 int len = (buf[0] << 8) | buf[1];
1.15 - int session_type = GDROM_MODE1;
1.16 + int session_type = -1;
1.18 for( i = 4; i<len; i+=11 ) {
1.19 int session = buf[i];
1.20 @@ -195,10 +194,12 @@
1.21 } else switch( (adr << 8) | point ) {
1.22 case 0x1A0: /* session info */
1.23 if( buf[i+9] == 0x20 ) {
1.24 - session_type = GDROM_MODE2;
1.25 + session_type = IDE_DISC_CDROMXA;
1.27 - session_type = GDROM_MODE1;
1.28 + session_type = IDE_DISC_CDROM;
1.30 + disc->disc_type = session_type;
1.32 case 0x1A2: /* leadout */
1.33 leadout = MSFTOLBA(buf[i+8], buf[i+9], buf[i+10]);
1.35 @@ -256,7 +257,20 @@
1.41 + if( READ_CD_RAW(mode) ) {
1.44 + if( READ_CD_HEADER(mode) ) {
1.47 + if( READ_CD_SUBHEAD(mode) ) {
1.50 + if( READ_CD_DATA(mode) ) {
1.55 gdrom_error_t status = linux_send_command( fd, cmd, buf, §or_size, CGC_DATA_READ );
1.59 cgc.data_direction = direction;
1.61 - if( ioctl(fd, CDROM_SEND_PACKET, &cgc) == -1 ) {
1.62 + if( ioctl(fd, CDROM_SEND_PACKET, &cgc) < 0 ) {
1.63 if( sense.sense_key == 0 ) {