Simplify some struct type names.

This commit is contained in:
2021-09-14 21:18:28 +01:00
parent 9dc57c2bd8
commit cd41c8e59a
56 changed files with 2111 additions and 2176 deletions

View File

@@ -52,7 +52,7 @@ namespace Aaru.DiscImages
bool _isCd;
uint _lostPregap;
bool _negativeEnd;
/// <summary>Dictionary, index is track #, value is TrackFile</summary>
/// <summary>Dictionary, index is track #, value is File</summary>
Dictionary<uint, ulong> _offsetMap;
SectorBuilder _sectorBuilder;
bool _separateTracksWriting;

View File

@@ -149,21 +149,18 @@ namespace Aaru.DiscImages
static string GetTrackMode(Track track)
{
switch(track.TrackType)
switch(track.Type)
{
case TrackType.Audio when track.TrackRawBytesPerSector == 2352: return CDRWIN_TRACK_TYPE_AUDIO;
case TrackType.Data: return CDRWIN_TRACK_TYPE_MODE1;
case TrackType.CdMode1 when track.TrackRawBytesPerSector == 2352: return CDRWIN_TRACK_TYPE_MODE1_RAW;
case TrackType.Audio when track.RawBytesPerSector == 2352: return CDRWIN_TRACK_TYPE_AUDIO;
case TrackType.Data: return CDRWIN_TRACK_TYPE_MODE1;
case TrackType.CdMode1 when track.RawBytesPerSector == 2352: return CDRWIN_TRACK_TYPE_MODE1_RAW;
case TrackType.CdMode2Formless
when track.TrackRawBytesPerSector != 2352: return CDRWIN_TRACK_TYPE_MODE2_FORMLESS;
case TrackType.CdMode2Form1
when track.TrackRawBytesPerSector != 2352: return CDRWIN_TRACK_TYPE_MODE2_FORM1;
case TrackType.CdMode2Form2
when track.TrackRawBytesPerSector != 2352: return CDRWIN_TRACK_TYPE_MODE2_FORM2;
case TrackType.CdMode2Formless when track.TrackRawBytesPerSector == 2352:
case TrackType.CdMode2Form1 when track.TrackRawBytesPerSector == 2352:
case TrackType.CdMode2Form2
when track.TrackRawBytesPerSector == 2352: return CDRWIN_TRACK_TYPE_MODE2_RAW;
when track.RawBytesPerSector != 2352: return CDRWIN_TRACK_TYPE_MODE2_FORMLESS;
case TrackType.CdMode2Form1 when track.RawBytesPerSector != 2352: return CDRWIN_TRACK_TYPE_MODE2_FORM1;
case TrackType.CdMode2Form2 when track.RawBytesPerSector != 2352: return CDRWIN_TRACK_TYPE_MODE2_FORM2;
case TrackType.CdMode2Formless when track.RawBytesPerSector == 2352:
case TrackType.CdMode2Form1 when track.RawBytesPerSector == 2352:
case TrackType.CdMode2Form2 when track.RawBytesPerSector == 2352: return CDRWIN_TRACK_TYPE_MODE2_RAW;
default: return CDRWIN_TRACK_TYPE_MODE1;
}
}

View File

