Merge pull request #336 from FakeShemp/patchmscue

Fix cue parsing
This commit is contained in:
2020-04-15 14:37:46 +01:00
committed by GitHub

View File

@@ -55,6 +55,7 @@ namespace Aaru.DiscImages
List<Track> tracks = new List<Track>();
ulong previousStartSector = 0;
string previousTrackFile = "";
foreach(CdrWinTrack cdrTrack in _discImage.Tracks)
{
@@ -70,13 +71,20 @@ namespace Aaru.DiscImages
TrackFileType = cdrTrack.TrackFile.FileType, TrackRawBytesPerSector = cdrTrack.Bps,
TrackBytesPerSector = CdrWinTrackTypeToCookedBytesPerSector(cdrTrack.TrackType)
};
if (previousTrackFile == aaruTrack.TrackFile || previousTrackFile == "")
{
if(!cdrTrack.Indexes.TryGetValue(0, out aaruTrack.TrackStartSector))
if(!cdrTrack.Indexes.TryGetValue(1, out aaruTrack.TrackStartSector))
aaruTrack.TrackStartSector += previousStartSector;
}
else
aaruTrack.TrackStartSector += previousStartSector;
previousTrackFile = cdrTrack.TrackFile.DataFilter.GetFilename();
aaruTrack.TrackEndSector = (aaruTrack.TrackStartSector + cdrTrack.Sectors) - 1;
if(!cdrTrack.Indexes.TryGetValue(0, out aaruTrack.TrackStartSector))
if(!cdrTrack.Indexes.TryGetValue(1, out aaruTrack.TrackStartSector))
aaruTrack.TrackStartSector = previousStartSector;
if(cdrTrack.TrackType == CDRWIN_TRACK_TYPE_CDG)
{
aaruTrack.TrackSubchannelFilter = cdrTrack.TrackFile.DataFilter;