mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Change order of checking SBC media type.
This commit is contained in:
@@ -92,44 +92,6 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
ulong blocks = scsiReader.GetDeviceBlocks();
|
ulong blocks = scsiReader.GetDeviceBlocks();
|
||||||
uint blockSize = scsiReader.LogicalBlockSize;
|
uint blockSize = scsiReader.LogicalBlockSize;
|
||||||
|
|
||||||
if(scsiReader.FindReadCommand())
|
|
||||||
{
|
|
||||||
_dumpLog.WriteLine("ERROR: Cannot find correct read command: {0}.", scsiReader.ErrorMessage);
|
|
||||||
StoppingErrorMessage?.Invoke("Unable to read medium.");
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(blocks != 0 &&
|
|
||||||
blockSize != 0)
|
|
||||||
{
|
|
||||||
blocks++;
|
|
||||||
|
|
||||||
UpdateStatus?.
|
|
||||||
Invoke($"Media has {blocks} blocks of {blockSize} bytes/each. (for a total of {blocks * (ulong)blockSize} bytes)");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check how many blocks to read, if error show and return
|
|
||||||
if(scsiReader.GetBlocksToRead(_maximumReadable))
|
|
||||||
{
|
|
||||||
_dumpLog.WriteLine("ERROR: Cannot get blocks to read: {0}.", scsiReader.ErrorMessage);
|
|
||||||
StoppingErrorMessage?.Invoke(scsiReader.ErrorMessage);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint blocksToRead = scsiReader.BlocksToRead;
|
|
||||||
uint logicalBlockSize = blockSize;
|
|
||||||
uint physicalBlockSize = scsiReader.PhysicalBlockSize;
|
|
||||||
|
|
||||||
if(blocks == 0)
|
|
||||||
{
|
|
||||||
_dumpLog.WriteLine("ERROR: Unable to read medium or empty medium present...");
|
|
||||||
StoppingErrorMessage?.Invoke("Unable to read medium or empty medium present...");
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!opticalDisc)
|
if(!opticalDisc)
|
||||||
{
|
{
|
||||||
mediaTags = new Dictionary<MediaTagType, byte[]>();
|
mediaTags = new Dictionary<MediaTagType, byte[]>();
|
||||||
@@ -215,6 +177,44 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
containsFloppyPage)
|
containsFloppyPage)
|
||||||
dskType = MediaType.FlashDrive;
|
dskType = MediaType.FlashDrive;
|
||||||
|
|
||||||
|
if(scsiReader.FindReadCommand())
|
||||||
|
{
|
||||||
|
_dumpLog.WriteLine("ERROR: Cannot find correct read command: {0}.", scsiReader.ErrorMessage);
|
||||||
|
StoppingErrorMessage?.Invoke("Unable to read medium.");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(blocks != 0 &&
|
||||||
|
blockSize != 0)
|
||||||
|
{
|
||||||
|
blocks++;
|
||||||
|
|
||||||
|
UpdateStatus?.
|
||||||
|
Invoke($"Media has {blocks} blocks of {blockSize} bytes/each. (for a total of {blocks * (ulong)blockSize} bytes)");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check how many blocks to read, if error show and return
|
||||||
|
if(scsiReader.GetBlocksToRead(_maximumReadable))
|
||||||
|
{
|
||||||
|
_dumpLog.WriteLine("ERROR: Cannot get blocks to read: {0}.", scsiReader.ErrorMessage);
|
||||||
|
StoppingErrorMessage?.Invoke(scsiReader.ErrorMessage);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint blocksToRead = scsiReader.BlocksToRead;
|
||||||
|
uint logicalBlockSize = blockSize;
|
||||||
|
uint physicalBlockSize = scsiReader.PhysicalBlockSize;
|
||||||
|
|
||||||
|
if(blocks == 0)
|
||||||
|
{
|
||||||
|
_dumpLog.WriteLine("ERROR: Unable to read medium or empty medium present...");
|
||||||
|
StoppingErrorMessage?.Invoke("Unable to read medium or empty medium present...");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
UpdateStatus?.Invoke($"Device reports {blocks} blocks ({blocks * blockSize} bytes).");
|
UpdateStatus?.Invoke($"Device reports {blocks} blocks ({blocks * blockSize} bytes).");
|
||||||
UpdateStatus?.Invoke($"Device can read {blocksToRead} blocks at a time.");
|
UpdateStatus?.Invoke($"Device can read {blocksToRead} blocks at a time.");
|
||||||
UpdateStatus?.Invoke($"Device reports {blockSize} bytes per logical block.");
|
UpdateStatus?.Invoke($"Device reports {blockSize} bytes per logical block.");
|
||||||
|
|||||||
Reference in New Issue
Block a user