diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs index 449c720b2..e6aa287fe 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs @@ -63,55 +63,55 @@ sealed partial class Dump /// Dumps a compact disc void CompactDisc() { - ExtentsULong audioExtents; // Extents with audio sectors - ulong blocks; // Total number of positive sectors - uint blockSize; // Size of the read sector in bytes - CdOffset cdOffset; // Read offset from database - byte[] cmdBuf; // Data buffer - DumpHardwareType currentTry = null; // Current dump hardware try - double currentSpeed = 0; // Current read speed - int? discOffset = null; // Disc write offset - DateTime dumpStart = DateTime.UtcNow; // Time of dump start - DateTime end; // Time of operation end - ExtentsULong extents = null; // Extents - bool hiddenData; // Hidden track is data - IbgLog ibgLog; // IMGBurn log - double imageWriteDuration = 0; // Duration of image write - long lastSector; // Last sector number + ExtentsULong audioExtents; // Extents with audio sectors + ulong blocks; // Total number of positive sectors + uint blockSize; // Size of the read sector in bytes + CdOffset cdOffset; // Read offset from database + byte[] cmdBuf; // Data buffer + DumpHardwareType currentTry = null; // Current dump hardware try + double currentSpeed = 0; // Current read speed + int? discOffset = null; // Disc write offset + DateTime dumpStart = DateTime.UtcNow; // Time of dump start + DateTime end; // Time of operation end + ExtentsULong extents = null; // Extents + bool hiddenData; // Hidden track is data + IbgLog ibgLog; // IMGBurn log + double imageWriteDuration = 0; // Duration of image write + long lastSector; // Last sector number var leadOutExtents = new ExtentsULong(); // Lead-out extents - Dictionary leadOutStarts = new(); // Lead-out starts - double maxSpeed = double.MinValue; // Maximum speed - MhddLog mhddLog; // MHDD log - double minSpeed = double.MaxValue; // Minimum speed - bool newTrim; // Is trim a new one? - var offsetBytes = 0; // Read offset - var read6 = false; // Device supports READ(6) - var read10 = false; // Device supports READ(10) - var read12 = false; // Device supports READ(12) - var read16 = false; // Device supports READ(16) - bool readcd; // Device supports READ CD - bool ret; // Image writing return status - const uint sectorSize = 2352; // Full sector size - var sectorsForOffset = 0; // Sectors needed to fix offset - var sense = true; // Sense indicator - int sessions; // Number of sessions in disc - DateTime start; // Start of operation - SubchannelLog subLog = null; // Subchannel log - uint subSize; // Subchannel size in bytes - TrackSubchannelType subType; // Track subchannel type - var supportsLongSectors = true; // Supports reading EDC and ECC - bool supportsPqSubchannel; // Supports reading PQ subchannel - bool supportsRwSubchannel; // Supports reading RW subchannel - byte[] tmpBuf; // Temporary buffer - FullTOC.CDFullTOC? toc; // Full CD TOC - double totalDuration = 0; // Total commands duration - Dictionary trackFlags = new(); // Track flags - Track[] tracks; // Tracks in disc - int firstTrackLastSession; // Number of first track in last session - bool hiddenTrack; // Disc has a hidden track before track 1 - MmcSubchannel supportedSubchannel; // Drive's maximum supported subchannel - MmcSubchannel desiredSubchannel; // User requested subchannel - var bcdSubchannel = false; // Subchannel positioning is in BCD + Dictionary leadOutStarts = new(); // Lead-out starts + double maxSpeed = double.MinValue; // Maximum speed + MhddLog mhddLog; // MHDD log + double minSpeed = double.MaxValue; // Minimum speed + bool newTrim; // Is trim a new one? + var offsetBytes = 0; // Read offset + var read6 = false; // Device supports READ(6) + var read10 = false; // Device supports READ(10) + var read12 = false; // Device supports READ(12) + var read16 = false; // Device supports READ(16) + var readcd = true; // Device supports READ CD + bool ret; // Image writing return status + const uint sectorSize = 2352; // Full sector size + var sectorsForOffset = 0; // Sectors needed to fix offset + var sense = true; // Sense indicator + int sessions; // Number of sessions in disc + DateTime start; // Start of operation + SubchannelLog subLog = null; // Subchannel log + uint subSize = 0; // Subchannel size in bytes + TrackSubchannelType subType = TrackSubchannelType.None; // Track subchannel type + var supportsLongSectors = true; // Supports reading EDC and ECC + bool supportsPqSubchannel; // Supports reading PQ subchannel + bool supportsRwSubchannel; // Supports reading RW subchannel + byte[] tmpBuf; // Temporary buffer + FullTOC.CDFullTOC? toc; // Full CD TOC + double totalDuration = 0; // Total commands duration + Dictionary trackFlags = new(); // Track flags + Track[] tracks; // Tracks in disc + int firstTrackLastSession; // Number of first track in last session + bool hiddenTrack; // Disc has a hidden track before track 1 + MmcSubchannel supportedSubchannel; // Drive's maximum supported subchannel + MmcSubchannel desiredSubchannel; // User requested subchannel + var bcdSubchannel = false; // Subchannel positioning is in BCD Dictionary isrcs = new(); string mcn = null; HashSet subchannelExtents = new(); @@ -338,13 +338,6 @@ sealed partial class Dump readcd = true; break; - default: - _dumpLog.WriteLine("Handling subchannel type {0} not supported, exiting...", supportedSubchannel); - - StoppingErrorMessage?.Invoke($"Handling subchannel type {supportedSubchannel - } not supported, exiting..."); - - return; } switch(desiredSubchannel) diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs index cd468db74..69f980609 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs @@ -559,7 +559,6 @@ partial class Dump supportedPlextorSubchannel = supportedSubchannel switch { - MmcSubchannel.None => PlextorSubchannel.None, MmcSubchannel.Raw => PlextorSubchannel.All, MmcSubchannel.Q16 => PlextorSubchannel.Q16, MmcSubchannel.Rw => PlextorSubchannel.Pack, diff --git a/Aaru.Images/BlindWrite4/Read.cs b/Aaru.Images/BlindWrite4/Read.cs index 3a694f00d..f43d0d8c5 100644 --- a/Aaru.Images/BlindWrite4/Read.cs +++ b/Aaru.Images/BlindWrite4/Read.cs @@ -962,9 +962,9 @@ public sealed partial class BlindWrite4 if(length + sectorAddress > aaruTrack.EndSector - aaruTrack.StartSector + 1) return ErrorNumber.OutOfRange; - uint sectorOffset; - uint sectorSize; - uint sectorSkip; + uint sectorOffset = 0; + uint sectorSize = 0; + uint sectorSkip = 0; if(aaruTrack.Type == CommonTypes.Enums.TrackType.Data) return ErrorNumber.NotSupported; @@ -1054,7 +1054,6 @@ public sealed partial class BlindWrite4 break; } - default: return ErrorNumber.NotSupported; } break; @@ -1091,7 +1090,6 @@ public sealed partial class BlindWrite4 break; } - default: return ErrorNumber.NotSupported; } break; diff --git a/Aaru.Images/CDRDAO/Read.cs b/Aaru.Images/CDRDAO/Read.cs index 31fb8fbcc..d8e40529e 100644 --- a/Aaru.Images/CDRDAO/Read.cs +++ b/Aaru.Images/CDRDAO/Read.cs @@ -1097,9 +1097,9 @@ public sealed partial class Cdrdao if(length > aaruTrack.Sectors) return ErrorNumber.OutOfRange; - uint sectorOffset; - uint sectorSize; - uint sectorSkip = 0; + uint sectorOffset = 0; + uint sectorSize = 0; + uint sectorSkip = 0; if(!aaruTrack.Subchannel && tag == SectorTagType.CdSectorSubchannel) @@ -1236,7 +1236,6 @@ public sealed partial class Cdrdao break; } - default: return ErrorNumber.NotSupported; } break; diff --git a/Aaru.Images/CDRWin/Read.cs b/Aaru.Images/CDRWin/Read.cs index 0bfafbf2e..3aa6eb8b7 100644 --- a/Aaru.Images/CDRWin/Read.cs +++ b/Aaru.Images/CDRWin/Read.cs @@ -1869,9 +1869,9 @@ public sealed partial class CdrWin if(length > aaruTrack.Sectors) return ErrorNumber.OutOfRange; - uint sectorOffset; - uint sectorSize; - uint sectorSkip; + uint sectorOffset = 0; + uint sectorSize = 0; + uint sectorSkip = 0; switch(tag) { @@ -1968,7 +1968,6 @@ public sealed partial class CdrWin break; } - default: return ErrorNumber.NotSupported; } break; @@ -2037,7 +2036,6 @@ public sealed partial class CdrWin break; } - default: return ErrorNumber.NotSupported; } break; diff --git a/Aaru.Images/CHD/Read.cs b/Aaru.Images/CHD/Read.cs index 31bdc73cd..bff4dd36c 100644 --- a/Aaru.Images/CHD/Read.cs +++ b/Aaru.Images/CHD/Read.cs @@ -1621,7 +1621,6 @@ public sealed partial class Chd { case SectorTagType.CdSectorSync: case SectorTagType.CdSectorHeader: - case SectorTagType.CdSectorSubchannel: case SectorTagType.CdSectorEcc: case SectorTagType.CdSectorEccP: case SectorTagType.CdSectorEccQ: return ErrorNumber.NotSupported; diff --git a/Aaru.Images/CloneCD/Read.cs b/Aaru.Images/CloneCD/Read.cs index 0197292f5..89ab3161a 100644 --- a/Aaru.Images/CloneCD/Read.cs +++ b/Aaru.Images/CloneCD/Read.cs @@ -1101,9 +1101,9 @@ public sealed partial class CloneCd default: return ErrorNumber.NotSupported; } - uint sectorOffset; - uint sectorSize; - uint sectorSkip; + uint sectorOffset = 0; + uint sectorSize = 0; + uint sectorSkip = 0; switch(aaruTrack.Type) { @@ -1159,7 +1159,6 @@ public sealed partial class CloneCd break; } - default: return ErrorNumber.NotSupported; } break; @@ -1188,7 +1187,6 @@ public sealed partial class CloneCd break; } - default: return ErrorNumber.NotSupported; } break; @@ -1252,7 +1250,6 @@ public sealed partial class CloneCd break; } - default: return ErrorNumber.NotSupported; } break; diff --git a/Aaru.Images/GDI/Read.cs b/Aaru.Images/GDI/Read.cs index 7277a7aa0..79b5a9430 100644 --- a/Aaru.Images/GDI/Read.cs +++ b/Aaru.Images/GDI/Read.cs @@ -555,9 +555,9 @@ public sealed partial class Gdi if(length > aaruTrack.Sectors) return ErrorNumber.OutOfRange; - uint sectorOffset; - uint sectorSize; - uint sectorSkip; + uint sectorOffset = 0; + uint sectorSize = 0; + uint sectorSkip = 0; switch(tag) { @@ -605,8 +605,6 @@ public sealed partial class Gdi break; } - case SectorTagType.CdSectorSubchannel: - case SectorTagType.CdSectorSubHeader: return ErrorNumber.NotSupported; case SectorTagType.CdSectorEcc: { sectorOffset = 2076; @@ -639,7 +637,6 @@ public sealed partial class Gdi break; } - default: return ErrorNumber.NotSupported; } break; diff --git a/Aaru.Images/Nero/Read.cs b/Aaru.Images/Nero/Read.cs index 3bc2cf9a6..619a8de20 100644 --- a/Aaru.Images/Nero/Read.cs +++ b/Aaru.Images/Nero/Read.cs @@ -1757,9 +1757,9 @@ public sealed partial class Nero if(length > aaruTrack.Sectors) return ErrorNumber.OutOfRange; - uint sectorOffset; - uint sectorSize; - uint sectorSkip; + uint sectorOffset = 0; + uint sectorSize = 0; + uint sectorSkip = 0; switch(tag) { @@ -1820,8 +1820,6 @@ public sealed partial class Nero break; } - - default: return ErrorNumber.NotSupported; } break; @@ -1888,8 +1886,6 @@ public sealed partial class Nero break; } - - default: return ErrorNumber.NotSupported; } break; @@ -2014,8 +2010,6 @@ public sealed partial class Nero break; } - - default: return ErrorNumber.NotSupported; } break; diff --git a/Aaru.Tests/Partitions/PartitionSchemeTest.cs b/Aaru.Tests/Partitions/PartitionSchemeTest.cs index e193d7f14..bf6b0ffff 100644 --- a/Aaru.Tests/Partitions/PartitionSchemeTest.cs +++ b/Aaru.Tests/Partitions/PartitionSchemeTest.cs @@ -29,6 +29,8 @@ public abstract class PartitionSchemeTest // ReSharper disable once ConditionIsAlwaysTrueOrFalse // It arrives here... if(!exists) + + // ReSharper disable once HeuristicUnreachableCode continue; var filtersList = new FiltersList(); diff --git a/Aaru.sln.DotSettings b/Aaru.sln.DotSettings index 2014fa432..762b94d06 100644 --- a/Aaru.sln.DotSettings +++ b/Aaru.sln.DotSettings @@ -302,6 +302,7 @@ WARNING WARNING WARNING + True False <?xml version="1.0" encoding="utf-16"?> <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns">