mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Fix setting tracks in image when non-CD optical disc does not return a proper track list. Fixes #675
This commit is contained in:
@@ -367,7 +367,8 @@ namespace Aaru.Core.Devices.Dumping
|
||||
}
|
||||
|
||||
start = DateTime.UtcNow;
|
||||
double imageWriteDuration = 0;
|
||||
double imageWriteDuration = 0;
|
||||
bool writeSingleOpticalTrack = true;
|
||||
|
||||
if(opticalDisc)
|
||||
{
|
||||
@@ -376,8 +377,6 @@ namespace Aaru.Core.Devices.Dumping
|
||||
sense = _dev.ReadDiscInformation(out readBuffer, out _, MmcDiscInformationDataTypes.DiscInformation,
|
||||
_dev.Timeout, out _);
|
||||
|
||||
bool writeSingleOpticalTrack = true;
|
||||
|
||||
if(!sense)
|
||||
{
|
||||
DiscInformation.StandardDiscInformation? discInformation =
|
||||
@@ -560,28 +559,6 @@ namespace Aaru.Core.Devices.Dumping
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if(writeSingleOpticalTrack)
|
||||
{
|
||||
_dumpLog.WriteLine("Creating single track as could not retrieve track list from drive.");
|
||||
|
||||
StoppingErrorMessage?.
|
||||
Invoke("Creating single track as could not retrieve track list from drive.");
|
||||
|
||||
opticalPlugin.SetTracks(new List<Track>
|
||||
{
|
||||
new()
|
||||
{
|
||||
BytesPerSector = (int)blockSize,
|
||||
EndSector = blocks - 1,
|
||||
Sequence = 1,
|
||||
RawBytesPerSector = (int)blockSize,
|
||||
SubchannelType = TrackSubchannelType.None,
|
||||
Session = 1,
|
||||
Type = TrackType.Data
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -653,6 +630,27 @@ namespace Aaru.Core.Devices.Dumping
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(writeSingleOpticalTrack)
|
||||
{
|
||||
_dumpLog.WriteLine("Creating single track as could not retrieve track list from drive.");
|
||||
|
||||
UpdateStatus?.Invoke("Creating single track as could not retrieve track list from drive.");
|
||||
|
||||
(_outputPlugin as IWritableOpticalImage)?.SetTracks(new List<Track>
|
||||
{
|
||||
new()
|
||||
{
|
||||
BytesPerSector = (int)blockSize,
|
||||
EndSector = blocks - 1,
|
||||
Sequence = 1,
|
||||
RawBytesPerSector = (int)blockSize,
|
||||
SubchannelType = TrackSubchannelType.None,
|
||||
Session = 1,
|
||||
Type = TrackType.Data
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
DumpHardwareType currentTry = null;
|
||||
|
||||
Reference in New Issue
Block a user