CD-ROM fixes :
- Fixed track handling in is_track_audio() - ioctl_readtoc() First Track field returns first track in the TOC, not the first track specified by the command - SCSI CD-ROM code now looks at correct cd_status variable - SCSI CD-ROM now identifies as SCSI compliant Fixes CD audio via QCD with Adaptec SCSI card + ASPI drivers.
This commit is contained in:
parent
0fe4a83740
commit
bc690b3d2f
2 changed files with 13 additions and 9 deletions
|
|
@ -500,14 +500,19 @@ static int is_track_audio(uint32_t pos)
|
|||
if (!tocvalid)
|
||||
return 0;
|
||||
|
||||
for (c = toc.FirstTrack; c < toc.LastTrack; c++)
|
||||
for (c = 0; toc.TrackData[c].TrackNumber != 0xaa; c++)
|
||||
{
|
||||
uint32_t track_address = toc.TrackData[c].Address[3] +
|
||||
(toc.TrackData[c].Address[2] * 75) +
|
||||
(toc.TrackData[c].Address[1] * 75 * 60);
|
||||
|
||||
if (track_address <= pos)
|
||||
if (toc.TrackData[c].TrackNumber >= toc.FirstTrack &&
|
||||
toc.TrackData[c].TrackNumber <= toc.LastTrack &&
|
||||
track_address >= pos)
|
||||
{
|
||||
control = toc.TrackData[c].Control;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return (control & 4) ? 0 : 1;
|
||||
}
|
||||
|
|
@ -562,7 +567,6 @@ static int ioctl_readtoc(unsigned char *b, unsigned char starttrack, int msf, in
|
|||
break;
|
||||
}
|
||||
}
|
||||
b[2]=toc.TrackData[c].TrackNumber;
|
||||
last_block = 0;
|
||||
for (c=d;c<=toc.LastTrack;c++)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue