From 0efa8e38465d53a43f5ad767633b5b71e7765c84 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 21 Jun 2020 01:54:30 +0100 Subject: [PATCH] Fix setting indexes from track start and pregap in aaruformat. --- Aaru.Images/AaruFormat/Read.cs | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/Aaru.Images/AaruFormat/Read.cs b/Aaru.Images/AaruFormat/Read.cs index 0ce8a0a7e..83f849b98 100644 --- a/Aaru.Images/AaruFormat/Read.cs +++ b/Aaru.Images/AaruFormat/Read.cs @@ -1079,6 +1079,26 @@ namespace Aaru.DiscImages AaruConsole.DebugWriteLine("Aaru Format plugin", "Memory snapshot: {0} bytes", GC.GetTotalMemory(false)); + foreach(Track track in Tracks.OrderBy(t => t.TrackStartSector)) + { + if(track.TrackSequence == 1) + { + track.TrackPregap = 150; + track.Indexes[0] = -150; + track.Indexes[1] = (int)track.TrackStartSector; + + continue; + } + + if(track.TrackPregap > 0) + { + track.Indexes[0] = (int)track.TrackStartSector; + track.Indexes[1] = (int)(track.TrackStartSector + track.TrackPregap); + } + else + track.Indexes[1] = (int)track.TrackStartSector; + } + ulong currentTrackOffset = 0; Partitions = new List(); @@ -1086,11 +1106,12 @@ namespace Aaru.DiscImages { Partitions.Add(new Partition { - Sequence = track.TrackSequence, Type = track.TrackType.ToString(), - Name = $"Track {track.TrackSequence}", Offset = currentTrackOffset, - Start = track.TrackStartSector, - Size = ((track.TrackEndSector - track.TrackStartSector) + 1) * (ulong)track.TrackBytesPerSector, - Length = (track.TrackEndSector - track.TrackStartSector) + 1, Scheme = "Optical disc track" + Sequence = track.TrackSequence, Type = track.TrackType.ToString(), + Name = $"Track {track.TrackSequence}", Offset = currentTrackOffset, + Start = (ulong)track.Indexes[1], + Size = ((track.TrackEndSector - (ulong)track.Indexes[1]) + 1) * + (ulong)track.TrackBytesPerSector, + Length = (track.TrackEndSector - (ulong)track.Indexes[1]) + 1, Scheme = "Optical disc track" }); currentTrackOffset += ((track.TrackEndSector - track.TrackStartSector) + 1) *