diff --git a/Aaru.Checksums b/Aaru.Checksums index 55fb8416e..18c1903d2 160000 --- a/Aaru.Checksums +++ b/Aaru.Checksums @@ -1 +1 @@ -Subproject commit 55fb8416e80e92d7c2d4d6004f238bf053cfe7c1 +Subproject commit 18c1903d2f762bbd904113f9c12b051478573d2a diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs index dcad89c5a..82ca4159a 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs @@ -110,25 +110,13 @@ partial class Dump PlextorSubchannel supportedPlextorSubchannel; var outputFormat = _outputPlugin as IWritableImage; - switch(supportedSubchannel) - { - case MmcSubchannel.None: - supportedPlextorSubchannel = PlextorSubchannel.None; - - break; - case MmcSubchannel.Raw: - supportedPlextorSubchannel = PlextorSubchannel.Pack; - - break; - case MmcSubchannel.Q16: - supportedPlextorSubchannel = PlextorSubchannel.Q16; - - break; - default: - supportedPlextorSubchannel = PlextorSubchannel.None; - - break; - } + supportedPlextorSubchannel = supportedSubchannel switch + { + MmcSubchannel.None => PlextorSubchannel.None, + MmcSubchannel.Raw => PlextorSubchannel.Pack, + MmcSubchannel.Q16 => PlextorSubchannel.Q16, + _ => PlextorSubchannel.None + }; InitProgress?.Invoke(); @@ -673,10 +661,10 @@ partial class Dump } bool indexesChanged = Media.CompactDisc.WriteSubchannelToImage(supportedSubchannel, - desiredSubchannel, sub, i, blocksToRead, subLog, isrcs, (byte)track.Sequence, ref mcn, - tracks, subchannelExtents, _fixSubchannelPosition, outputFormat as IWritableOpticalImage, - _fixSubchannel, _fixSubchannelCrc, _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, - out List newPregapSectors); + desiredSubchannel, sub, i, blocksToRead, subLog, isrcs, (byte)track.Sequence, ref mcn, + tracks, subchannelExtents, _fixSubchannelPosition, outputFormat as IWritableOpticalImage, + _fixSubchannel, _fixSubchannelCrc, _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, + out List newPregapSectors); // Set tracks and go back if(indexesChanged) diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs index 527f54276..4efefe4a9 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs @@ -87,25 +87,13 @@ partial class Dump PlextorSubchannel supportedPlextorSubchannel; var outputOptical = _outputPlugin as IWritableOpticalImage; - switch(supportedSubchannel) - { - case MmcSubchannel.None: - supportedPlextorSubchannel = PlextorSubchannel.None; - - break; - case MmcSubchannel.Raw: - supportedPlextorSubchannel = PlextorSubchannel.Pack; - - break; - case MmcSubchannel.Q16: - supportedPlextorSubchannel = PlextorSubchannel.Q16; - - break; - default: - supportedPlextorSubchannel = PlextorSubchannel.None; - - break; - } + supportedPlextorSubchannel = supportedSubchannel switch + { + MmcSubchannel.None => PlextorSubchannel.None, + MmcSubchannel.Raw => PlextorSubchannel.Pack, + MmcSubchannel.Q16 => PlextorSubchannel.Q16, + _ => PlextorSubchannel.None + }; if(_resume.BadBlocks.Count <= 0 || _aborted || @@ -138,7 +126,7 @@ partial class Dump if(dcMode10?.Pages != null) foreach(Modes.ModePage modePage in dcMode10.Value.Pages.Where(modePage => - modePage.Page == 0x01 && modePage.Subpage == 0x00)) + modePage.Page == 0x01 && modePage.Subpage == 0x00)) currentModePage = modePage; } } @@ -148,7 +136,7 @@ partial class Dump if(dcMode6?.Pages != null) foreach(Modes.ModePage modePage in dcMode6.Value.Pages.Where(modePage => modePage.Page == 0x01 && - modePage.Subpage == 0x00)) + modePage.Subpage == 0x00)) currentModePage = modePage; } @@ -569,29 +557,14 @@ partial class Dump desiredSubchannel == MmcSubchannel.None) return; - switch(supportedSubchannel) - { - case MmcSubchannel.None: - supportedPlextorSubchannel = PlextorSubchannel.None; - - break; - case MmcSubchannel.Raw: - supportedPlextorSubchannel = PlextorSubchannel.All; - - break; - case MmcSubchannel.Q16: - supportedPlextorSubchannel = PlextorSubchannel.Q16; - - break; - case MmcSubchannel.Rw: - supportedPlextorSubchannel = PlextorSubchannel.Pack; - - break; - default: - supportedPlextorSubchannel = PlextorSubchannel.None; - - break; - } + supportedPlextorSubchannel = supportedSubchannel switch + { + MmcSubchannel.None => PlextorSubchannel.None, + MmcSubchannel.Raw => PlextorSubchannel.All, + MmcSubchannel.Q16 => PlextorSubchannel.Q16, + MmcSubchannel.Rw => PlextorSubchannel.Pack, + _ => PlextorSubchannel.None + }; if(_aborted) return; @@ -625,8 +598,8 @@ partial class Dump break; } - PulseProgress?. - Invoke($"Retrying sector {badSector} subchannel, pass {pass}, {(forward ? "forward" : "reverse")}"); + PulseProgress?.Invoke($"Retrying sector {badSector} subchannel, pass {pass}, { + (forward ? "forward" : "reverse")}"); uint startSector = badSector - 2; diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs index e278b3705..327b0da79 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs @@ -30,8 +30,6 @@ // Copyright © 2011-2022 Natalia Portillo // ****************************************************************************/ - - // ReSharper disable JoinDeclarationAndInitializer // ReSharper disable InlineOutVariableDeclaration // ReSharper disable TooWideLocalVariableScope @@ -94,17 +92,12 @@ partial class Dump if(discInfo.HasValue && mediaType == MediaType.CD) - switch(discInfo.Value.DiscType) - { - case 0x10: - mediaType = MediaType.CDI; - - break; - case 0x20: - mediaType = MediaType.CDROMXA; - - break; - } + mediaType = discInfo.Value.DiscType switch + { + 0x10 => MediaType.CDI, + 0x20 => MediaType.CDROMXA, + _ => mediaType + }; } _dumpLog.WriteLine("Reading PMA"); diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs index 4511577b4..ef7957d45 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs @@ -91,25 +91,13 @@ partial class Dump byte[] senseBuf = null; var outputOptical = _outputPlugin as IWritableOpticalImage; - switch(supportedSubchannel) - { - case MmcSubchannel.None: - supportedPlextorSubchannel = PlextorSubchannel.None; - - break; - case MmcSubchannel.Raw: - supportedPlextorSubchannel = PlextorSubchannel.Pack; - - break; - case MmcSubchannel.Q16: - supportedPlextorSubchannel = PlextorSubchannel.Q16; - - break; - default: - supportedPlextorSubchannel = PlextorSubchannel.None; - - break; - } + supportedPlextorSubchannel = supportedSubchannel switch + { + MmcSubchannel.None => PlextorSubchannel.None, + MmcSubchannel.Raw => PlextorSubchannel.Pack, + MmcSubchannel.Q16 => PlextorSubchannel.Q16, + _ => PlextorSubchannel.None + }; if(_resume.BadBlocks.Count <= 0 || _aborted || diff --git a/Aaru.Core/Devices/Dumping/MMC.cs b/Aaru.Core/Devices/Dumping/MMC.cs index 1c0ff5e42..8b8a5c395 100644 --- a/Aaru.Core/Devices/Dumping/MMC.cs +++ b/Aaru.Core/Devices/Dumping/MMC.cs @@ -283,26 +283,14 @@ partial class Dump var mediaTags = new Dictionary(); if(dskType == MediaType.PD650) - switch(blocks + 1) - { - case 1281856: - dskType = MediaType.PD650_WORM; - - break; - case 58620544: - dskType = MediaType.REV120; - - break; - case 17090880: - dskType = MediaType.REV35; - - break; - - case 34185728: - dskType = MediaType.REV70; - - break; - } + dskType = (blocks + 1) switch + { + 1281856 => MediaType.PD650_WORM, + 58620544 => MediaType.REV120, + 17090880 => MediaType.REV35, + 34185728 => MediaType.REV70, + _ => dskType + }; #region Nintendo switch(dskType) @@ -365,65 +353,25 @@ partial class Dump UpdateStatus?.Invoke($"PFI:\n{PFI.Prettify(decPfi)}"); // False book types - switch(decPfi.DiskCategory) - { - case DiskCategory.DVDPR: - dskType = MediaType.DVDPR; - - break; - case DiskCategory.DVDPRDL: - dskType = MediaType.DVDPRDL; - - break; - case DiskCategory.DVDPRW: - dskType = MediaType.DVDPRW; - - break; - case DiskCategory.DVDPRWDL: - dskType = MediaType.DVDPRWDL; - - break; - case DiskCategory.DVDR: - dskType = decPfi.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR; - - break; - case DiskCategory.DVDRAM: - dskType = MediaType.DVDRAM; - - break; - default: - dskType = MediaType.DVDROM; - - break; - case DiskCategory.DVDRW: - dskType = decPfi.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW; - - break; - case DiskCategory.HDDVDR: - dskType = MediaType.HDDVDR; - - break; - case DiskCategory.HDDVDRAM: - dskType = MediaType.HDDVDRAM; - - break; - case DiskCategory.HDDVDROM: - dskType = MediaType.HDDVDROM; - - break; - case DiskCategory.HDDVDRW: - dskType = MediaType.HDDVDRW; - - break; - case DiskCategory.Nintendo: - dskType = decPfi.DiscSize == DVDSize.Eighty ? MediaType.GOD : MediaType.WOD; - - break; - case DiskCategory.UMD: - dskType = MediaType.UMD; - - break; - } + dskType = decPfi.DiskCategory switch + { + DiskCategory.DVDPR => MediaType.DVDPR, + DiskCategory.DVDPRDL => MediaType.DVDPRDL, + DiskCategory.DVDPRW => MediaType.DVDPRW, + DiskCategory.DVDPRWDL => MediaType.DVDPRWDL, + DiskCategory.DVDR => decPfi.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR, + DiskCategory.DVDRAM => MediaType.DVDRAM, + DiskCategory.DVDRW => decPfi.PartVersion >= 15 ? MediaType.DVDRWDL + : MediaType.DVDRW, + DiskCategory.HDDVDR => MediaType.HDDVDR, + DiskCategory.HDDVDRAM => MediaType.HDDVDRAM, + DiskCategory.HDDVDROM => MediaType.HDDVDROM, + DiskCategory.HDDVDRW => MediaType.HDDVDRW, + DiskCategory.Nintendo => decPfi.DiscSize == DVDSize.Eighty ? MediaType.GOD + : MediaType.WOD, + DiskCategory.UMD => MediaType.UMD, + _ => MediaType.DVDROM + }; } } @@ -584,9 +532,10 @@ partial class Dump } } else - UpdateStatus?. - Invoke($"Drive reports disc uses {(CSS_CPRM.DecodeLeadInCopyright(cmdBuf)?.CopyrightType ?? CopyrightType.NoProtection).ToString()} copy protection. " + - "This is not yet supported and the dump will be incorrect."); + UpdateStatus?.Invoke($"Drive reports disc uses { + (CSS_CPRM.DecodeLeadInCopyright(cmdBuf)?.CopyrightType ?? + CopyrightType.NoProtection).ToString()} copy protection. " + + "This is not yet supported and the dump will be incorrect."); } } } diff --git a/Aaru.Core/Devices/Report/SecureDigital.cs b/Aaru.Core/Devices/Report/SecureDigital.cs index 884bcbbb0..3bf327302 100644 --- a/Aaru.Core/Devices/Report/SecureDigital.cs +++ b/Aaru.Core/Devices/Report/SecureDigital.cs @@ -110,21 +110,12 @@ public sealed partial class DeviceReport { ctx.AddTask("Trying to get OCR...").IsIndeterminate(); - switch(_dev.Type) - { - case DeviceType.MMC: - { - sense = _dev.ReadOcr(out ocr, out _, _dev.Timeout, out _); - - break; - } - case DeviceType.SecureDigital: - { - sense = _dev.ReadSdocr(out ocr, out _, _dev.Timeout, out _); - - break; - } - } + sense = _dev.Type switch + { + DeviceType.MMC => _dev.ReadOcr(out ocr, out _, _dev.Timeout, out _), + DeviceType.SecureDigital => _dev.ReadSdocr(out ocr, out _, _dev.Timeout, out _), + _ => sense + }; }); if(!sense) diff --git a/Aaru.Core/Media/Detection/MMC.cs b/Aaru.Core/Media/Detection/MMC.cs index 16750655c..d896c8d41 100644 --- a/Aaru.Core/Media/Detection/MMC.cs +++ b/Aaru.Core/Media/Detection/MMC.cs @@ -1127,61 +1127,26 @@ public static class MMC PFI.PhysicalFormatInformation? pfi = PFI.Decode(cmdBuf, mediaType); if(pfi != null) - switch(pfi.Value.DiskCategory) - { - case DiskCategory.DVDPR: - mediaType = MediaType.DVDPR; - - break; - case DiskCategory.DVDPRDL: - mediaType = MediaType.DVDPRDL; - - break; - case DiskCategory.DVDPRW: - mediaType = MediaType.DVDPRW; - - break; - case DiskCategory.DVDPRWDL: - mediaType = MediaType.DVDPRWDL; - - break; - case DiskCategory.DVDR: - mediaType = pfi.Value.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR; - - break; - case DiskCategory.DVDRAM: - mediaType = MediaType.DVDRAM; - - break; - case DiskCategory.DVDRW: - mediaType = pfi.Value.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW; - - break; - case DiskCategory.HDDVDR: - mediaType = MediaType.HDDVDR; - - break; - case DiskCategory.HDDVDRAM: - mediaType = MediaType.HDDVDRAM; - - break; - case DiskCategory.HDDVDROM: - mediaType = MediaType.HDDVDROM; - - break; - case DiskCategory.HDDVDRW: - mediaType = MediaType.HDDVDRW; - - break; - case DiskCategory.Nintendo: - mediaType = pfi.Value.DiscSize == DVDSize.Eighty ? MediaType.GOD : MediaType.WOD; - - break; - case DiskCategory.UMD: - mediaType = MediaType.UMD; - - break; - } + mediaType = pfi.Value.DiskCategory switch + { + DiskCategory.DVDPR => MediaType.DVDPR, + DiskCategory.DVDPRDL => MediaType.DVDPRDL, + DiskCategory.DVDPRW => MediaType.DVDPRW, + DiskCategory.DVDPRWDL => MediaType.DVDPRWDL, + DiskCategory.DVDR => pfi.Value.PartVersion >= 6 ? MediaType.DVDRDL + : MediaType.DVDR, + DiskCategory.DVDRAM => MediaType.DVDRAM, + DiskCategory.DVDRW => pfi.Value.PartVersion >= 15 ? MediaType.DVDRWDL + : MediaType.DVDRW, + DiskCategory.HDDVDR => MediaType.HDDVDR, + DiskCategory.HDDVDRAM => MediaType.HDDVDRAM, + DiskCategory.HDDVDROM => MediaType.HDDVDROM, + DiskCategory.HDDVDRW => MediaType.HDDVDRW, + DiskCategory.Nintendo => pfi.Value.DiscSize == DVDSize.Eighty + ? MediaType.GOD : MediaType.WOD, + DiskCategory.UMD => MediaType.UMD, + _ => mediaType + }; } sense = dev.ReadDiscStructure(out cmdBuf, out _, MmcDiscStructureMediaType.Dvd, 0, 0, diff --git a/Aaru.Core/Media/Info/ScsiInfo.cs b/Aaru.Core/Media/Info/ScsiInfo.cs index c3ebf47be..86f15b200 100644 --- a/Aaru.Core/Media/Info/ScsiInfo.cs +++ b/Aaru.Core/Media/Info/ScsiInfo.cs @@ -323,35 +323,18 @@ public sealed class ScsiInfo break; case 0x0002: - switch(scsiMediumType) - { - case 0x01: - MediaType = MediaType.PD650; - - break; - case 0x41: - switch(Blocks) - { - case 58620544: - MediaType = MediaType.REV120; - - break; - case 17090880: - MediaType = MediaType.REV35; - - break; - case 34185728: - MediaType = MediaType.REV70; - - break; - } - - break; - default: - MediaType = MediaType.Unknown; - - break; - } + MediaType = scsiMediumType switch + { + 0x01 => MediaType.PD650, + 0x41 => Blocks switch + { + 58620544 => MediaType.REV120, + 17090880 => MediaType.REV35, + 34185728 => MediaType.REV70, + _ => MediaType + }, + _ => MediaType.Unknown + }; break; case 0x0005: @@ -519,67 +502,26 @@ public sealed class ScsiInfo if(DecodedPfi.HasValue) if(MediaType == MediaType.DVDROM) - switch(DecodedPfi.Value.DiskCategory) - { - case DiskCategory.DVDPR: - MediaType = MediaType.DVDPR; - - break; - case DiskCategory.DVDPRDL: - MediaType = MediaType.DVDPRDL; - - break; - case DiskCategory.DVDPRW: - MediaType = MediaType.DVDPRW; - - break; - case DiskCategory.DVDPRWDL: - MediaType = MediaType.DVDPRWDL; - - break; - case DiskCategory.DVDR: - MediaType = DecodedPfi.Value.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR; - - break; - case DiskCategory.DVDRAM: - MediaType = MediaType.DVDRAM; - - break; - default: - MediaType = MediaType.DVDROM; - - break; - case DiskCategory.DVDRW: - MediaType = DecodedPfi.Value.PartVersion >= 15 ? MediaType.DVDRWDL - : MediaType.DVDRW; - - break; - case DiskCategory.HDDVDR: - MediaType = MediaType.HDDVDR; - - break; - case DiskCategory.HDDVDRAM: - MediaType = MediaType.HDDVDRAM; - - break; - case DiskCategory.HDDVDROM: - MediaType = MediaType.HDDVDROM; - - break; - case DiskCategory.HDDVDRW: - MediaType = MediaType.HDDVDRW; - - break; - case DiskCategory.Nintendo: - MediaType = DecodedPfi.Value.DiscSize == DVDSize.Eighty ? MediaType.GOD - : MediaType.WOD; - - break; - case DiskCategory.UMD: - MediaType = MediaType.UMD; - - break; - } + MediaType = DecodedPfi.Value.DiskCategory switch + { + DiskCategory.DVDPR => MediaType.DVDPR, + DiskCategory.DVDPRDL => MediaType.DVDPRDL, + DiskCategory.DVDPRW => MediaType.DVDPRW, + DiskCategory.DVDPRWDL => MediaType.DVDPRWDL, + DiskCategory.DVDR => DecodedPfi.Value.PartVersion >= 6 ? MediaType.DVDRDL + : MediaType.DVDR, + DiskCategory.DVDRAM => MediaType.DVDRAM, + DiskCategory.DVDRW => DecodedPfi.Value.PartVersion >= 15 ? MediaType.DVDRWDL + : MediaType.DVDRW, + DiskCategory.HDDVDR => MediaType.HDDVDR, + DiskCategory.HDDVDRAM => MediaType.HDDVDRAM, + DiskCategory.HDDVDROM => MediaType.HDDVDROM, + DiskCategory.HDDVDRW => MediaType.HDDVDRW, + DiskCategory.Nintendo => DecodedPfi.Value.DiscSize == DVDSize.Eighty + ? MediaType.GOD : MediaType.WOD, + DiskCategory.UMD => MediaType.UMD, + _ => MediaType.DVDROM + }; } sense = dev.ReadDiscStructure(out cmdBuf, out senseBuf, MmcDiscStructureMediaType.Dvd, 0, 0, @@ -1200,17 +1142,12 @@ public sealed class ScsiInfo if(nintendoPfi.Value.DiskCategory == DiskCategory.Nintendo && nintendoPfi.Value.PartVersion == 15) - switch(nintendoPfi.Value.DiscSize) - { - case DVDSize.Eighty: - MediaType = MediaType.GOD; - - break; - case DVDSize.OneTwenty: - MediaType = MediaType.WOD; - - break; - } + MediaType = nintendoPfi.Value.DiscSize switch + { + DVDSize.Eighty => MediaType.GOD, + DVDSize.OneTwenty => MediaType.WOD, + _ => MediaType + }; } } @@ -1422,17 +1359,12 @@ public sealed class ScsiInfo if(DecodedDiscInformation.HasValue) if(MediaType == MediaType.CD) - switch(DecodedDiscInformation.Value.DiscType) - { - case 0x10: - MediaType = MediaType.CDI; - - break; - case 0x20: - MediaType = MediaType.CDROMXA; - - break; - } + MediaType = DecodedDiscInformation.Value.DiscType switch + { + 0x10 => MediaType.CDI, + 0x20 => MediaType.CDROMXA, + _ => MediaType + }; } MediaType tmpType = MediaType; diff --git a/Aaru.Core/Sidecar/OpticalDisc.cs b/Aaru.Core/Sidecar/OpticalDisc.cs index 4a9914515..4dfa5bad8 100644 --- a/Aaru.Core/Sidecar/OpticalDisc.cs +++ b/Aaru.Core/Sidecar/OpticalDisc.cs @@ -163,65 +163,24 @@ public sealed partial class Sidecar dskType != MediaType.PS3DVD && dskType != MediaType.Nuon) { - switch(pfi.Value.DiskCategory) - { - case DiskCategory.DVDPR: - dskType = MediaType.DVDPR; - - break; - case DiskCategory.DVDPRDL: - dskType = MediaType.DVDPRDL; - - break; - case DiskCategory.DVDPRW: - dskType = MediaType.DVDPRW; - - break; - case DiskCategory.DVDPRWDL: - dskType = MediaType.DVDPRWDL; - - break; - case DiskCategory.DVDR: - dskType = MediaType.DVDR; - - break; - case DiskCategory.DVDRAM: - dskType = MediaType.DVDRAM; - - break; - case DiskCategory.DVDROM: - dskType = MediaType.DVDROM; - - break; - case DiskCategory.DVDRW: - dskType = MediaType.DVDRW; - - break; - case DiskCategory.HDDVDR: - dskType = MediaType.HDDVDR; - - break; - case DiskCategory.HDDVDRAM: - dskType = MediaType.HDDVDRAM; - - break; - case DiskCategory.HDDVDROM: - dskType = MediaType.HDDVDROM; - - break; - case DiskCategory.HDDVDRW: - dskType = MediaType.HDDVDRW; - - break; - case DiskCategory.Nintendo: - dskType = MediaType.GOD; - - break; - case DiskCategory.UMD: - dskType = MediaType.UMD; - - break; - } + dskType = pfi.Value.DiskCategory switch + { + DiskCategory.DVDPR => MediaType.DVDPR, + DiskCategory.DVDPRDL => MediaType.DVDPRDL, + DiskCategory.DVDPRW => MediaType.DVDPRW, + DiskCategory.DVDPRWDL => MediaType.DVDPRWDL, + DiskCategory.DVDR => MediaType.DVDR, + DiskCategory.DVDRAM => MediaType.DVDRAM, + DiskCategory.DVDROM => MediaType.DVDROM, + DiskCategory.DVDRW => MediaType.DVDRW, + DiskCategory.HDDVDR => MediaType.HDDVDR, + DiskCategory.HDDVDRAM => MediaType.HDDVDRAM, + DiskCategory.HDDVDROM => MediaType.HDDVDROM, + DiskCategory.HDDVDRW => MediaType.HDDVDRW, + DiskCategory.Nintendo => MediaType.GOD, + DiskCategory.UMD => MediaType.UMD, + _ => dskType + }; if(dskType == MediaType.DVDR && pfi.Value.PartVersion >= 6) @@ -313,55 +272,23 @@ public sealed partial class Sidecar var xmlTrk = new TrackType(); - switch(trk.Type) - { - case CommonTypes.Enums.TrackType.Audio: - xmlTrk.TrackType1 = TrackTypeTrackType.audio; - - break; - case CommonTypes.Enums.TrackType.CdMode2Form2: - xmlTrk.TrackType1 = TrackTypeTrackType.m2f2; - - break; - case CommonTypes.Enums.TrackType.CdMode2Formless: - xmlTrk.TrackType1 = TrackTypeTrackType.mode2; - - break; - case CommonTypes.Enums.TrackType.CdMode2Form1: - xmlTrk.TrackType1 = TrackTypeTrackType.m2f1; - - break; - case CommonTypes.Enums.TrackType.CdMode1: - xmlTrk.TrackType1 = TrackTypeTrackType.mode1; - - break; - case CommonTypes.Enums.TrackType.Data: - switch(sidecar.OpticalDisc[0].DiscType) - { - case "BD": - xmlTrk.TrackType1 = TrackTypeTrackType.bluray; - - break; - case "DDCD": - xmlTrk.TrackType1 = TrackTypeTrackType.ddcd; - - break; - case "DVD": - xmlTrk.TrackType1 = TrackTypeTrackType.dvd; - - break; - case "HD DVD": - xmlTrk.TrackType1 = TrackTypeTrackType.hddvd; - - break; - default: - xmlTrk.TrackType1 = TrackTypeTrackType.mode1; - - break; - } - - break; - } + xmlTrk.TrackType1 = trk.Type switch + { + CommonTypes.Enums.TrackType.Audio => TrackTypeTrackType.audio, + CommonTypes.Enums.TrackType.CdMode2Form2 => TrackTypeTrackType.m2f2, + CommonTypes.Enums.TrackType.CdMode2Formless => TrackTypeTrackType.mode2, + CommonTypes.Enums.TrackType.CdMode2Form1 => TrackTypeTrackType.m2f1, + CommonTypes.Enums.TrackType.CdMode1 => TrackTypeTrackType.mode1, + CommonTypes.Enums.TrackType.Data => sidecar.OpticalDisc[0].DiscType switch + { + "BD" => TrackTypeTrackType.bluray, + "DDCD" => TrackTypeTrackType.ddcd, + "DVD" => TrackTypeTrackType.dvd, + "HD DVD" => TrackTypeTrackType.hddvd, + _ => TrackTypeTrackType.mode1 + }, + _ => xmlTrk.TrackType1 + }; xmlTrk.Sequence = new TrackSequenceType { @@ -639,25 +566,14 @@ public sealed partial class Sidecar lstFs.Add(plugin.XmlFsType); Statistics.AddFilesystem(plugin.XmlFsType.Type); - switch(plugin.XmlFsType.Type) - { - case "Opera": - dskType = MediaType.ThreeDO; - - break; - case "PC Engine filesystem": - dskType = MediaType.SuperCDROM2; - - break; - case "Nintendo Wii filesystem": - dskType = MediaType.WOD; - - break; - case "Nintendo Gamecube filesystem": - dskType = MediaType.GOD; - - break; - } + dskType = plugin.XmlFsType.Type switch + { + "Opera" => MediaType.ThreeDO, + "PC Engine filesystem" => MediaType.SuperCDROM2, + "Nintendo Wii filesystem" => MediaType.WOD, + "Nintendo Gamecube filesystem" => MediaType.GOD, + _ => dskType + }; } #pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body catch @@ -706,25 +622,14 @@ public sealed partial class Sidecar lstFs.Add(plugin.XmlFsType); Statistics.AddFilesystem(plugin.XmlFsType.Type); - switch(plugin.XmlFsType.Type) - { - case "Opera": - dskType = MediaType.ThreeDO; - - break; - case "PC Engine filesystem": - dskType = MediaType.SuperCDROM2; - - break; - case "Nintendo Wii filesystem": - dskType = MediaType.WOD; - - break; - case "Nintendo Gamecube filesystem": - dskType = MediaType.GOD; - - break; - } + dskType = plugin.XmlFsType.Type switch + { + "Opera" => MediaType.ThreeDO, + "PC Engine filesystem" => MediaType.SuperCDROM2, + "Nintendo Wii filesystem" => MediaType.WOD, + "Nintendo Gamecube filesystem" => MediaType.GOD, + _ => dskType + }; } #pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body catch diff --git a/Aaru.Decoders b/Aaru.Decoders index 02d6222ae..f0bee36d9 160000 --- a/Aaru.Decoders +++ b/Aaru.Decoders @@ -1 +1 @@ -Subproject commit 02d6222ae9603d9462ea5ae2f64ff8bdfe4c5ecd +Subproject commit f0bee36d9eddd7435f05e20587c18ff2d32b46ed diff --git a/Aaru.Devices/Device/ScsiCommands/MMC.cs b/Aaru.Devices/Device/ScsiCommands/MMC.cs index 98c31e8f8..89dcabbee 100644 --- a/Aaru.Devices/Device/ScsiCommands/MMC.cs +++ b/Aaru.Devices/Device/ScsiCommands/MMC.cs @@ -152,33 +152,15 @@ public partial class Device // WORKAROUND: Some drives return incorrect length information. As these structures are fixed length just apply known length. if(mediaType == MmcDiscStructureMediaType.Bd) - switch(format) - { - case MmcDiscStructureFormat.DiscInformation: - buffer = new byte[4100]; - - break; - case MmcDiscStructureFormat.BdBurstCuttingArea: - buffer = new byte[68]; - - break; - case MmcDiscStructureFormat.BdDds: - buffer = new byte[strctLength < 100 ? 100 : strctLength]; - - break; - case MmcDiscStructureFormat.CartridgeStatus: - buffer = new byte[8]; - - break; - case MmcDiscStructureFormat.BdSpareAreaInformation: - buffer = new byte[16]; - - break; - default: - buffer = new byte[strctLength]; - - break; - } + buffer = format switch + { + MmcDiscStructureFormat.DiscInformation => new byte[4100], + MmcDiscStructureFormat.BdBurstCuttingArea => new byte[68], + MmcDiscStructureFormat.BdDds => new byte[strctLength < 100 ? 100 : strctLength], + MmcDiscStructureFormat.CartridgeStatus => new byte[8], + MmcDiscStructureFormat.BdSpareAreaInformation => new byte[16], + _ => new byte[strctLength] + }; else buffer = new byte[strctLength]; diff --git a/Aaru.Devices/Linux/Command.cs b/Aaru.Devices/Linux/Command.cs index fd4e53237..62cdc3d5f 100644 --- a/Aaru.Devices/Linux/Command.cs +++ b/Aaru.Devices/Linux/Command.cs @@ -56,31 +56,14 @@ partial class Device if(buffer == null) return -1; - ScsiIoctlDirection dir; - - switch(direction) - { - case ScsiDirection.In: - dir = ScsiIoctlDirection.In; - - break; - case ScsiDirection.Out: - dir = ScsiIoctlDirection.Out; - - break; - case ScsiDirection.Bidirectional: - dir = ScsiIoctlDirection.Unspecified; - - break; - case ScsiDirection.None: - dir = ScsiIoctlDirection.None; - - break; - default: - dir = ScsiIoctlDirection.Unknown; - - break; - } + ScsiIoctlDirection dir = direction switch + { + ScsiDirection.In => ScsiIoctlDirection.In, + ScsiDirection.Out => ScsiIoctlDirection.Out, + ScsiDirection.Bidirectional => ScsiIoctlDirection.Unspecified, + ScsiDirection.None => ScsiIoctlDirection.None, + _ => ScsiIoctlDirection.Unknown + }; var ioHdr = new SgIoHdrT(); @@ -448,7 +431,7 @@ partial class Device var ioCmd = new MmcIocCmd(); - IntPtr bufPtr = Marshal.AllocHGlobal(buffer.Length); + nint bufPtr = Marshal.AllocHGlobal(buffer.Length); ioCmd.write_flag = write; ioCmd.is_ascmd = isApplication; @@ -500,7 +483,7 @@ partial class Device int off; // Create array for buffers - var bufferPointers = new IntPtr[commands.Length]; + var bufferPointers = new nint[commands.Length]; // Allocate memory for the array for commands var ioMultiCmd = new byte[sizeof(ulong) + Marshal.SizeOf() * commands.Length]; @@ -547,7 +530,7 @@ partial class Device } // Allocate unmanaged memory for array of commands - IntPtr ioMultiCmdPtr = Marshal.AllocHGlobal(ioMultiCmd.Length); + nint ioMultiCmdPtr = Marshal.AllocHGlobal(ioMultiCmd.Length); // Copy array of commands to unmanaged memory Marshal.Copy(ioMultiCmd, 0, ioMultiCmdPtr, ioMultiCmd.Length); @@ -653,8 +636,8 @@ partial class Device /// Contents of the symbolic link static string ReadLink(string path) { - IntPtr buf = Marshal.AllocHGlobal(4096); - int resultSize; + nint buf = Marshal.AllocHGlobal(4096); + int resultSize; if(DetectOS.Is64Bit) { diff --git a/Aaru.Devices/Windows/Command.cs b/Aaru.Devices/Windows/Command.cs index 1f1896e4c..ecd4c523c 100644 --- a/Aaru.Devices/Windows/Command.cs +++ b/Aaru.Devices/Windows/Command.cs @@ -57,23 +57,12 @@ partial class Device if(buffer == null) return -1; - ScsiIoctlDirection dir; - - switch(direction) - { - case ScsiDirection.In: - dir = ScsiIoctlDirection.In; - - break; - case ScsiDirection.Out: - dir = ScsiIoctlDirection.Out; - - break; - default: - dir = ScsiIoctlDirection.Unspecified; - - break; - } + ScsiIoctlDirection dir = direction switch + { + ScsiDirection.In => ScsiIoctlDirection.In, + ScsiDirection.Out => ScsiIoctlDirection.Out, + _ => ScsiIoctlDirection.Unspecified + }; var sptdSb = new ScsiPassThroughDirectAndSenseBuffer { diff --git a/Aaru.Filesystems/AppleHFSPlus.cs b/Aaru.Filesystems/AppleHFSPlus.cs index a6d1d121f..bc3e67f66 100644 --- a/Aaru.Filesystems/AppleHFSPlus.cs +++ b/Aaru.Filesystems/AppleHFSPlus.cs @@ -302,17 +302,12 @@ public sealed class AppleHFSPlus : IFilesystem XmlFsType.ModificationDateSpecified = true; } - switch(vh.signature) - { - case 0x482B: - XmlFsType.Type = "HFS+"; - - break; - case 0x4858: - XmlFsType.Type = "HFSX"; - - break; - } + XmlFsType.Type = vh.signature switch + { + 0x482B => "HFS+", + 0x4858 => "HFSX", + _ => XmlFsType.Type + }; if(vh.drFndrInfo6 != 0 && vh.drFndrInfo7 != 0) diff --git a/Aaru.Filesystems/CPM/Info.cs b/Aaru.Filesystems/CPM/Info.cs index 2affc9ceb..347e71c70 100644 --- a/Aaru.Filesystems/CPM/Info.cs +++ b/Aaru.Filesystems/CPM/Info.cs @@ -279,21 +279,12 @@ public sealed partial class CPM if(amsSb.format == 2) { - switch(amsSb.sidedness & 0x02) - { - case 1: - _workingDefinition.order = "SIDES"; - - break; - case 2: - _workingDefinition.order = "CYLINDERS"; - - break; - default: - _workingDefinition.order = null; - - break; - } + _workingDefinition.order = (amsSb.sidedness & 0x02) switch + { + 1 => "SIDES", + 2 => "CYLINDERS", + _ => null + }; _workingDefinition.side2 = new Side { diff --git a/Aaru.Filesystems/FAT/Info.cs b/Aaru.Filesystems/FAT/Info.cs index 964f8afaa..65266758a 100644 --- a/Aaru.Filesystems/FAT/Info.cs +++ b/Aaru.Filesystems/FAT/Info.cs @@ -379,33 +379,16 @@ public sealed partial class FAT break; case 0xFE: - switch(imagePlugin.Info.Sectors) - { - case 320 when imagePlugin.Info.SectorSize == 512: - fat2SectorNo = 2; - - break; - case 2002 when imagePlugin.Info.SectorSize == 128: - fat2SectorNo = 7; - - break; - case 1232 when imagePlugin.Info.SectorSize == 1024: - fat2SectorNo = 3; - - break; - case 616 when imagePlugin.Info.SectorSize == 1024: - fat2SectorNo = 2; - - break; - case 720 when imagePlugin.Info.SectorSize == 128: - fat2SectorNo = 5; - - break; - case 640 when imagePlugin.Info.SectorSize == 512: - fat2SectorNo = 2; - - break; - } + fat2SectorNo = imagePlugin.Info.Sectors switch + { + 320 when imagePlugin.Info.SectorSize == 512 => 2, + 2002 when imagePlugin.Info.SectorSize == 128 => 7, + 1232 when imagePlugin.Info.SectorSize == 1024 => 3, + 616 when imagePlugin.Info.SectorSize == 1024 => 2, + 720 when imagePlugin.Info.SectorSize == 128 => 5, + 640 when imagePlugin.Info.SectorSize == 512 => 2, + _ => fat2SectorNo + }; break; case 0xFF: @@ -877,31 +860,42 @@ public sealed partial class FAT fakeBpb.oem_name[7] == 0x43) sb.AppendLine("Volume has been modified by Windows 9x/Me Volume Tracker."); else - switch(fakeBpb.oem_name[0]) - { - // Later versions of Windows create a DOS 3 BPB without OEM name on 8 sectors/track floppies - // OEM ID should be ASCII, otherwise ignore it - case >= 0x20 and <= 0x7F when fakeBpb.oem_name[1] >= 0x20 && fakeBpb.oem_name[1] <= 0x7F && - fakeBpb.oem_name[2] >= 0x20 && fakeBpb.oem_name[2] <= 0x7F && - fakeBpb.oem_name[3] >= 0x20 && fakeBpb.oem_name[3] <= 0x7F && - fakeBpb.oem_name[4] >= 0x20 && fakeBpb.oem_name[4] <= 0x7F && - fakeBpb.oem_name[5] >= 0x20 && fakeBpb.oem_name[5] <= 0x7F && - fakeBpb.oem_name[6] >= 0x20 && fakeBpb.oem_name[6] <= 0x7F && - fakeBpb.oem_name[7] >= 0x20 && fakeBpb.oem_name[7] <= 0x7F: - XmlFsType.SystemIdentifier = StringHandlers.CToString(fakeBpb.oem_name); - - break; - case < 0x20 when fakeBpb.oem_name[1] >= 0x20 && fakeBpb.oem_name[1] <= 0x7F && - fakeBpb.oem_name[2] >= 0x20 && fakeBpb.oem_name[2] <= 0x7F && - fakeBpb.oem_name[3] >= 0x20 && fakeBpb.oem_name[3] <= 0x7F && - fakeBpb.oem_name[4] >= 0x20 && fakeBpb.oem_name[4] <= 0x7F && - fakeBpb.oem_name[5] >= 0x20 && fakeBpb.oem_name[5] <= 0x7F && - fakeBpb.oem_name[6] >= 0x20 && fakeBpb.oem_name[6] <= 0x7F && - fakeBpb.oem_name[7] >= 0x20 && fakeBpb.oem_name[7] <= 0x7F: - XmlFsType.SystemIdentifier = StringHandlers.CToString(fakeBpb.oem_name, Encoding, start: 1); - - break; - } + XmlFsType.SystemIdentifier = fakeBpb.oem_name[0] switch + { + // Later versions of Windows create a DOS 3 BPB without OEM name on 8 sectors/track floppies + // OEM ID should be ASCII, otherwise ignore it + >= 0x20 and <= 0x7F when fakeBpb.oem_name[1] >= 0x20 && + fakeBpb.oem_name[1] <= 0x7F && + fakeBpb.oem_name[2] >= 0x20 && + fakeBpb.oem_name[2] <= 0x7F && + fakeBpb.oem_name[3] >= 0x20 && + fakeBpb.oem_name[3] <= 0x7F && + fakeBpb.oem_name[4] >= 0x20 && + fakeBpb.oem_name[4] <= 0x7F && + fakeBpb.oem_name[5] >= 0x20 && + fakeBpb.oem_name[5] <= 0x7F && + fakeBpb.oem_name[6] >= 0x20 && + fakeBpb.oem_name[6] <= 0x7F && + fakeBpb.oem_name[7] >= 0x20 && + fakeBpb.oem_name[7] <= 0x7F => + StringHandlers.CToString(fakeBpb.oem_name), + < 0x20 when fakeBpb.oem_name[1] >= 0x20 && + fakeBpb.oem_name[1] <= 0x7F && + fakeBpb.oem_name[2] >= 0x20 && + fakeBpb.oem_name[2] <= 0x7F && + fakeBpb.oem_name[3] >= 0x20 && + fakeBpb.oem_name[3] <= 0x7F && + fakeBpb.oem_name[4] >= 0x20 && + fakeBpb.oem_name[4] <= 0x7F && + fakeBpb.oem_name[5] >= 0x20 && + fakeBpb.oem_name[5] <= 0x7F && + fakeBpb.oem_name[6] >= 0x20 && + fakeBpb.oem_name[6] <= 0x7F && + fakeBpb.oem_name[7] >= 0x20 && + fakeBpb.oem_name[7] <= 0x7F => + StringHandlers.CToString(fakeBpb.oem_name, Encoding, start: 1), + _ => XmlFsType.SystemIdentifier + }; if(fakeBpb.signature is 0x28 or 0x29) XmlFsType.VolumeSerial = $"{fakeBpb.serial_no:X8}"; diff --git a/Aaru.Filesystems/FAT/Super.cs b/Aaru.Filesystems/FAT/Super.cs index db5c4a902..93a4a9657 100644 --- a/Aaru.Filesystems/FAT/Super.cs +++ b/Aaru.Filesystems/FAT/Super.cs @@ -428,31 +428,42 @@ public sealed partial class FAT if(fakeBpb.oem_name[5] != 0x49 || fakeBpb.oem_name[6] != 0x48 || fakeBpb.oem_name[7] != 0x43) - switch(fakeBpb.oem_name[0]) - { - // Later versions of Windows create a DOS 3 BPB without OEM name on 8 sectors/track floppies - // OEM ID should be ASCII, otherwise ignore it - case >= 0x20 and <= 0x7F when fakeBpb.oem_name[1] >= 0x20 && fakeBpb.oem_name[1] <= 0x7F && - fakeBpb.oem_name[2] >= 0x20 && fakeBpb.oem_name[2] <= 0x7F && - fakeBpb.oem_name[3] >= 0x20 && fakeBpb.oem_name[3] <= 0x7F && - fakeBpb.oem_name[4] >= 0x20 && fakeBpb.oem_name[4] <= 0x7F && - fakeBpb.oem_name[5] >= 0x20 && fakeBpb.oem_name[5] <= 0x7F && - fakeBpb.oem_name[6] >= 0x20 && fakeBpb.oem_name[6] <= 0x7F && - fakeBpb.oem_name[7] >= 0x20 && fakeBpb.oem_name[7] <= 0x7F: - XmlFsType.SystemIdentifier = StringHandlers.CToString(fakeBpb.oem_name); - - break; - case < 0x20 when fakeBpb.oem_name[1] >= 0x20 && fakeBpb.oem_name[1] <= 0x7F && - fakeBpb.oem_name[2] >= 0x20 && fakeBpb.oem_name[2] <= 0x7F && - fakeBpb.oem_name[3] >= 0x20 && fakeBpb.oem_name[3] <= 0x7F && - fakeBpb.oem_name[4] >= 0x20 && fakeBpb.oem_name[4] <= 0x7F && - fakeBpb.oem_name[5] >= 0x20 && fakeBpb.oem_name[5] <= 0x7F && - fakeBpb.oem_name[6] >= 0x20 && fakeBpb.oem_name[6] <= 0x7F && - fakeBpb.oem_name[7] >= 0x20 && fakeBpb.oem_name[7] <= 0x7F: - XmlFsType.SystemIdentifier = StringHandlers.CToString(fakeBpb.oem_name, Encoding, start: 1); - - break; - } + XmlFsType.SystemIdentifier = fakeBpb.oem_name[0] switch + { + // Later versions of Windows create a DOS 3 BPB without OEM name on 8 sectors/track floppies + // OEM ID should be ASCII, otherwise ignore it + >= 0x20 and <= 0x7F when fakeBpb.oem_name[1] >= 0x20 && + fakeBpb.oem_name[1] <= 0x7F && + fakeBpb.oem_name[2] >= 0x20 && + fakeBpb.oem_name[2] <= 0x7F && + fakeBpb.oem_name[3] >= 0x20 && + fakeBpb.oem_name[3] <= 0x7F && + fakeBpb.oem_name[4] >= 0x20 && + fakeBpb.oem_name[4] <= 0x7F && + fakeBpb.oem_name[5] >= 0x20 && + fakeBpb.oem_name[5] <= 0x7F && + fakeBpb.oem_name[6] >= 0x20 && + fakeBpb.oem_name[6] <= 0x7F && + fakeBpb.oem_name[7] >= 0x20 && + fakeBpb.oem_name[7] <= 0x7F => + StringHandlers.CToString(fakeBpb.oem_name), + < 0x20 when fakeBpb.oem_name[1] >= 0x20 && + fakeBpb.oem_name[1] <= 0x7F && + fakeBpb.oem_name[2] >= 0x20 && + fakeBpb.oem_name[2] <= 0x7F && + fakeBpb.oem_name[3] >= 0x20 && + fakeBpb.oem_name[3] <= 0x7F && + fakeBpb.oem_name[4] >= 0x20 && + fakeBpb.oem_name[4] <= 0x7F && + fakeBpb.oem_name[5] >= 0x20 && + fakeBpb.oem_name[5] <= 0x7F && + fakeBpb.oem_name[6] >= 0x20 && + fakeBpb.oem_name[6] <= 0x7F && + fakeBpb.oem_name[7] >= 0x20 && + fakeBpb.oem_name[7] <= 0x7F => + StringHandlers.CToString(fakeBpb.oem_name, Encoding, start: 1), + _ => XmlFsType.SystemIdentifier + }; if(fakeBpb.signature is 0x28 or 0x29) { diff --git a/Aaru.Filesystems/ISO9660/Date.cs b/Aaru.Filesystems/ISO9660/Date.cs index a5abe1d64..37aae3402 100644 --- a/Aaru.Filesystems/ISO9660/Date.cs +++ b/Aaru.Filesystems/ISO9660/Date.cs @@ -38,15 +38,14 @@ using Aaru.Helpers; public sealed partial class ISO9660 { - static DateTime? DecodeIsoDateTime(byte[] timestamp) - { - switch(timestamp?.Length) - { - case 7: return DecodeIsoDateTime(Marshal.ByteArrayToStructureLittleEndian(timestamp)); - case 17: return DateHandlers.Iso9660ToDateTime(timestamp); - default: return null; - } - } + static DateTime? DecodeIsoDateTime(byte[] timestamp) => timestamp?.Length switch + { + 7 => DecodeIsoDateTime(Marshal. + ByteArrayToStructureLittleEndian< + IsoTimestamp>(timestamp)), + 17 => DateHandlers.Iso9660ToDateTime(timestamp), + _ => null + }; static DateTime? DecodeIsoDateTime(IsoTimestamp timestamp) { diff --git a/Aaru.Filesystems/LisaFS/Super.cs b/Aaru.Filesystems/LisaFS/Super.cs index 6cb13263b..6ee39ad09 100644 --- a/Aaru.Filesystems/LisaFS/Super.cs +++ b/Aaru.Filesystems/LisaFS/Super.cs @@ -406,21 +406,13 @@ public sealed partial class LisaFS stat.FreeFiles = FILEID_MAX - stat.Files; - switch(_mddf.fsversion) - { - case LISA_V1: - stat.Type = "LisaFS v1"; - - break; - case LISA_V2: - stat.Type = "LisaFS v2"; - - break; - case LISA_V3: - stat.Type = "LisaFS v3"; - - break; - } + stat.Type = _mddf.fsversion switch + { + LISA_V1 => "LisaFS v1", + LISA_V2 => "LisaFS v2", + LISA_V3 => "LisaFS v3", + _ => stat.Type + }; return ErrorNumber.NoError; } diff --git a/Aaru.Filesystems/Nintendo.cs b/Aaru.Filesystems/Nintendo.cs index b70711aa3..6a8e6f673 100644 --- a/Aaru.Filesystems/Nintendo.cs +++ b/Aaru.Filesystems/Nintendo.cs @@ -394,47 +394,39 @@ public sealed class NintendoPlugin : IFilesystem } [SuppressMessage("ReSharper", "StringLiteralTypo")] - static string PublisherCodeToString(string publisherCode) - { - switch(publisherCode) - { - case "01": return "Nintendo"; - case "08": return "CAPCOM"; - case "41": return "Ubisoft"; - case "4F": return "Eidos"; - case "51": return "Acclaim"; - case "52": return "Activision"; - case "5D": return "Midway"; - case "5G": return "Hudson"; - case "64": return "LucasArts"; - case "69": return "Electronic Arts"; - case "6S": return "TDK Mediactive"; - case "8P": return "SEGA"; - case "A4": return "Mirage Studios"; - case "AF": return "Namco"; - case "B2": return "Bandai"; - case "DA": return "Tomy"; - case "EM": return "Konami"; - case "70": return "Atari"; - case "4Q": return "Disney Interactive"; - case "GD": return "Square Enix"; - case "7D": return "Sierra"; - } + static string PublisherCodeToString(string publisherCode) => publisherCode switch + { + "01" => "Nintendo", + "08" => "CAPCOM", + "41" => "Ubisoft", + "4F" => "Eidos", + "51" => "Acclaim", + "52" => "Activision", + "5D" => "Midway", + "5G" => "Hudson", + "64" => "LucasArts", + "69" => "Electronic Arts", + "6S" => "TDK Mediactive", + "8P" => "SEGA", + "A4" => "Mirage Studios", + "AF" => "Namco", + "B2" => "Bandai", + "DA" => "Tomy", + "EM" => "Konami", + "70" => "Atari", + "4Q" => "Disney Interactive", + "GD" => "Square Enix", + "7D" => "Sierra", + _ => $"Unknown publisher '{publisherCode}'" + }; - return $"Unknown publisher '{publisherCode}'"; - } - - static string PartitionTypeToString(uint type) - { - switch(type) - { - case 0: return "data"; - case 1: return "update"; - case 2: return "channel"; - } - - return $"unknown type {type}"; - } + static string PartitionTypeToString(uint type) => type switch + { + 0 => "data", + 1 => "update", + 2 => "channel", + _ => $"unknown type {type}" + }; struct NintendoFields { diff --git a/Aaru.Filesystems/ext2FS.cs b/Aaru.Filesystems/ext2FS.cs index 740a899bb..49b3b32b1 100644 --- a/Aaru.Filesystems/ext2FS.cs +++ b/Aaru.Filesystems/ext2FS.cs @@ -299,35 +299,15 @@ public sealed class ext2FS : IFilesystem return; } - string extOs; - - switch(supblk.creator_os) - { - case EXT2_OS_FREEBSD: - extOs = "FreeBSD"; - - break; - case EXT2_OS_HURD: - extOs = "Hurd"; - - break; - case EXT2_OS_LINUX: - extOs = "Linux"; - - break; - case EXT2_OS_LITES: - extOs = "Lites"; - - break; - case EXT2_OS_MASIX: - extOs = "MasIX"; - - break; - default: - extOs = $"Unknown OS ({supblk.creator_os})"; - - break; - } + string extOs = supblk.creator_os switch + { + EXT2_OS_FREEBSD => "FreeBSD", + EXT2_OS_HURD => "Hurd", + EXT2_OS_LINUX => "Linux", + EXT2_OS_LITES => "Lites", + EXT2_OS_MASIX => "MasIX", + _ => $"Unknown OS ({supblk.creator_os})" + }; XmlFsType.SystemIdentifier = extOs; diff --git a/Aaru.Gui/ViewModels/Panels/MediaInfoViewModel.cs b/Aaru.Gui/ViewModels/Panels/MediaInfoViewModel.cs index 00ebf1390..62057d948 100644 --- a/Aaru.Gui/ViewModels/Panels/MediaInfoViewModel.cs +++ b/Aaru.Gui/ViewModels/Panels/MediaInfoViewModel.cs @@ -107,34 +107,19 @@ public sealed class MediaInfoViewModel : ViewModelBase { ulong totalSize = scsiInfo.Blocks * scsiInfo.BlockSize; - switch(totalSize) - { - case > 1099511627776: - MediaSize = $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize - } bytes/each. (for a total of {totalSize / 1099511627776d:F3} TiB)"; - - break; - case > 1073741824: - MediaSize = $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize - } bytes/each. (for a total of {totalSize / 1073741824d:F3} GiB)"; - - break; - case > 1048576: - MediaSize = $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize - } bytes/each. (for a total of {totalSize / 1048576d:F3} MiB)"; - - break; - case > 1024: - MediaSize = $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize - } bytes/each. (for a total of {totalSize / 1024d:F3} KiB)"; - - break; - default: - MediaSize = $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize - } bytes/each. (for a total of {totalSize} bytes)"; - - break; - } + MediaSize = totalSize switch + { + > 1099511627776 => $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize + } bytes/each. (for a total of {totalSize / 1099511627776d:F3} TiB)", + > 1073741824 => $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize + } bytes/each. (for a total of {totalSize / 1073741824d:F3} GiB)", + > 1048576 => $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize + } bytes/each. (for a total of {totalSize / 1048576d:F3} MiB)", + > 1024 => $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize + } bytes/each. (for a total of {totalSize / 1024d:F3} KiB)", + _ => $"Media has {scsiInfo.Blocks} blocks of {scsiInfo.BlockSize + } bytes/each. (for a total of {totalSize} bytes)" + }; } if(scsiInfo.MediaSerialNumber != null) diff --git a/Aaru.Gui/ViewModels/Tabs/AtaInfoViewModel.cs b/Aaru.Gui/ViewModels/Tabs/AtaInfoViewModel.cs index 01f154878..cd2743cde 100644 --- a/Aaru.Gui/ViewModels/Tabs/AtaInfoViewModel.cs +++ b/Aaru.Gui/ViewModels/Tabs/AtaInfoViewModel.cs @@ -69,33 +69,15 @@ public sealed class AtaInfoViewModel : ViewModelBase if(ataMcptError.HasValue) { - switch(ataMcptError.Value.DeviceHead & 0x7) - { - case 0: - AtaMcptText = "Device reports incorrect media card type"; - - break; - case 1: - AtaMcptText = "Device contains a Secure Digital card"; - - break; - case 2: - AtaMcptText = "Device contains a MultiMediaCard "; - - break; - case 3: - AtaMcptText = "Device contains a Secure Digital I/O card"; - - break; - case 4: - AtaMcptText = "Device contains a Smart Media card"; - - break; - default: - AtaMcptText = $"Device contains unknown media card type {ataMcptError.Value.DeviceHead & 0x07}"; - - break; - } + AtaMcptText = (ataMcptError.Value.DeviceHead & 0x7) switch + { + 0 => "Device reports incorrect media card type", + 1 => "Device contains a Secure Digital card", + 2 => "Device contains a MultiMediaCard ", + 3 => "Device contains a Secure Digital I/O card", + 4 => "Device contains a Smart Media card", + _ => $"Device contains unknown media card type {ataMcptError.Value.DeviceHead & 0x07}" + }; AtaMcptWriteProtectionChecked = (ataMcptError.Value.DeviceHead & 0x08) == 0x08; diff --git a/Aaru.Gui/ViewModels/Tabs/ScsiInfoViewModel.cs b/Aaru.Gui/ViewModels/Tabs/ScsiInfoViewModel.cs index 4c6b50541..27134cf0e 100644 --- a/Aaru.Gui/ViewModels/Tabs/ScsiInfoViewModel.cs +++ b/Aaru.Gui/ViewModels/Tabs/ScsiInfoViewModel.cs @@ -536,29 +536,15 @@ public sealed class ScsiInfoViewModel : ViewModelBase case 0xC2 or 0xC3 or 0xC4 or 0xC5 or 0xC6 when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant(). Trim() == "certance": - switch(page.Key) - { - case 0xC2: - evpdPageTitle = "Head Assembly Serial Number"; - - break; - case 0xC3: - evpdPageTitle = "Reel Motor 1 Serial Number"; - - break; - case 0xC4: - evpdPageTitle = "Reel Motor 2 Serial Number"; - - break; - case 0xC5: - evpdPageTitle = "Board Serial Number"; - - break; - case 0xC6: - evpdPageTitle = "Base Mechanical Serial Number"; - - break; - } + evpdPageTitle = page.Key switch + { + 0xC2 => "Head Assembly Serial Number", + 0xC3 => "Reel Motor 1 Serial Number", + 0xC4 => "Reel Motor 2 Serial Number", + 0xC5 => "Board Serial Number", + 0xC6 => "Base Mechanical Serial Number", + _ => evpdPageTitle + }; evpdDecodedPage = EVPD.PrettifyPage_C2_C3_C4_C5_C6_Certance(page.Value); @@ -566,33 +552,16 @@ public sealed class ScsiInfoViewModel : ViewModelBase case 0xC0 or 0xC1 or 0xC2 or 0xC3 or 0xC4 or 0xC5 when StringHandlers.CToString(scsiInquiry.Value.VendorIdentification).ToLowerInvariant(). Trim() == "hp": - switch(page.Key) - { - case 0xC0: - evpdPageTitle = "HP Drive Firmware Revision Levels page:"; - - break; - case 0xC1: - evpdPageTitle = "HP Drive Hardware Revision Levels page:"; - - break; - case 0xC2: - evpdPageTitle = "HP Drive PCA Revision Levels page:"; - - break; - case 0xC3: - evpdPageTitle = "HP Drive Mechanism Revision Levels page:"; - - break; - case 0xC4: - evpdPageTitle = "HP Drive Head Assembly Revision Levels page:"; - - break; - case 0xC5: - evpdPageTitle = "HP Drive ACI Revision Levels page:"; - - break; - } + evpdPageTitle = page.Key switch + { + 0xC0 => "HP Drive Firmware Revision Levels page:", + 0xC1 => "HP Drive Hardware Revision Levels page:", + 0xC2 => "HP Drive PCA Revision Levels page:", + 0xC3 => "HP Drive Mechanism Revision Levels page:", + 0xC4 => "HP Drive Head Assembly Revision Levels page:", + 0xC5 => "HP Drive ACI Revision Levels page:", + _ => evpdPageTitle + }; evpdDecodedPage = EVPD.PrettifyPage_C0_to_C5_HP(page.Value); @@ -642,245 +611,68 @@ public sealed class ScsiInfoViewModel : ViewModelBase string featureDescription; AaruConsole.DebugWriteLine("Device-Info command", "Feature {0:X4}h", desc.Code); - switch(desc.Code) - { - case 0x0000: - featureDescription = Features.Prettify_0000(desc.Data); - - break; - case 0x0001: - featureDescription = Features.Prettify_0001(desc.Data); - - break; - case 0x0002: - featureDescription = Features.Prettify_0002(desc.Data); - - break; - case 0x0003: - featureDescription = Features.Prettify_0003(desc.Data); - - break; - case 0x0004: - featureDescription = Features.Prettify_0004(desc.Data); - - break; - case 0x0010: - featureDescription = Features.Prettify_0010(desc.Data); - - break; - case 0x001D: - featureDescription = Features.Prettify_001D(desc.Data); - - break; - case 0x001E: - featureDescription = Features.Prettify_001E(desc.Data); - - break; - case 0x001F: - featureDescription = Features.Prettify_001F(desc.Data); - - break; - case 0x0020: - featureDescription = Features.Prettify_0020(desc.Data); - - break; - case 0x0021: - featureDescription = Features.Prettify_0021(desc.Data); - - break; - case 0x0022: - featureDescription = Features.Prettify_0022(desc.Data); - - break; - case 0x0023: - featureDescription = Features.Prettify_0023(desc.Data); - - break; - case 0x0024: - featureDescription = Features.Prettify_0024(desc.Data); - - break; - case 0x0025: - featureDescription = Features.Prettify_0025(desc.Data); - - break; - case 0x0026: - featureDescription = Features.Prettify_0026(desc.Data); - - break; - case 0x0027: - featureDescription = Features.Prettify_0027(desc.Data); - - break; - case 0x0028: - featureDescription = Features.Prettify_0028(desc.Data); - - break; - case 0x0029: - featureDescription = Features.Prettify_0029(desc.Data); - - break; - case 0x002A: - featureDescription = Features.Prettify_002A(desc.Data); - - break; - case 0x002B: - featureDescription = Features.Prettify_002B(desc.Data); - - break; - case 0x002C: - featureDescription = Features.Prettify_002C(desc.Data); - - break; - case 0x002D: - featureDescription = Features.Prettify_002D(desc.Data); - - break; - case 0x002E: - featureDescription = Features.Prettify_002E(desc.Data); - - break; - case 0x002F: - featureDescription = Features.Prettify_002F(desc.Data); - - break; - case 0x0030: - featureDescription = Features.Prettify_0030(desc.Data); - - break; - case 0x0031: - featureDescription = Features.Prettify_0031(desc.Data); - - break; - case 0x0032: - featureDescription = Features.Prettify_0032(desc.Data); - - break; - case 0x0033: - featureDescription = Features.Prettify_0033(desc.Data); - - break; - case 0x0035: - featureDescription = Features.Prettify_0035(desc.Data); - - break; - case 0x0037: - featureDescription = Features.Prettify_0037(desc.Data); - - break; - case 0x0038: - featureDescription = Features.Prettify_0038(desc.Data); - - break; - case 0x003A: - featureDescription = Features.Prettify_003A(desc.Data); - - break; - case 0x003B: - featureDescription = Features.Prettify_003B(desc.Data); - - break; - case 0x0040: - featureDescription = Features.Prettify_0040(desc.Data); - - break; - case 0x0041: - featureDescription = Features.Prettify_0041(desc.Data); - - break; - case 0x0042: - featureDescription = Features.Prettify_0042(desc.Data); - - break; - case 0x0050: - featureDescription = Features.Prettify_0050(desc.Data); - - break; - case 0x0051: - featureDescription = Features.Prettify_0051(desc.Data); - - break; - case 0x0080: - featureDescription = Features.Prettify_0080(desc.Data); - - break; - case 0x0100: - featureDescription = Features.Prettify_0100(desc.Data); - - break; - case 0x0101: - featureDescription = Features.Prettify_0101(desc.Data); - - break; - case 0x0102: - featureDescription = Features.Prettify_0102(desc.Data); - - break; - case 0x0103: - featureDescription = Features.Prettify_0103(desc.Data); - - break; - case 0x0104: - featureDescription = Features.Prettify_0104(desc.Data); - - break; - case 0x0105: - featureDescription = Features.Prettify_0105(desc.Data); - - break; - case 0x0106: - featureDescription = Features.Prettify_0106(desc.Data); - - break; - case 0x0107: - featureDescription = Features.Prettify_0107(desc.Data); - - break; - case 0x0108: - featureDescription = Features.Prettify_0108(desc.Data); - - break; - case 0x0109: - featureDescription = Features.Prettify_0109(desc.Data); - - break; - case 0x010A: - featureDescription = Features.Prettify_010A(desc.Data); - - break; - case 0x010B: - featureDescription = Features.Prettify_010B(desc.Data); - - break; - case 0x010C: - featureDescription = Features.Prettify_010C(desc.Data); - - break; - case 0x010D: - featureDescription = Features.Prettify_010D(desc.Data); - - break; - case 0x010E: - featureDescription = Features.Prettify_010E(desc.Data); - - break; - case 0x0110: - featureDescription = Features.Prettify_0110(desc.Data); - - break; - case 0x0113: - featureDescription = Features.Prettify_0113(desc.Data); - - break; - case 0x0142: - featureDescription = Features.Prettify_0142(desc.Data); - - break; - default: - featureDescription = "Unknown feature"; - - break; - } + featureDescription = desc.Code switch + { + 0x0000 => Features.Prettify_0000(desc.Data), + 0x0001 => Features.Prettify_0001(desc.Data), + 0x0002 => Features.Prettify_0002(desc.Data), + 0x0003 => Features.Prettify_0003(desc.Data), + 0x0004 => Features.Prettify_0004(desc.Data), + 0x0010 => Features.Prettify_0010(desc.Data), + 0x001D => Features.Prettify_001D(desc.Data), + 0x001E => Features.Prettify_001E(desc.Data), + 0x001F => Features.Prettify_001F(desc.Data), + 0x0020 => Features.Prettify_0020(desc.Data), + 0x0021 => Features.Prettify_0021(desc.Data), + 0x0022 => Features.Prettify_0022(desc.Data), + 0x0023 => Features.Prettify_0023(desc.Data), + 0x0024 => Features.Prettify_0024(desc.Data), + 0x0025 => Features.Prettify_0025(desc.Data), + 0x0026 => Features.Prettify_0026(desc.Data), + 0x0027 => Features.Prettify_0027(desc.Data), + 0x0028 => Features.Prettify_0028(desc.Data), + 0x0029 => Features.Prettify_0029(desc.Data), + 0x002A => Features.Prettify_002A(desc.Data), + 0x002B => Features.Prettify_002B(desc.Data), + 0x002C => Features.Prettify_002C(desc.Data), + 0x002D => Features.Prettify_002D(desc.Data), + 0x002E => Features.Prettify_002E(desc.Data), + 0x002F => Features.Prettify_002F(desc.Data), + 0x0030 => Features.Prettify_0030(desc.Data), + 0x0031 => Features.Prettify_0031(desc.Data), + 0x0032 => Features.Prettify_0032(desc.Data), + 0x0033 => Features.Prettify_0033(desc.Data), + 0x0035 => Features.Prettify_0035(desc.Data), + 0x0037 => Features.Prettify_0037(desc.Data), + 0x0038 => Features.Prettify_0038(desc.Data), + 0x003A => Features.Prettify_003A(desc.Data), + 0x003B => Features.Prettify_003B(desc.Data), + 0x0040 => Features.Prettify_0040(desc.Data), + 0x0041 => Features.Prettify_0041(desc.Data), + 0x0042 => Features.Prettify_0042(desc.Data), + 0x0050 => Features.Prettify_0050(desc.Data), + 0x0051 => Features.Prettify_0051(desc.Data), + 0x0080 => Features.Prettify_0080(desc.Data), + 0x0100 => Features.Prettify_0100(desc.Data), + 0x0101 => Features.Prettify_0101(desc.Data), + 0x0102 => Features.Prettify_0102(desc.Data), + 0x0103 => Features.Prettify_0103(desc.Data), + 0x0104 => Features.Prettify_0104(desc.Data), + 0x0105 => Features.Prettify_0105(desc.Data), + 0x0106 => Features.Prettify_0106(desc.Data), + 0x0107 => Features.Prettify_0107(desc.Data), + 0x0108 => Features.Prettify_0108(desc.Data), + 0x0109 => Features.Prettify_0109(desc.Data), + 0x010A => Features.Prettify_010A(desc.Data), + 0x010B => Features.Prettify_010B(desc.Data), + 0x010C => Features.Prettify_010C(desc.Data), + 0x010D => Features.Prettify_010D(desc.Data), + 0x010E => Features.Prettify_010E(desc.Data), + 0x0110 => Features.Prettify_0110(desc.Data), + 0x0113 => Features.Prettify_0113(desc.Data), + 0x0142 => Features.Prettify_0142(desc.Data), + _ => "Unknown feature" + }; MmcFeatures.Add(new ScsiPageModel { diff --git a/Aaru.Gui/ViewModels/Windows/ImageVerifyViewModel.cs b/Aaru.Gui/ViewModels/Windows/ImageVerifyViewModel.cs index 4dfdde2f7..647a2c2eb 100644 --- a/Aaru.Gui/ViewModels/Windows/ImageVerifyViewModel.cs +++ b/Aaru.Gui/ViewModels/Windows/ImageVerifyViewModel.cs @@ -419,21 +419,12 @@ public sealed class ImageVerifyViewModel : ViewModelBase { ImageResultVisible = true; - switch(discCheckStatus) - { - case true: - ImageResultText = "Disc image checksums are correct"; - - break; - case false: - ImageResultText = "Disc image checksums are incorrect"; - - break; - case null: - ImageResultText = "Disc image does not contain checksums"; - - break; - } + ImageResultText = discCheckStatus switch + { + true => "Disc image checksums are correct", + false => "Disc image checksums are incorrect", + null => "Disc image does not contain checksums" + }; }); AaruConsole.VerboseWriteLine("Checking disc image checksums took {0} seconds", checkTime.TotalSeconds); @@ -493,8 +484,8 @@ public sealed class ImageVerifyViewModel : ViewModelBase { Progress2Value = all / 512d; - Progress2Text = - $"Checking sector {all} of {_inputFormat.Info.Sectors}, on track {currentTrack.Sequence}"; + Progress2Text = $"Checking sector {all} of {_inputFormat.Info.Sectors}, on track { + currentTrack.Sequence}"; }); List tempFailingLbas; diff --git a/Aaru.Gui/ViewModels/Windows/MediaScanViewModel.cs b/Aaru.Gui/ViewModels/Windows/MediaScanViewModel.cs index 65fb7eccf..2ae479fa5 100644 --- a/Aaru.Gui/ViewModels/Windows/MediaScanViewModel.cs +++ b/Aaru.Gui/ViewModels/Windows/MediaScanViewModel.cs @@ -450,25 +450,13 @@ public sealed class MediaScanViewModel : ViewModelBase case 0x0020: case 0x0021: case 0x0022: - switch(blocks) - { - case <= 360000: - MaxX = 360000; - - break; - case <= 405000: - MaxX = 405000; - - break; - case <= 445500: - MaxX = 445500; - - break; - default: - MaxX = blocks; - - break; - } + MaxX = blocks switch + { + <= 360000 => 360000, + <= 405000 => 405000, + <= 445500 => 445500, + _ => blocks + }; StepsX = MaxX / 10; StepsY = 150 * 4; @@ -504,29 +492,14 @@ public sealed class MediaScanViewModel : ViewModelBase case 0x0042: case 0x0043: case 0x0040: // BD - switch(blocks) - { - case <= 12219392: - MaxX = 12219392; - - break; - case <= 24438784: - MaxX = 24438784; - - break; - case <= 48878592: - MaxX = 48878592; - - break; - case <= 62500864: - MaxX = 62500864; - - break; - default: - MaxX = blocks; - - break; - } + MaxX = blocks switch + { + <= 12219392 => 12219392, + <= 24438784 => 24438784, + <= 48878592 => 48878592, + <= 62500864 => 62500864, + _ => blocks + }; StepsX = MaxX / 10; StepsY = 4394.5; @@ -539,21 +512,12 @@ public sealed class MediaScanViewModel : ViewModelBase case 0x0053: case 0x0058: case 0x005A: - switch(blocks) - { - case <= 7361599: - MaxX = 7361599; - - break; - case <= 16305407: - MaxX = 16305407; - - break; - default: - MaxX = blocks; - - break; - } + MaxX = blocks switch + { + <= 7361599 => 7361599, + <= 16305407 => 16305407, + _ => blocks + }; StepsX = MaxX / 10; StepsY = 4394.5; diff --git a/Aaru.Helpers b/Aaru.Helpers index cd2d27c2c..98f08919d 160000 --- a/Aaru.Helpers +++ b/Aaru.Helpers @@ -1 +1 @@ -Subproject commit cd2d27c2cfe5db9974bdd35f8488833cbb2d03f8 +Subproject commit 98f08919d6b06ce0240843ddd7c984fcfd44711c diff --git a/Aaru.Images/AaruFormat/Helpers.cs b/Aaru.Images/AaruFormat/Helpers.cs index d8a0d1afd..c82db8641 100644 --- a/Aaru.Images/AaruFormat/Helpers.cs +++ b/Aaru.Images/AaruFormat/Helpers.cs @@ -286,160 +286,248 @@ public sealed partial class AaruFormat } // Converts between image data type and Aaru media tag type - static MediaTagType GetMediaTagTypeForDataType(DataType type) - { - switch(type) - { - case DataType.CompactDiscPartialToc: return MediaTagType.CD_TOC; - case DataType.CompactDiscSessionInfo: return MediaTagType.CD_SessionInfo; - case DataType.CompactDiscToc: return MediaTagType.CD_FullTOC; - case DataType.CompactDiscPma: return MediaTagType.CD_PMA; - case DataType.CompactDiscAtip: return MediaTagType.CD_ATIP; - case DataType.CompactDiscLeadInCdText: return MediaTagType.CD_TEXT; - case DataType.DvdPfi: return MediaTagType.DVD_PFI; - case DataType.DvdLeadInCmi: return MediaTagType.DVD_CMI; - case DataType.DvdDiscKey: return MediaTagType.DVD_DiscKey; - case DataType.DvdBca: return MediaTagType.DVD_BCA; - case DataType.DvdDmi: return MediaTagType.DVD_DMI; - case DataType.DvdMediaIdentifier: return MediaTagType.DVD_MediaIdentifier; - case DataType.DvdMediaKeyBlock: return MediaTagType.DVD_MKB; - case DataType.DvdRamDds: return MediaTagType.DVDRAM_DDS; - case DataType.DvdRamMediumStatus: return MediaTagType.DVDRAM_MediumStatus; - case DataType.DvdRamSpareArea: return MediaTagType.DVDRAM_SpareArea; - case DataType.DvdRRmd: return MediaTagType.DVDR_RMD; - case DataType.DvdRPrerecordedInfo: return MediaTagType.DVDR_PreRecordedInfo; - case DataType.DvdRMediaIdentifier: return MediaTagType.DVDR_MediaIdentifier; - case DataType.DvdRPfi: return MediaTagType.DVDR_PFI; - case DataType.DvdAdip: return MediaTagType.DVD_ADIP; - case DataType.HdDvdCpi: return MediaTagType.HDDVD_CPI; - case DataType.HdDvdMediumStatus: return MediaTagType.HDDVD_MediumStatus; - case DataType.DvdDlLayerCapacity: return MediaTagType.DVDDL_LayerCapacity; - case DataType.DvdDlMiddleZoneAddress: return MediaTagType.DVDDL_MiddleZoneAddress; - case DataType.DvdDlJumpIntervalSize: return MediaTagType.DVDDL_JumpIntervalSize; - case DataType.DvdDlManualLayerJumpLba: return MediaTagType.DVDDL_ManualLayerJumpLBA; - case DataType.BlurayDi: return MediaTagType.BD_DI; - case DataType.BlurayBca: return MediaTagType.BD_BCA; - case DataType.BlurayDds: return MediaTagType.BD_DDS; - case DataType.BlurayCartridgeStatus: return MediaTagType.BD_CartridgeStatus; - case DataType.BluraySpareArea: return MediaTagType.BD_SpareArea; - case DataType.AacsVolumeIdentifier: return MediaTagType.AACS_VolumeIdentifier; - case DataType.AacsSerialNumber: return MediaTagType.AACS_SerialNumber; - case DataType.AacsMediaIdentifier: return MediaTagType.AACS_MediaIdentifier; - case DataType.AacsMediaKeyBlock: return MediaTagType.AACS_MKB; - case DataType.AacsDataKeys: return MediaTagType.AACS_DataKeys; - case DataType.AacsLbaExtents: return MediaTagType.AACS_LBAExtents; - case DataType.CprmMediaKeyBlock: return MediaTagType.AACS_CPRM_MKB; - case DataType.HybridRecognizedLayers: return MediaTagType.Hybrid_RecognizedLayers; - case DataType.ScsiMmcWriteProtection: return MediaTagType.MMC_WriteProtection; - case DataType.ScsiMmcDiscInformation: return MediaTagType.MMC_DiscInformation; - case DataType.ScsiMmcTrackResourcesInformation: return MediaTagType.MMC_TrackResourcesInformation; - case DataType.ScsiMmcPowResourcesInformation: return MediaTagType.MMC_POWResourcesInformation; - case DataType.ScsiInquiry: return MediaTagType.SCSI_INQUIRY; - case DataType.ScsiModePage2A: return MediaTagType.SCSI_MODEPAGE_2A; - case DataType.AtaIdentify: return MediaTagType.ATA_IDENTIFY; - case DataType.AtapiIdentify: return MediaTagType.ATAPI_IDENTIFY; - case DataType.PcmciaCis: return MediaTagType.PCMCIA_CIS; - case DataType.SecureDigitalCid: return MediaTagType.SD_CID; - case DataType.SecureDigitalCsd: return MediaTagType.SD_CSD; - case DataType.SecureDigitalScr: return MediaTagType.SD_SCR; - case DataType.SecureDigitalOcr: return MediaTagType.SD_OCR; - case DataType.MultiMediaCardCid: return MediaTagType.MMC_CID; - case DataType.MultiMediaCardCsd: return MediaTagType.MMC_CSD; - case DataType.MultiMediaCardOcr: return MediaTagType.MMC_OCR; - case DataType.MultiMediaCardExtendedCsd: return MediaTagType.MMC_ExtendedCSD; - case DataType.XboxSecuritySector: return MediaTagType.Xbox_SecuritySector; - case DataType.FloppyLeadOut: return MediaTagType.Floppy_LeadOut; - case DataType.DvdDiscControlBlock: return MediaTagType.DCB; - case DataType.CompactDiscFirstTrackPregap: return MediaTagType.CD_FirstTrackPregap; - case DataType.CompactDiscLeadOut: return MediaTagType.CD_LeadOut; - case DataType.ScsiModeSense6: return MediaTagType.SCSI_MODESENSE_6; - case DataType.ScsiModeSense10: return MediaTagType.SCSI_MODESENSE_10; - case DataType.UsbDescriptors: return MediaTagType.USB_Descriptors; - case DataType.XboxDmi: return MediaTagType.Xbox_DMI; - case DataType.XboxPfi: return MediaTagType.Xbox_PFI; - case DataType.CompactDiscMediaCatalogueNumber: return MediaTagType.CD_MCN; - case DataType.CompactDiscLeadIn: return MediaTagType.CD_LeadIn; - case DataType.DvdDiscKeyDecrypted: return MediaTagType.DVD_DiscKey_Decrypted; - default: throw new ArgumentOutOfRangeException(); - } - } + static MediaTagType GetMediaTagTypeForDataType(DataType type) => type switch + { + DataType.CompactDiscPartialToc => MediaTagType. + CD_TOC, + DataType.CompactDiscSessionInfo => + MediaTagType.CD_SessionInfo, + DataType.CompactDiscToc => MediaTagType. + CD_FullTOC, + DataType.CompactDiscPma => MediaTagType.CD_PMA, + DataType.CompactDiscAtip => MediaTagType. + CD_ATIP, + DataType.CompactDiscLeadInCdText => + MediaTagType.CD_TEXT, + DataType.DvdPfi => MediaTagType.DVD_PFI, + DataType.DvdLeadInCmi => MediaTagType.DVD_CMI, + DataType.DvdDiscKey => + MediaTagType.DVD_DiscKey, + DataType.DvdBca => MediaTagType.DVD_BCA, + DataType.DvdDmi => MediaTagType.DVD_DMI, + DataType.DvdMediaIdentifier => MediaTagType. + DVD_MediaIdentifier, + DataType.DvdMediaKeyBlock => MediaTagType. + DVD_MKB, + DataType.DvdRamDds => MediaTagType.DVDRAM_DDS, + DataType.DvdRamMediumStatus => MediaTagType. + DVDRAM_MediumStatus, + DataType.DvdRamSpareArea => MediaTagType. + DVDRAM_SpareArea, + DataType.DvdRRmd => MediaTagType.DVDR_RMD, + DataType.DvdRPrerecordedInfo => MediaTagType. + DVDR_PreRecordedInfo, + DataType.DvdRMediaIdentifier => MediaTagType. + DVDR_MediaIdentifier, + DataType.DvdRPfi => MediaTagType.DVDR_PFI, + DataType.DvdAdip => MediaTagType.DVD_ADIP, + DataType.HdDvdCpi => MediaTagType.HDDVD_CPI, + DataType.HdDvdMediumStatus => MediaTagType. + HDDVD_MediumStatus, + DataType.DvdDlLayerCapacity => MediaTagType. + DVDDL_LayerCapacity, + DataType.DvdDlMiddleZoneAddress => + MediaTagType.DVDDL_MiddleZoneAddress, + DataType.DvdDlJumpIntervalSize => MediaTagType. + DVDDL_JumpIntervalSize, + DataType.DvdDlManualLayerJumpLba => + MediaTagType.DVDDL_ManualLayerJumpLBA, + DataType.BlurayDi => MediaTagType.BD_DI, + DataType.BlurayBca => MediaTagType.BD_BCA, + DataType.BlurayDds => MediaTagType.BD_DDS, + DataType.BlurayCartridgeStatus => MediaTagType. + BD_CartridgeStatus, + DataType.BluraySpareArea => MediaTagType. + BD_SpareArea, + DataType.AacsVolumeIdentifier => MediaTagType. + AACS_VolumeIdentifier, + DataType.AacsSerialNumber => MediaTagType. + AACS_SerialNumber, + DataType.AacsMediaIdentifier => MediaTagType. + AACS_MediaIdentifier, + DataType.AacsMediaKeyBlock => MediaTagType. + AACS_MKB, + DataType.AacsDataKeys => MediaTagType. + AACS_DataKeys, + DataType.AacsLbaExtents => MediaTagType. + AACS_LBAExtents, + DataType.CprmMediaKeyBlock => MediaTagType. + AACS_CPRM_MKB, + DataType.HybridRecognizedLayers => + MediaTagType.Hybrid_RecognizedLayers, + DataType.ScsiMmcWriteProtection => + MediaTagType.MMC_WriteProtection, + DataType.ScsiMmcDiscInformation => + MediaTagType.MMC_DiscInformation, + DataType.ScsiMmcTrackResourcesInformation => + MediaTagType.MMC_TrackResourcesInformation, + DataType.ScsiMmcPowResourcesInformation => + MediaTagType.MMC_POWResourcesInformation, + DataType.ScsiInquiry => MediaTagType. + SCSI_INQUIRY, + DataType.ScsiModePage2A => MediaTagType. + SCSI_MODEPAGE_2A, + DataType.AtaIdentify => MediaTagType. + ATA_IDENTIFY, + DataType.AtapiIdentify => MediaTagType. + ATAPI_IDENTIFY, + DataType.PcmciaCis => MediaTagType.PCMCIA_CIS, + DataType.SecureDigitalCid => MediaTagType. + SD_CID, + DataType.SecureDigitalCsd => MediaTagType. + SD_CSD, + DataType.SecureDigitalScr => MediaTagType. + SD_SCR, + DataType.SecureDigitalOcr => MediaTagType. + SD_OCR, + DataType.MultiMediaCardCid => MediaTagType. + MMC_CID, + DataType.MultiMediaCardCsd => MediaTagType. + MMC_CSD, + DataType.MultiMediaCardOcr => MediaTagType. + MMC_OCR, + DataType.MultiMediaCardExtendedCsd => + MediaTagType.MMC_ExtendedCSD, + DataType.XboxSecuritySector => MediaTagType. + Xbox_SecuritySector, + DataType.FloppyLeadOut => MediaTagType. + Floppy_LeadOut, + DataType.DvdDiscControlBlock => MediaTagType. + DCB, + DataType.CompactDiscFirstTrackPregap => + MediaTagType.CD_FirstTrackPregap, + DataType.CompactDiscLeadOut => MediaTagType. + CD_LeadOut, + DataType.ScsiModeSense6 => MediaTagType. + SCSI_MODESENSE_6, + DataType.ScsiModeSense10 => MediaTagType. + SCSI_MODESENSE_10, + DataType.UsbDescriptors => MediaTagType. + USB_Descriptors, + DataType.XboxDmi => MediaTagType.Xbox_DMI, + DataType.XboxPfi => MediaTagType.Xbox_PFI, + DataType.CompactDiscMediaCatalogueNumber => + MediaTagType.CD_MCN, + DataType.CompactDiscLeadIn => MediaTagType. + CD_LeadIn, + DataType.DvdDiscKeyDecrypted => MediaTagType. + DVD_DiscKey_Decrypted, + _ => throw new ArgumentOutOfRangeException() + }; // Converts between Aaru media tag type and image data type - static DataType GetDataTypeForMediaTag(MediaTagType tag) - { - switch(tag) - { - case MediaTagType.CD_TOC: return DataType.CompactDiscPartialToc; - case MediaTagType.CD_SessionInfo: return DataType.CompactDiscSessionInfo; - case MediaTagType.CD_FullTOC: return DataType.CompactDiscToc; - case MediaTagType.CD_PMA: return DataType.CompactDiscPma; - case MediaTagType.CD_ATIP: return DataType.CompactDiscAtip; - case MediaTagType.CD_TEXT: return DataType.CompactDiscLeadInCdText; - case MediaTagType.DVD_PFI: return DataType.DvdPfi; - case MediaTagType.DVD_CMI: return DataType.DvdLeadInCmi; - case MediaTagType.DVD_DiscKey: return DataType.DvdDiscKey; - case MediaTagType.DVD_BCA: return DataType.DvdBca; - case MediaTagType.DVD_DMI: return DataType.DvdDmi; - case MediaTagType.DVD_MediaIdentifier: return DataType.DvdMediaIdentifier; - case MediaTagType.DVD_MKB: return DataType.DvdMediaKeyBlock; - case MediaTagType.DVDRAM_DDS: return DataType.DvdRamDds; - case MediaTagType.DVDRAM_MediumStatus: return DataType.DvdRamMediumStatus; - case MediaTagType.DVDRAM_SpareArea: return DataType.DvdRamSpareArea; - case MediaTagType.DVDR_RMD: return DataType.DvdRRmd; - case MediaTagType.DVDR_PreRecordedInfo: return DataType.DvdRPrerecordedInfo; - case MediaTagType.DVDR_MediaIdentifier: return DataType.DvdRMediaIdentifier; - case MediaTagType.DVDR_PFI: return DataType.DvdRPfi; - case MediaTagType.DVD_ADIP: return DataType.DvdAdip; - case MediaTagType.HDDVD_CPI: return DataType.HdDvdCpi; - case MediaTagType.HDDVD_MediumStatus: return DataType.HdDvdMediumStatus; - case MediaTagType.DVDDL_LayerCapacity: return DataType.DvdDlLayerCapacity; - case MediaTagType.DVDDL_MiddleZoneAddress: return DataType.DvdDlMiddleZoneAddress; - case MediaTagType.DVDDL_JumpIntervalSize: return DataType.DvdDlJumpIntervalSize; - case MediaTagType.DVDDL_ManualLayerJumpLBA: return DataType.DvdDlManualLayerJumpLba; - case MediaTagType.BD_DI: return DataType.BlurayDi; - case MediaTagType.BD_BCA: return DataType.BlurayBca; - case MediaTagType.BD_DDS: return DataType.BlurayDds; - case MediaTagType.BD_CartridgeStatus: return DataType.BlurayCartridgeStatus; - case MediaTagType.BD_SpareArea: return DataType.BluraySpareArea; - case MediaTagType.AACS_VolumeIdentifier: return DataType.AacsVolumeIdentifier; - case MediaTagType.AACS_SerialNumber: return DataType.AacsSerialNumber; - case MediaTagType.AACS_MediaIdentifier: return DataType.AacsMediaIdentifier; - case MediaTagType.AACS_MKB: return DataType.AacsMediaKeyBlock; - case MediaTagType.AACS_DataKeys: return DataType.AacsDataKeys; - case MediaTagType.AACS_LBAExtents: return DataType.AacsLbaExtents; - case MediaTagType.AACS_CPRM_MKB: return DataType.CprmMediaKeyBlock; - case MediaTagType.Hybrid_RecognizedLayers: return DataType.HybridRecognizedLayers; - case MediaTagType.MMC_WriteProtection: return DataType.ScsiMmcWriteProtection; - case MediaTagType.MMC_DiscInformation: return DataType.ScsiMmcDiscInformation; - case MediaTagType.MMC_TrackResourcesInformation: return DataType.ScsiMmcTrackResourcesInformation; - case MediaTagType.MMC_POWResourcesInformation: return DataType.ScsiMmcPowResourcesInformation; - case MediaTagType.SCSI_INQUIRY: return DataType.ScsiInquiry; - case MediaTagType.SCSI_MODEPAGE_2A: return DataType.ScsiModePage2A; - case MediaTagType.ATA_IDENTIFY: return DataType.AtaIdentify; - case MediaTagType.ATAPI_IDENTIFY: return DataType.AtapiIdentify; - case MediaTagType.PCMCIA_CIS: return DataType.PcmciaCis; - case MediaTagType.SD_CID: return DataType.SecureDigitalCid; - case MediaTagType.SD_CSD: return DataType.SecureDigitalCsd; - case MediaTagType.SD_SCR: return DataType.SecureDigitalScr; - case MediaTagType.SD_OCR: return DataType.SecureDigitalOcr; - case MediaTagType.MMC_CID: return DataType.MultiMediaCardCid; - case MediaTagType.MMC_CSD: return DataType.MultiMediaCardCsd; - case MediaTagType.MMC_OCR: return DataType.MultiMediaCardOcr; - case MediaTagType.MMC_ExtendedCSD: return DataType.MultiMediaCardExtendedCsd; - case MediaTagType.Xbox_SecuritySector: return DataType.XboxSecuritySector; - case MediaTagType.Floppy_LeadOut: return DataType.FloppyLeadOut; - case MediaTagType.DCB: return DataType.DvdDiscControlBlock; - case MediaTagType.CD_FirstTrackPregap: return DataType.CompactDiscFirstTrackPregap; - case MediaTagType.CD_LeadOut: return DataType.CompactDiscLeadOut; - case MediaTagType.SCSI_MODESENSE_6: return DataType.ScsiModeSense6; - case MediaTagType.SCSI_MODESENSE_10: return DataType.ScsiModeSense10; - case MediaTagType.USB_Descriptors: return DataType.UsbDescriptors; - case MediaTagType.Xbox_DMI: return DataType.XboxDmi; - case MediaTagType.Xbox_PFI: return DataType.XboxPfi; - case MediaTagType.CD_MCN: return DataType.CompactDiscMediaCatalogueNumber; - case MediaTagType.CD_LeadIn: return DataType.CompactDiscLeadIn; - case MediaTagType.DVD_DiscKey_Decrypted: return DataType.DvdDiscKeyDecrypted; - default: throw new ArgumentOutOfRangeException(nameof(tag), tag, null); - } - } + static DataType GetDataTypeForMediaTag(MediaTagType tag) => tag switch + { + MediaTagType.CD_TOC => DataType. + CompactDiscPartialToc, + MediaTagType.CD_SessionInfo => DataType. + CompactDiscSessionInfo, + MediaTagType.CD_FullTOC => DataType.CompactDiscToc, + MediaTagType.CD_PMA => DataType.CompactDiscPma, + MediaTagType.CD_ATIP => DataType.CompactDiscAtip, + MediaTagType.CD_TEXT => DataType. + CompactDiscLeadInCdText, + MediaTagType.DVD_PFI => DataType.DvdPfi, + MediaTagType.DVD_CMI => DataType.DvdLeadInCmi, + MediaTagType.DVD_DiscKey => DataType.DvdDiscKey, + MediaTagType.DVD_BCA => DataType.DvdBca, + MediaTagType.DVD_DMI => DataType.DvdDmi, + MediaTagType.DVD_MediaIdentifier => DataType. + DvdMediaIdentifier, + MediaTagType.DVD_MKB => DataType.DvdMediaKeyBlock, + MediaTagType.DVDRAM_DDS => DataType.DvdRamDds, + MediaTagType.DVDRAM_MediumStatus => DataType. + DvdRamMediumStatus, + MediaTagType.DVDRAM_SpareArea => DataType. + DvdRamSpareArea, + MediaTagType.DVDR_RMD => DataType.DvdRRmd, + MediaTagType.DVDR_PreRecordedInfo => DataType. + DvdRPrerecordedInfo, + MediaTagType.DVDR_MediaIdentifier => DataType. + DvdRMediaIdentifier, + MediaTagType.DVDR_PFI => DataType.DvdRPfi, + MediaTagType.DVD_ADIP => DataType.DvdAdip, + MediaTagType.HDDVD_CPI => DataType.HdDvdCpi, + MediaTagType.HDDVD_MediumStatus => DataType. + HdDvdMediumStatus, + MediaTagType.DVDDL_LayerCapacity => DataType. + DvdDlLayerCapacity, + MediaTagType.DVDDL_MiddleZoneAddress => DataType. + DvdDlMiddleZoneAddress, + MediaTagType.DVDDL_JumpIntervalSize => DataType. + DvdDlJumpIntervalSize, + MediaTagType.DVDDL_ManualLayerJumpLBA => DataType. + DvdDlManualLayerJumpLba, + MediaTagType.BD_DI => DataType.BlurayDi, + MediaTagType.BD_BCA => DataType.BlurayBca, + MediaTagType.BD_DDS => DataType.BlurayDds, + MediaTagType.BD_CartridgeStatus => DataType. + BlurayCartridgeStatus, + MediaTagType.BD_SpareArea => DataType. + BluraySpareArea, + MediaTagType.AACS_VolumeIdentifier => DataType. + AacsVolumeIdentifier, + MediaTagType.AACS_SerialNumber => DataType. + AacsSerialNumber, + MediaTagType.AACS_MediaIdentifier => DataType. + AacsMediaIdentifier, + MediaTagType.AACS_MKB => DataType.AacsMediaKeyBlock, + MediaTagType.AACS_DataKeys => DataType.AacsDataKeys, + MediaTagType.AACS_LBAExtents => DataType. + AacsLbaExtents, + MediaTagType.AACS_CPRM_MKB => DataType. + CprmMediaKeyBlock, + MediaTagType.Hybrid_RecognizedLayers => DataType. + HybridRecognizedLayers, + MediaTagType.MMC_WriteProtection => DataType. + ScsiMmcWriteProtection, + MediaTagType.MMC_DiscInformation => DataType. + ScsiMmcDiscInformation, + MediaTagType.MMC_TrackResourcesInformation => + DataType.ScsiMmcTrackResourcesInformation, + MediaTagType.MMC_POWResourcesInformation => + DataType.ScsiMmcPowResourcesInformation, + MediaTagType.SCSI_INQUIRY => DataType.ScsiInquiry, + MediaTagType.SCSI_MODEPAGE_2A => DataType. + ScsiModePage2A, + MediaTagType.ATA_IDENTIFY => DataType.AtaIdentify, + MediaTagType.ATAPI_IDENTIFY => DataType. + AtapiIdentify, + MediaTagType.PCMCIA_CIS => DataType.PcmciaCis, + MediaTagType.SD_CID => DataType.SecureDigitalCid, + MediaTagType.SD_CSD => DataType.SecureDigitalCsd, + MediaTagType.SD_SCR => DataType.SecureDigitalScr, + MediaTagType.SD_OCR => DataType.SecureDigitalOcr, + MediaTagType.MMC_CID => DataType.MultiMediaCardCid, + MediaTagType.MMC_CSD => DataType.MultiMediaCardCsd, + MediaTagType.MMC_OCR => DataType.MultiMediaCardOcr, + MediaTagType.MMC_ExtendedCSD => DataType. + MultiMediaCardExtendedCsd, + MediaTagType.Xbox_SecuritySector => DataType. + XboxSecuritySector, + MediaTagType.Floppy_LeadOut => DataType. + FloppyLeadOut, + MediaTagType.DCB => DataType.DvdDiscControlBlock, + MediaTagType.CD_FirstTrackPregap => DataType. + CompactDiscFirstTrackPregap, + MediaTagType.CD_LeadOut => DataType. + CompactDiscLeadOut, + MediaTagType.SCSI_MODESENSE_6 => DataType. + ScsiModeSense6, + MediaTagType.SCSI_MODESENSE_10 => DataType. + ScsiModeSense10, + MediaTagType.USB_Descriptors => DataType. + UsbDescriptors, + MediaTagType.Xbox_DMI => DataType.XboxDmi, + MediaTagType.Xbox_PFI => DataType.XboxPfi, + MediaTagType.CD_MCN => DataType. + CompactDiscMediaCatalogueNumber, + MediaTagType.CD_LeadIn => + DataType.CompactDiscLeadIn, + MediaTagType.DVD_DiscKey_Decrypted => DataType. + DvdDiscKeyDecrypted, + _ => throw new + ArgumentOutOfRangeException(nameof(tag), + tag, null) + }; } \ No newline at end of file diff --git a/Aaru.Images/Alcohol120/Helpers.cs b/Aaru.Images/Alcohol120/Helpers.cs index 45bc56eef..16b4df05d 100644 --- a/Aaru.Images/Alcohol120/Helpers.cs +++ b/Aaru.Images/Alcohol120/Helpers.cs @@ -72,18 +72,15 @@ public sealed partial class Alcohol120 } } - static MediaType MediumTypeToMediaType(MediumType discType) - { - switch(discType) - { - case MediumType.CD: return MediaType.CD; - case MediumType.CDR: return MediaType.CDR; - case MediumType.CDRW: return MediaType.CDRW; - case MediumType.DVD: return MediaType.DVDROM; - case MediumType.DVDR: return MediaType.DVDR; - default: return MediaType.Unknown; - } - } + static MediaType MediumTypeToMediaType(MediumType discType) => discType switch + { + MediumType.CD => MediaType.CD, + MediumType.CDR => MediaType.CDR, + MediumType.CDRW => MediaType.CDRW, + MediumType.DVD => MediaType.DVDROM, + MediumType.DVDR => MediaType.DVDR, + _ => MediaType.Unknown + }; static MediumType MediaTypeToMediumType(MediaType type) { @@ -137,18 +134,15 @@ public sealed partial class Alcohol120 } } - static TrackMode TrackTypeToTrackMode(TrackType type) - { - switch(type) - { - case TrackType.Audio: return TrackMode.Audio; - case TrackType.CdMode1: return TrackMode.Mode1; - case TrackType.CdMode2Formless: return TrackMode.Mode2; - case TrackType.CdMode2Form1: return TrackMode.Mode2F1; - case TrackType.CdMode2Form2: return TrackMode.Mode2F2; - default: return TrackMode.DVD; - } - } + static TrackMode TrackTypeToTrackMode(TrackType type) => type switch + { + TrackType.Audio => TrackMode.Audio, + TrackType.CdMode1 => TrackMode.Mode1, + TrackType.CdMode2Formless => TrackMode.Mode2, + TrackType.CdMode2Form1 => TrackMode.Mode2F1, + TrackType.CdMode2Form2 => TrackMode.Mode2F2, + _ => TrackMode.DVD + }; static (byte minute, byte second, byte frame) LbaToMsf(ulong sector) => ((byte)((sector + 150) / 75 / 60), (byte)((sector + 150) / 75 % 60), (byte)((sector + 150) % 75)); diff --git a/Aaru.Images/Alcohol120/Read.cs b/Aaru.Images/Alcohol120/Read.cs index c451ea9e1..bff9fbd34 100644 --- a/Aaru.Images/Alcohol120/Read.cs +++ b/Aaru.Images/Alcohol120/Read.cs @@ -405,66 +405,26 @@ public sealed partial class Alcohol120 // So much for archival value if(pfi0.HasValue) { - switch(pfi0.Value.DiskCategory) - { - case DiskCategory.DVDPR: - _imageInfo.MediaType = MediaType.DVDPR; - - break; - case DiskCategory.DVDPRDL: - _imageInfo.MediaType = MediaType.DVDPRDL; - - break; - case DiskCategory.DVDPRW: - _imageInfo.MediaType = MediaType.DVDPRW; - - break; - case DiskCategory.DVDPRWDL: - _imageInfo.MediaType = MediaType.DVDPRWDL; - - break; - case DiskCategory.DVDR: - _imageInfo.MediaType = pfi0.Value.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR; - - break; - case DiskCategory.DVDRAM: - _imageInfo.MediaType = MediaType.DVDRAM; - - break; - default: - _imageInfo.MediaType = MediaType.DVDROM; - - break; - case DiskCategory.DVDRW: - _imageInfo.MediaType = pfi0.Value.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW; - - break; - case DiskCategory.HDDVDR: - _imageInfo.MediaType = MediaType.HDDVDR; - - break; - case DiskCategory.HDDVDRAM: - _imageInfo.MediaType = MediaType.HDDVDRAM; - - break; - case DiskCategory.HDDVDROM: - _imageInfo.MediaType = MediaType.HDDVDROM; - - break; - case DiskCategory.HDDVDRW: - _imageInfo.MediaType = MediaType.HDDVDRW; - - break; - case DiskCategory.Nintendo: - _imageInfo.MediaType = - pfi0.Value.DiscSize == DVDSize.Eighty ? MediaType.GOD : MediaType.WOD; - - break; - case DiskCategory.UMD: - _imageInfo.MediaType = MediaType.UMD; - - break; - } + _imageInfo.MediaType = pfi0.Value.DiskCategory switch + { + DiskCategory.DVDPR => MediaType.DVDPR, + DiskCategory.DVDPRDL => MediaType.DVDPRDL, + DiskCategory.DVDPRW => MediaType.DVDPRW, + DiskCategory.DVDPRWDL => MediaType.DVDPRWDL, + DiskCategory.DVDR => pfi0.Value.PartVersion >= 6 ? MediaType.DVDRDL + : MediaType.DVDR, + DiskCategory.DVDRAM => MediaType.DVDRAM, + DiskCategory.DVDRW => pfi0.Value.PartVersion >= 15 ? MediaType.DVDRWDL + : MediaType.DVDRW, + DiskCategory.HDDVDR => MediaType.HDDVDR, + DiskCategory.HDDVDRAM => MediaType.HDDVDRAM, + DiskCategory.HDDVDROM => MediaType.HDDVDROM, + DiskCategory.HDDVDRW => MediaType.HDDVDRW, + DiskCategory.Nintendo => pfi0.Value.DiscSize == DVDSize.Eighty + ? MediaType.GOD : MediaType.WOD, + DiskCategory.UMD => MediaType.UMD, + _ => MediaType.DVDROM + }; if(DMI.IsXbox(_dmi)) _imageInfo.MediaType = MediaType.XGD; diff --git a/Aaru.Images/Apple2MG/Helpers.cs b/Aaru.Images/Apple2MG/Helpers.cs index f598d37bc..31d39fa2b 100644 --- a/Aaru.Images/Apple2MG/Helpers.cs +++ b/Aaru.Images/Apple2MG/Helpers.cs @@ -36,18 +36,15 @@ using Aaru.CommonTypes; public sealed partial class Apple2Mg { - MediaType GetMediaType() - { - switch(_imageInfo.Sectors) - { - case 455: return MediaType.Apple32SS; - case 910: return MediaType.Apple32DS; - case 560: return MediaType.Apple33SS; - case 1120: return MediaType.Apple33DS; - case 800: return MediaType.AppleSonySS; - case 1600: return MediaType.AppleSonyDS; - case 2880: return MediaType.DOS_35_HD; - default: return MediaType.Unknown; - } - } + MediaType GetMediaType() => _imageInfo.Sectors switch + { + 455 => MediaType.Apple32SS, + 910 => MediaType.Apple32DS, + 560 => MediaType.Apple33SS, + 1120 => MediaType.Apple33DS, + 800 => MediaType.AppleSonySS, + 1600 => MediaType.AppleSonyDS, + 2880 => MediaType.DOS_35_HD, + _ => MediaType.Unknown + }; } \ No newline at end of file diff --git a/Aaru.Images/Apple2MG/Read.cs b/Aaru.Images/Apple2MG/Read.cs index 5a5f2f6aa..53522c979 100644 --- a/Aaru.Images/Apple2MG/Read.cs +++ b/Aaru.Images/Apple2MG/Read.cs @@ -134,9 +134,7 @@ public sealed partial class Apple2Mg _decodedImage = new byte[_imageHeader.DataSize]; offsets = _imageHeader.ImageFormat == SectorOrder.Dos - ? isDos - ? _deinterleave - : _interleave + ? isDos ? _deinterleave : _interleave : isDos ? _interleave : _deinterleave; @@ -178,49 +176,19 @@ public sealed partial class Apple2Mg _imageInfo.ImageSize = _imageHeader.DataSize; - switch(_imageHeader.Creator) - { - case CREATOR_ASIMOV: - _imageInfo.Application = "ASIMOV2"; - - break; - case CREATOR_BERNIE: - _imageInfo.Application = "Bernie ][ the Rescue"; - - break; - case CREATOR_CATAKIG: - _imageInfo.Application = "Catakig"; - - break; - case CREATOR_SHEPPY: - _imageInfo.Application = "Sheppy's ImageMaker"; - - break; - case CREATOR_SWEET: - _imageInfo.Application = "Sweet16"; - - break; - case CREATOR_XGS: - _imageInfo.Application = "XGS"; - - break; - case CREATOR_CIDER: - _imageInfo.Application = "CiderPress"; - - break; - case CREATOR_DIC: - _imageInfo.Application = "DiscImageChef"; - - break; - case CREATOR_AARU: - _imageInfo.Application = "Aaru"; - - break; - default: - _imageInfo.Application = $"Unknown creator code \"{Encoding.ASCII.GetString(creator)}\""; - - break; - } + _imageInfo.Application = _imageHeader.Creator switch + { + CREATOR_ASIMOV => "ASIMOV2", + CREATOR_BERNIE => "Bernie ][ the Rescue", + CREATOR_CATAKIG => "Catakig", + CREATOR_SHEPPY => "Sheppy's ImageMaker", + CREATOR_SWEET => "Sweet16", + CREATOR_XGS => "XGS", + CREATOR_CIDER => "CiderPress", + CREATOR_DIC => "DiscImageChef", + CREATOR_AARU => "Aaru", + _ => $"Unknown creator code \"{Encoding.ASCII.GetString(creator)}\"" + }; _imageInfo.Version = _imageHeader.Version.ToString(); diff --git a/Aaru.Images/AppleNIB/Read.cs b/Aaru.Images/AppleNIB/Read.cs index ebb58b3d2..e373efa13 100644 --- a/Aaru.Images/AppleNIB/Read.cs +++ b/Aaru.Images/AppleNIB/Read.cs @@ -134,21 +134,12 @@ public sealed partial class AppleNib _imageInfo.LastModificationTime = imageFilter.LastWriteTime; _imageInfo.MediaTitle = Path.GetFileNameWithoutExtension(imageFilter.Filename); - switch(_imageInfo.Sectors) - { - case 455: - _imageInfo.MediaType = MediaType.Apple32SS; - - break; - case 560: - _imageInfo.MediaType = MediaType.Apple33SS; - - break; - default: - _imageInfo.MediaType = MediaType.Unknown; - - break; - } + _imageInfo.MediaType = _imageInfo.Sectors switch + { + 455 => MediaType.Apple32SS, + 560 => MediaType.Apple33SS, + _ => MediaType.Unknown + }; _imageInfo.SectorSize = 256; _imageInfo.XmlMediaType = XmlMediaType.BlockMedia; diff --git a/Aaru.Images/BlindWrite4/Read.cs b/Aaru.Images/BlindWrite4/Read.cs index f76e24011..1cfbecf41 100644 --- a/Aaru.Images/BlindWrite4/Read.cs +++ b/Aaru.Images/BlindWrite4/Read.cs @@ -758,13 +758,11 @@ public sealed partial class BlindWrite4 // Any non first track is audio audio |= bwTrack.Sequence != 1 && bwTrack.Type == CommonTypes.Enums.TrackType.Audio; - switch(bwTrack.Type) - { - case CommonTypes.Enums.TrackType.CdMode2Formless: - mode2 = true; - - break; - } + mode2 = bwTrack.Type switch + { + CommonTypes.Enums.TrackType.CdMode2Formless => true, + _ => mode2 + }; } if(!data && diff --git a/Aaru.Images/BlindWrite5/Helpers.cs b/Aaru.Images/BlindWrite5/Helpers.cs index 730ab3712..61d207446 100644 --- a/Aaru.Images/BlindWrite5/Helpers.cs +++ b/Aaru.Images/BlindWrite5/Helpers.cs @@ -37,18 +37,15 @@ using Aaru.Decoders.SCSI.MMC; public sealed partial class BlindWrite5 { - static CommonTypes.Enums.TrackType BlindWriteTrackTypeToTrackType(TrackType trackType) - { - switch(trackType) - { - case TrackType.Mode1: return CommonTypes.Enums.TrackType.CdMode1; - case TrackType.Mode2F1: return CommonTypes.Enums.TrackType.CdMode2Form1; - case TrackType.Mode2F2: return CommonTypes.Enums.TrackType.CdMode2Form2; - case TrackType.Mode2: return CommonTypes.Enums.TrackType.CdMode2Formless; - case TrackType.Audio: return CommonTypes.Enums.TrackType.Audio; - default: return CommonTypes.Enums.TrackType.Data; - } - } + static CommonTypes.Enums.TrackType BlindWriteTrackTypeToTrackType(TrackType trackType) => trackType switch + { + TrackType.Mode1 => CommonTypes.Enums.TrackType.CdMode1, + TrackType.Mode2F1 => CommonTypes.Enums.TrackType.CdMode2Form1, + TrackType.Mode2F2 => CommonTypes.Enums.TrackType.CdMode2Form2, + TrackType.Mode2 => CommonTypes.Enums.TrackType.CdMode2Formless, + TrackType.Audio => CommonTypes.Enums.TrackType.Audio, + _ => CommonTypes.Enums.TrackType.Data + }; static MediaType BlindWriteProfileToMediaType(ProfileNumber profile) { diff --git a/Aaru.Images/BlindWrite5/Read.cs b/Aaru.Images/BlindWrite5/Read.cs index c643f82a7..626530d5d 100644 --- a/Aaru.Images/BlindWrite5/Read.cs +++ b/Aaru.Images/BlindWrite5/Read.cs @@ -782,13 +782,15 @@ public sealed partial class BlindWrite5 lowerCaseExtension = true; } else if(File.Exists(Path.Combine(imageFilter.ParentFolder, - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension + }"))) { basePath = imageFilter.ParentFolder; lowerCaseFileName = true; } else if(File.Exists(Path.Combine(imageFilter.ParentFolder, - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtensionLower}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{ + firstExtensionLower}"))) { basePath = imageFilter.ParentFolder; lowerCaseFileName = true; @@ -803,13 +805,15 @@ public sealed partial class BlindWrite5 lowerCaseExtension = true; } else if(File.Exists(Path.Combine(_dataPath, - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension + }"))) { basePath = _dataPath; lowerCaseFileName = true; } else if(File.Exists(Path.Combine(_dataPath, - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtensionLower}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{ + firstExtensionLower}"))) { basePath = _dataPath; lowerCaseFileName = true; @@ -826,13 +830,15 @@ public sealed partial class BlindWrite5 lowerCaseExtension = true; } else if(File.Exists(Path.Combine(_dataPath.ToLower(CultureInfo.CurrentCulture), - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension + }"))) { basePath = _dataPath.ToLower(CultureInfo.CurrentCulture); lowerCaseFileName = true; } else if(File.Exists(Path.Combine(_dataPath.ToLower(CultureInfo.CurrentCulture), - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtensionLower}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{ + firstExtensionLower}"))) { basePath = _dataPath.ToLower(CultureInfo.CurrentCulture); lowerCaseFileName = true; @@ -849,13 +855,15 @@ public sealed partial class BlindWrite5 lowerCaseExtension = true; } else if(File.Exists(Path.Combine(imageFilter.ParentFolder, _dataPath, - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension + }"))) { basePath = Path.Combine(imageFilter.ParentFolder, _dataPath); lowerCaseFileName = true; } else if(File.Exists(Path.Combine(imageFilter.ParentFolder, _dataPath, - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtensionLower}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{ + firstExtensionLower}"))) { basePath = Path.Combine(imageFilter.ParentFolder, _dataPath); lowerCaseFileName = true; @@ -877,7 +885,8 @@ public sealed partial class BlindWrite5 } else if(File.Exists(Path.Combine(imageFilter.ParentFolder, _dataPath.ToLower(CultureInfo.CurrentCulture), - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension + }"))) { basePath = Path.Combine(imageFilter.ParentFolder, _dataPath.ToLower(CultureInfo.CurrentCulture)); @@ -886,7 +895,8 @@ public sealed partial class BlindWrite5 } else if(File.Exists(Path.Combine(imageFilter.ParentFolder, _dataPath.ToLower(CultureInfo.CurrentCulture), - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtensionLower}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{ + firstExtensionLower}"))) { basePath = Path.Combine(imageFilter.ParentFolder, _dataPath.ToLower(CultureInfo.CurrentCulture)); @@ -902,13 +912,15 @@ public sealed partial class BlindWrite5 lowerCaseExtension = true; } else if(File.Exists(Path.Combine("", - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtension + }"))) { basePath = ""; lowerCaseFileName = true; } else if(File.Exists(Path.Combine("", - $"{filename.ToLower(CultureInfo.CurrentCulture)}.{firstExtensionLower}"))) + $"{filename.ToLower(CultureInfo.CurrentCulture)}.{ + firstExtensionLower}"))) { basePath = ""; lowerCaseFileName = true; @@ -1105,65 +1117,26 @@ public sealed partial class BlindWrite5 // So much for archival value if(pfi0.HasValue) { - switch(pfi0.Value.DiskCategory) - { - case DiskCategory.DVDPR: - _imageInfo.MediaType = MediaType.DVDPR; - - break; - case DiskCategory.DVDPRDL: - _imageInfo.MediaType = MediaType.DVDPRDL; - - break; - case DiskCategory.DVDPRW: - _imageInfo.MediaType = MediaType.DVDPRW; - - break; - case DiskCategory.DVDPRWDL: - _imageInfo.MediaType = MediaType.DVDPRWDL; - - break; - case DiskCategory.DVDR: - _imageInfo.MediaType = pfi0.Value.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR; - - break; - case DiskCategory.DVDRAM: - _imageInfo.MediaType = MediaType.DVDRAM; - - break; - default: - _imageInfo.MediaType = MediaType.DVDROM; - - break; - case DiskCategory.DVDRW: - _imageInfo.MediaType = pfi0.Value.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW; - - break; - case DiskCategory.HDDVDR: - _imageInfo.MediaType = MediaType.HDDVDR; - - break; - case DiskCategory.HDDVDRAM: - _imageInfo.MediaType = MediaType.HDDVDRAM; - - break; - case DiskCategory.HDDVDROM: - _imageInfo.MediaType = MediaType.HDDVDROM; - - break; - case DiskCategory.HDDVDRW: - _imageInfo.MediaType = MediaType.HDDVDRW; - - break; - case DiskCategory.Nintendo: - _imageInfo.MediaType = pfi0.Value.DiscSize == DVDSize.Eighty ? MediaType.GOD : MediaType.WOD; - - break; - case DiskCategory.UMD: - _imageInfo.MediaType = MediaType.UMD; - - break; - } + _imageInfo.MediaType = pfi0.Value.DiskCategory switch + { + DiskCategory.DVDPR => MediaType.DVDPR, + DiskCategory.DVDPRDL => MediaType.DVDPRDL, + DiskCategory.DVDPRW => MediaType.DVDPRW, + DiskCategory.DVDPRWDL => MediaType.DVDPRWDL, + DiskCategory.DVDR => pfi0.Value.PartVersion >= 6 ? MediaType.DVDRDL + : MediaType.DVDR, + DiskCategory.DVDRAM => MediaType.DVDRAM, + DiskCategory.DVDRW => pfi0.Value.PartVersion >= 15 ? MediaType.DVDRWDL + : MediaType.DVDRW, + DiskCategory.HDDVDR => MediaType.HDDVDR, + DiskCategory.HDDVDRAM => MediaType.HDDVDRAM, + DiskCategory.HDDVDROM => MediaType.HDDVDROM, + DiskCategory.HDDVDRW => MediaType.HDDVDRW, + DiskCategory.Nintendo => pfi0.Value.DiscSize == DVDSize.Eighty + ? MediaType.GOD : MediaType.WOD, + DiskCategory.UMD => MediaType.UMD, + _ => MediaType.DVDROM + }; if(DMI.IsXbox(_dmi)) _imageInfo.MediaType = MediaType.XGD; @@ -1275,17 +1248,12 @@ public sealed partial class BlindWrite5 } if(isBd && _imageInfo.Sectors > 24438784) - switch(_imageInfo.MediaType) - { - case MediaType.BDR: - _imageInfo.MediaType = MediaType.BDRXL; - - break; - case MediaType.BDRE: - _imageInfo.MediaType = MediaType.BDREXL; - - break; - } + _imageInfo.MediaType = _imageInfo.MediaType switch + { + MediaType.BDR => MediaType.BDRXL, + MediaType.BDRE => MediaType.BDREXL, + _ => _imageInfo.MediaType + }; AaruConsole.DebugWriteLine("BlindWrite5 plugin", "ImageInfo.mediaType = {0}", _imageInfo.MediaType); diff --git a/Aaru.Images/ByteAddressable/GameBoy.cs b/Aaru.Images/ByteAddressable/GameBoy.cs index db896642e..b9296eb02 100644 --- a/Aaru.Images/ByteAddressable/GameBoy.cs +++ b/Aaru.Images/ByteAddressable/GameBoy.cs @@ -730,225 +730,225 @@ public class GameBoy : IByteAddressableImage { string licenseeNew = StringHandlers.CToString(headerLicenseeNew); - switch(licenseeNew) - { - case "00": return "none"; - case "01": return "Nintendo R&D1"; - case "08": return "Capcom"; - case "13": return "Electronic Arts"; - case "18": return "Hudson Soft"; - case "19": return "b-ai"; - case "20": return "kss"; - case "22": return "pow"; - case "24": return "PCM Complete"; - case "25": return "san-x"; - case "28": return "Kemco Japan"; - case "29": return "seta"; - case "30": return "Viacom"; - case "31": return "Nintendo"; - case "32": return "Bandai"; - case "33": return "Ocean / Acclaim"; - case "34": return "Konami"; - case "35": return "Hector"; - case "37": return "Taito"; - case "38": return "Hudson"; - case "39": return "Banpresto"; - case "41": return "Ubi Soft"; - case "42": return "Atlus"; - case "44": return "Malibu"; - case "46": return "angel"; - case "47": return "Bullet -Proof"; - case "49": return "irem"; - case "50": return "Absolute"; - case "51": return "Acclaim"; - case "52": return "Activision"; - case "53": return "American sammy"; - case "54": return "Konami"; - case "55": return "Hi tech entertainment"; - case "56": return "LJN"; - case "57": return "Matchbox"; - case "58": return "Mattel"; - case "59": return "Milton Bradley"; - case "60": return "Titus"; - case "61": return "Virgin"; - case "64": return "LucasArts"; - case "67": return "Ocean"; - case "69": return "Electronic Arts"; - case "70": return "Infogrames"; - case "71": return "Interplay"; - case "72": return "Brøderbund"; - case "73": return "sculptured"; - case "75": return "sci"; - case "78": return "THQ"; - case "79": return "Accolade"; - case "80": return "misawa"; - case "83": return "lozc"; - case "86": return "tokuma shoten i"; - case "87": return "tsukuda ori"; - case "91": return "Chunsoft"; - case "92": return "Video system"; - case "93": return "Ocean / Acclaim"; - case "95": return "Varie"; - case "96": return "Yonezawa / s'pal"; - case "97": return "Kaneko"; - case "99": return "Pack in soft"; - case "A4": return "Konami"; - default: return "Unknown"; - } + return licenseeNew switch + { + "00" => "none", + "01" => "Nintendo R&D1", + "08" => "Capcom", + "13" => "Electronic Arts", + "18" => "Hudson Soft", + "19" => "b-ai", + "20" => "kss", + "22" => "pow", + "24" => "PCM Complete", + "25" => "san-x", + "28" => "Kemco Japan", + "29" => "seta", + "30" => "Viacom", + "31" => "Nintendo", + "32" => "Bandai", + "33" => "Ocean / Acclaim", + "34" => "Konami", + "35" => "Hector", + "37" => "Taito", + "38" => "Hudson", + "39" => "Banpresto", + "41" => "Ubi Soft", + "42" => "Atlus", + "44" => "Malibu", + "46" => "angel", + "47" => "Bullet -Proof", + "49" => "irem", + "50" => "Absolute", + "51" => "Acclaim", + "52" => "Activision", + "53" => "American sammy", + "54" => "Konami", + "55" => "Hi tech entertainment", + "56" => "LJN", + "57" => "Matchbox", + "58" => "Mattel", + "59" => "Milton Bradley", + "60" => "Titus", + "61" => "Virgin", + "64" => "LucasArts", + "67" => "Ocean", + "69" => "Electronic Arts", + "70" => "Infogrames", + "71" => "Interplay", + "72" => "Brøderbund", + "73" => "sculptured", + "75" => "sci", + "78" => "THQ", + "79" => "Accolade", + "80" => "misawa", + "83" => "lozc", + "86" => "tokuma shoten i", + "87" => "tsukuda ori", + "91" => "Chunsoft", + "92" => "Video system", + "93" => "Ocean / Acclaim", + "95" => "Varie", + "96" => "Yonezawa / s'pal", + "97" => "Kaneko", + "99" => "Pack in soft", + "A4" => "Konami", + _ => "Unknown" + }; } - switch(headerLicensee) - { - case 0x00: return "none"; - case 0x01: return "nintendo"; - case 0x08: return "capcom"; - case 0x09: return "hot-b"; - case 0x0A: return "jaleco"; - case 0x0B: return "coconuts"; - case 0x0C: return "elite systems"; - case 0x13: return "electronic arts"; - case 0x18: return "hudsonsoft"; - case 0x19: return "itc entertainment"; - case 0x1A: return "yanoman"; - case 0x1D: return "clary"; - case 0x1F: return "virgin"; - case 0x20: return "KSS"; - case 0x24: return "pcm complete"; - case 0x25: return "san-x"; - case 0x28: return "kotobuki systems"; - case 0x29: return "seta"; - case 0x30: return "infogrames"; - case 0x31: return "nintendo"; - case 0x32: return "bandai"; - case 0x33: return "'''GBC - see above'''"; - case 0x34: return "konami"; - case 0x35: return "hector"; - case 0x38: return "Capcom"; - case 0x39: return "Banpresto"; - case 0x3C: return "*entertainment i"; - case 0x3E: return "gremlin"; - case 0x41: return "Ubisoft"; - case 0x42: return "Atlus"; - case 0x44: return "Malibu"; - case 0x46: return "angel"; - case 0x47: return "spectrum holoby"; - case 0x49: return "irem"; - case 0x4A: return "virgin"; - case 0x4D: return "malibu"; - case 0x4F: return "u.s. gold"; - case 0x50: return "absolute"; - case 0x51: return "acclaim"; - case 0x52: return "activision"; - case 0x53: return "american sammy"; - case 0x54: return "gametek"; - case 0x55: return "park place"; - case 0x56: return "ljn"; - case 0x57: return "matchbox"; - case 0x59: return "milton bradley"; - case 0x5A: return "mindscape"; - case 0x5B: return "romstar"; - case 0x5C: return "naxat soft"; - case 0x5D: return "tradewest"; - case 0x60: return "titus"; - case 0x61: return "virgin"; - case 0x67: return "ocean"; - case 0x69: return "electronic arts"; - case 0x6E: return "elite systems"; - case 0x6F: return "electro brain"; - case 0x70: return "Infogrammes"; - case 0x71: return "Interplay"; - case 0x72: return "broderbund"; - case 0x73: return "sculptered soft"; - case 0x75: return "the sales curve"; - case 0x78: return "t*hq"; - case 0x79: return "accolade"; - case 0x7A: return "triffix entertainment"; - case 0x7C: return "microprose"; - case 0x7F: return "kemco"; - case 0x80: return "misawa entertainment"; - case 0x83: return "lozc"; - case 0x86: return "tokuma shoten intermedia"; - case 0x8B: return "bullet-proof software"; - case 0x8C: return "vic tokai"; - case 0x8E: return "ape"; - case 0x8F: return "i'max"; - case 0x91: return "chun soft"; - case 0x92: return "video system"; - case 0x93: return "tsuburava"; - case 0x95: return "varie"; - case 0x96: return "yonezawa/s'pal"; - case 0x97: return "kaneko"; - case 0x99: return "arc"; - case 0x9A: return "nihon bussan"; - case 0x9B: return "Tecmo"; - case 0x9C: return "imagineer"; - case 0x9D: return "Banpresto"; - case 0x9F: return "nova"; - case 0xA1: return "Hori electric"; - case 0xA2: return "Bandai"; - case 0xA4: return "Konami"; - case 0xA6: return "kawada"; - case 0xA7: return "takara"; - case 0xA9: return "technos japan"; - case 0xAA: return "broderbund"; - case 0xAC: return "Toei animation"; - case 0xAD: return "toho"; - case 0xAF: return "Namco"; - case 0xB0: return "Acclaim"; - case 0xB1: return "ascii or nexoft"; - case 0xB2: return "Bandai"; - case 0xB4: return "Enix"; - case 0xB6: return "HAL"; - case 0xB7: return "SNK"; - case 0xB9: return "pony canyon"; - case 0xBA: return "*culture brain o"; - case 0xBB: return "Sunsoft"; - case 0xBD: return "Sony imagesoft"; - case 0xBF: return "sammy"; - case 0xC0: return "Taito"; - case 0xC2: return "Kemco"; - case 0xC3: return "Squaresoft"; - case 0xC4: return "tokuma shoten intermedia"; - case 0xC5: return "data east"; - case 0xC6: return "tonkin house"; - case 0xC8: return "koei"; - case 0xC9: return "ufl"; - case 0xCA: return "ultra"; - case 0xCB: return "vap"; - case 0xCC: return "use"; - case 0xCD: return "meldac"; - case 0xCE: return "*pony canyon or"; - case 0xCF: return "angel"; - case 0xD0: return "Taito"; - case 0xD1: return "sofel"; - case 0xD2: return "quest"; - case 0xD3: return "sigma enterprises"; - case 0xD4: return "ask kodansha"; - case 0xD6: return "naxat soft"; - case 0xD7: return "copya systems"; - case 0xD9: return "Banpresto"; - case 0xDA: return "tomy"; - case 0xDB: return "ljn"; - case 0xDD: return "ncs"; - case 0xDE: return "human"; - case 0xDF: return "altron"; - case 0xE0: return "jaleco"; - case 0xE1: return "towachiki"; - case 0xE2: return "uutaka"; - case 0xE3: return "varie"; - case 0xE5: return "epoch"; - case 0xE7: return "athena"; - case 0xE8: return "asmik"; - case 0xE9: return "natsume"; - case 0xEA: return "king records"; - case 0xEB: return "atlus"; - case 0xEC: return "Epic/Sony records"; - case 0xEE: return "igs"; - case 0xF0: return "a wave"; - case 0xF3: return "extreme entertainment"; - case 0xFF: return "ljn"; - default: return "Unknown"; - } + return headerLicensee switch + { + 0x00 => "none", + 0x01 => "nintendo", + 0x08 => "capcom", + 0x09 => "hot-b", + 0x0A => "jaleco", + 0x0B => "coconuts", + 0x0C => "elite systems", + 0x13 => "electronic arts", + 0x18 => "hudsonsoft", + 0x19 => "itc entertainment", + 0x1A => "yanoman", + 0x1D => "clary", + 0x1F => "virgin", + 0x20 => "KSS", + 0x24 => "pcm complete", + 0x25 => "san-x", + 0x28 => "kotobuki systems", + 0x29 => "seta", + 0x30 => "infogrames", + 0x31 => "nintendo", + 0x32 => "bandai", + 0x33 => "'''GBC - see above'''", + 0x34 => "konami", + 0x35 => "hector", + 0x38 => "Capcom", + 0x39 => "Banpresto", + 0x3C => "*entertainment i", + 0x3E => "gremlin", + 0x41 => "Ubisoft", + 0x42 => "Atlus", + 0x44 => "Malibu", + 0x46 => "angel", + 0x47 => "spectrum holoby", + 0x49 => "irem", + 0x4A => "virgin", + 0x4D => "malibu", + 0x4F => "u.s. gold", + 0x50 => "absolute", + 0x51 => "acclaim", + 0x52 => "activision", + 0x53 => "american sammy", + 0x54 => "gametek", + 0x55 => "park place", + 0x56 => "ljn", + 0x57 => "matchbox", + 0x59 => "milton bradley", + 0x5A => "mindscape", + 0x5B => "romstar", + 0x5C => "naxat soft", + 0x5D => "tradewest", + 0x60 => "titus", + 0x61 => "virgin", + 0x67 => "ocean", + 0x69 => "electronic arts", + 0x6E => "elite systems", + 0x6F => "electro brain", + 0x70 => "Infogrammes", + 0x71 => "Interplay", + 0x72 => "broderbund", + 0x73 => "sculptered soft", + 0x75 => "the sales curve", + 0x78 => "t*hq", + 0x79 => "accolade", + 0x7A => "triffix entertainment", + 0x7C => "microprose", + 0x7F => "kemco", + 0x80 => "misawa entertainment", + 0x83 => "lozc", + 0x86 => "tokuma shoten intermedia", + 0x8B => "bullet-proof software", + 0x8C => "vic tokai", + 0x8E => "ape", + 0x8F => "i'max", + 0x91 => "chun soft", + 0x92 => "video system", + 0x93 => "tsuburava", + 0x95 => "varie", + 0x96 => "yonezawa/s'pal", + 0x97 => "kaneko", + 0x99 => "arc", + 0x9A => "nihon bussan", + 0x9B => "Tecmo", + 0x9C => "imagineer", + 0x9D => "Banpresto", + 0x9F => "nova", + 0xA1 => "Hori electric", + 0xA2 => "Bandai", + 0xA4 => "Konami", + 0xA6 => "kawada", + 0xA7 => "takara", + 0xA9 => "technos japan", + 0xAA => "broderbund", + 0xAC => "Toei animation", + 0xAD => "toho", + 0xAF => "Namco", + 0xB0 => "Acclaim", + 0xB1 => "ascii or nexoft", + 0xB2 => "Bandai", + 0xB4 => "Enix", + 0xB6 => "HAL", + 0xB7 => "SNK", + 0xB9 => "pony canyon", + 0xBA => "*culture brain o", + 0xBB => "Sunsoft", + 0xBD => "Sony imagesoft", + 0xBF => "sammy", + 0xC0 => "Taito", + 0xC2 => "Kemco", + 0xC3 => "Squaresoft", + 0xC4 => "tokuma shoten intermedia", + 0xC5 => "data east", + 0xC6 => "tonkin house", + 0xC8 => "koei", + 0xC9 => "ufl", + 0xCA => "ultra", + 0xCB => "vap", + 0xCC => "use", + 0xCD => "meldac", + 0xCE => "*pony canyon or", + 0xCF => "angel", + 0xD0 => "Taito", + 0xD1 => "sofel", + 0xD2 => "quest", + 0xD3 => "sigma enterprises", + 0xD4 => "ask kodansha", + 0xD6 => "naxat soft", + 0xD7 => "copya systems", + 0xD9 => "Banpresto", + 0xDA => "tomy", + 0xDB => "ljn", + 0xDD => "ncs", + 0xDE => "human", + 0xDF => "altron", + 0xE0 => "jaleco", + 0xE1 => "towachiki", + 0xE2 => "uutaka", + 0xE3 => "varie", + 0xE5 => "epoch", + 0xE7 => "athena", + 0xE8 => "asmik", + 0xE9 => "natsume", + 0xEA => "king records", + 0xEB => "atlus", + 0xEC => "Epic/Sony records", + 0xEE => "igs", + 0xF0 => "a wave", + 0xF3 => "extreme entertainment", + 0xFF => "ljn", + _ => "Unknown" + }; } static uint DecodeRomSize(byte headerRomType) => headerRomType switch diff --git a/Aaru.Images/CDRDAO/Read.cs b/Aaru.Images/CDRDAO/Read.cs index 43e5d0f3e..67f8a731a 100644 --- a/Aaru.Images/CDRDAO/Read.cs +++ b/Aaru.Images/CDRDAO/Read.cs @@ -195,29 +195,14 @@ public sealed partial class Cdrdao _discimage.Disktypestr = matchDiskType.Groups["type"].Value; - switch(matchDiskType.Groups["type"].Value) - { - case "CD_DA": - _discimage.Disktype = MediaType.CDDA; - - break; - case "CD_ROM": - _discimage.Disktype = MediaType.CDROM; - - break; - case "CD_ROM_XA": - _discimage.Disktype = MediaType.CDROMXA; - - break; - case "CD_I": - _discimage.Disktype = MediaType.CDI; - - break; - default: - _discimage.Disktype = MediaType.CD; - - break; - } + _discimage.Disktype = matchDiskType.Groups["type"].Value switch + { + "CD_DA" => MediaType.CDDA, + "CD_ROM" => MediaType.CDROM, + "CD_ROM_XA" => MediaType.CDROMXA, + "CD_I" => MediaType.CDI, + _ => MediaType.CD + }; } else if(matchMcn.Success) { diff --git a/Aaru.Images/CPCDSK/Helpers.cs b/Aaru.Images/CPCDSK/Helpers.cs index f8fd4e0ba..09ac9235d 100644 --- a/Aaru.Images/CPCDSK/Helpers.cs +++ b/Aaru.Images/CPCDSK/Helpers.cs @@ -36,19 +36,16 @@ using Aaru.Decoders.Floppy; public sealed partial class Cpcdsk { - static int SizeCodeToBytes(IBMSectorSizeCode code) - { - switch(code) - { - case IBMSectorSizeCode.EighthKilo: return 128; - case IBMSectorSizeCode.QuarterKilo: return 256; - case IBMSectorSizeCode.HalfKilo: return 512; - case IBMSectorSizeCode.Kilo: return 1024; - case IBMSectorSizeCode.TwiceKilo: return 2048; - case IBMSectorSizeCode.FriceKilo: return 4096; - case IBMSectorSizeCode.TwiceFriceKilo: return 8192; - case IBMSectorSizeCode.FricelyFriceKilo: return 16384; - default: return 0; - } - } + static int SizeCodeToBytes(IBMSectorSizeCode code) => code switch + { + IBMSectorSizeCode.EighthKilo => 128, + IBMSectorSizeCode.QuarterKilo => 256, + IBMSectorSizeCode.HalfKilo => 512, + IBMSectorSizeCode.Kilo => 1024, + IBMSectorSizeCode.TwiceKilo => 2048, + IBMSectorSizeCode.FriceKilo => 4096, + IBMSectorSizeCode.TwiceFriceKilo => 8192, + IBMSectorSizeCode.FricelyFriceKilo => 16384, + _ => 0 + }; } \ No newline at end of file diff --git a/Aaru.Images/D88/Read.cs b/Aaru.Images/D88/Read.cs index 8b5be993f..853183e4e 100644 --- a/Aaru.Images/D88/Read.cs +++ b/Aaru.Images/D88/Read.cs @@ -180,29 +180,15 @@ public sealed partial class D88 bps == IBMSectorSizeCode.EighthKilo) _imageInfo.MediaType = MediaType.NEC_8_SD; else if(bps == IBMSectorSizeCode.QuarterKilo) - switch(trkCounter) - { - case 35 when spt == 16: - _imageInfo.MediaType = MediaType.MetaFloppy_Mod_I; - - break; - case 77 when spt == 16: - _imageInfo.MediaType = MediaType.MetaFloppy_Mod_II; - - break; - case 80 when spt == 16: - _imageInfo.MediaType = MediaType.NEC_525_SS; - - break; - case 154 when spt == 26: - _imageInfo.MediaType = MediaType.NEC_8_DD; - - break; - case 160 when spt == 16: - _imageInfo.MediaType = MediaType.NEC_525_DS; - - break; - } + _imageInfo.MediaType = trkCounter switch + { + 35 when spt == 16 => MediaType.MetaFloppy_Mod_I, + 77 when spt == 16 => MediaType.MetaFloppy_Mod_II, + 80 when spt == 16 => MediaType.NEC_525_SS, + 154 when spt == 26 => MediaType.NEC_8_DD, + 160 when spt == 16 => MediaType.NEC_525_DS, + _ => _imageInfo.MediaType + }; else if(trkCounter == 154 && spt == 8 && bps == IBMSectorSizeCode.Kilo) @@ -212,57 +198,36 @@ public sealed partial class D88 { case 40: { - switch(spt) - { - case 8: - _imageInfo.MediaType = MediaType.DOS_525_SS_DD_8; - - break; - case 9: - _imageInfo.MediaType = MediaType.DOS_525_SS_DD_9; - - break; - } + _imageInfo.MediaType = spt switch + { + 8 => MediaType.DOS_525_SS_DD_8, + 9 => MediaType.DOS_525_SS_DD_9, + _ => _imageInfo.MediaType + }; } break; case 80: { - switch(spt) - { - case 8: - _imageInfo.MediaType = MediaType.DOS_525_DS_DD_8; - - break; - case 9: - _imageInfo.MediaType = MediaType.DOS_525_DS_DD_9; - - break; - } + _imageInfo.MediaType = spt switch + { + 8 => MediaType.DOS_525_DS_DD_8, + 9 => MediaType.DOS_525_DS_DD_9, + _ => _imageInfo.MediaType + }; } break; case 160: { - switch(spt) - { - case 15: - _imageInfo.MediaType = MediaType.NEC_35_HD_15; - - break; - case 9: - _imageInfo.MediaType = MediaType.DOS_35_DS_DD_9; - - break; - case 18: - _imageInfo.MediaType = MediaType.DOS_35_HD; - - break; - case 36: - _imageInfo.MediaType = MediaType.DOS_35_ED; - - break; - } + _imageInfo.MediaType = spt switch + { + 15 => MediaType.NEC_35_HD_15, + 9 => MediaType.DOS_35_DS_DD_9, + 18 => MediaType.DOS_35_HD, + 36 => MediaType.DOS_35_ED, + _ => _imageInfo.MediaType + }; } break; diff --git a/Aaru.Images/DART/Read.cs b/Aaru.Images/DART/Read.cs index c2437fd8c..637a45435 100644 --- a/Aaru.Images/DART/Read.cs +++ b/Aaru.Images/DART/Read.cs @@ -199,21 +199,13 @@ public sealed partial class Dart if(version.MinorVersion % 10 > 0) release = $".{version.MinorVersion % 10}"; - switch(version.DevStage) - { - case Version.DevelopmentStage.Alpha: - dev = "a"; - - break; - case Version.DevelopmentStage.Beta: - dev = "b"; - - break; - case Version.DevelopmentStage.PreAlpha: - dev = "d"; - - break; - } + dev = version.DevStage switch + { + Version.DevelopmentStage.Alpha => "a", + Version.DevelopmentStage.Beta => "b", + Version.DevelopmentStage.PreAlpha => "d", + _ => dev + }; if(dev == null && version.PreReleaseVersion > 0) diff --git a/Aaru.Images/DiscJuggler/Helpers.cs b/Aaru.Images/DiscJuggler/Helpers.cs index 826bae33f..97e8db618 100644 --- a/Aaru.Images/DiscJuggler/Helpers.cs +++ b/Aaru.Images/DiscJuggler/Helpers.cs @@ -36,13 +36,10 @@ using Aaru.CommonTypes; public sealed partial class DiscJuggler { - static MediaType DecodeCdiMediumType(ushort type) - { - switch(type) - { - case 56: return MediaType.DVDROM; - case 152: return MediaType.CDROM; - default: return MediaType.Unknown; - } - } + static MediaType DecodeCdiMediumType(ushort type) => type switch + { + 56 => MediaType.DVDROM, + 152 => MediaType.CDROM, + _ => MediaType.Unknown + }; } \ No newline at end of file diff --git a/Aaru.Images/DiskCopy42/Read.cs b/Aaru.Images/DiskCopy42/Read.cs index 52162b635..7849fcbfa 100644 --- a/Aaru.Images/DiskCopy42/Read.cs +++ b/Aaru.Images/DiskCopy42/Read.cs @@ -165,63 +165,25 @@ public sealed partial class DiskCopy42 imageInfo.LastModificationTime = imageFilter.LastWriteTime; imageInfo.MediaTitle = header.DiskName; - switch(header.Format) - { - case kSonyFormat400K: - imageInfo.MediaType = imageInfo.Sectors == 1600 ? MediaType.AppleSonyDS : MediaType.AppleSonySS; - - break; - case kSonyFormat800K: - imageInfo.MediaType = MediaType.AppleSonyDS; - - break; - case kSonyFormat720K: - imageInfo.MediaType = MediaType.DOS_35_DS_DD_9; - - break; - case kSonyFormat1440K: - imageInfo.MediaType = MediaType.DOS_35_HD; - - break; - case kSonyFormat1680K: - imageInfo.MediaType = MediaType.DMF; - - break; - case kSigmaFormatTwiggy: - imageInfo.MediaType = MediaType.AppleFileWare; - - break; - case kNotStandardFormat: - switch(imageInfo.Sectors) - { - case 9728: - imageInfo.MediaType = MediaType.AppleProfile; - - break; - case 19456: - imageInfo.MediaType = MediaType.AppleProfile; - - break; - case 38912: - imageInfo.MediaType = MediaType.AppleWidget; - - break; - case 39040: - imageInfo.MediaType = MediaType.AppleHD20; - - break; - default: - imageInfo.MediaType = MediaType.Unknown; - - break; - } - - break; - default: - imageInfo.MediaType = MediaType.Unknown; - - break; - } + imageInfo.MediaType = header.Format switch + { + kSonyFormat400K => imageInfo.Sectors == 1600 ? MediaType.AppleSonyDS + : MediaType.AppleSonySS, + kSonyFormat800K => MediaType.AppleSonyDS, + kSonyFormat720K => MediaType.DOS_35_DS_DD_9, + kSonyFormat1440K => MediaType.DOS_35_HD, + kSonyFormat1680K => MediaType.DMF, + kSigmaFormatTwiggy => MediaType.AppleFileWare, + kNotStandardFormat => imageInfo.Sectors switch + { + 9728 => MediaType.AppleProfile, + 19456 => MediaType.AppleProfile, + 38912 => MediaType.AppleWidget, + 39040 => MediaType.AppleHD20, + _ => MediaType.Unknown + }, + _ => MediaType.Unknown + }; if(imageInfo.MediaType == MediaType.AppleFileWare) { @@ -264,41 +226,18 @@ public sealed partial class DiskCopy42 for(var i = 0; i < 46; i++) { - switch(i) - { - case >= 0 and <= 3: - sectorsToCopy = 22; - - break; - case >= 4 and <= 10: - sectorsToCopy = 21; - - break; - case >= 11 and <= 16: - sectorsToCopy = 20; - - break; - case >= 17 and <= 22: - sectorsToCopy = 19; - - break; - case >= 23 and <= 28: - sectorsToCopy = 18; - - break; - case >= 29 and <= 34: - sectorsToCopy = 17; - - break; - case >= 35 and <= 41: - sectorsToCopy = 16; - - break; - case >= 42 and <= 45: - sectorsToCopy = 15; - - break; - } + sectorsToCopy = i switch + { + >= 0 and <= 3 => 22, + >= 4 and <= 10 => 21, + >= 11 and <= 16 => 20, + >= 17 and <= 22 => 19, + >= 23 and <= 28 => 18, + >= 29 and <= 34 => 17, + >= 35 and <= 41 => 16, + >= 42 and <= 45 => 15, + _ => sectorsToCopy + }; Array.Copy(data, header.DataSize / 2 + copiedSectors * 512, twiggyCache, twiggyCache.Length - copiedSectors * 512 - sectorsToCopy * 512, sectorsToCopy * 512); @@ -338,21 +277,13 @@ public sealed partial class DiskCopy42 if(version.MinorVersion % 10 > 0) release = $".{version.MinorVersion % 10}"; - switch(version.DevStage) - { - case Version.DevelopmentStage.Alpha: - dev = "a"; - - break; - case Version.DevelopmentStage.Beta: - dev = "b"; - - break; - case Version.DevelopmentStage.PreAlpha: - dev = "d"; - - break; - } + dev = version.DevStage switch + { + Version.DevelopmentStage.Alpha => "a", + Version.DevelopmentStage.Beta => "b", + Version.DevelopmentStage.PreAlpha => "d", + _ => dev + }; if(dev == null && version.PreReleaseVersion > 0) @@ -429,17 +360,12 @@ public sealed partial class DiskCopy42 break; case MediaType.AppleProfile: - switch(imageInfo.Sectors) - { - case 9728: - imageInfo.Cylinders = 152; - - break; - case 19456: - imageInfo.Cylinders = 304; - - break; - } + imageInfo.Cylinders = imageInfo.Sectors switch + { + 9728 => 152, + 19456 => 304, + _ => imageInfo.Cylinders + }; imageInfo.Heads = 4; imageInfo.SectorsPerTrack = 16; diff --git a/Aaru.Images/NDIF/Read.cs b/Aaru.Images/NDIF/Read.cs index 1e7ffed44..1e65b0366 100644 --- a/Aaru.Images/NDIF/Read.cs +++ b/Aaru.Images/NDIF/Read.cs @@ -189,29 +189,14 @@ public sealed partial class Ndif return ErrorNumber.NotImplemented; } - switch(_imageInfo.Sectors) - { - case 1440: - _imageInfo.MediaType = MediaType.DOS_35_DS_DD_9; - - break; - case 1600: - _imageInfo.MediaType = MediaType.AppleSonyDS; - - break; - case 2880: - _imageInfo.MediaType = MediaType.DOS_35_HD; - - break; - case 3360: - _imageInfo.MediaType = MediaType.DMF; - - break; - default: - _imageInfo.MediaType = MediaType.GENERIC_HDD; - - break; - } + _imageInfo.MediaType = _imageInfo.Sectors switch + { + 1440 => MediaType.DOS_35_DS_DD_9, + 1600 => MediaType.AppleSonyDS, + 2880 => MediaType.DOS_35_HD, + 3360 => MediaType.DMF, + _ => MediaType.GENERIC_HDD + }; if(rsrcFork.ContainsKey(0x76657273)) { @@ -233,21 +218,13 @@ public sealed partial class Ndif if(version.MinorVersion % 10 > 0) release = $".{version.MinorVersion % 10}"; - switch(version.DevStage) - { - case Version.DevelopmentStage.Alpha: - dev = "a"; - - break; - case Version.DevelopmentStage.Beta: - dev = "b"; - - break; - case Version.DevelopmentStage.PreAlpha: - dev = "d"; - - break; - } + dev = version.DevStage switch + { + Version.DevelopmentStage.Alpha => "a", + Version.DevelopmentStage.Beta => "b", + Version.DevelopmentStage.PreAlpha => "d", + _ => dev + }; if(dev == null && version.PreReleaseVersion > 0) @@ -260,17 +237,12 @@ public sealed partial class Ndif _imageInfo.Application = version.VersionString; _imageInfo.Comments = version.VersionMessage; - switch(version.MajorVersion) - { - case 3: - _imageInfo.Application = "ShrinkWrap™"; - - break; - case 6: - _imageInfo.Application = "DiskCopy"; - - break; - } + _imageInfo.Application = version.MajorVersion switch + { + 3 => "ShrinkWrap™", + 6 => "DiskCopy", + _ => _imageInfo.Application + }; } } diff --git a/Aaru.Images/Nero/Read.cs b/Aaru.Images/Nero/Read.cs index 697f208fd..dda837ac3 100644 --- a/Aaru.Images/Nero/Read.cs +++ b/Aaru.Images/Nero/Read.cs @@ -845,21 +845,13 @@ public sealed partial class Nero _imageStream.Read(tmpBuffer, 0, 2); _toc.Unknown = BigEndianBitConverter.ToUInt16(tmpBuffer, 0); - switch(tmpBuffer[0]) - { - case 0: - _imageInfo.MediaType = CommonTypes.MediaType.CDROM; - - break; - case 0x10: - _imageInfo.MediaType = CommonTypes.MediaType.CDI; - - break; - case 0x20: - _imageInfo.MediaType = CommonTypes.MediaType.CDROMXA; - - break; - } + _imageInfo.MediaType = tmpBuffer[0] switch + { + 0 => CommonTypes.MediaType.CDROM, + 0x10 => CommonTypes.MediaType.CDI, + 0x20 => CommonTypes.MediaType.CDROMXA, + _ => _imageInfo.MediaType + }; AaruConsole.DebugWriteLine("Nero plugin", "\tneroTOC.Unknown = 0x{0:X4} ({0})", _toc.Unknown); diff --git a/Aaru.Images/UDIF/Read.cs b/Aaru.Images/UDIF/Read.cs index 9602dded9..671dd1710 100644 --- a/Aaru.Images/UDIF/Read.cs +++ b/Aaru.Images/UDIF/Read.cs @@ -296,21 +296,13 @@ public sealed partial class Udif if(version.MinorVersion % 10 > 0) release = $".{version.MinorVersion % 10}"; - switch(version.DevStage) - { - case Version.DevelopmentStage.Alpha: - dev = "a"; - - break; - case Version.DevelopmentStage.Beta: - dev = "b"; - - break; - case Version.DevelopmentStage.PreAlpha: - dev = "d"; - - break; - } + dev = version.DevStage switch + { + Version.DevelopmentStage.Alpha => "a", + Version.DevelopmentStage.Beta => "b", + Version.DevelopmentStage.PreAlpha => "d", + _ => dev + }; if(dev == null && version.PreReleaseVersion > 0) @@ -323,17 +315,12 @@ public sealed partial class Udif _imageInfo.Application = version.VersionString; _imageInfo.Comments = version.VersionMessage; - switch(version.MajorVersion) - { - case 3: - _imageInfo.Application = "ShrinkWrap™"; - - break; - case 6: - _imageInfo.Application = "DiskCopy"; - - break; - } + _imageInfo.Application = version.MajorVersion switch + { + 3 => "ShrinkWrap™", + 6 => "DiskCopy", + _ => _imageInfo.Application + }; } else _imageInfo.Application = "DiskCopy"; diff --git a/Aaru.Images/VHD/Properties.cs b/Aaru.Images/VHD/Properties.cs index 75a35de16..093a2b815 100644 --- a/Aaru.Images/VHD/Properties.cs +++ b/Aaru.Images/VHD/Properties.cs @@ -52,19 +52,13 @@ public sealed partial class Vhd public string Author => "Natalia Portillo"; /// - public string Format - { - get - { - switch(_thisFooter.DiskType) - { - case TYPE_FIXED: return "Virtual PC fixed size disk image"; - case TYPE_DYNAMIC: return "Virtual PC dynamic size disk image"; - case TYPE_DIFFERENCING: return "Virtual PC differencing disk image"; - default: return "Virtual PC disk image"; - } - } - } + public string Format => _thisFooter.DiskType switch + { + TYPE_FIXED => "Virtual PC fixed size disk image", + TYPE_DYNAMIC => "Virtual PC dynamic size disk image", + TYPE_DIFFERENCING => "Virtual PC differencing disk image", + _ => "Virtual PC disk image" + }; /// public List DumpHardware => null; diff --git a/Aaru.Images/VHD/Read.cs b/Aaru.Images/VHD/Read.cs index d5ca1fd93..9e4b424c4 100644 --- a/Aaru.Images/VHD/Read.cs +++ b/Aaru.Images/VHD/Read.cs @@ -178,8 +178,8 @@ public sealed partial class Vhd _imageInfo.Version = "1.0"; else { - AaruConsole. - ErrorWriteLine($"(VirtualPC plugin): Unknown image type {_thisFooter.DiskType} found. Please submit a bug with an example image."); + AaruConsole.ErrorWriteLine($"(VirtualPC plugin): Unknown image type {_thisFooter.DiskType + } found. Please submit a bug with an example image."); return ErrorNumber.InvalidArgument; } @@ -198,8 +198,8 @@ public sealed partial class Vhd case CREATOR_VIRTUAL_BOX: { - _imageInfo.ApplicationVersion = - $"{(_thisFooter.CreatorVersion & 0xFFFF0000) >> 16}.{_thisFooter.CreatorVersion & 0x0000FFFF:D2}"; + _imageInfo.ApplicationVersion = $"{(_thisFooter.CreatorVersion & 0xFFFF0000) >> 16}.{ + _thisFooter.CreatorVersion & 0x0000FFFF:D2}"; switch(_thisFooter.CreatorHostOs) { @@ -214,8 +214,8 @@ public sealed partial class Vhd break; default: - _imageInfo.Application = - $"VirtualBox for unknown OS \"{Encoding.ASCII.GetString(BigEndianBitConverter.GetBytes(_thisFooter.CreatorHostOs))}\""; + _imageInfo.Application = $"VirtualBox for unknown OS \"{ + Encoding.ASCII.GetString(BigEndianBitConverter.GetBytes(_thisFooter.CreatorHostOs))}\""; break; } @@ -227,17 +227,11 @@ public sealed partial class Vhd { _imageInfo.Application = "Microsoft Virtual Server"; - switch(_thisFooter.CreatorVersion) - { - case VERSION_VIRTUAL_SERVER2004: - _imageInfo.ApplicationVersion = "2004"; - - break; - default: - _imageInfo.ApplicationVersion = $"Unknown version 0x{_thisFooter.CreatorVersion:X8}"; - - break; - } + _imageInfo.ApplicationVersion = _thisFooter.CreatorVersion switch + { + VERSION_VIRTUAL_SERVER2004 => "2004", + _ => $"Unknown version 0x{_thisFooter.CreatorVersion:X8}" + }; break; } @@ -288,8 +282,8 @@ public sealed partial class Vhd break; default: - _imageInfo.Application = - $"Virtual PC for unknown OS \"{Encoding.ASCII.GetString(BigEndianBitConverter.GetBytes(_thisFooter.CreatorHostOs))}\""; + _imageInfo.Application = $"Virtual PC for unknown OS \"{ + Encoding.ASCII.GetString(BigEndianBitConverter.GetBytes(_thisFooter.CreatorHostOs))}\""; _imageInfo.ApplicationVersion = $"Unknown version 0x{_thisFooter.CreatorVersion:X8}"; @@ -303,8 +297,9 @@ public sealed partial class Vhd { _imageInfo.Application = "DiscImageChef"; - _imageInfo.ApplicationVersion = - $"{(_thisFooter.CreatorVersion & 0xFF000000) >> 24}.{(_thisFooter.CreatorVersion & 0xFF0000) >> 16}.{(_thisFooter.CreatorVersion & 0xFF00) >> 8}.{_thisFooter.CreatorVersion & 0xFF}"; + _imageInfo.ApplicationVersion = $"{(_thisFooter.CreatorVersion & 0xFF000000) >> 24}.{ + (_thisFooter.CreatorVersion & 0xFF0000) >> 16}.{(_thisFooter.CreatorVersion & 0xFF00) >> 8}.{ + _thisFooter.CreatorVersion & 0xFF}"; } break; @@ -313,15 +308,16 @@ public sealed partial class Vhd { _imageInfo.Application = "Aaru"; - _imageInfo.ApplicationVersion = - $"{(_thisFooter.CreatorVersion & 0xFF000000) >> 24}.{(_thisFooter.CreatorVersion & 0xFF0000) >> 16}.{(_thisFooter.CreatorVersion & 0xFF00) >> 8}.{_thisFooter.CreatorVersion & 0xFF}"; + _imageInfo.ApplicationVersion = $"{(_thisFooter.CreatorVersion & 0xFF000000) >> 24}.{ + (_thisFooter.CreatorVersion & 0xFF0000) >> 16}.{(_thisFooter.CreatorVersion & 0xFF00) >> 8}.{ + _thisFooter.CreatorVersion & 0xFF}"; } break; default: { - _imageInfo.Application = - $"Unknown application \"{Encoding.ASCII.GetString(BigEndianBitConverter.GetBytes(_thisFooter.CreatorHostOs))}\""; + _imageInfo.Application = $"Unknown application \"{ + Encoding.ASCII.GetString(BigEndianBitConverter.GetBytes(_thisFooter.CreatorHostOs))}\""; _imageInfo.ApplicationVersion = $"Unknown version 0x{_thisFooter.CreatorVersion:X8}"; @@ -460,8 +456,8 @@ public sealed partial class Vhd if(_thisDynamic.HeaderVersion != VERSION1) { - AaruConsole. - ErrorWriteLine($"(VirtualPC plugin): Unknown image type {_thisFooter.DiskType} found. Please submit a bug with an example image."); + AaruConsole.ErrorWriteLine($"(VirtualPC plugin): Unknown image type {_thisFooter.DiskType + } found. Please submit a bug with an example image."); return ErrorNumber.InvalidArgument; } @@ -643,8 +639,8 @@ public sealed partial class Vhd if(parentError != ErrorNumber.NoError) { - AaruConsole. - ErrorWriteLine($"(VirtualPC plugin): Error {parentError} opening parent disk image"); + AaruConsole.ErrorWriteLine($"(VirtualPC plugin): Error {parentError + } opening parent disk image"); return parentError; } @@ -672,8 +668,8 @@ public sealed partial class Vhd return ErrorNumber.NotImplemented; default: - AaruConsole. - ErrorWriteLine($"(VirtualPC plugin): Unknown image type {_thisFooter.DiskType} found. Please submit a bug with an example image."); + AaruConsole.ErrorWriteLine($"(VirtualPC plugin): Unknown image type {_thisFooter.DiskType + } found. Please submit a bug with an example image."); return ErrorNumber.InvalidArgument; } @@ -869,8 +865,8 @@ public sealed partial class Vhd return ErrorNumber.NotImplemented; default: - AaruConsole. - ErrorWriteLine($"(VirtualPC plugin): Unknown image type {_thisFooter.DiskType} found. Please submit a bug with an example image."); + AaruConsole.ErrorWriteLine($"(VirtualPC plugin): Unknown image type {_thisFooter.DiskType + } found. Please submit a bug with an example image."); return ErrorNumber.InvalidArgument; } diff --git a/Aaru.Images/ZZZRawImage/Helpers.cs b/Aaru.Images/ZZZRawImage/Helpers.cs index 3bf068921..f337136da 100644 --- a/Aaru.Images/ZZZRawImage/Helpers.cs +++ b/Aaru.Images/ZZZRawImage/Helpers.cs @@ -39,18 +39,18 @@ public sealed partial class ZZZRawImage MediaType CalculateDiskType() { if(_imageInfo.SectorSize == 2048) - switch(_imageInfo.Sectors) - { - case 58620544: return MediaType.REV120; - case 17090880: return MediaType.REV35; - case <= 360000: return MediaType.CD; - case <= 2295104: return MediaType.DVDPR; - case <= 2298496: return MediaType.DVDR; - case <= 4171712: return MediaType.DVDRDL; - case <= 4173824: return MediaType.DVDPRDL; - case <= 24438784: return MediaType.BDR; - default: return _imageInfo.Sectors <= 62500864 ? MediaType.BDRXL : MediaType.Unknown; - } + return _imageInfo.Sectors switch + { + 58620544 => MediaType.REV120, + 17090880 => MediaType.REV35, + <= 360000 => MediaType.CD, + <= 2295104 => MediaType.DVDPR, + <= 2298496 => MediaType.DVDR, + <= 4171712 => MediaType.DVDRDL, + <= 4173824 => MediaType.DVDPRDL, + <= 24438784 => MediaType.BDR, + _ => _imageInfo.Sectors <= 62500864 ? MediaType.BDRXL : MediaType.Unknown + }; switch(_imageInfo.ImageSize) { diff --git a/Aaru.Images/ZZZRawImage/Read.cs b/Aaru.Images/ZZZRawImage/Read.cs index c6b263f97..7e21bb9b9 100644 --- a/Aaru.Images/ZZZRawImage/Read.cs +++ b/Aaru.Images/ZZZRawImage/Read.cs @@ -436,65 +436,25 @@ public sealed partial class ZZZRawImage { PFI.PhysicalFormatInformation decPfi = PFI.Decode(pfi, _imageInfo.MediaType).Value; - switch(decPfi.DiskCategory) - { - case DiskCategory.DVDPR: - _imageInfo.MediaType = MediaType.DVDPR; - - break; - case DiskCategory.DVDPRDL: - _imageInfo.MediaType = MediaType.DVDPRDL; - - break; - case DiskCategory.DVDPRW: - _imageInfo.MediaType = MediaType.DVDPRW; - - break; - case DiskCategory.DVDPRWDL: - _imageInfo.MediaType = MediaType.DVDPRWDL; - - break; - case DiskCategory.DVDR: - _imageInfo.MediaType = decPfi.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR; - - break; - case DiskCategory.DVDRAM: - _imageInfo.MediaType = MediaType.DVDRAM; - - break; - default: - _imageInfo.MediaType = MediaType.DVDROM; - - break; - case DiskCategory.DVDRW: - _imageInfo.MediaType = decPfi.PartVersion >= 15 ? MediaType.DVDRWDL : MediaType.DVDRW; - - break; - case DiskCategory.HDDVDR: - _imageInfo.MediaType = MediaType.HDDVDR; - - break; - case DiskCategory.HDDVDRAM: - _imageInfo.MediaType = MediaType.HDDVDRAM; - - break; - case DiskCategory.HDDVDROM: - _imageInfo.MediaType = MediaType.HDDVDROM; - - break; - case DiskCategory.HDDVDRW: - _imageInfo.MediaType = MediaType.HDDVDRW; - - break; - case DiskCategory.Nintendo: - _imageInfo.MediaType = decPfi.DiscSize == DVDSize.Eighty ? MediaType.GOD : MediaType.WOD; - - break; - case DiskCategory.UMD: - _imageInfo.MediaType = MediaType.UMD; - - break; - } + _imageInfo.MediaType = decPfi.DiskCategory switch + { + DiskCategory.DVDPR => MediaType.DVDPR, + DiskCategory.DVDPRDL => MediaType.DVDPRDL, + DiskCategory.DVDPRW => MediaType.DVDPRW, + DiskCategory.DVDPRWDL => MediaType.DVDPRWDL, + DiskCategory.DVDR => decPfi.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR, + DiskCategory.DVDRAM => MediaType.DVDRAM, + DiskCategory.DVDRW => decPfi.PartVersion >= 15 ? MediaType.DVDRWDL + : MediaType.DVDRW, + DiskCategory.HDDVDR => MediaType.HDDVDR, + DiskCategory.HDDVDRAM => MediaType.HDDVDRAM, + DiskCategory.HDDVDROM => MediaType.HDDVDROM, + DiskCategory.HDDVDRW => MediaType.HDDVDRW, + DiskCategory.Nintendo => decPfi.DiscSize == DVDSize.Eighty ? MediaType.GOD + : MediaType.WOD, + DiskCategory.UMD => MediaType.UMD, + _ => MediaType.DVDROM + }; if(_imageInfo.MediaType is MediaType.DVDR or MediaType.DVDRW or MediaType.HDDVDR && _mediaTags.TryGetValue(MediaTagType.DVD_MediaIdentifier, out byte[] mid)) diff --git a/Aaru.Partitions/SGI.cs b/Aaru.Partitions/SGI.cs index f02b382da..7a239d06a 100644 --- a/Aaru.Partitions/SGI.cs +++ b/Aaru.Partitions/SGI.cs @@ -166,30 +166,27 @@ public sealed class SGI : IPartition return true; } - static string TypeToString(SGIType typ) - { - switch(typ) - { - case SGIType.Header: return "Volume header"; - case SGIType.TrkRepl: return "Track replacements"; - case SGIType.SecRepl: return "Sector replacements"; - case SGIType.Swap: return "Raw data (swap)"; - case SGIType.Bsd: return "4.2BSD Fast File System"; - case SGIType.SystemV: return "UNIX System V"; - case SGIType.Volume: return "Whole device"; - case SGIType.EFS: return "EFS"; - case SGIType.Lvol: return "Logical volume"; - case SGIType.Rlvol: return "Raw logical volume"; - case SGIType.XFS: return "XFS"; - case SGIType.Xlvol: return "XFS log device"; - case SGIType.Rxlvol: return "XLV volume"; - case SGIType.Xvm: return "SGI XVM"; - case SGIType.LinuxSwap: return "Linux swap"; - case SGIType.Linux: return "Linux"; - case SGIType.LinuxRAID: return "Linux RAID"; - default: return "Unknown"; - } - } + static string TypeToString(SGIType typ) => typ switch + { + SGIType.Header => "Volume header", + SGIType.TrkRepl => "Track replacements", + SGIType.SecRepl => "Sector replacements", + SGIType.Swap => "Raw data (swap)", + SGIType.Bsd => "4.2BSD Fast File System", + SGIType.SystemV => "UNIX System V", + SGIType.Volume => "Whole device", + SGIType.EFS => "EFS", + SGIType.Lvol => "Logical volume", + SGIType.Rlvol => "Raw logical volume", + SGIType.XFS => "XFS", + SGIType.Xlvol => "XFS log device", + SGIType.Rxlvol => "XLV volume", + SGIType.Xvm => "SGI XVM", + SGIType.LinuxSwap => "Linux swap", + SGIType.Linux => "Linux", + SGIType.LinuxRAID => "Linux RAID", + _ => "Unknown" + }; [StructLayout(LayoutKind.Sequential, Pack = 1)] readonly struct Label diff --git a/Aaru.Partitions/Sun.cs b/Aaru.Partitions/Sun.cs index 0f0742aef..d27c20457 100644 --- a/Aaru.Partitions/Sun.cs +++ b/Aaru.Partitions/Sun.cs @@ -276,8 +276,8 @@ public sealed class SunDisklabel : IPartition }; if(dkl8.dkl_vtoc.v_timestamp[i] != 0) - part.Description += - $"\nPartition timestamped on {DateHandlers.UnixToDateTime(dkl8.dkl_vtoc.v_timestamp[i])}"; + part.Description += $"\nPartition timestamped on { + DateHandlers.UnixToDateTime(dkl8.dkl_vtoc.v_timestamp[i])}"; if(part.Start < imagePlugin.Info.Sectors && part.End <= imagePlugin.Info.Sectors) @@ -357,8 +357,8 @@ public sealed class SunDisklabel : IPartition }; if(dkl16.dkl_vtoc.v_timestamp[i] != 0) - part.Description += - $"\nPartition timestamped on {DateHandlers.UnixToDateTime(dkl16.dkl_vtoc.v_timestamp[i])}"; + part.Description += $"\nPartition timestamped on { + DateHandlers.UnixToDateTime(dkl16.dkl_vtoc.v_timestamp[i])}"; if(part.Start < imagePlugin.Info.Sectors && part.End <= imagePlugin.Info.Sectors) @@ -444,37 +444,34 @@ public sealed class SunDisklabel : IPartition return sb.ToString(); } - static string SunIdToString(SunTag id) - { - switch(id) - { - case SunTag.Linux: return "Linux"; - case SunTag.LinuxRaid: return "Linux RAID"; - case SunTag.LinuxSwap: return "Linux swap"; - case SunTag.LVM: return "LVM"; - case SunTag.SunBoot: return "Sun boot"; - case SunTag.SunEmpty: return "Empty"; - case SunTag.SunHome: return "Sun /home"; - case SunTag.SunRoot: return "Sun /"; - case SunTag.SunStand: return "Sun /stand"; - case SunTag.SunSwap: return "Sun swap"; - case SunTag.SunUsr: return "Sun /usr"; - case SunTag.SunVar: return "Sun /var"; - case SunTag.SunWholeDisk: return "Whole disk"; - case SunTag.SunAlt: return "Replacement sectors"; - case SunTag.SunCache: return "Sun cachefs"; - case SunTag.SunReserved: return "Reserved for SMI"; - case SunTag.VxVmPublic: return "Veritas public"; - case SunTag.VxVmPrivate: return "Veritas private"; - case SunTag.NetBSD: return "NetBSD"; - case SunTag.FreeBSD_Swap: return "FreeBSD swap"; - case SunTag.FreeBSD_UFS: return "FreeBSD"; - case SunTag.FreeBSD_Vinum: return "Vinum"; - case SunTag.FreeBSD_ZFS: return "FreeBSD ZFS"; - case SunTag.FreeBSD_NANDFS: return "FreeBSD nandfs"; - default: return "Unknown"; - } - } + static string SunIdToString(SunTag id) => id switch + { + SunTag.Linux => "Linux", + SunTag.LinuxRaid => "Linux RAID", + SunTag.LinuxSwap => "Linux swap", + SunTag.LVM => "LVM", + SunTag.SunBoot => "Sun boot", + SunTag.SunEmpty => "Empty", + SunTag.SunHome => "Sun /home", + SunTag.SunRoot => "Sun /", + SunTag.SunStand => "Sun /stand", + SunTag.SunSwap => "Sun swap", + SunTag.SunUsr => "Sun /usr", + SunTag.SunVar => "Sun /var", + SunTag.SunWholeDisk => "Whole disk", + SunTag.SunAlt => "Replacement sectors", + SunTag.SunCache => "Sun cachefs", + SunTag.SunReserved => "Reserved for SMI", + SunTag.VxVmPublic => "Veritas public", + SunTag.VxVmPrivate => "Veritas private", + SunTag.NetBSD => "NetBSD", + SunTag.FreeBSD_Swap => "FreeBSD swap", + SunTag.FreeBSD_UFS => "FreeBSD", + SunTag.FreeBSD_Vinum => "Vinum", + SunTag.FreeBSD_ZFS => "FreeBSD ZFS", + SunTag.FreeBSD_NANDFS => "FreeBSD nandfs", + _ => "Unknown" + }; enum SunTag : ushort { diff --git a/Aaru.Partitions/VTOC.cs b/Aaru.Partitions/VTOC.cs index 276171315..8d12bd0d0 100644 --- a/Aaru.Partitions/VTOC.cs +++ b/Aaru.Partitions/VTOC.cs @@ -423,29 +423,29 @@ public sealed class VTOC : IPartition return partitions.Count > 0; } - static string DecodeUnixtag(pTag type, bool isNew) - { - switch(type) - { - case pTag.V_UNUSED: return "Unused"; - case pTag.V_BOOT: return "Boot"; - case pTag.V_ROOT: return "/"; - case pTag.V_SWAP: return "Swap"; - case pTag.V_USER: return "/usr"; - case pTag.V_BACKUP: return "Whole disk"; - case pTag.V_STAND_OLD: return isNew ? "Stand" : "Alternate sector space"; - case pTag.V_VAR_OLD: return isNew ? "/var" : "non UNIX"; - case pTag.V_HOME_OLD: return isNew ? "/home" : "Alternate track space"; - case pTag.V_ALTSCTR_OLD: return isNew ? "Alternate sector track" : "Stand"; - case pTag.V_CACHE: return isNew ? "Cache" : "/var"; - case pTag.V_RESERVED: return isNew ? "Reserved" : "/home"; - case pTag.V_DUMP: return "dump"; - case pTag.V_ALTSCTR: return "Alternate sector track"; - case pTag.V_VMPUBLIC: return "volume mgt public partition"; - case pTag.V_VMPRIVATE: return "volume mgt private partition"; - default: return $"Unknown TAG: 0x{type:X4}"; - } - } + static string DecodeUnixtag(pTag type, bool isNew) => type switch + { + pTag.V_UNUSED => "Unused", + pTag.V_BOOT => "Boot", + pTag.V_ROOT => "/", + pTag.V_SWAP => "Swap", + pTag.V_USER => "/usr", + pTag.V_BACKUP => "Whole disk", + pTag.V_STAND_OLD => isNew ? "Stand" + : "Alternate sector space", + pTag.V_VAR_OLD => isNew ? "/var" : "non UNIX", + pTag.V_HOME_OLD => isNew ? "/home" + : "Alternate track space", + pTag.V_ALTSCTR_OLD => isNew ? "Alternate sector track" + : "Stand", + pTag.V_CACHE => isNew ? "Cache" : "/var", + pTag.V_RESERVED => isNew ? "Reserved" : "/home", + pTag.V_DUMP => "dump", + pTag.V_ALTSCTR => "Alternate sector track", + pTag.V_VMPUBLIC => "volume mgt public partition", + pTag.V_VMPRIVATE => "volume mgt private partition", + _ => $"Unknown TAG: 0x{type:X4}" + }; [StructLayout(LayoutKind.Sequential, Pack = 1)] diff --git a/Aaru.Tests.Devices/SCSI/Pioneer.cs b/Aaru.Tests.Devices/SCSI/Pioneer.cs index 25e4323ef..173898cae 100644 --- a/Aaru.Tests.Devices/SCSI/Pioneer.cs +++ b/Aaru.Tests.Devices/SCSI/Pioneer.cs @@ -170,25 +170,13 @@ static class Pioneer continue; } - switch(subchan) - { - case PioneerSubchannel.Q16: - blockSize = 2368; - - break; - case PioneerSubchannel.All: - blockSize = 2448; - - break; - case PioneerSubchannel.Only: - blockSize = 96; - - break; - default: - blockSize = 2352; - - break; - } + blockSize = subchan switch + { + PioneerSubchannel.Q16 => 2368, + PioneerSubchannel.All => 2448, + PioneerSubchannel.Only => 96, + _ => 2352 + }; break; case 2: goto start; @@ -423,25 +411,13 @@ static class Pioneer continue; } - switch(subchan) - { - case PioneerSubchannel.Q16: - blockSize = 2368; - - break; - case PioneerSubchannel.All: - blockSize = 2448; - - break; - case PioneerSubchannel.Only: - blockSize = 96; - - break; - default: - blockSize = 2352; - - break; - } + blockSize = subchan switch + { + PioneerSubchannel.Q16 => 2368, + PioneerSubchannel.All => 2448, + PioneerSubchannel.Only => 96, + _ => 2352 + }; break; case 2: goto start; diff --git a/Aaru/Commands/Device/DeviceReport.cs b/Aaru/Commands/Device/DeviceReport.cs index fa34a0b5a..a403fb262 100644 --- a/Aaru/Commands/Device/DeviceReport.cs +++ b/Aaru/Commands/Device/DeviceReport.cs @@ -1301,29 +1301,15 @@ sealed class DeviceReportCommand : Command } } - switch(mediaType) - { - case "MD DATA (140Mb data MiniDisc)": - mediaTest.MediumTypeName = "MMD-140A"; - - break; - case "60 minutes rewritable MiniDisc": - mediaTest.MediumTypeName = "MDW-60"; - - break; - case "74 minutes rewritable MiniDisc": - mediaTest.MediumTypeName = "MDW-74"; - - break; - case "80 minutes rewritable MiniDisc": - mediaTest.MediumTypeName = "MDW-80"; - - break; - case "Embossed Audio MiniDisc": - mediaTest.MediumTypeName = "MiniDisc"; - - break; - } + mediaTest.MediumTypeName = mediaType switch + { + "MD DATA (140Mb data MiniDisc)" => "MMD-140A", + "60 minutes rewritable MiniDisc" => "MDW-60", + "74 minutes rewritable MiniDisc" => "MDW-74", + "80 minutes rewritable MiniDisc" => "MDW-80", + "Embossed Audio MiniDisc" => "MiniDisc", + _ => mediaTest.MediumTypeName + }; mediaTest.Manufacturer = "SONY"; mediaTest.MediaIsRecognized = mediaIsRecognized; diff --git a/Aaru/Commands/Image/Convert.cs b/Aaru/Commands/Image/Convert.cs index 6d0ba9f63..6bbabe50a 100644 --- a/Aaru/Commands/Image/Convert.cs +++ b/Aaru/Commands/Image/Convert.cs @@ -421,21 +421,13 @@ sealed class ConvertImageCommand : Command // Obsolete types #pragma warning disable 612 - switch(mediaType) - { - case MediaType.SQ1500: - mediaType = MediaType.SyJet; - - break; - case MediaType.Bernoulli: - mediaType = MediaType.Bernoulli10; - - break; - case MediaType.Bernoulli2: - mediaType = MediaType.BernoulliBox2_20; - - break; - } + mediaType = mediaType switch + { + MediaType.SQ1500 => MediaType.SyJet, + MediaType.Bernoulli => MediaType.Bernoulli10, + MediaType.Bernoulli2 => MediaType.BernoulliBox2_20, + _ => inputFormat.Info.MediaType + }; #pragma warning restore 612 AaruConsole.DebugWriteLine("Convert-image command", "Correctly opened image file."); diff --git a/Aaru/Commands/Image/Verify.cs b/Aaru/Commands/Image/Verify.cs index e0087bf87..ee27dd62d 100644 --- a/Aaru/Commands/Image/Verify.cs +++ b/Aaru/Commands/Image/Verify.cs @@ -243,8 +243,8 @@ sealed class VerifyCommand : Command while(remainingSectors > 0) { - trackTask.Description = - $"Checking sector {currentSectorAll} of {inputFormat.Info.Sectors}, on track {currentTrack.Sequence}"; + trackTask.Description = $"Checking sector {currentSectorAll} of { + inputFormat.Info.Sectors}, on track {currentTrack.Sequence}"; List tempFailingLbas; List tempUnknownLbas; @@ -379,17 +379,17 @@ sealed class VerifyCommand : Command correctSectors = true; } - switch(correctImage) - { - case null when correctSectors is null: return (int)ErrorNumber.NotVerifiable; - case null when correctSectors == false: return (int)ErrorNumber.BadSectorsImageNotVerified; - case null: return (int)ErrorNumber.CorrectSectorsImageNotVerified; - case false when correctSectors is null: return (int)ErrorNumber.BadImageSectorsNotVerified; - case false when correctSectors == false: return (int)ErrorNumber.BadImageBadSectors; - case false: return (int)ErrorNumber.CorrectSectorsBadImage; - case true when correctSectors is null: return (int)ErrorNumber.CorrectImageSectorsNotVerified; - case true when correctSectors == false: return (int)ErrorNumber.CorrectImageBadSectors; - case true: return (int)ErrorNumber.NoError; - } + return correctImage switch + { + null when correctSectors is null => (int)ErrorNumber.NotVerifiable, + null when correctSectors == false => (int)ErrorNumber.BadSectorsImageNotVerified, + null => (int)ErrorNumber.CorrectSectorsImageNotVerified, + false when correctSectors is null => (int)ErrorNumber.BadImageSectorsNotVerified, + false when correctSectors == false => (int)ErrorNumber.BadImageBadSectors, + false => (int)ErrorNumber.CorrectSectorsBadImage, + true when correctSectors is null => (int)ErrorNumber.CorrectImageSectorsNotVerified, + true when correctSectors == false => (int)ErrorNumber.CorrectImageBadSectors, + true => (int)ErrorNumber.NoError + }; } } \ No newline at end of file