Change how ISRC and track flags are read from / written to images, to use track number instead of track start.

This commit is contained in:
2020-06-14 23:45:26 +01:00
parent 5013718280
commit d1a970698e
18 changed files with 108 additions and 91 deletions

View File

@@ -479,6 +479,9 @@ namespace Aaru.DiscImages
public byte[] ReadSectorsTag(ulong sectorAddress, uint length, uint track, SectorTagType tag)
{
if(tag == SectorTagType.CdTrackFlags)
track = (uint)sectorAddress;
if(track == 0)
{
if(sectorAddress + length > densitySeparationSectors)
@@ -825,13 +828,11 @@ namespace Aaru.DiscImages
{
var track = new Track
{
Indexes = new Dictionary<int, ulong>(), TrackDescription = null,
TrackStartSector = gdiTrack.StartSector, TrackPregap = gdiTrack.Pregap,
Indexes = new Dictionary<int, ulong>(), TrackDescription = null,
TrackStartSector = gdiTrack.StartSector, TrackPregap = gdiTrack.Pregap,
TrackSession = (ushort)(gdiTrack.HighDensity ? 2 : 1), TrackSequence = gdiTrack.Sequence,
TrackType = gdiTrack.Tracktype,
TrackFilter = gdiTrack.Trackfilter,
TrackFile = gdiTrack.Trackfile,
TrackFileOffset = (ulong)gdiTrack.Offset,
TrackType = gdiTrack.Tracktype, TrackFilter = gdiTrack.Trackfilter,
TrackFile = gdiTrack.Trackfile, TrackFileOffset = (ulong)gdiTrack.Offset,
TrackFileType = "BINARY", TrackRawBytesPerSector = gdiTrack.Bps,
TrackBytesPerSector = gdiTrack.Tracktype == TrackType.Data ? 2048 : 2352,
TrackSubchannelType = TrackSubchannelType.None