Skip to content

Commit

Permalink
In CD-i discs with no tracks in TOC and an audio lead-out, fix settin…
Browse files Browse the repository at this point in the history
…g track 1 as data.
  • Loading branch information
claunia committed May 20, 2024
1 parent 3f5737e commit ae8d6e3
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs
Original file line number Diff line number Diff line change
Expand Up @@ -625,6 +625,10 @@ void CompactDisc()
firstTrackLastSession,
blocks);

// Fix CD-i discs with wrong Lead-Out type
if(dskType is MediaType.CDI or MediaType.CDIREADY && tracks.Length == 1 && tracks[0].Type == TrackType.Audio)
tracks[0].Type = TrackType.CdMode2Formless;

if(hiddenTrack || firstLba > 0)
{
_dumpLog.WriteLine(Localization.Core.Disc_contains_a_hidden_track);
Expand Down Expand Up @@ -1101,9 +1105,8 @@ void CompactDisc()
foreach(int sub in _resume.BadSubchannels) subchannelExtents.Add(sub);

if(_resume.NextBlock < blocks)
{
for(ulong i = _resume.NextBlock; i < blocks; i++) subchannelExtents.Add((int)i);
}
for(ulong i = _resume.NextBlock; i < blocks; i++)
subchannelExtents.Add((int)i);
}

if(_resume.NextBlock > 0)
Expand Down Expand Up @@ -1592,9 +1595,8 @@ void CompactDisc()
supportsLongSectors);

foreach(Tuple<ulong, ulong> leadoutExtent in leadOutExtents.ToArray())
{
for(ulong e = leadoutExtent.Item1; e <= leadoutExtent.Item2; e++) subchannelExtents.Remove((int)e);
}
for(ulong e = leadoutExtent.Item1; e <= leadoutExtent.Item2; e++)
subchannelExtents.Remove((int)e);

if(subchannelExtents.Count > 0 && _retryPasses > 0 && _retrySubchannel)
{
Expand Down

0 comments on commit ae8d6e3

Please sign in to comment.