@@ -61,7 +61,7 @@ namespace Aaru.DiscImages
/// <inheritdoc />
public string Name => "CDRWin cuesheet";
/// <inheritdoc />
public Guid Id => new Guid("664568B2-15D4-4E64-8A7A-20BDA8B8386F");
public Guid Id => new("664568B2-15D4-4E64-8A7A-20BDA8B8386F");
/// <inheritdoc />
public string Format => "CDRWin CUESheet";
/// <inheritdoc />
@@ -74,7 +74,7 @@ namespace Aaru.DiscImages
{
get
{
List<Track> tracks = new List<Track>();
List<Track> tracks = new();
ulong previousStartSector = 0;
ulong gdRomSession2Offset = 45000;
@@ -84,38 +84,38 @@ namespace Aaru.DiscImages
{
var aaruTrack = new Track
{
TrackDescription = cdrTrack.Title,
TrackPregap = (ulong)cdrTrack.Pregap,
TrackSession = cdrTrack.Session,
TrackSequence = cdrTrack.Sequence,
TrackType = _isCd ? CdrWinTrackTypeToTrackType(cdrTrack.TrackType) : TrackType.Data,
TrackFile = cdrTrack.TrackFile.DataFilter.GetFilename(),
TrackFilter = cdrTrack.TrackFile.DataFilter,
TrackFileOffset = cdrTrack.TrackFile.Offset,
TrackFileType = cdrTrack.TrackFile.FileType,
TrackRawBytesPerSector = cdrTrack.Bps,
TrackBytesPerSector = CdrWinTrackTypeToCookedBytesPerSector(cdrTrack.TrackType)
Description = cdrTrack.Title,
Pregap = (ulong)cdrTrack.Pregap,
Session = cdrTrack.Session,
Sequence = cdrTrack.Sequence,
Type = _isCd ? CdrWinTrackTypeToTrackType(cdrTrack.TrackType) : TrackType.Data,
File = cdrTrack.TrackFile.DataFilter.GetFilename(),
Filter = cdrTrack.TrackFile.DataFilter,
FileOffset = cdrTrack.TrackFile.Offset,
FileType = cdrTrack.TrackFile.FileType,
RawBytesPerSector = cdrTrack.Bps,
BytesPerSector = CdrWinTrackTypeToCookedBytesPerSector(cdrTrack.TrackType)
};
if(aaruTrack.TrackSequence == 1 && _isCd)
if(aaruTrack.Sequence == 1 && _isCd)
{
aaruTrack.TrackPregap = 150;
aaruTrack.Indexes[0] = -150;
aaruTrack.Pregap = 150;
aaruTrack.Indexes[0] = -150;
}
if(previousTrackFile == aaruTrack.TrackFile ||
if(previousTrackFile == aaruTrack.File ||
previousTrackFile == "")
if(cdrTrack.Indexes.TryGetValue(0, out int idx0))
if(idx0 > 0)
aaruTrack.TrackStartSector = (ulong)idx0;
aaruTrack.StartSector = (ulong)idx0;
else
aaruTrack.TrackStartSector = 0;
aaruTrack.StartSector = 0;
else if(cdrTrack.Indexes.TryGetValue(1, out int idx1))
aaruTrack.TrackStartSector = (ulong)idx1;
aaruTrack.StartSector = (ulong)idx1;
else
aaruTrack.TrackStartSector += previousStartSector;
aaruTrack.StartSector += previousStartSector;
else
aaruTrack.TrackStartSector += previousStartSector;
aaruTrack.StartSector += previousStartSector;
foreach((ushort index, int position) in cdrTrack.Indexes)
aaruTrack.Indexes[index] = position;
@@ -123,30 +123,30 @@ namespace Aaru.DiscImages
if(_discImage.IsRedumpGigadisc &&
cdrTrack.Session == 2 &&
previousStartSector < gdRomSession2Offset)
aaruTrack.TrackStartSector = gdRomSession2Offset;
aaruTrack.StartSector = gdRomSession2Offset;
previousTrackFile = cdrTrack.TrackFile.DataFilter.GetFilename();
aaruTrack.TrackEndSector = aaruTrack.TrackStartSector + cdrTrack.Sectors - 1;
aaruTrack.EndSector = aaruTrack.StartSector + cdrTrack.Sectors - 1;
if(cdrTrack.TrackType == CDRWIN_TRACK_TYPE_CDG)
{
aaruTrack.TrackSubchannelFilter = cdrTrack.TrackFile.DataFilter;
aaruTrack.TrackSubchannelFile = cdrTrack.TrackFile.DataFilter.GetFilename();
aaruTrack.TrackSubchannelOffset = cdrTrack.TrackFile.Offset;
aaruTrack.TrackSubchannelType = TrackSubchannelType.RawInterleaved;
aaruTrack.SubchannelFilter = cdrTrack.TrackFile.DataFilter;
aaruTrack.SubchannelFile = cdrTrack.TrackFile.DataFilter.GetFilename();
aaruTrack.SubchannelOffset = cdrTrack.TrackFile.Offset;
aaruTrack.SubchannelType = TrackSubchannelType.RawInterleaved;
}
else
aaruTrack.TrackSubchannelType = TrackSubchannelType.None;
aaruTrack.SubchannelType = TrackSubchannelType.None;
if(!_isCd)
{
aaruTrack.TrackPregap = 0;
aaruTrack.Pregap = 0;
aaruTrack.Indexes?.Clear();
}
tracks.Add(aaruTrack);
previousStartSector = aaruTrack.TrackEndSector + 1;
previousStartSector = aaruTrack.EndSector + 1;
}
return tracks;

View File

@@ -129,7 +129,7 @@ namespace Aaru.DiscImages
int trackCount = 0;
Dictionary<byte, int> leadouts = new Dictionary<byte, int>();
Dictionary<byte, int> leadouts = new();
while(_cueStream.Peek() >= 0)
{
@@ -323,7 +323,7 @@ namespace Aaru.DiscImages
{
existingDump.Extents = new List<ExtentType>(existingDump.Extents)
{
new ExtentType
new()
{
Start = extentStart,
End = extentEnd
@@ -884,7 +884,7 @@ namespace Aaru.DiscImages
for(int s = 1; s <= sessions.Length; s++)
{
bool firstTrackRead = false;
sessions[s - 1].SessionSequence = (ushort)s;
sessions[s - 1].Sequence = (ushort)s;
ulong sessionSectors = 0;
int lastSessionTrack = 0;
@@ -1251,7 +1251,7 @@ namespace Aaru.DiscImages
currentFilePath = track.TrackFile.DataFilter.GetBasePath();
}
Dictionary<ushort, int> newIndexes = new Dictionary<ushort, int>();
Dictionary<ushort, int> newIndexes = new();
foreach(KeyValuePair<ushort, int> index in track.Indexes)
newIndexes[index.Key] = index.Value + currentFileStartSector;
@@ -1530,8 +1530,8 @@ namespace Aaru.DiscImages
for(int s = 0; s < sessions.Length; s++)
{
if(sessions[s].SessionSequence > 1 &&
track.Sequence == sessions[s].StartTrack)
if(sessions[s].Sequence > 1 &&
track.Sequence == sessions[s].StartTrack)
{
track.TrackFile.Offset += 307200;
track.Sectors -= 150;
@@ -2251,13 +2251,13 @@ namespace Aaru.DiscImages
public List<Track> GetSessionTracks(Session session)
{
if(_discImage.Sessions.Contains(session))
return GetSessionTracks(session.SessionSequence);
return GetSessionTracks(session.Sequence);
throw new ImageNotSupportedException("Session does not exist in disc image");
}
/// <inheritdoc />
public List<Track> GetSessionTracks(ushort session) =>
Tracks.Where(t => t.TrackSession == session).OrderBy(t => t.TrackSequence).ToList();
Tracks.Where(t => t.Session == session).OrderBy(t => t.Sequence).ToList();
}
}

View File

@@ -168,8 +168,8 @@ namespace Aaru.DiscImages
}
Track track =
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector &&
sectorAddress <= trk.TrackEndSector);
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.StartSector &&
sectorAddress <= trk.EndSector);
if(track is null)
{
@@ -178,7 +178,7 @@ namespace Aaru.DiscImages
return false;
}
FileStream trackStream = _writingStreams.FirstOrDefault(kvp => kvp.Key == track.TrackSequence).Value;
FileStream trackStream = _writingStreams.FirstOrDefault(kvp => kvp.Key == track.Sequence).Value;
if(trackStream == null)
{
@@ -187,14 +187,14 @@ namespace Aaru.DiscImages
return false;
}
if(track.TrackBytesPerSector != track.TrackRawBytesPerSector)
if(track.BytesPerSector != track.RawBytesPerSector)
{
ErrorMessage = "Invalid write mode for this sector";
return false;
}
if(data.Length != track.TrackRawBytesPerSector)
if(data.Length != track.RawBytesPerSector)
{
ErrorMessage = "Incorrect data size";
@@ -202,7 +202,7 @@ namespace Aaru.DiscImages
}
trackStream.
Seek((long)(track.TrackFileOffset + ((sectorAddress - track.TrackStartSector) * (ulong)track.TrackRawBytesPerSector)),
Seek((long)(track.FileOffset + ((sectorAddress - track.StartSector) * (ulong)track.RawBytesPerSector)),
SeekOrigin.Begin);
trackStream.Write(data, 0, data.Length);
@@ -221,8 +221,8 @@ namespace Aaru.DiscImages
}
Track track =
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector &&
sectorAddress <= trk.TrackEndSector);
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.StartSector &&
sectorAddress <= trk.EndSector);
if(track is null)
{
@@ -231,7 +231,7 @@ namespace Aaru.DiscImages
return false;
}
FileStream trackStream = _writingStreams.FirstOrDefault(kvp => kvp.Key == track.TrackSequence).Value;
FileStream trackStream = _writingStreams.FirstOrDefault(kvp => kvp.Key == track.Sequence).Value;
if(trackStream == null)
{
@@ -240,21 +240,21 @@ namespace Aaru.DiscImages
return false;
}
if(track.TrackBytesPerSector != track.TrackRawBytesPerSector)
if(track.BytesPerSector != track.RawBytesPerSector)
{
ErrorMessage = "Invalid write mode for this sector";
return false;
}
if(sectorAddress + length > track.TrackEndSector + 1)
if(sectorAddress + length > track.EndSector + 1)
{
ErrorMessage = "Can't cross tracks";
return false;
}
if(data.Length % track.TrackRawBytesPerSector != 0)
if(data.Length % track.RawBytesPerSector != 0)
{
ErrorMessage = "Incorrect data size";
@@ -262,7 +262,7 @@ namespace Aaru.DiscImages
}
trackStream.
Seek((long)(track.TrackFileOffset + ((sectorAddress - track.TrackStartSector) * (ulong)track.TrackRawBytesPerSector)),
Seek((long)(track.FileOffset + ((sectorAddress - track.StartSector) * (ulong)track.RawBytesPerSector)),
SeekOrigin.Begin);
trackStream.Write(data, 0, data.Length);
@@ -281,8 +281,8 @@ namespace Aaru.DiscImages
}
Track track =
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector &&
sectorAddress <= trk.TrackEndSector);
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.StartSector &&
sectorAddress <= trk.EndSector);
if(track is null)
{
@@ -291,7 +291,7 @@ namespace Aaru.DiscImages
return false;
}
FileStream trackStream = _writingStreams.FirstOrDefault(kvp => kvp.Key == track.TrackSequence).Value;
FileStream trackStream = _writingStreams.FirstOrDefault(kvp => kvp.Key == track.Sequence).Value;
if(trackStream == null)
{
@@ -300,7 +300,7 @@ namespace Aaru.DiscImages
return false;
}
if(data.Length != track.TrackRawBytesPerSector)
if(data.Length != track.RawBytesPerSector)
{
ErrorMessage = "Incorrect data size";
@@ -308,7 +308,7 @@ namespace Aaru.DiscImages
}
trackStream.
Seek((long)(track.TrackFileOffset + ((sectorAddress - track.TrackStartSector) * (ulong)track.TrackRawBytesPerSector)),
Seek((long)(track.FileOffset + ((sectorAddress - track.StartSector) * (ulong)track.RawBytesPerSector)),
SeekOrigin.Begin);
trackStream.Write(data, 0, data.Length);
@@ -327,8 +327,8 @@ namespace Aaru.DiscImages
}
Track track =
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector &&
sectorAddress <= trk.TrackEndSector);
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.StartSector &&
sectorAddress <= trk.EndSector);
if(track is null)
{
@@ -337,7 +337,7 @@ namespace Aaru.DiscImages
return false;
}
FileStream trackStream = _writingStreams.FirstOrDefault(kvp => kvp.Key == track.TrackSequence).Value;
FileStream trackStream = _writingStreams.FirstOrDefault(kvp => kvp.Key == track.Sequence).Value;
if(trackStream == null)
{
@@ -346,14 +346,14 @@ namespace Aaru.DiscImages
return false;
}
if(sectorAddress + length > track.TrackEndSector + 1)
if(sectorAddress + length > track.EndSector + 1)
{
ErrorMessage = "Can't cross tracks";
return false;
}
if(data.Length % track.TrackRawBytesPerSector != 0)
if(data.Length % track.RawBytesPerSector != 0)
{
ErrorMessage = "Incorrect data size";
@@ -361,7 +361,7 @@ namespace Aaru.DiscImages
}
trackStream.
Seek((long)(track.TrackFileOffset + ((sectorAddress - track.TrackStartSector) * (ulong)track.TrackRawBytesPerSector)),
Seek((long)(track.FileOffset + ((sectorAddress - track.StartSector) * (ulong)track.RawBytesPerSector)),
SeekOrigin.Begin);
trackStream.Write(data, 0, data.Length);
@@ -394,14 +394,14 @@ namespace Aaru.DiscImages
_writingTracks = new List<Track>();
foreach(Track track in tracks.OrderBy(t => t.TrackSequence))
foreach(Track track in tracks.OrderBy(t => t.Sequence))
{
Track newTrack = track;
newTrack.TrackFile = _separateTracksWriting ? _writingBaseName + $"_track{track.TrackSequence:D2}.bin"
: _writingBaseName + ".bin";
newTrack.File = _separateTracksWriting ? _writingBaseName + $"_track{track.Sequence:D2}.bin"
: _writingBaseName + ".bin";
newTrack.TrackFileOffset = _separateTracksWriting ? 0 : track.TrackStartSector * 2352;
newTrack.FileOffset = _separateTracksWriting ? 0 : track.StartSector * 2352;
_writingTracks.Add(newTrack);
}
@@ -409,8 +409,8 @@ namespace Aaru.DiscImages
if(_separateTracksWriting)
foreach(Track track in _writingTracks)
_writingStreams.Add(track.TrackSequence,
new FileStream(track.TrackFile, FileMode.OpenOrCreate, FileAccess.ReadWrite,
_writingStreams.Add(track.Sequence,
new FileStream(track.File, FileMode.OpenOrCreate, FileAccess.ReadWrite,
FileShare.None));
else
{
@@ -418,7 +418,7 @@ namespace Aaru.DiscImages
FileShare.None);
foreach(Track track in _writingTracks)
_writingStreams.Add(track.TrackSequence, jointStream);
_writingStreams.Add(track.Sequence, jointStream);
}
return true;
@@ -512,7 +512,7 @@ namespace Aaru.DiscImages
foreach(Track track in _writingTracks)
{
switch(track.TrackSequence)
switch(track.Sequence)
{
// You should not be able to write CD-i Ready as this format, but just in case
case 0 when _imageInfo.MediaType != MediaType.CDIREADY:
@@ -520,24 +520,24 @@ namespace Aaru.DiscImages
continue;
case 1 when trackZero != null && !track.Indexes.ContainsKey(0):
track.TrackStartSector = trackZero.TrackStartSector;
track.TrackPregap = (ulong)track.Indexes[1] - track.TrackStartSector;
track.StartSector = trackZero.StartSector;
track.Pregap = (ulong)track.Indexes[1] - track.StartSector;
break;
}
if(track.TrackSession > currentSession)
if(track.Session > currentSession)
_descriptorStream.WriteLine("REM SESSION {0}", ++currentSession);
if(_separateTracksWriting)
_descriptorStream.WriteLine("FILE \"{0}\" BINARY", Path.GetFileName(track.TrackFile));
_descriptorStream.WriteLine("FILE \"{0}\" BINARY", Path.GetFileName(track.File));
(byte minute, byte second, byte frame) msf = LbaToMsf(track.TrackStartSector);
_descriptorStream.WriteLine(" TRACK {0:D2} {1}", track.TrackSequence, GetTrackMode(track));
(byte minute, byte second, byte frame) msf = LbaToMsf(track.StartSector);
_descriptorStream.WriteLine(" TRACK {0:D2} {1}", track.Sequence, GetTrackMode(track));
if(_isCd)
{
if(_trackFlags.TryGetValue((byte)track.TrackSequence, out byte flagsByte))
if(_trackFlags.TryGetValue((byte)track.Sequence, out byte flagsByte))
if(flagsByte != 0 &&
flagsByte != (byte)CdFlags.DataTrack)
{
@@ -549,20 +549,19 @@ namespace Aaru.DiscImages
flags.HasFlag(CdFlags.PreEmphasis) ? " PRE" : "");
}
if(_trackIsrcs.TryGetValue((byte)track.TrackSequence, out string isrc) &&
if(_trackIsrcs.TryGetValue((byte)track.Sequence, out string isrc) &&
!string.IsNullOrWhiteSpace(isrc))
_descriptorStream.WriteLine(" ISRC {0}", isrc);
}
if(track.TrackPregap > 0 && _isCd)
if(track.Pregap > 0 && _isCd)
{
if(track.TrackSequence > _writingTracks.Where(t => t.TrackSession == track.TrackSession).
Min(t => t.TrackSequence))
if(track.Sequence > _writingTracks.Where(t => t.Session == track.Session).Min(t => t.Sequence))
_descriptorStream.WriteLine(" INDEX {0:D2} {1:D2}:{2:D2}:{3:D2}", 0, msf.minute, msf.second,
msf.frame);
if(track.TrackSequence > 1)
msf = LbaToMsf(track.TrackStartSector + track.TrackPregap);
if(track.Sequence > 1)
msf = LbaToMsf(track.StartSector + track.Pregap);
_descriptorStream.WriteLine(" INDEX {0:D2} {1:D2}:{2:D2}:{3:D2}", 1, msf.minute, msf.second,
msf.frame);
@@ -580,18 +579,18 @@ namespace Aaru.DiscImages
msf.second, msf.frame);
}
ushort lastSession = _writingTracks.Max(t => t.TrackSession);
ushort lastSession = _writingTracks.Max(t => t.Session);
if(currentSession >= lastSession)
continue;
Track lastTrackInSession = _writingTracks.Where(t => t.TrackSession == currentSession).
OrderBy(t => t.TrackSequence).LastOrDefault();
Track lastTrackInSession = _writingTracks.Where(t => t.Session == currentSession).
OrderBy(t => t.Sequence).LastOrDefault();
if(track.TrackSequence != lastTrackInSession.TrackSequence)
if(track.Sequence != lastTrackInSession.Sequence)
continue;
msf = LbaToMsf(track.TrackEndSector + 1);
msf = LbaToMsf(track.EndSector + 1);
_descriptorStream.WriteLine("REM LEAD-OUT {0:D2}:{1:D2}:{2:D2}", msf.minute, msf.second, msf.frame);
}
@@ -623,8 +622,8 @@ namespace Aaru.DiscImages
}
Track track =
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector &&
sectorAddress <= trk.TrackEndSector);
_writingTracks.FirstOrDefault(trk => sectorAddress >= trk.StartSector &&
sectorAddress <= trk.EndSector);
if(track is null)
{