From b75fcf0f417c0cb677312e5eba2d2527df75bf94 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 1 May 2024 17:18:37 +0100 Subject: [PATCH] [Refactor] Convert to `switch` expressions. --- Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs | 17 +- Aaru.Core/Devices/Dumping/Sbc/Dump.cs | 14 +- Aaru.Core/Devices/Scanning/MediaScan.cs | 23 +- Aaru.Core/Error.cs | 155 ++++---- Aaru.Core/Logging/MHDDLog.cs | 39 +-- Aaru.Core/Media/Detection/MMC.cs | 150 ++------ Aaru.Core/Media/Info/ScsiInfo.cs | 177 +++------- Aaru.Core/Sidecar/OpticalDisc.cs | 28 +- Aaru.Decoders/Bluray/DI.cs | 105 ++---- Aaru.Decoders/DVD/PFI.cs | 211 +++-------- Aaru.Decoders/SCSI/Modes/Headers.cs | 279 ++++----------- Aaru.Decoders/SCSI/Sense.cs | 22 +- Aaru.Devices/Device/ScsiCommands/SSC.cs | 35 +- Aaru.Devices/Linux/Command.cs | 81 ++--- Aaru.Devices/Linux/ListDevices.cs | 19 +- Aaru.Devices/Windows/Command.cs | 60 +--- Aaru.Devices/Windows/ListDevices.cs | 34 +- Aaru.Filesystems/FAT/Super.cs | 19 +- Aaru.Filesystems/LisaFS/File.cs | 26 +- .../Panels/SubdirectoryViewModel.cs | 94 +++-- .../ViewModels/Windows/MainWindowViewModel.cs | 59 +--- .../ViewModels/Windows/MediaDumpViewModel.cs | 100 +++--- Aaru.Images/AaruFormat/Helpers.cs | 200 ++++++----- Aaru.Images/AaruFormat/Read.cs | 29 +- Aaru.Images/AaruFormat/Write.cs | 55 +-- Aaru.Images/Alcohol120/Helpers.cs | 157 ++++----- Aaru.Images/Alcohol120/Read.cs | 20 +- Aaru.Images/Alcohol120/Write.cs | 88 +++-- Aaru.Images/BlindWrite5/Helpers.cs | 100 ++---- Aaru.Images/BlindWrite5/Read.cs | 48 ++- Aaru.Images/ByteAddressable/Nintendo64.cs | 26 +- Aaru.Images/ByteAddressable/SuperNintendo.cs | 77 ++-- Aaru.Images/CDRDAO/Helpers.cs | 53 +-- Aaru.Images/CDRDAO/Write.cs | 25 +- Aaru.Images/CDRWin/Helpers.cs | 330 +++++++----------- Aaru.Images/CisCopy/Read.cs | 31 +- Aaru.Images/CisCopy/Write.cs | 23 +- Aaru.Images/CloneCD/Read.cs | 14 +- Aaru.Images/DiscJuggler/Read.cs | 14 +- Aaru.Images/Nero/Helpers.cs | 136 +++----- Aaru.Images/Nero/Read.cs | 43 +-- Aaru.Images/VDI/Read.cs | 43 +-- Aaru.Images/VHD/Read.cs | 32 +- Aaru.Partitions/Atari.cs | 188 +++------- Aaru.Partitions/BSD.cs | 94 ++--- Aaru.Partitions/GPT.cs | 302 ++++++---------- Aaru.Partitions/PC98.cs | 38 +- Aaru.Tests.Devices/SCSI/Plextor.cs | 27 +- 48 files changed, 1321 insertions(+), 2619 deletions(-) diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs index 739297f24..4db667707 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs @@ -398,18 +398,11 @@ sealed partial class Dump break; } - switch(desiredSubchannel) - { - case MmcSubchannel.None: - subType = TrackSubchannelType.None; - - break; - case MmcSubchannel.Raw: - case MmcSubchannel.Q16: - subType = TrackSubchannelType.Raw; - - break; - } + subType = desiredSubchannel switch + { + MmcSubchannel.None => TrackSubchannelType.None, + MmcSubchannel.Raw or MmcSubchannel.Q16 => TrackSubchannelType.Raw + }; blockSize = sectorSize + subSize; diff --git a/Aaru.Core/Devices/Dumping/Sbc/Dump.cs b/Aaru.Core/Devices/Dumping/Sbc/Dump.cs index c50c6bb61..88ed80674 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Dump.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Dump.cs @@ -91,15 +91,11 @@ partial class Dump if(opticalDisc) { - switch(dskType) - { - case MediaType.REV35: - case MediaType.REV70: - case MediaType.REV120: - opticalDisc = false; - - break; - } + opticalDisc = dskType switch + { + MediaType.REV35 or MediaType.REV70 or MediaType.REV120 => false, + _ => opticalDisc + }; } _dumpLog.WriteLine(Localization.Core.Initializing_reader); diff --git a/Aaru.Core/Devices/Scanning/MediaScan.cs b/Aaru.Core/Devices/Scanning/MediaScan.cs index 190b4efd2..8905aa54f 100644 --- a/Aaru.Core/Devices/Scanning/MediaScan.cs +++ b/Aaru.Core/Devices/Scanning/MediaScan.cs @@ -81,21 +81,14 @@ public sealed partial class MediaScan /// Unknown device type public ScanResults Scan() { - switch(_dev.Type) - { - case DeviceType.ATA: - return Ata(); - case DeviceType.MMC: - case DeviceType.SecureDigital: - return SecureDigital(); - case DeviceType.NVMe: - return Nvme(); - case DeviceType.ATAPI: - case DeviceType.SCSI: - return Scsi(); - default: - throw new NotSupportedException(Localization.Core.Unknown_device_type); - } + return _dev.Type switch + { + DeviceType.ATA => Ata(), + DeviceType.MMC or DeviceType.SecureDigital => SecureDigital(), + DeviceType.NVMe => Nvme(), + DeviceType.ATAPI or DeviceType.SCSI => Scsi(), + _ => throw new NotSupportedException(Localization.Core.Unknown_device_type) + }; } /// Aborts the running media scan diff --git a/Aaru.Core/Error.cs b/Aaru.Core/Error.cs index e8e0d05d7..273a20d64 100644 --- a/Aaru.Core/Error.cs +++ b/Aaru.Core/Error.cs @@ -42,96 +42,85 @@ public static class Error /// Error description. public static string Print(int errno) { - switch(DetectOS.GetRealPlatformID()) - { - case PlatformID.Win32S: - case PlatformID.Win32Windows: - case PlatformID.Win32NT: - case PlatformID.WinCE: - case PlatformID.WindowsPhone: - case PlatformID.Xbox: - return PrintWin32Error(errno); - case PlatformID.Unix: - case PlatformID.MacOSX: - case PlatformID.iOS: - case PlatformID.Linux: - case PlatformID.Solaris: - case PlatformID.NetBSD: - case PlatformID.OpenBSD: - case PlatformID.FreeBSD: - case PlatformID.DragonFly: - case PlatformID.Android: - case PlatformID.Tizen: - case PlatformID.Hurd: - case PlatformID.Haiku: - case PlatformID.HPUX: - case PlatformID.AIX: - case PlatformID.OS400: - case PlatformID.IRIX: - case PlatformID.Minix: - case PlatformID.QNX: - case PlatformID.SINIX: - case PlatformID.Tru64: - case PlatformID.Ultrix: - case PlatformID.OpenServer: - case PlatformID.UnixWare: - case PlatformID.zOS: - return PrintUnixError(errno); - case PlatformID.Wii: - return string.Format(Localization.Core.error_code_0, errno); - case PlatformID.WiiU: - return string.Format(Localization.Core.error_code_0, errno); - case PlatformID.PlayStation3: - return string.Format(Localization.Core.error_code_0, errno); - case PlatformID.PlayStation4: - return string.Format(Localization.Core.error_code_0, errno); - case PlatformID.NonStop: - return string.Format(Localization.Core.error_code_0, errno); - case PlatformID.Unknown: - return string.Format(Localization.Core.error_code_0, errno); - default: - return string.Format(Localization.Core.error_code_0, errno); - } + return DetectOS.GetRealPlatformID() switch + { + PlatformID.Win32S + or PlatformID.Win32Windows + or PlatformID.Win32NT + or PlatformID.WinCE + or PlatformID.WindowsPhone + or PlatformID.Xbox => PrintWin32Error(errno), + PlatformID.Unix + or PlatformID.MacOSX + or PlatformID.iOS + or PlatformID.Linux + or PlatformID.Solaris + or PlatformID.NetBSD + or PlatformID.OpenBSD + or PlatformID.FreeBSD + or PlatformID.DragonFly + or PlatformID.Android + or PlatformID.Tizen + or PlatformID.Hurd + or PlatformID.Haiku + or PlatformID.HPUX + or PlatformID.AIX + or PlatformID.OS400 + or PlatformID.IRIX + or PlatformID.Minix + or PlatformID.QNX + or PlatformID.SINIX + or PlatformID.Tru64 + or PlatformID.Ultrix + or PlatformID.OpenServer + or PlatformID.UnixWare + or PlatformID.zOS => PrintUnixError(errno), + PlatformID.Wii => string.Format(Localization.Core.error_code_0, errno), + PlatformID.WiiU => string.Format(Localization.Core.error_code_0, errno), + PlatformID.PlayStation3 => string.Format(Localization.Core.error_code_0, errno), + PlatformID.PlayStation4 => string.Format(Localization.Core.error_code_0, errno), + PlatformID.NonStop => string.Format(Localization.Core.error_code_0, errno), + PlatformID.Unknown => string.Format(Localization.Core.error_code_0, errno), + _ => string.Format(Localization.Core.error_code_0, errno) + }; } static string PrintUnixError(int errno) { - switch(errno) - { - case 2: // ENOENT - case 19: // ENODEV - return Localization.Core.The_specified_device_cannot_be_found; - case 13: // EACCESS - return Localization.Core.Not_enough_permissions_to_open_the_device; - case 16: // EBUSY - return Localization.Core.The_specified_device_is_in_use_by_another_process; - case 30: // EROFS - return Localization.Core.Cannot_open_the_device_in_writable_mode_as_needed_by_some_commands; - default: - return string.Format(Localization.Core.error_code_0, errno); - } + return errno switch + { + 2 or 19 => // ENODEV + // ENOENT + Localization.Core.The_specified_device_cannot_be_found, + 13 => // EACCESS + Localization.Core.Not_enough_permissions_to_open_the_device, + 16 => // EBUSY + Localization.Core.The_specified_device_is_in_use_by_another_process, + 30 => // EROFS + Localization.Core.Cannot_open_the_device_in_writable_mode_as_needed_by_some_commands, + _ => string.Format(Localization.Core.error_code_0, errno) + }; } static string PrintWin32Error(int errno) { - switch(errno) - { - case 2: // ERROR_FILE_NOT_FOUND - case 3: // ERROR_PATH_NOT_FOUND - return Localization.Core.The_specified_device_cannot_be_found; - case 5: // ERROR_ACCESS_DENIED - return Localization.Core.Not_enough_permissions_to_open_the_device; - case 19: // ERROR_WRITE_PROTECT - return Localization.Core.Cannot_open_the_device_in_writable_mode_as_needed_by_some_commands; - case 32: // ERROR_SHARING_VIOLATION - case 33: // ERROR_LOCK_VIOLATION - case 108: // ERROR_DRIVE_LOCKED - case 170: // ERROR_BUSY - return Localization.Core.The_specified_device_is_in_use_by_another_process; - case 130: // ERROR_DIRECT_ACCESS_HANDLE - return Localization.Core.Tried_to_open_a_file_instead_of_a_device; - default: - return string.Format(Localization.Core.error_code_0, errno); - } + return errno switch + { + 2 or 3 => // ERROR_PATH_NOT_FOUND + // ERROR_FILE_NOT_FOUND + Localization.Core.The_specified_device_cannot_be_found, + 5 => // ERROR_ACCESS_DENIED + Localization.Core.Not_enough_permissions_to_open_the_device, + 19 => // ERROR_WRITE_PROTECT + Localization.Core.Cannot_open_the_device_in_writable_mode_as_needed_by_some_commands, + 32 or 33 or 108 or 170 => // ERROR_BUSY + // ERROR_DRIVE_LOCKED + // ERROR_LOCK_VIOLATION + // ERROR_SHARING_VIOLATION + Localization.Core.The_specified_device_is_in_use_by_another_process, + 130 => // ERROR_DIRECT_ACCESS_HANDLE + Localization.Core.Tried_to_open_a_file_instead_of_a_device, + _ => string.Format(Localization.Core.error_code_0, errno) + }; } } \ No newline at end of file diff --git a/Aaru.Core/Logging/MHDDLog.cs b/Aaru.Core/Logging/MHDDLog.cs index 355109019..4cefcfcdd 100644 --- a/Aaru.Core/Logging/MHDDLog.cs +++ b/Aaru.Core/Logging/MHDDLog.cs @@ -68,36 +68,15 @@ sealed class MhddLog _mhddFs = new MemoryStream(); _logFile = outputFile; - string mode; - - switch(dev.Type) - { - case DeviceType.ATA: - case DeviceType.ATAPI: - mode = "MODE: IDE"; - - break; - case DeviceType.SCSI: - mode = "MODE: SCSI"; - - break; - case DeviceType.MMC: - mode = "MODE: MMC"; - - break; - case DeviceType.NVMe: - mode = "MODE: NVMe"; - - break; - case DeviceType.SecureDigital: - mode = "MODE: SD"; - - break; - default: - mode = "MODE: IDE"; - - break; - } + string mode = dev.Type switch + { + DeviceType.ATA or DeviceType.ATAPI => "MODE: IDE", + DeviceType.SCSI => "MODE: SCSI", + DeviceType.MMC => "MODE: MMC", + DeviceType.NVMe => "MODE: NVMe", + DeviceType.SecureDigital => "MODE: SD", + _ => "MODE: IDE" + }; var device = $"DEVICE: {dev.Manufacturer} {dev.Model}"; var fw = $"F/W: {dev.FirmwareRevision}"; diff --git a/Aaru.Core/Media/Detection/MMC.cs b/Aaru.Core/Media/Detection/MMC.cs index d92d2e2ed..3649356d2 100644 --- a/Aaru.Core/Media/Detection/MMC.cs +++ b/Aaru.Core/Media/Detection/MMC.cs @@ -274,124 +274,38 @@ public static class MMC Localization.Core.GET_CONFIGURATION_current_profile_is_0, ftr.CurrentProfile); - switch(ftr.CurrentProfile) - { - case 0x0001: - mediaType = MediaType.GENERIC_HDD; - - break; - case 0x0005: - mediaType = MediaType.CDMO; - - break; - case 0x0008: - mediaType = MediaType.CD; - - break; - case 0x0009: - mediaType = MediaType.CDR; - - break; - case 0x000A: - mediaType = MediaType.CDRW; - - break; - case 0x0010: - mediaType = MediaType.DVDROM; - - break; - case 0x0011: - mediaType = MediaType.DVDR; - - break; - case 0x0012: - mediaType = MediaType.DVDRAM; - - break; - case 0x0013: - case 0x0014: - mediaType = MediaType.DVDRW; - - break; - case 0x0015: - case 0x0016: - mediaType = MediaType.DVDRDL; - - break; - case 0x0017: - mediaType = MediaType.DVDRWDL; - - break; - case 0x0018: - mediaType = MediaType.DVDDownload; - - break; - case 0x001A: - mediaType = MediaType.DVDPRW; - - break; - case 0x001B: - mediaType = MediaType.DVDPR; - - break; - case 0x0020: - mediaType = MediaType.DDCD; - - break; - case 0x0021: - mediaType = MediaType.DDCDR; - - break; - case 0x0022: - mediaType = MediaType.DDCDRW; - - break; - case 0x002A: - mediaType = MediaType.DVDPRWDL; - - break; - case 0x002B: - mediaType = MediaType.DVDPRDL; - - break; - case 0x0040: - mediaType = MediaType.BDROM; - - break; - case 0x0041: - case 0x0042: - mediaType = MediaType.BDR; - - break; - case 0x0043: - mediaType = MediaType.BDRE; - - break; - case 0x0050: - mediaType = MediaType.HDDVDROM; - - break; - case 0x0051: - mediaType = MediaType.HDDVDR; - - break; - case 0x0052: - mediaType = MediaType.HDDVDRAM; - - break; - case 0x0053: - mediaType = MediaType.HDDVDRW; - - break; - case 0x0058: - mediaType = MediaType.HDDVDRDL; - - break; - case 0x005A: - mediaType = MediaType.HDDVDRWDL; - - break; - } + mediaType = ftr.CurrentProfile switch + { + 0x0001 => MediaType.GENERIC_HDD, + 0x0005 => MediaType.CDMO, + 0x0008 => MediaType.CD, + 0x0009 => MediaType.CDR, + 0x000A => MediaType.CDRW, + 0x0010 => MediaType.DVDROM, + 0x0011 => MediaType.DVDR, + 0x0012 => MediaType.DVDRAM, + 0x0013 or 0x0014 => MediaType.DVDRW, + 0x0015 or 0x0016 => MediaType.DVDRDL, + 0x0017 => MediaType.DVDRWDL, + 0x0018 => MediaType.DVDDownload, + 0x001A => MediaType.DVDPRW, + 0x001B => MediaType.DVDPR, + 0x0020 => MediaType.DDCD, + 0x0021 => MediaType.DDCDR, + 0x0022 => MediaType.DDCDRW, + 0x002A => MediaType.DVDPRWDL, + 0x002B => MediaType.DVDPRDL, + 0x0040 => MediaType.BDROM, + 0x0041 or 0x0042 => MediaType.BDR, + 0x0043 => MediaType.BDRE, + 0x0050 => MediaType.HDDVDROM, + 0x0051 => MediaType.HDDVDR, + 0x0052 => MediaType.HDDVDRAM, + 0x0053 => MediaType.HDDVDRW, + 0x0058 => MediaType.HDDVDRDL, + 0x005A => MediaType.HDDVDRWDL, + _ => mediaType + }; } if(decodedToc?.TrackDescriptors.Any(t => t.SessionNumber == 2) == true) diff --git a/Aaru.Core/Media/Info/ScsiInfo.cs b/Aaru.Core/Media/Info/ScsiInfo.cs index beddf78a0..8723dde45 100644 --- a/Aaru.Core/Media/Info/ScsiInfo.cs +++ b/Aaru.Core/Media/Info/ScsiInfo.cs @@ -309,139 +309,50 @@ public sealed class ScsiInfo Localization.Core.GET_CONFIGURATION_current_profile_is_0, ftr.CurrentProfile); - switch(ftr.CurrentProfile) - { - case 0x0001: - MediaType = MediaType.GENERIC_HDD; - - break; - case 0x0002: - MediaType = scsiMediumType switch - { - 0x01 => MediaType.PD650, - 0x41 => Blocks switch - { - 58620544 => MediaType.REV120, - 17090880 => MediaType.REV35, - 34185728 => MediaType.REV70, - _ => MediaType - }, - _ => MediaType.Unknown - }; - - break; - case 0x0005: - MediaType = MediaType.CDMO; - - break; - case 0x0008: - MediaType = MediaType.CD; - - break; - case 0x0009: - MediaType = MediaType.CDR; - - break; - case 0x000A: - MediaType = MediaType.CDRW; - - break; - case 0x0010: - MediaType = MediaType.DVDROM; - - break; - case 0x0011: - MediaType = MediaType.DVDR; - - break; - case 0x0012: - MediaType = MediaType.DVDRAM; - - break; - case 0x0013: - case 0x0014: - MediaType = MediaType.DVDRW; - - break; - case 0x0015: - case 0x0016: - MediaType = MediaType.DVDRDL; - - break; - case 0x0017: - MediaType = MediaType.DVDRWDL; - - break; - case 0x0018: - MediaType = MediaType.DVDDownload; - - break; - case 0x001A: - MediaType = MediaType.DVDPRW; - - break; - case 0x001B: - MediaType = MediaType.DVDPR; - - break; - case 0x0020: - MediaType = MediaType.DDCD; - - break; - case 0x0021: - MediaType = MediaType.DDCDR; - - break; - case 0x0022: - MediaType = MediaType.DDCDRW; - - break; - case 0x002A: - MediaType = MediaType.DVDPRWDL; - - break; - case 0x002B: - MediaType = MediaType.DVDPRDL; - - break; - case 0x0040: - MediaType = MediaType.BDROM; - - break; - case 0x0041: - case 0x0042: - MediaType = MediaType.BDR; - - break; - case 0x0043: - MediaType = MediaType.BDRE; - - break; - case 0x0050: - MediaType = MediaType.HDDVDROM; - - break; - case 0x0051: - MediaType = MediaType.HDDVDR; - - break; - case 0x0052: - MediaType = MediaType.HDDVDRAM; - - break; - case 0x0053: - MediaType = MediaType.HDDVDRW; - - break; - case 0x0058: - MediaType = MediaType.HDDVDRDL; - - break; - case 0x005A: - MediaType = MediaType.HDDVDRWDL; - - break; - } + MediaType = ftr.CurrentProfile switch + { + 0x0001 => MediaType.GENERIC_HDD, + 0x0002 => scsiMediumType switch + { + 0x01 => MediaType.PD650, + 0x41 => Blocks switch + { + 58620544 => MediaType.REV120, + 17090880 => MediaType.REV35, + 34185728 => MediaType.REV70, + _ => MediaType + }, + _ => MediaType.Unknown + }, + 0x0005 => MediaType.CDMO, + 0x0008 => MediaType.CD, + 0x0009 => MediaType.CDR, + 0x000A => MediaType.CDRW, + 0x0010 => MediaType.DVDROM, + 0x0011 => MediaType.DVDR, + 0x0012 => MediaType.DVDRAM, + 0x0013 or 0x0014 => MediaType.DVDRW, + 0x0015 or 0x0016 => MediaType.DVDRDL, + 0x0017 => MediaType.DVDRWDL, + 0x0018 => MediaType.DVDDownload, + 0x001A => MediaType.DVDPRW, + 0x001B => MediaType.DVDPR, + 0x0020 => MediaType.DDCD, + 0x0021 => MediaType.DDCDR, + 0x0022 => MediaType.DDCDRW, + 0x002A => MediaType.DVDPRWDL, + 0x002B => MediaType.DVDPRDL, + 0x0040 => MediaType.BDROM, + 0x0041 or 0x0042 => MediaType.BDR, + 0x0043 => MediaType.BDRE, + 0x0050 => MediaType.HDDVDROM, + 0x0051 => MediaType.HDDVDR, + 0x0052 => MediaType.HDDVDRAM, + 0x0053 => MediaType.HDDVDRW, + 0x0058 => MediaType.HDDVDRDL, + 0x005A => MediaType.HDDVDRWDL, + _ => MediaType + }; } if(MediaType == MediaType.PD650 && Blocks == 1281856) MediaType = MediaType.PD650_WORM; diff --git a/Aaru.Core/Sidecar/OpticalDisc.cs b/Aaru.Core/Sidecar/OpticalDisc.cs index 3df433ac6..241a714cd 100644 --- a/Aaru.Core/Sidecar/OpticalDisc.cs +++ b/Aaru.Core/Sidecar/OpticalDisc.cs @@ -414,24 +414,16 @@ public sealed partial class Sidecar Size = (xmlTrk.EndSector - xmlTrk.StartSector + 1) * 96 }; - switch(trk.SubchannelType) - { - case TrackSubchannelType.Packed: - case TrackSubchannelType.PackedInterleaved: - xmlTrk.SubChannel.Image.Format = "rw"; - - break; - case TrackSubchannelType.Raw: - case TrackSubchannelType.RawInterleaved: - xmlTrk.SubChannel.Image.Format = "rw_raw"; - - break; - case TrackSubchannelType.Q16: - case TrackSubchannelType.Q16Interleaved: - xmlTrk.SubChannel.Image.Format = "q16"; - - break; - } + xmlTrk.SubChannel.Image.Format = trk.SubchannelType switch + { + TrackSubchannelType.Packed + or TrackSubchannelType.PackedInterleaved => "rw", + TrackSubchannelType.Raw + or TrackSubchannelType.RawInterleaved => "rw_raw", + TrackSubchannelType.Q16 + or TrackSubchannelType.Q16Interleaved => "q16", + _ => xmlTrk.SubChannel.Image.Format + }; if(trk.FileOffset > 0) xmlTrk.SubChannel.Image.Offset = trk.SubchannelOffset; diff --git a/Aaru.Decoders/Bluray/DI.cs b/Aaru.Decoders/Bluray/DI.cs index 6b6321856..8102b6020 100644 --- a/Aaru.Decoders/Bluray/DI.cs +++ b/Aaru.Decoders/Bluray/DI.cs @@ -435,90 +435,29 @@ public static class DI public static string ManufacturerFromDI(string manufacturerId) { - var manufacturer = ""; - // ReSharper disable StringLiteralTypo - switch(manufacturerId) - { - case "AMESOB": - case "OTCBDR": - manufacturer = "Amethystum Storage Technology Co., Ltd."; - - break; - case "UMEBDR": - case "ANWELL": - manufacturer = "Avic Umedisc HK Ltd."; - - break; - case "MAXELL": - manufacturer = "Hitachi Maxell, Ltd."; - - break; - case "CMCMAG": - manufacturer = "CMC Magnetics Corporation"; - - break; - case "ISMMBD": - manufacturer = "Info Source Digital Media (Zhong Shan) Co., Ltd."; - - break; - case "LGEBRA": - manufacturer = "LG Electronics Inc."; - - break; - case "MILLEN": - manufacturer = "Millenniata, Inc."; - - break; - case "VERBAT": - case "VAMKM": - manufacturer = "Mitsubishi Chemical Media Co., Ltd."; - - break; - case "PHILIP": - case "MBI": - manufacturer = "Moser Baer India Ltd."; - - break; - case "MEI": - case "PAN": - manufacturer = "Matsushita Electric Industrial Co., Ltd."; - - break; - case "PRODIS": - manufacturer = "Prodisc Technology Inc."; - - break; - case "RITEK": - manufacturer = "Ritek Co."; - - break; - case "SONY": - manufacturer = "Sony Corporation"; - - break; - case "TYG-BD": - manufacturer = "Taiyo Yuden Company Ltd."; - - break; - case "TDKBLD": - manufacturer = "TDK Corporation"; - - break; - case "JVC-AM": - case "JVCVAM": - manufacturer = "Victor Advanced media Co., Ltd."; - - break; - case "JVCRE1": - manufacturer = "JVC KENWOOD Corporation"; - - break; - case "INFOME": - manufacturer = "InfoMedia Inc."; - - break; - } + string manufacturer = manufacturerId switch + { + "AMESOB" or "OTCBDR" => "Amethystum Storage Technology Co., Ltd.", + "UMEBDR" or "ANWELL" => "Avic Umedisc HK Ltd.", + "MAXELL" => "Hitachi Maxell, Ltd.", + "CMCMAG" => "CMC Magnetics Corporation", + "ISMMBD" => "Info Source Digital Media (Zhong Shan) Co., Ltd.", + "LGEBRA" => "LG Electronics Inc.", + "MILLEN" => "Millenniata, Inc.", + "VERBAT" or "VAMKM" => "Mitsubishi Chemical Media Co., Ltd.", + "PHILIP" or "MBI" => "Moser Baer India Ltd.", + "MEI" or "PAN" => "Matsushita Electric Industrial Co., Ltd.", + "PRODIS" => "Prodisc Technology Inc.", + "RITEK" => "Ritek Co.", + "SONY" => "Sony Corporation", + "TYG-BD" => "Taiyo Yuden Company Ltd.", + "TDKBLD" => "TDK Corporation", + "JVC-AM" or "JVCVAM" => "Victor Advanced media Co., Ltd.", + "JVCRE1" => "JVC KENWOOD Corporation", + "INFOME" => "InfoMedia Inc.", + _ => "" + }; // ReSharper restore StringLiteralTypo diff --git a/Aaru.Decoders/DVD/PFI.cs b/Aaru.Decoders/DVD/PFI.cs index ff2c0e926..4038c0943 100644 --- a/Aaru.Decoders/DVD/PFI.cs +++ b/Aaru.Decoders/DVD/PFI.cs @@ -995,173 +995,50 @@ public static class PFI [SuppressMessage("ReSharper", "StringLiteralTypo")] public static string ManufacturerFromDVDPlusID(string manufacturerId) { - var manufacturer = ""; - - switch(manufacturerId) - { - case "CMC MAG": - manufacturer = "CMC Magnetics Corporation"; - - break; - case "INFOME": - manufacturer = "InfoMedia Inc."; - - break; - case "RITEK": - manufacturer = "Ritek Co."; - - break; - case "RICOHJPN": - manufacturer = "Ricoh Company, Ltd."; - - break; - case "ISSM": - manufacturer = "Info Source Digital Media (Zhongshan) Co., Ltd."; - - break; - case "LD": - manufacturer = "Lead Data Inc."; - - break; - case "MAXELL": - manufacturer = "Hitachi Maxell, Ltd."; - - break; - case "MCC": - manufacturer = "Mitsubishi Kagaku Media Co., LTD."; - - break; - case "PRODISC": - manufacturer = "Prodisc Technology Inc."; - - break; - case "Philips": - case "PHILIPS": - - manufacturer = "Philips Components"; - - break; - case "YUDEN000": - manufacturer = "Taiyo Yuden Company Ltd."; - - break; - case "AML": - manufacturer = "Avic Umedisc HK Ltd."; - - break; - case "DAXON": - manufacturer = "Daxon Technology Inc."; - - break; - case "FTI": - manufacturer = "Falcon Technologies International L.L.C."; - - break; - case "GSC503": - manufacturer = "Gigastore Corporation"; - - break; - case "MBIPG101": - manufacturer = "Moser Baer India Ltd."; - - break; - case "OPTODISC": - manufacturer = "OptoDisc Ltd."; - - break; - case "SONY": - manufacturer = "Sony Corporation"; - - break; - case "TDK": - manufacturer = "TDK Corporation"; - - break; - case "SENTINEL": - manufacturer = "Sentinel B.V."; - - break; - case "BeAll000": - manufacturer = "BeALL Developers, Inc."; - - break; - case "MPOMEDIA": - manufacturer = "MPO Disque Compact"; - - break; - case "IMC JPN": - manufacturer = "Intermedia Co., Ltd."; - - break; - case "INFODISC": - manufacturer = "InfoDisc Technology Co., Ltd."; - - break; - case "WFKA11": - manufacturer = "Wealth Fair Investment Inc."; - - break; - case "MAM": - manufacturer = "Manufacturing Advanced Media Europe"; - - break; - case "VDSPMSAB": - manufacturer = "Interaxia Digital Storage Materials AG"; - - break; - case "KIC00000": - manufacturer = "Advanced Media Corporation"; - - break; - case "MJC": - manufacturer = "Megan Media Holdings Berhad"; - - break; - case "MUST": - manufacturer = "Must Technology Co., Ltd."; - - break; - case "IS02": - manufacturer = "Infosmart Technology Ltd."; - - break; - case "DDDessau": - manufacturer = "Digital Disc Dessau GmbH"; - - break; - case "SKYMEDIA": - manufacturer = "Sky Media Manufacturing S.A."; - - break; - case "MICRON": - manufacturer = "Eastgate Technology Ltd."; - - break; - case "VIVA": - manufacturer = "Viva Optical Disc Manufacturing Ltd."; - - break; - case "EMDPZ3": - manufacturer = "E-TOP Mediatek Inc."; - - break; - case "LGEP16": - manufacturer = "LG Electronics Inc."; - - break; - case "POS": - manufacturer = "POSTECH Corporation"; - - break; - case "Dvsn+160": - manufacturer = "Digital Storage Technology Co., Ltd."; - - break; - case "ODMS": - manufacturer = "VDL Optical Disc Manufacturing Systems"; - - break; - } + string manufacturer = manufacturerId switch + { + "CMC MAG" => "CMC Magnetics Corporation", + "INFOME" => "InfoMedia Inc.", + "RITEK" => "Ritek Co.", + "RICOHJPN" => "Ricoh Company, Ltd.", + "ISSM" => "Info Source Digital Media (Zhongshan) Co., Ltd.", + "LD" => "Lead Data Inc.", + "MAXELL" => "Hitachi Maxell, Ltd.", + "MCC" => "Mitsubishi Kagaku Media Co., LTD.", + "PRODISC" => "Prodisc Technology Inc.", + "Philips" or "PHILIPS" => "Philips Components", + "YUDEN000" => "Taiyo Yuden Company Ltd.", + "AML" => "Avic Umedisc HK Ltd.", + "DAXON" => "Daxon Technology Inc.", + "FTI" => "Falcon Technologies International L.L.C.", + "GSC503" => "Gigastore Corporation", + "MBIPG101" => "Moser Baer India Ltd.", + "OPTODISC" => "OptoDisc Ltd.", + "SONY" => "Sony Corporation", + "TDK" => "TDK Corporation", + "SENTINEL" => "Sentinel B.V.", + "BeAll000" => "BeALL Developers, Inc.", + "MPOMEDIA" => "MPO Disque Compact", + "IMC JPN" => "Intermedia Co., Ltd.", + "INFODISC" => "InfoDisc Technology Co., Ltd.", + "WFKA11" => "Wealth Fair Investment Inc.", + "MAM" => "Manufacturing Advanced Media Europe", + "VDSPMSAB" => "Interaxia Digital Storage Materials AG", + "KIC00000" => "Advanced Media Corporation", + "MJC" => "Megan Media Holdings Berhad", + "MUST" => "Must Technology Co., Ltd.", + "IS02" => "Infosmart Technology Ltd.", + "DDDessau" => "Digital Disc Dessau GmbH", + "SKYMEDIA" => "Sky Media Manufacturing S.A.", + "MICRON" => "Eastgate Technology Ltd.", + "VIVA" => "Viva Optical Disc Manufacturing Ltd.", + "EMDPZ3" => "E-TOP Mediatek Inc.", + "LGEP16" => "LG Electronics Inc.", + "POS" => "POSTECH Corporation", + "Dvsn+160" => "Digital Storage Technology Co., Ltd.", + "ODMS" => "VDL Optical Disc Manufacturing Systems", + _ => "" + }; return manufacturer != "" ? $"{manufacturer} (\"{manufacturerId}\")" : $"\"{manufacturerId}\""; } diff --git a/Aaru.Decoders/SCSI/Modes/Headers.cs b/Aaru.Decoders/SCSI/Modes/Headers.cs index 991b810dc..08866d197 100644 --- a/Aaru.Decoders/SCSI/Modes/Headers.cs +++ b/Aaru.Decoders/SCSI/Modes/Headers.cs @@ -682,214 +682,84 @@ public static partial class Modes break; case MediumTypes.Exatape54m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = Localization.EXB8200; - - break; - case DensityType.Ex8200c: - density = Localization.EXB8200_compressed; - - break; - case DensityType.Ex8500: - density = Localization.EXB8500; - - break; - case DensityType.Ex8500c: - density = Localization.EXB8500_compressed; - - break; - case DensityType.Mammoth: - density = Localization.TapeName_Mammoth; - - break; - case DensityType.DLT3_42k: - density = Localization.DLT3_42k; - - break; - case DensityType.DLT3_56t: - density = Localization.DLT3_56t; - - break; - case DensityType.DLT3_62k: - case DensityType.DLT3_62kAlt: - density = Localization.DLT3_62k; - - break; - case DensityType.DLT3c: - density = Localization.DLT3c; - - break; - default: - density = string.Format(Localization.unknown_density_code_0, - (byte)descriptor.Density); - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => Localization.EXB8200, + DensityType.Ex8200c => Localization.EXB8200_compressed, + DensityType.Ex8500 => Localization.EXB8500, + DensityType.Ex8500c => Localization.EXB8500_compressed, + DensityType.Mammoth => Localization.TapeName_Mammoth, + DensityType.DLT3_42k => Localization.DLT3_42k, + DensityType.DLT3_56t => Localization.DLT3_56t, + DensityType.DLT3_62k or DensityType.DLT3_62kAlt => Localization.DLT3_62k, + DensityType.DLT3c => Localization.DLT3c, + _ => string.Format(Localization.unknown_density_code_0, + (byte)descriptor.Density) + }; } break; case MediumTypes.Exatape80m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = Localization.EXB8200; - - break; - case DensityType.Ex8200c: - density = Localization.EXB8200_compressed; - - break; - case DensityType.Ex8500: - density = Localization.EXB8500; - - break; - case DensityType.Ex8500c: - density = Localization.EXB8500_compressed; - - break; - case DensityType.Mammoth: - density = Localization.TapeName_Mammoth; - - break; - case DensityType.DLT3_62k: - case DensityType.DLT3_62kAlt: - density = Localization.DLT3_XT; - - break; - case DensityType.DLT3c: - density = Localization.DLT3_XT_compressed; - - break; - default: - density = string.Format(Localization.unknown_density_code_0, - (byte)descriptor.Density); - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => Localization.EXB8200, + DensityType.Ex8200c => Localization.EXB8200_compressed, + DensityType.Ex8500 => Localization.EXB8500, + DensityType.Ex8500c => Localization.EXB8500_compressed, + DensityType.Mammoth => Localization.TapeName_Mammoth, + DensityType.DLT3_62k or DensityType.DLT3_62kAlt => Localization.DLT3_XT, + DensityType.DLT3c => Localization.DLT3_XT_compressed, + _ => string.Format(Localization.unknown_density_code_0, + (byte)descriptor.Density) + }; } break; case MediumTypes.Exatape106m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = Localization.EXB8200; - - break; - case DensityType.Ex8200c: - density = Localization.EXB8200_compressed; - - break; - case DensityType.Ex8500: - density = Localization.EXB8500; - - break; - case DensityType.Ex8500c: - density = Localization.EXB8500_compressed; - - break; - case DensityType.Mammoth: - density = Localization.TapeName_Mammoth; - - break; - case DensityType.DLT4: - case DensityType.DLT4Alt: - density = Localization.DLT4; - - break; - case DensityType.DLT4_123k: - case DensityType.DLT4_123kAlt: - density = Localization.DLT4_123k; - - break; - case DensityType.DLT4_98k: - density = Localization.DLT4_98k; - - break; - case DensityType.Travan5: - density = Localization.Travan5; - - break; - case DensityType.DLT4c: - density = Localization.DLT4c; - - break; - case DensityType.DLT4_85k: - density = Localization.DLT4_85k; - - break; - case DensityType.DLT4c_85k: - density = Localization.DLT4c_85k; - - break; - case DensityType.DLT4c_123k: - density = Localization.DLT4c_123k; - - break; - case DensityType.DLT4c_98k: - density = Localization.DLT4c_98k; - - break; - default: - density = string.Format(Localization.unknown_density_code_0, - (byte)descriptor.Density); - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => Localization.EXB8200, + DensityType.Ex8200c => Localization.EXB8200_compressed, + DensityType.Ex8500 => Localization.EXB8500, + DensityType.Ex8500c => Localization.EXB8500_compressed, + DensityType.Mammoth => Localization.TapeName_Mammoth, + DensityType.DLT4 or DensityType.DLT4Alt => Localization.DLT4, + DensityType.DLT4_123k or DensityType.DLT4_123kAlt => Localization + .DLT4_123k, + DensityType.DLT4_98k => Localization.DLT4_98k, + DensityType.Travan5 => Localization.Travan5, + DensityType.DLT4c => Localization.DLT4c, + DensityType.DLT4_85k => Localization.DLT4_85k, + DensityType.DLT4c_85k => Localization.DLT4c_85k, + DensityType.DLT4c_123k => Localization.DLT4c_123k, + DensityType.DLT4c_98k => Localization.DLT4c_98k, + _ => string.Format(Localization.unknown_density_code_0, + (byte)descriptor.Density) + }; } break; case MediumTypes.Exatape106mXL: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = Localization.EXB8200; + density = descriptor.Density switch + { + DensityType.Ex8200 => Localization.EXB8200, + DensityType.Ex8200c => Localization.EXB8200_compressed, + DensityType.Ex8500 => Localization.EXB8500, + DensityType.Ex8500c => Localization.EXB8500_compressed, + DensityType.Mammoth => Localization.TapeName_Mammoth, + DensityType.SDLT1_133k or DensityType.SDLT1_133kAlt => Localization + .SDLT1_133k, + DensityType.SDLT1 => - break; - case DensityType.Ex8200c: - density = Localization.EXB8200_compressed; - - break; - case DensityType.Ex8500: - density = Localization.EXB8500; - - break; - case DensityType.Ex8500c: - density = Localization.EXB8500_compressed; - - break; - case DensityType.Mammoth: - density = Localization.TapeName_Mammoth; - - break; - case DensityType.SDLT1_133k: - case DensityType.SDLT1_133kAlt: - density = Localization.SDLT1_133k; - - break; - case DensityType.SDLT1: - //case DensityType.SDLT1Alt: - density = Localization.SDLT1; - - break; - case DensityType.SDLT1c: - density = Localization.SDLT1c; - - break; - /*case DensityType.SDLT1_133kAlt: - density = "Super DLTtape I at 133000 bpi compressed"; - break;*/ - default: - density = string.Format(Localization.unknown_density_code_0, - (byte)descriptor.Density); - - break; - } + //case DensityType.SDLT1Alt: + Localization.SDLT1, + DensityType.SDLT1c => Localization.SDLT1c, + _ => string.Format(Localization.unknown_density_code_0, + (byte)descriptor.Density) + }; } break; @@ -906,23 +776,14 @@ public static partial class Modes break; case MediumTypes.VStapeI: { - switch(descriptor.Density) - { - case DensityType.VStape1: - case DensityType.VStape1Alt: - density = Localization.MediumType_VStapeI; - - break; - case DensityType.VStape1c: - density = Localization.VStape1c; - - break; - default: - density = string.Format(Localization.unknown_density_code_0, - (byte)descriptor.Density); - - break; - } + density = descriptor.Density switch + { + DensityType.VStape1 or DensityType.VStape1Alt => Localization + .MediumType_VStapeI, + DensityType.VStape1c => Localization.VStape1c, + _ => string.Format(Localization.unknown_density_code_0, + (byte)descriptor.Density) + }; } break; diff --git a/Aaru.Decoders/SCSI/Sense.cs b/Aaru.Decoders/SCSI/Sense.cs index 86259130d..15335d758 100644 --- a/Aaru.Decoders/SCSI/Sense.cs +++ b/Aaru.Decoders/SCSI/Sense.cs @@ -340,19 +340,15 @@ public static class Sense { SenseType type = GetType(sense); - switch(type) - { - case SenseType.StandardSense: - return PrettifySense(DecodeStandard(sense)); - case SenseType.ExtendedSenseFixedCurrent: - case SenseType.ExtendedSenseFixedPast: - return PrettifySense(DecodeFixed(sense)); - case SenseType.ExtendedSenseDescriptorCurrent: - case SenseType.ExtendedSenseDescriptorPast: - return PrettifySense(DecodeDescriptor(sense)); - default: - return null; - } + return type switch + { + SenseType.StandardSense => PrettifySense(DecodeStandard(sense)), + SenseType.ExtendedSenseFixedCurrent or SenseType.ExtendedSenseFixedPast => + PrettifySense(DecodeFixed(sense)), + SenseType.ExtendedSenseDescriptorCurrent or SenseType.ExtendedSenseDescriptorPast => + PrettifySense(DecodeDescriptor(sense)), + _ => null + }; } public static string PrettifySense(StandardSense? sense) diff --git a/Aaru.Devices/Device/ScsiCommands/SSC.cs b/Aaru.Devices/Device/ScsiCommands/SSC.cs index dbaf41cca..98c82f939 100644 --- a/Aaru.Devices/Device/ScsiCommands/SSC.cs +++ b/Aaru.Devices/Device/ScsiCommands/SSC.cs @@ -570,28 +570,19 @@ public partial class Device public bool ReadPosition(out byte[] buffer, out byte[] senseBuffer, SscPositionForms responseForm, uint timeout, out double duration) { - switch(responseForm) - { - case SscPositionForms.Long: - case SscPositionForms.OldLong: - case SscPositionForms.OldLongTclpVendor: - case SscPositionForms.OldLongVendor: - case SscPositionForms.Extended: - buffer = new byte[32]; - - break; - case SscPositionForms.OldTclp: - case SscPositionForms.OldTclpVendor: - case SscPositionForms.Short: - case SscPositionForms.VendorShort: - buffer = new byte[20]; - - break; - default: - buffer = new byte[32]; // Invalid - - break; - } + buffer = responseForm switch + { + SscPositionForms.Long + or SscPositionForms.OldLong + or SscPositionForms.OldLongTclpVendor + or SscPositionForms.OldLongVendor + or SscPositionForms.Extended => new byte[32], + SscPositionForms.OldTclp + or SscPositionForms.OldTclpVendor + or SscPositionForms.Short + or SscPositionForms.VendorShort => new byte[20], + _ => new byte[32] + }; var cdb = new byte[10]; senseBuffer = new byte[64]; diff --git a/Aaru.Devices/Linux/Command.cs b/Aaru.Devices/Linux/Command.cs index d1ddcbc06..dd996fefe 100644 --- a/Aaru.Devices/Linux/Command.cs +++ b/Aaru.Devices/Linux/Command.cs @@ -110,24 +110,18 @@ partial class Device /// SG_IO direction static ScsiDirection AtaProtocolToScsiDirection(AtaProtocol protocol) { - switch(protocol) - { - case AtaProtocol.DeviceDiagnostic: - case AtaProtocol.DeviceReset: - case AtaProtocol.HardReset: - case AtaProtocol.NonData: - case AtaProtocol.SoftReset: - case AtaProtocol.ReturnResponse: - return ScsiDirection.None; - case AtaProtocol.PioIn: - case AtaProtocol.UDmaIn: - return ScsiDirection.In; - case AtaProtocol.PioOut: - case AtaProtocol.UDmaOut: - return ScsiDirection.Out; - default: - return ScsiDirection.Unspecified; - } + return protocol switch + { + AtaProtocol.DeviceDiagnostic + or AtaProtocol.DeviceReset + or AtaProtocol.HardReset + or AtaProtocol.NonData + or AtaProtocol.SoftReset + or AtaProtocol.ReturnResponse => ScsiDirection.None, + AtaProtocol.PioIn or AtaProtocol.UDmaIn => ScsiDirection.In, + AtaProtocol.PioOut or AtaProtocol.UDmaOut => ScsiDirection.Out, + _ => ScsiDirection.Unspecified + }; } /// @@ -150,18 +144,11 @@ partial class Device if(transferRegister != AtaTransferRegister.NoTransfer && protocol != AtaProtocol.NonData) { - switch(protocol) - { - case AtaProtocol.PioIn: - case AtaProtocol.UDmaIn: - cdb[2] = 0x08; - - break; - default: - cdb[2] = 0x00; - - break; - } + cdb[2] = protocol switch + { + AtaProtocol.PioIn or AtaProtocol.UDmaIn => 0x08, + _ => 0x00 + }; if(transferBlocks) cdb[2] |= 0x04; @@ -222,18 +209,11 @@ partial class Device if(transferRegister != AtaTransferRegister.NoTransfer && protocol != AtaProtocol.NonData) { - switch(protocol) - { - case AtaProtocol.PioIn: - case AtaProtocol.UDmaIn: - cdb[2] = 0x08; - - break; - default: - cdb[2] = 0x00; - - break; - } + cdb[2] = protocol switch + { + AtaProtocol.PioIn or AtaProtocol.UDmaIn => 0x08, + _ => 0x00 + }; if(transferBlocks) cdb[2] |= 0x04; @@ -295,18 +275,11 @@ partial class Device if(transferRegister != AtaTransferRegister.NoTransfer && protocol != AtaProtocol.NonData) { - switch(protocol) - { - case AtaProtocol.PioIn: - case AtaProtocol.UDmaIn: - cdb[2] = 0x08; - - break; - default: - cdb[2] = 0x00; - - break; - } + cdb[2] = protocol switch + { + AtaProtocol.PioIn or AtaProtocol.UDmaIn => 0x08, + _ => 0x00 + }; if(transferBlocks) cdb[2] |= 0x04; diff --git a/Aaru.Devices/Linux/ListDevices.cs b/Aaru.Devices/Linux/ListDevices.cs index 99b5cd4b2..22aa49e3c 100644 --- a/Aaru.Devices/Linux/ListDevices.cs +++ b/Aaru.Devices/Linux/ListDevices.cs @@ -140,19 +140,12 @@ static class ListDevices else devices[i].Bus = devices[i].Bus.ToUpper(); - switch(devices[i].Bus) - { - case "ATA": - case "ATAPI": - case "SCSI": - case "USB": - case "PCMCIA": - case "FireWire": - case "MMC/SD": - devices[i].Supported = true; - - break; - } + devices[i].Supported = devices[i].Bus switch + { + "ATA" or "ATAPI" or "SCSI" or "USB" or "PCMCIA" or "FireWire" or "MMC/SD" => + true, + _ => devices[i].Supported + }; } return devices; diff --git a/Aaru.Devices/Windows/Command.cs b/Aaru.Devices/Windows/Command.cs index 125e5d81f..8105ac88b 100644 --- a/Aaru.Devices/Windows/Command.cs +++ b/Aaru.Devices/Windows/Command.cs @@ -150,20 +150,12 @@ partial class Device } }; - switch(protocol) - { - case AtaProtocol.PioIn: - case AtaProtocol.UDmaIn: - case AtaProtocol.Dma: - aptd.AtaFlags = AtaFlags.DataIn; - - break; - case AtaProtocol.PioOut: - case AtaProtocol.UDmaOut: - aptd.AtaFlags = AtaFlags.DataOut; - - break; - } + aptd.AtaFlags = protocol switch + { + AtaProtocol.PioIn or AtaProtocol.UDmaIn or AtaProtocol.Dma => AtaFlags.DataIn, + AtaProtocol.PioOut or AtaProtocol.UDmaOut => AtaFlags.DataOut, + _ => aptd.AtaFlags + }; switch(protocol) { @@ -253,20 +245,12 @@ partial class Device } }; - switch(protocol) - { - case AtaProtocol.PioIn: - case AtaProtocol.UDmaIn: - case AtaProtocol.Dma: - aptd.AtaFlags = AtaFlags.DataIn; - - break; - case AtaProtocol.PioOut: - case AtaProtocol.UDmaOut: - aptd.AtaFlags = AtaFlags.DataOut; - - break; - } + aptd.AtaFlags = protocol switch + { + AtaProtocol.PioIn or AtaProtocol.UDmaIn or AtaProtocol.Dma => AtaFlags.DataIn, + AtaProtocol.PioOut or AtaProtocol.UDmaOut => AtaFlags.DataOut, + _ => aptd.AtaFlags + }; switch(protocol) { @@ -363,20 +347,12 @@ partial class Device } }; - switch(protocol) - { - case AtaProtocol.PioIn: - case AtaProtocol.UDmaIn: - case AtaProtocol.Dma: - aptd.AtaFlags = AtaFlags.DataIn; - - break; - case AtaProtocol.PioOut: - case AtaProtocol.UDmaOut: - aptd.AtaFlags = AtaFlags.DataOut; - - break; - } + aptd.AtaFlags = protocol switch + { + AtaProtocol.PioIn or AtaProtocol.UDmaIn or AtaProtocol.Dma => AtaFlags.DataIn, + AtaProtocol.PioOut or AtaProtocol.UDmaOut => AtaFlags.DataOut, + _ => aptd.AtaFlags + }; switch(protocol) { diff --git a/Aaru.Devices/Windows/ListDevices.cs b/Aaru.Devices/Windows/ListDevices.cs index 71f3c7e7d..31742bcef 100644 --- a/Aaru.Devices/Windows/ListDevices.cs +++ b/Aaru.Devices/Windows/ListDevices.cs @@ -197,24 +197,22 @@ static class ListDevices } } - switch(descriptor.BusType) - { - case StorageBusType.SCSI: - case StorageBusType.ATAPI: - case StorageBusType.ATA: - case StorageBusType.FireWire: - case StorageBusType.SSA: - case StorageBusType.Fibre: - case StorageBusType.USB: - case StorageBusType.iSCSI: - case StorageBusType.SAS: - case StorageBusType.SATA: - case StorageBusType.SecureDigital: - case StorageBusType.MultiMediaCard: - info.Supported = true; - - break; - } + info.Supported = descriptor.BusType switch + { + StorageBusType.SCSI + or StorageBusType.ATAPI + or StorageBusType.ATA + or StorageBusType.FireWire + or StorageBusType.SSA + or StorageBusType.Fibre + or StorageBusType.USB + or StorageBusType.iSCSI + or StorageBusType.SAS + or StorageBusType.SATA + or StorageBusType.SecureDigital + or StorageBusType.MultiMediaCard => true, + _ => info.Supported + }; Marshal.FreeHGlobal(descriptorPtr); devList.Add(info); diff --git a/Aaru.Filesystems/FAT/Super.cs b/Aaru.Filesystems/FAT/Super.cs index e45d506b9..f50425d37 100644 --- a/Aaru.Filesystems/FAT/Super.cs +++ b/Aaru.Filesystems/FAT/Super.cs @@ -748,18 +748,13 @@ public sealed partial class FAT Metadata.VolumeName = Metadata.VolumeName?.Trim(); _statfs.Blocks = Metadata.Clusters; - switch(bpbKind) - { - case BpbKind.ShortFat32: - case BpbKind.LongFat32: - _statfs.Type = Metadata.Type == FS_TYPE_FAT_PLUS ? FS_TYPE_FAT_PLUS : FS_TYPE_FAT32; - - break; - default: - _statfs.Type = _fat16 ? FS_TYPE_FAT16 : FS_TYPE_FAT12; - - break; - } + _statfs.Type = bpbKind switch + { + BpbKind.ShortFat32 or BpbKind.LongFat32 => Metadata.Type == FS_TYPE_FAT_PLUS + ? FS_TYPE_FAT_PLUS + : FS_TYPE_FAT32, + _ => _fat16 ? FS_TYPE_FAT16 : FS_TYPE_FAT12 + }; _bytesPerCluster = _sectorsPerCluster * imagePlugin.Info.SectorSize; diff --git a/Aaru.Filesystems/LisaFS/File.cs b/Aaru.Filesystems/LisaFS/File.cs index 4b3fe950a..e15c710ed 100644 --- a/Aaru.Filesystems/LisaFS/File.cs +++ b/Aaru.Filesystems/LisaFS/File.cs @@ -114,22 +114,16 @@ public sealed partial class LisaFS if(_debug) { - switch(mynode.FileId) - { - case FILEID_BOOT_SIGNED: - case FILEID_LOADER_SIGNED: - case (short)FILEID_MDDF: - case (short)FILEID_BITMAP: - case (short)FILEID_SRECORD: - case (short)FILEID_CATALOG: - error = ReadSystemFile(mynode.FileId, out tmp); - - break; - default: - error = ReadFile(mynode.FileId, out tmp); - - break; - } + error = mynode.FileId switch + { + FILEID_BOOT_SIGNED + or FILEID_LOADER_SIGNED + or (short)FILEID_MDDF + or (short)FILEID_BITMAP + or (short)FILEID_SRECORD + or (short)FILEID_CATALOG => ReadSystemFile(mynode.FileId, out tmp), + _ => ReadFile(mynode.FileId, out tmp) + }; } else error = ReadFile(mynode.FileId, out tmp); diff --git a/Aaru.Gui/ViewModels/Panels/SubdirectoryViewModel.cs b/Aaru.Gui/ViewModels/Panels/SubdirectoryViewModel.cs index 3056afa2c..bf7a7ec3e 100644 --- a/Aaru.Gui/ViewModels/Panels/SubdirectoryViewModel.cs +++ b/Aaru.Gui/ViewModels/Panels/SubdirectoryViewModel.cs @@ -204,56 +204,50 @@ public sealed class SubdirectoryViewModel for(var ci = 0; ci < chars.Length; ci++) { - switch(filename[ci]) - { - case '<': - case '>': - case ':': - case '\\': - case '/': - case '|': - case '?': - case '*': - case '\u0000': - case '\u0001': - case '\u0002': - case '\u0003': - case '\u0004': - case '\u0005': - case '\u0006': - case '\u0007': - case '\u0008': - case '\u0009': - case '\u000A': - case '\u000B': - case '\u000C': - case '\u000D': - case '\u000E': - case '\u000F': - case '\u0010': - case '\u0011': - case '\u0012': - case '\u0013': - case '\u0014': - case '\u0015': - case '\u0016': - case '\u0017': - case '\u0018': - case '\u0019': - case '\u001A': - case '\u001B': - case '\u001C': - case '\u001D': - case '\u001E': - case '\u001F': - chars[ci] = '_'; - - break; - default: - chars[ci] = filename[ci]; - - break; - } + chars[ci] = filename[ci] switch + { + '<' + or '>' + or ':' + or '\\' + or '/' + or '|' + or '?' + or '*' + or '\u0000' + or '\u0001' + or '\u0002' + or '\u0003' + or '\u0004' + or '\u0005' + or '\u0006' + or '\u0007' + or '\u0008' + or '\u0009' + or '\u000A' + or '\u000B' + or '\u000C' + or '\u000D' + or '\u000E' + or '\u000F' + or '\u0010' + or '\u0011' + or '\u0012' + or '\u0013' + or '\u0014' + or '\u0015' + or '\u0016' + or '\u0017' + or '\u0018' + or '\u0019' + or '\u001A' + or '\u001B' + or '\u001C' + or '\u001D' + or '\u001E' + or '\u001F' => '_', + _ => filename[ci] + }; } if(filename.StartsWith("CON", StringComparison.InvariantCultureIgnoreCase) || diff --git a/Aaru.Gui/ViewModels/Windows/MainWindowViewModel.cs b/Aaru.Gui/ViewModels/Windows/MainWindowViewModel.cs index ec9e01b5c..1c9de961d 100644 --- a/Aaru.Gui/ViewModels/Windows/MainWindowViewModel.cs +++ b/Aaru.Gui/ViewModels/Windows/MainWindowViewModel.cs @@ -857,47 +857,26 @@ public sealed class MainWindowViewModel : ViewModelBase remoteDev.RemoteArchitecture); } - switch(dev.Type) - { - case DeviceType.ATAPI: - case DeviceType.SCSI: - switch(dev.ScsiType) - { - case PeripheralDeviceTypes.DirectAccess: - case PeripheralDeviceTypes.SCSIZonedBlockDevice: - case PeripheralDeviceTypes.SimplifiedDevice: - deviceModel.Icon = dev.IsRemovable + deviceModel.Icon = dev.Type switch + { + DeviceType.ATAPI or DeviceType.SCSI => dev.ScsiType switch + { + PeripheralDeviceTypes.DirectAccess + or PeripheralDeviceTypes.SCSIZonedBlockDevice + or PeripheralDeviceTypes.SimplifiedDevice => dev.IsRemovable ? dev.IsUsb ? _usbIcon : _removableIcon - : _genericHddIcon; - - break; - case PeripheralDeviceTypes.SequentialAccess: - deviceModel.Icon = _genericTapeIcon; - - break; - case PeripheralDeviceTypes.OpticalDevice: - case PeripheralDeviceTypes.WriteOnceDevice: - case PeripheralDeviceTypes.OCRWDevice: - deviceModel.Icon = _removableIcon; - - break; - case PeripheralDeviceTypes.MultiMediaDevice: - deviceModel.Icon = _genericOpticalIcon; - - break; - } - - break; - case DeviceType.SecureDigital: - case DeviceType.MMC: - deviceModel.Icon = _sdIcon; - - break; - case DeviceType.NVMe: - deviceModel.Icon = null; - - break; - } + : _genericHddIcon, + PeripheralDeviceTypes.SequentialAccess => _genericTapeIcon, + PeripheralDeviceTypes.OpticalDevice + or PeripheralDeviceTypes.WriteOnceDevice + or PeripheralDeviceTypes.OCRWDevice => _removableIcon, + PeripheralDeviceTypes.MultiMediaDevice => _genericOpticalIcon, + _ => deviceModel.Icon + }, + DeviceType.SecureDigital or DeviceType.MMC => _sdIcon, + DeviceType.NVMe => null, + _ => deviceModel.Icon + }; dev.Close(); } diff --git a/Aaru.Gui/ViewModels/Windows/MediaDumpViewModel.cs b/Aaru.Gui/ViewModels/Windows/MediaDumpViewModel.cs index 92c598608..c005ac37a 100644 --- a/Aaru.Gui/ViewModels/Windows/MediaDumpViewModel.cs +++ b/Aaru.Gui/ViewModels/Windows/MediaDumpViewModel.cs @@ -197,59 +197,53 @@ public sealed class MediaDumpViewModel : ViewModelBase DisplayName = info.DisplayName })); - switch(mediaType) - { - case MediaType.CD: - case MediaType.CDDA: - case MediaType.CDG: - case MediaType.CDEG: - case MediaType.CDI: - case MediaType.CDROM: - case MediaType.CDROMXA: - case MediaType.CDPLUS: - case MediaType.CDMO: - case MediaType.CDR: - case MediaType.CDRW: - case MediaType.CDMRW: - case MediaType.VCD: - case MediaType.SVCD: - case MediaType.PCD: - case MediaType.DDCD: - case MediaType.DDCDR: - case MediaType.DDCDRW: - case MediaType.DTSCD: - case MediaType.CDMIDI: - case MediaType.CDV: - case MediaType.CDIREADY: - case MediaType.FMTOWNS: - case MediaType.PS1CD: - case MediaType.PS2CD: - case MediaType.MEGACD: - case MediaType.SATURNCD: - case MediaType.GDROM: - case MediaType.GDR: - case MediaType.MilCD: - case MediaType.SuperCDROM2: - case MediaType.JaguarCD: - case MediaType.ThreeDO: - case MediaType.PCFX: - case MediaType.NeoGeoCD: - case MediaType.CDTV: - case MediaType.CD32: - case MediaType.Playdia: - case MediaType.Pippin: - case MediaType.VideoNow: - case MediaType.VideoNowColor: - case MediaType.VideoNowXp: - case MediaType.CVD: - Track1PregapVisible = true; - - break; - default: - Track1PregapVisible = false; - - break; - } + Track1PregapVisible = mediaType switch + { + MediaType.CD + or MediaType.CDDA + or MediaType.CDG + or MediaType.CDEG + or MediaType.CDI + or MediaType.CDROM + or MediaType.CDROMXA + or MediaType.CDPLUS + or MediaType.CDMO + or MediaType.CDR + or MediaType.CDRW + or MediaType.CDMRW + or MediaType.VCD + or MediaType.SVCD + or MediaType.PCD + or MediaType.DDCD + or MediaType.DDCDR + or MediaType.DDCDRW + or MediaType.DTSCD + or MediaType.CDMIDI + or MediaType.CDV + or MediaType.CDIREADY + or MediaType.FMTOWNS + or MediaType.PS1CD + or MediaType.PS2CD + or MediaType.MEGACD + or MediaType.SATURNCD + or MediaType.GDROM + or MediaType.GDR + or MediaType.MilCD + or MediaType.SuperCDROM2 + or MediaType.JaguarCD + or MediaType.ThreeDO + or MediaType.PCFX + or MediaType.NeoGeoCD + or MediaType.CDTV + or MediaType.CD32 + or MediaType.Playdia + or MediaType.Pippin + or MediaType.VideoNow + or MediaType.VideoNowColor + or MediaType.VideoNowXp + or MediaType.CVD => true, + _ => false + }; _devicePath = devicePath; } diff --git a/Aaru.Images/AaruFormat/Helpers.cs b/Aaru.Images/AaruFormat/Helpers.cs index a27f68e30..bff118caa 100644 --- a/Aaru.Images/AaruFormat/Helpers.cs +++ b/Aaru.Images/AaruFormat/Helpers.cs @@ -140,107 +140,105 @@ public sealed partial class AaruFormat // Get the Aaru Metadata media type from Aaru media type static MetadataMediaType GetMetadataMediaType(MediaType type) { - switch(type) - { - case MediaType.CD: - case MediaType.CDDA: - case MediaType.CDG: - case MediaType.CDEG: - case MediaType.CDI: - case MediaType.CDIREADY: - case MediaType.CDROM: - case MediaType.CDROMXA: - case MediaType.CDPLUS: - case MediaType.CDMO: - case MediaType.CDR: - case MediaType.CDRW: - case MediaType.CDMRW: - case MediaType.VCD: - case MediaType.SVCD: - case MediaType.PCD: - case MediaType.SACD: - case MediaType.DDCD: - case MediaType.DDCDR: - case MediaType.DDCDRW: - case MediaType.DTSCD: - case MediaType.CDMIDI: - case MediaType.CDV: - case MediaType.DVDROM: - case MediaType.DVDR: - case MediaType.DVDRW: - case MediaType.DVDPR: - case MediaType.DVDPRW: - case MediaType.DVDPRWDL: - case MediaType.DVDRDL: - case MediaType.DVDPRDL: - case MediaType.DVDRAM: - case MediaType.DVDRWDL: - case MediaType.DVDDownload: - case MediaType.HDDVDROM: - case MediaType.HDDVDRAM: - case MediaType.HDDVDR: - case MediaType.HDDVDRW: - case MediaType.HDDVDRDL: - case MediaType.HDDVDRWDL: - case MediaType.BDROM: - case MediaType.UHDBD: - case MediaType.BDR: - case MediaType.BDRE: - case MediaType.BDRXL: - case MediaType.BDREXL: - case MediaType.EVD: - case MediaType.FVD: - case MediaType.HVD: - case MediaType.CBHD: - case MediaType.HDVMD: - case MediaType.VCDHD: - case MediaType.SVOD: - case MediaType.FDDVD: - case MediaType.LD: - case MediaType.LDROM: - case MediaType.CRVdisc: - case MediaType.LDROM2: - case MediaType.LVROM: - case MediaType.MegaLD: - case MediaType.PS1CD: - case MediaType.PS2CD: - case MediaType.PS2DVD: - case MediaType.PS3DVD: - case MediaType.PS3BD: - case MediaType.PS4BD: - case MediaType.PS5BD: - case MediaType.UMD: - case MediaType.XGD: - case MediaType.XGD2: - case MediaType.XGD3: - case MediaType.XGD4: - case MediaType.MEGACD: - case MediaType.SATURNCD: - case MediaType.GDROM: - case MediaType.GDR: - case MediaType.SuperCDROM2: - case MediaType.JaguarCD: - case MediaType.ThreeDO: - case MediaType.PCFX: - case MediaType.NeoGeoCD: - case MediaType.GOD: - case MediaType.WOD: - case MediaType.WUOD: - case MediaType.CDTV: - case MediaType.CD32: - case MediaType.Nuon: - case MediaType.Playdia: - case MediaType.Pippin: - case MediaType.FMTOWNS: - case MediaType.MilCD: - case MediaType.VideoNow: - case MediaType.VideoNowColor: - case MediaType.VideoNowXp: - case MediaType.CVD: - return MetadataMediaType.OpticalDisc; - default: - return MetadataMediaType.BlockMedia; - } + return type switch + { + MediaType.CD + or MediaType.CDDA + or MediaType.CDG + or MediaType.CDEG + or MediaType.CDI + or MediaType.CDIREADY + or MediaType.CDROM + or MediaType.CDROMXA + or MediaType.CDPLUS + or MediaType.CDMO + or MediaType.CDR + or MediaType.CDRW + or MediaType.CDMRW + or MediaType.VCD + or MediaType.SVCD + or MediaType.PCD + or MediaType.SACD + or MediaType.DDCD + or MediaType.DDCDR + or MediaType.DDCDRW + or MediaType.DTSCD + or MediaType.CDMIDI + or MediaType.CDV + or MediaType.DVDROM + or MediaType.DVDR + or MediaType.DVDRW + or MediaType.DVDPR + or MediaType.DVDPRW + or MediaType.DVDPRWDL + or MediaType.DVDRDL + or MediaType.DVDPRDL + or MediaType.DVDRAM + or MediaType.DVDRWDL + or MediaType.DVDDownload + or MediaType.HDDVDROM + or MediaType.HDDVDRAM + or MediaType.HDDVDR + or MediaType.HDDVDRW + or MediaType.HDDVDRDL + or MediaType.HDDVDRWDL + or MediaType.BDROM + or MediaType.UHDBD + or MediaType.BDR + or MediaType.BDRE + or MediaType.BDRXL + or MediaType.BDREXL + or MediaType.EVD + or MediaType.FVD + or MediaType.HVD + or MediaType.CBHD + or MediaType.HDVMD + or MediaType.VCDHD + or MediaType.SVOD + or MediaType.FDDVD + or MediaType.LD + or MediaType.LDROM + or MediaType.CRVdisc + or MediaType.LDROM2 + or MediaType.LVROM + or MediaType.MegaLD + or MediaType.PS1CD + or MediaType.PS2CD + or MediaType.PS2DVD + or MediaType.PS3DVD + or MediaType.PS3BD + or MediaType.PS4BD + or MediaType.PS5BD + or MediaType.UMD + or MediaType.XGD + or MediaType.XGD2 + or MediaType.XGD3 + or MediaType.XGD4 + or MediaType.MEGACD + or MediaType.SATURNCD + or MediaType.GDROM + or MediaType.GDR + or MediaType.SuperCDROM2 + or MediaType.JaguarCD + or MediaType.ThreeDO + or MediaType.PCFX + or MediaType.NeoGeoCD + or MediaType.GOD + or MediaType.WOD + or MediaType.WUOD + or MediaType.CDTV + or MediaType.CD32 + or MediaType.Nuon + or MediaType.Playdia + or MediaType.Pippin + or MediaType.FMTOWNS + or MediaType.MilCD + or MediaType.VideoNow + or MediaType.VideoNowColor + or MediaType.VideoNowXp + or MediaType.CVD => MetadataMediaType.OpticalDisc, + _ => MetadataMediaType.BlockMedia + }; } // Gets a DDT entry diff --git a/Aaru.Images/AaruFormat/Read.cs b/Aaru.Images/AaruFormat/Read.cs index 750d16c58..c7addd74f 100644 --- a/Aaru.Images/AaruFormat/Read.cs +++ b/Aaru.Images/AaruFormat/Read.cs @@ -2541,26 +2541,15 @@ public sealed partial class AaruFormat case MediaType.PriamDataTower: if(_sectorSubchannel == null) return ReadSector(sectorAddress, out buffer); - uint tagSize = 0; - - switch(_imageInfo.MediaType) - { - case MediaType.AppleFileWare: - case MediaType.AppleProfile: - case MediaType.AppleWidget: - tagSize = 20; - - break; - case MediaType.AppleSonySS: - case MediaType.AppleSonyDS: - tagSize = 12; - - break; - case MediaType.PriamDataTower: - tagSize = 24; - - break; - } + uint tagSize = _imageInfo.MediaType switch + { + MediaType.AppleFileWare + or MediaType.AppleProfile + or MediaType.AppleWidget => 20, + MediaType.AppleSonySS or MediaType.AppleSonyDS => 12, + MediaType.PriamDataTower => 24, + _ => 0 + }; uint sectorSize = 512 + tagSize; errno = ReadSectors(sectorAddress, length, out data); diff --git a/Aaru.Images/AaruFormat/Write.cs b/Aaru.Images/AaruFormat/Write.cs index 5a7b6fb11..ed1124088 100644 --- a/Aaru.Images/AaruFormat/Write.cs +++ b/Aaru.Images/AaruFormat/Write.cs @@ -4979,26 +4979,14 @@ public sealed partial class AaruFormat or MediaType.AppleWidget or MediaType.PriamDataTower) { - DataType tagType = DataType.NoData; - - switch(_imageInfo.MediaType) - { - case MediaType.AppleSonySS: - case MediaType.AppleSonyDS: - tagType = DataType.AppleSonyTag; - - break; - case MediaType.AppleFileWare: - case MediaType.AppleProfile: - case MediaType.AppleWidget: - tagType = DataType.AppleProfileTag; - - break; - case MediaType.PriamDataTower: - tagType = DataType.PriamDataTowerTag; - - break; - } + DataType tagType = _imageInfo.MediaType switch + { + MediaType.AppleSonySS or MediaType.AppleSonyDS => DataType.AppleSonyTag, + MediaType.AppleFileWare or MediaType.AppleProfile or MediaType.AppleWidget => + DataType.AppleProfileTag, + MediaType.PriamDataTower => DataType.PriamDataTowerTag, + _ => DataType.NoData + }; idxEntry = new IndexEntry { @@ -5021,24 +5009,15 @@ public sealed partial class AaruFormat crc64 = BitConverter.ToUInt64(blockCrc, 0) }; - switch(_imageInfo.MediaType) - { - case MediaType.AppleSonySS: - case MediaType.AppleSonyDS: - subchannelBlock.sectorSize = 12; - - break; - case MediaType.AppleFileWare: - case MediaType.AppleProfile: - case MediaType.AppleWidget: - subchannelBlock.sectorSize = 20; - - break; - case MediaType.PriamDataTower: - subchannelBlock.sectorSize = 24; - - break; - } + subchannelBlock.sectorSize = _imageInfo.MediaType switch + { + MediaType.AppleSonySS or MediaType.AppleSonyDS => 12, + MediaType.AppleFileWare + or MediaType.AppleProfile + or MediaType.AppleWidget => 20, + MediaType.PriamDataTower => 24, + _ => subchannelBlock.sectorSize + }; byte[] lzmaProperties = null; diff --git a/Aaru.Images/Alcohol120/Helpers.cs b/Aaru.Images/Alcohol120/Helpers.cs index 66655cab7..5beb63550 100644 --- a/Aaru.Images/Alcohol120/Helpers.cs +++ b/Aaru.Images/Alcohol120/Helpers.cs @@ -39,49 +39,28 @@ public sealed partial class Alcohol120 { static ushort TrackModeToCookedBytesPerSector(TrackMode trackMode) { - switch(trackMode) - { - case TrackMode.Mode1: - case TrackMode.Mode1Alt: - case TrackMode.Mode2F1: - case TrackMode.Mode2F1Alt: - return 2048; - case TrackMode.Mode2F2: - case TrackMode.Mode2F2Alt: - return 2324; - case TrackMode.Mode2: - return 2336; - case TrackMode.Audio: - case TrackMode.AudioAlt: - return 2352; - case TrackMode.DVD: - return 2048; - default: - return 0; - } + return trackMode switch + { + TrackMode.Mode1 or TrackMode.Mode1Alt or TrackMode.Mode2F1 or TrackMode.Mode2F1Alt => 2048, + TrackMode.Mode2F2 or TrackMode.Mode2F2Alt => 2324, + TrackMode.Mode2 => 2336, + TrackMode.Audio or TrackMode.AudioAlt => 2352, + TrackMode.DVD => 2048, + _ => 0 + }; } static TrackType TrackModeToTrackType(TrackMode trackType) { - switch(trackType) - { - case TrackMode.Mode1: - case TrackMode.Mode1Alt: - return TrackType.CdMode1; - case TrackMode.Mode2F1: - case TrackMode.Mode2F1Alt: - return TrackType.CdMode2Form1; - case TrackMode.Mode2F2: - case TrackMode.Mode2F2Alt: - return TrackType.CdMode2Form2; - case TrackMode.Mode2: - return TrackType.CdMode2Formless; - case TrackMode.Audio: - case TrackMode.AudioAlt: - return TrackType.Audio; - default: - return TrackType.Data; - } + return trackType switch + { + TrackMode.Mode1 or TrackMode.Mode1Alt => TrackType.CdMode1, + TrackMode.Mode2F1 or TrackMode.Mode2F1Alt => TrackType.CdMode2Form1, + TrackMode.Mode2F2 or TrackMode.Mode2F2Alt => TrackType.CdMode2Form2, + TrackMode.Mode2 => TrackType.CdMode2Formless, + TrackMode.Audio or TrackMode.AudioAlt => TrackType.Audio, + _ => TrackType.Data + }; } static MediaType MediumTypeToMediaType(MediumType discType) => discType switch @@ -96,59 +75,53 @@ public sealed partial class Alcohol120 static MediumType MediaTypeToMediumType(MediaType type) { - switch(type) - { - case MediaType.CD: - case MediaType.CDDA: - case MediaType.CDEG: - case MediaType.CDG: - case MediaType.CDI: - case MediaType.CDMIDI: - case MediaType.CDPLUS: - case MediaType.CDROM: - case MediaType.CDROMXA: - case MediaType.CDV: - case MediaType.DTSCD: - case MediaType.JaguarCD: - case MediaType.MEGACD: - case MediaType.PS1CD: - case MediaType.PS2CD: - case MediaType.SuperCDROM2: - case MediaType.SVCD: - case MediaType.SATURNCD: - case MediaType.ThreeDO: - case MediaType.VCD: - case MediaType.VCDHD: - case MediaType.NeoGeoCD: - case MediaType.PCFX: - case MediaType.CDTV: - case MediaType.CD32: - case MediaType.Nuon: - case MediaType.Playdia: - case MediaType.Pippin: - case MediaType.FMTOWNS: - case MediaType.MilCD: - case MediaType.VideoNow: - case MediaType.VideoNowColor: - case MediaType.VideoNowXp: - case MediaType.CVD: - return MediumType.CD; - case MediaType.CDR: - return MediumType.CDR; - case MediaType.CDRW: - case MediaType.CDMRW: - return MediumType.CDRW; - case MediaType.DVDR: - case MediaType.DVDRW: - case MediaType.DVDPR: - case MediaType.DVDRDL: - case MediaType.DVDRWDL: - case MediaType.DVDPRDL: - case MediaType.DVDPRWDL: - return MediumType.DVDR; - default: - return MediumType.DVD; - } + return type switch + { + MediaType.CD + or MediaType.CDDA + or MediaType.CDEG + or MediaType.CDG + or MediaType.CDI + or MediaType.CDMIDI + or MediaType.CDPLUS + or MediaType.CDROM + or MediaType.CDROMXA + or MediaType.CDV + or MediaType.DTSCD + or MediaType.JaguarCD + or MediaType.MEGACD + or MediaType.PS1CD + or MediaType.PS2CD + or MediaType.SuperCDROM2 + or MediaType.SVCD + or MediaType.SATURNCD + or MediaType.ThreeDO + or MediaType.VCD + or MediaType.VCDHD + or MediaType.NeoGeoCD + or MediaType.PCFX + or MediaType.CDTV + or MediaType.CD32 + or MediaType.Nuon + or MediaType.Playdia + or MediaType.Pippin + or MediaType.FMTOWNS + or MediaType.MilCD + or MediaType.VideoNow + or MediaType.VideoNowColor + or MediaType.VideoNowXp + or MediaType.CVD => MediumType.CD, + MediaType.CDR => MediumType.CDR, + MediaType.CDRW or MediaType.CDMRW => MediumType.CDRW, + MediaType.DVDR + or MediaType.DVDRW + or MediaType.DVDPR + or MediaType.DVDRDL + or MediaType.DVDRWDL + or MediaType.DVDPRDL + or MediaType.DVDPRWDL => MediumType.DVDR, + _ => MediumType.DVD + }; } static TrackMode TrackTypeToTrackMode(TrackType type) => type switch diff --git a/Aaru.Images/Alcohol120/Read.cs b/Aaru.Images/Alcohol120/Read.cs index 29ef1a10b..95efb3655 100644 --- a/Aaru.Images/Alcohol120/Read.cs +++ b/Aaru.Images/Alcohol120/Read.cs @@ -504,17 +504,15 @@ public sealed partial class Alcohol120 // Any non first track is audio audio |= alcoholTrack.point != 1 && alcoholTrack.mode is TrackMode.Audio or TrackMode.AudioAlt; - switch(alcoholTrack.mode) - { - case TrackMode.Mode2: - case TrackMode.Mode2F1: - case TrackMode.Mode2F2: - case TrackMode.Mode2F1Alt: - case TrackMode.Mode2F2Alt: - mode2 = true; - - break; - } + mode2 = alcoholTrack.mode switch + { + TrackMode.Mode2 + or TrackMode.Mode2F1 + or TrackMode.Mode2F2 + or TrackMode.Mode2F1Alt + or TrackMode.Mode2F2Alt => true, + _ => mode2 + }; } if(!data && !firstData) diff --git a/Aaru.Images/Alcohol120/Write.cs b/Aaru.Images/Alcohol120/Write.cs index b4a203360..0ce60b73d 100644 --- a/Aaru.Images/Alcohol120/Write.cs +++ b/Aaru.Images/Alcohol120/Write.cs @@ -89,53 +89,47 @@ public sealed partial class Alcohol120 _imageInfo.MediaType = mediaType; - switch(mediaType) - { - case MediaType.CD: - case MediaType.CDDA: - case MediaType.CDEG: - case MediaType.CDG: - case MediaType.CDI: - case MediaType.CDMIDI: - case MediaType.CDMRW: - case MediaType.CDPLUS: - case MediaType.CDR: - case MediaType.CDROM: - case MediaType.CDROMXA: - case MediaType.CDRW: - case MediaType.CDV: - case MediaType.DTSCD: - case MediaType.JaguarCD: - case MediaType.MEGACD: - case MediaType.PS1CD: - case MediaType.PS2CD: - case MediaType.SuperCDROM2: - case MediaType.SVCD: - case MediaType.SATURNCD: - case MediaType.ThreeDO: - case MediaType.VCD: - case MediaType.VCDHD: - case MediaType.NeoGeoCD: - case MediaType.PCFX: - case MediaType.CDTV: - case MediaType.CD32: - case MediaType.Nuon: - case MediaType.Playdia: - case MediaType.Pippin: - case MediaType.FMTOWNS: - case MediaType.MilCD: - case MediaType.VideoNow: - case MediaType.VideoNowColor: - case MediaType.VideoNowXp: - case MediaType.CVD: - _isDvd = false; - - break; - default: - _isDvd = true; - - break; - } + _isDvd = mediaType switch + { + MediaType.CD + or MediaType.CDDA + or MediaType.CDEG + or MediaType.CDG + or MediaType.CDI + or MediaType.CDMIDI + or MediaType.CDMRW + or MediaType.CDPLUS + or MediaType.CDR + or MediaType.CDROM + or MediaType.CDROMXA + or MediaType.CDRW + or MediaType.CDV + or MediaType.DTSCD + or MediaType.JaguarCD + or MediaType.MEGACD + or MediaType.PS1CD + or MediaType.PS2CD + or MediaType.SuperCDROM2 + or MediaType.SVCD + or MediaType.SATURNCD + or MediaType.ThreeDO + or MediaType.VCD + or MediaType.VCDHD + or MediaType.NeoGeoCD + or MediaType.PCFX + or MediaType.CDTV + or MediaType.CD32 + or MediaType.Nuon + or MediaType.Playdia + or MediaType.Pippin + or MediaType.FMTOWNS + or MediaType.MilCD + or MediaType.VideoNow + or MediaType.VideoNowColor + or MediaType.VideoNowXp + or MediaType.CVD => false, + _ => true + }; _trackFlags = new Dictionary(); diff --git a/Aaru.Images/BlindWrite5/Helpers.cs b/Aaru.Images/BlindWrite5/Helpers.cs index 3b69095d8..01fc45f54 100644 --- a/Aaru.Images/BlindWrite5/Helpers.cs +++ b/Aaru.Images/BlindWrite5/Helpers.cs @@ -49,73 +49,37 @@ public sealed partial class BlindWrite5 static MediaType BlindWriteProfileToMediaType(ProfileNumber profile) { - switch(profile) - { - case ProfileNumber.BDRE: - return MediaType.BDRE; - case ProfileNumber.BDROM: - return MediaType.BDROM; - case ProfileNumber.BDRRdm: - case ProfileNumber.BDRSeq: - return MediaType.BDR; - case ProfileNumber.CDR: - case ProfileNumber.HDBURNR: - return MediaType.CDR; - case ProfileNumber.CDROM: - case ProfileNumber.HDBURNROM: - return MediaType.CDROM; - case ProfileNumber.CDRW: - case ProfileNumber.HDBURNRW: - return MediaType.CDRW; - case ProfileNumber.DDCDR: - return MediaType.DDCDR; - case ProfileNumber.DDCDROM: - return MediaType.DDCD; - case ProfileNumber.DDCDRW: - return MediaType.DDCDRW; - case ProfileNumber.DVDDownload: - return MediaType.DVDDownload; - case ProfileNumber.DVDRAM: - return MediaType.DVDRAM; - case ProfileNumber.DVDRDLJump: - case ProfileNumber.DVDRDLSeq: - return MediaType.DVDRDL; - case ProfileNumber.DVDRDLPlus: - return MediaType.DVDPRDL; - case ProfileNumber.DVDROM: - return MediaType.DVDROM; - case ProfileNumber.DVDRPlus: - return MediaType.DVDPR; - case ProfileNumber.DVDRSeq: - return MediaType.DVDR; - case ProfileNumber.DVDRWDL: - return MediaType.DVDRWDL; - case ProfileNumber.DVDRWDLPlus: - return MediaType.DVDPRWDL; - case ProfileNumber.DVDRWPlus: - return MediaType.DVDPRW; - case ProfileNumber.DVDRWRes: - case ProfileNumber.DVDRWSeq: - return MediaType.DVDRW; - case ProfileNumber.HDDVDR: - return MediaType.HDDVDR; - case ProfileNumber.HDDVDRAM: - return MediaType.HDDVDRAM; - case ProfileNumber.HDDVDRDL: - return MediaType.HDDVDRDL; - case ProfileNumber.HDDVDROM: - return MediaType.HDDVDROM; - case ProfileNumber.HDDVDRW: - return MediaType.HDDVDRW; - case ProfileNumber.HDDVDRWDL: - return MediaType.HDDVDRWDL; - case ProfileNumber.ASMO: - case ProfileNumber.MOErasable: - return MediaType.UnknownMO; - case ProfileNumber.NonRemovable: - return MediaType.GENERIC_HDD; - default: - return MediaType.CD; - } + return profile switch + { + ProfileNumber.BDRE => MediaType.BDRE, + ProfileNumber.BDROM => MediaType.BDROM, + ProfileNumber.BDRRdm or ProfileNumber.BDRSeq => MediaType.BDR, + ProfileNumber.CDR or ProfileNumber.HDBURNR => MediaType.CDR, + ProfileNumber.CDROM or ProfileNumber.HDBURNROM => MediaType.CDROM, + ProfileNumber.CDRW or ProfileNumber.HDBURNRW => MediaType.CDRW, + ProfileNumber.DDCDR => MediaType.DDCDR, + ProfileNumber.DDCDROM => MediaType.DDCD, + ProfileNumber.DDCDRW => MediaType.DDCDRW, + ProfileNumber.DVDDownload => MediaType.DVDDownload, + ProfileNumber.DVDRAM => MediaType.DVDRAM, + ProfileNumber.DVDRDLJump or ProfileNumber.DVDRDLSeq => MediaType.DVDRDL, + ProfileNumber.DVDRDLPlus => MediaType.DVDPRDL, + ProfileNumber.DVDROM => MediaType.DVDROM, + ProfileNumber.DVDRPlus => MediaType.DVDPR, + ProfileNumber.DVDRSeq => MediaType.DVDR, + ProfileNumber.DVDRWDL => MediaType.DVDRWDL, + ProfileNumber.DVDRWDLPlus => MediaType.DVDPRWDL, + ProfileNumber.DVDRWPlus => MediaType.DVDPRW, + ProfileNumber.DVDRWRes or ProfileNumber.DVDRWSeq => MediaType.DVDRW, + ProfileNumber.HDDVDR => MediaType.HDDVDR, + ProfileNumber.HDDVDRAM => MediaType.HDDVDRAM, + ProfileNumber.HDDVDRDL => MediaType.HDDVDRDL, + ProfileNumber.HDDVDROM => MediaType.HDDVDROM, + ProfileNumber.HDDVDRW => MediaType.HDDVDRW, + ProfileNumber.HDDVDRWDL => MediaType.HDDVDRWDL, + ProfileNumber.ASMO or ProfileNumber.MOErasable => MediaType.UnknownMO, + ProfileNumber.NonRemovable => MediaType.GENERIC_HDD, + _ => MediaType.CD + }; } } \ No newline at end of file diff --git a/Aaru.Images/BlindWrite5/Read.cs b/Aaru.Images/BlindWrite5/Read.cs index 11a7c917a..cd962c31f 100644 --- a/Aaru.Images/BlindWrite5/Read.cs +++ b/Aaru.Images/BlindWrite5/Read.cs @@ -212,25 +212,19 @@ public sealed partial class BlindWrite5 } } - switch(_header.profile) - { - case ProfileNumber.CDR: - case ProfileNumber.CDROM: - case ProfileNumber.CDRW: - case ProfileNumber.DDCDR: - case ProfileNumber.DDCDROM: - case ProfileNumber.DDCDRW: - case ProfileNumber.HDBURNROM: - case ProfileNumber.HDBURNR: - case ProfileNumber.HDBURNRW: - _discInformation = new byte[_header.cdInfoLen]; - - break; - default: - _discInformation = new byte[_header.dvdInfoLen]; - - break; - } + _discInformation = _header.profile switch + { + ProfileNumber.CDR + or ProfileNumber.CDROM + or ProfileNumber.CDRW + or ProfileNumber.DDCDR + or ProfileNumber.DDCDROM + or ProfileNumber.DDCDRW + or ProfileNumber.HDBURNROM + or ProfileNumber.HDBURNR + or ProfileNumber.HDBURNRW => new byte[_header.cdInfoLen], + _ => new byte[_header.dvdInfoLen] + }; if(_discInformation.Length > 0) { @@ -1277,15 +1271,13 @@ public sealed partial class BlindWrite5 // Any non first track is audio audio |= bwTrack.Sequence != 1 && bwTrack.Type == CommonTypes.Enums.TrackType.Audio; - switch(bwTrack.Type) - { - case CommonTypes.Enums.TrackType.CdMode2Formless: - case CommonTypes.Enums.TrackType.CdMode2Form1: - case CommonTypes.Enums.TrackType.CdMode2Form2: - mode2 = true; - - break; - } + mode2 = bwTrack.Type switch + { + CommonTypes.Enums.TrackType.CdMode2Formless + or CommonTypes.Enums.TrackType.CdMode2Form1 + or CommonTypes.Enums.TrackType.CdMode2Form2 => true, + _ => mode2 + }; } if(!data && !firstData) diff --git a/Aaru.Images/ByteAddressable/Nintendo64.cs b/Aaru.Images/ByteAddressable/Nintendo64.cs index 9c3b33085..1bf3b3152 100644 --- a/Aaru.Images/ByteAddressable/Nintendo64.cs +++ b/Aaru.Images/ByteAddressable/Nintendo64.cs @@ -103,20 +103,18 @@ public class Nintendo64 : IByteAddressableImage stream.EnsureRead(magicBytes, 0, 4); var magic = BitConverter.ToUInt32(magicBytes, 0); - switch(magic) - { - case 0x80371240: - case 0x80371241: - case 0x40123780: - case 0x41123780: - case 0x12408037: - case 0x12418037: - case 0x37804012: - case 0x37804112: - return true; - default: - return false; - } + return magic switch + { + 0x80371240 + or 0x80371241 + or 0x40123780 + or 0x41123780 + or 0x12408037 + or 0x12418037 + or 0x37804012 + or 0x37804112 => true, + _ => false + }; } /// diff --git a/Aaru.Images/ByteAddressable/SuperNintendo.cs b/Aaru.Images/ByteAddressable/SuperNintendo.cs index a2cee7d3a..4691dce57 100644 --- a/Aaru.Images/ByteAddressable/SuperNintendo.cs +++ b/Aaru.Images/ByteAddressable/SuperNintendo.cs @@ -696,67 +696,42 @@ public class SuperNintendo : IByteAddressableImage static string DecodeChipset(byte chipset) { - switch(chipset & 0xF) - { - case 0: - return Localization.ROM; - case 1: - return Localization.ROM_and_RAM; - case 2 when (chipset & 0xF0) == 0: - return Localization.ROM_RAM_and_battery; - case 3: - return Localization.ROM_and_coprocessor; - case 4: - return Localization.ROM_RAM_and_coprocessor; - case 2: - case 5: - return Localization.ROM_RAM_battery_and_coprocessor; - case 6: - return Localization.ROM_battery_and_coprocessor; - case 9: - return Localization.ROM_RAM_battery_coprocessor_and_RTC; - case 0xA: - return Localization.ROM_RAM_battery_and_coprocessor; - default: - return Localization.Unknown_chipset; - } + return (chipset & 0xF) switch + { + 0 => Localization.ROM, + 1 => Localization.ROM_and_RAM, + 2 when (chipset & 0xF0) == 0 => Localization.ROM_RAM_and_battery, + 3 => Localization.ROM_and_coprocessor, + 4 => Localization.ROM_RAM_and_coprocessor, + 2 or 5 => Localization.ROM_RAM_battery_and_coprocessor, + 6 => Localization.ROM_battery_and_coprocessor, + 9 => Localization.ROM_RAM_battery_coprocessor_and_RTC, + 0xA => Localization.ROM_RAM_battery_and_coprocessor, + _ => Localization.Unknown_chipset + }; } static int DecodeBankSize(byte mode) { - switch(mode & 0xF) - { - case 0: - case 2: - case 3: - return 32768; - case 1: - case 5: - case 0xA: - return 65536; - default: - return 0; - } + return (mode & 0xF) switch + { + 0 or 2 or 3 => 32768, + 1 or 5 or 0xA => 65536, + _ => 0 + }; } static string DecodeRomSpeed(byte mode) => (mode & 0x10) == 0x10 ? "Fast (120ns)" : "Slow (200ns)"; static string DecodeCartType(byte mode) { - switch(mode & 0xF) - { - case 0: - case 2: - case 3: - return "LoROM"; - case 1: - case 0xA: - return "HiROM"; - case 5: - return "ExHiROM"; - default: - return Localization.Unknown_licensee; - } + return (mode & 0xF) switch + { + 0 or 2 or 3 => "LoROM", + 1 or 0xA => "HiROM", + 5 => "ExHiROM", + _ => Localization.Unknown_licensee + }; } static string DecodeRegion(byte headerRegion) => headerRegion switch diff --git a/Aaru.Images/CDRDAO/Helpers.cs b/Aaru.Images/CDRDAO/Helpers.cs index 633724447..6808bda7c 100644 --- a/Aaru.Images/CDRDAO/Helpers.cs +++ b/Aaru.Images/CDRDAO/Helpers.cs @@ -39,45 +39,28 @@ public sealed partial class Cdrdao { static ushort CdrdaoTrackTypeToCookedBytesPerSector(string trackType) { - switch(trackType) - { - case CDRDAO_TRACK_TYPE_MODE1: - case CDRDAO_TRACK_TYPE_MODE2_FORM1: - case CDRDAO_TRACK_TYPE_MODE1_RAW: - return 2048; - case CDRDAO_TRACK_TYPE_MODE2_FORM2: - return 2324; - case CDRDAO_TRACK_TYPE_MODE2: - case CDRDAO_TRACK_TYPE_MODE2_MIX: - case CDRDAO_TRACK_TYPE_MODE2_RAW: - return 2336; - case CDRDAO_TRACK_TYPE_AUDIO: - return 2352; - default: - return 0; - } + return trackType switch + { + CDRDAO_TRACK_TYPE_MODE1 or CDRDAO_TRACK_TYPE_MODE2_FORM1 or CDRDAO_TRACK_TYPE_MODE1_RAW => 2048, + CDRDAO_TRACK_TYPE_MODE2_FORM2 => 2324, + CDRDAO_TRACK_TYPE_MODE2 or CDRDAO_TRACK_TYPE_MODE2_MIX or CDRDAO_TRACK_TYPE_MODE2_RAW => 2336, + CDRDAO_TRACK_TYPE_AUDIO => 2352, + _ => 0 + }; } static TrackType CdrdaoTrackTypeToTrackType(string trackType) { - switch(trackType) - { - case CDRDAO_TRACK_TYPE_MODE1: - case CDRDAO_TRACK_TYPE_MODE1_RAW: - return TrackType.CdMode1; - case CDRDAO_TRACK_TYPE_MODE2_FORM1: - return TrackType.CdMode2Form1; - case CDRDAO_TRACK_TYPE_MODE2_FORM2: - return TrackType.CdMode2Form2; - case CDRDAO_TRACK_TYPE_MODE2: - case CDRDAO_TRACK_TYPE_MODE2_MIX: - case CDRDAO_TRACK_TYPE_MODE2_RAW: - return TrackType.CdMode2Formless; - case CDRDAO_TRACK_TYPE_AUDIO: - return TrackType.Audio; - default: - return TrackType.Data; - } + return trackType switch + { + CDRDAO_TRACK_TYPE_MODE1 or CDRDAO_TRACK_TYPE_MODE1_RAW => TrackType.CdMode1, + CDRDAO_TRACK_TYPE_MODE2_FORM1 => TrackType.CdMode2Form1, + CDRDAO_TRACK_TYPE_MODE2_FORM2 => TrackType.CdMode2Form2, + CDRDAO_TRACK_TYPE_MODE2 or CDRDAO_TRACK_TYPE_MODE2_MIX or CDRDAO_TRACK_TYPE_MODE2_RAW => TrackType + .CdMode2Formless, + CDRDAO_TRACK_TYPE_AUDIO => TrackType.Audio, + _ => TrackType.Data + }; } static (byte minute, byte second, byte frame) LbaToMsf(ulong sector) => diff --git a/Aaru.Images/CDRDAO/Write.cs b/Aaru.Images/CDRDAO/Write.cs index d2977b1bb..b0af115f6 100644 --- a/Aaru.Images/CDRDAO/Write.cs +++ b/Aaru.Images/CDRDAO/Write.cs @@ -573,25 +573,12 @@ public sealed partial class Cdrdao _descriptorStream.WriteLine(); _descriptorStream.WriteLine("// Track {0}", track.Sequence); - string subchannelType; - - switch(track.SubchannelType) - { - case TrackSubchannelType.Packed: - case TrackSubchannelType.PackedInterleaved: - subchannelType = " RW"; - - break; - case TrackSubchannelType.Raw: - case TrackSubchannelType.RawInterleaved: - subchannelType = " RW_RAW"; - - break; - default: - subchannelType = ""; - - break; - } + string subchannelType = track.SubchannelType switch + { + TrackSubchannelType.Packed or TrackSubchannelType.PackedInterleaved => " RW", + TrackSubchannelType.Raw or TrackSubchannelType.RawInterleaved => " RW_RAW", + _ => "" + }; _descriptorStream.WriteLine("TRACK {0}{1}", GetTrackMode(track), subchannelType); diff --git a/Aaru.Images/CDRWin/Helpers.cs b/Aaru.Images/CDRWin/Helpers.cs index 20313e213..5c0cb1ac4 100644 --- a/Aaru.Images/CDRWin/Helpers.cs +++ b/Aaru.Images/CDRWin/Helpers.cs @@ -52,132 +52,76 @@ public sealed partial class CdrWin static ushort CdrWinTrackTypeToBytesPerSector(string trackType) { - switch(trackType) - { - case CDRWIN_TRACK_TYPE_MODE1: - case CDRWIN_TRACK_TYPE_MODE2_FORM1: - return 2048; - case CDRWIN_TRACK_TYPE_MODE2_FORM2: - return 2324; - case CDRWIN_TRACK_TYPE_MODE2_FORMLESS: - case CDRWIN_TRACK_TYPE_CDI: - return 2336; - case CDRWIN_TRACK_TYPE_AUDIO: - case CDRWIN_TRACK_TYPE_MODE1_RAW: - case CDRWIN_TRACK_TYPE_MODE2_RAW: - case CDRWIN_TRACK_TYPE_CDI_RAW: - return 2352; - case CDRWIN_TRACK_TYPE_CDG: - return 2448; - default: - return 0; - } + return trackType switch + { + CDRWIN_TRACK_TYPE_MODE1 or CDRWIN_TRACK_TYPE_MODE2_FORM1 => 2048, + CDRWIN_TRACK_TYPE_MODE2_FORM2 => 2324, + CDRWIN_TRACK_TYPE_MODE2_FORMLESS or CDRWIN_TRACK_TYPE_CDI => 2336, + CDRWIN_TRACK_TYPE_AUDIO + or CDRWIN_TRACK_TYPE_MODE1_RAW + or CDRWIN_TRACK_TYPE_MODE2_RAW + or CDRWIN_TRACK_TYPE_CDI_RAW => 2352, + CDRWIN_TRACK_TYPE_CDG => 2448, + _ => 0 + }; } static ushort CdrWinTrackTypeToCookedBytesPerSector(string trackType) { - switch(trackType) - { - case CDRWIN_TRACK_TYPE_MODE1: - case CDRWIN_TRACK_TYPE_MODE2_FORM1: - case CDRWIN_TRACK_TYPE_MODE1_RAW: - return 2048; - case CDRWIN_TRACK_TYPE_MODE2_FORM2: - return 2324; - case CDRWIN_TRACK_TYPE_MODE2_FORMLESS: - case CDRWIN_TRACK_TYPE_CDI: - case CDRWIN_TRACK_TYPE_MODE2_RAW: - case CDRWIN_TRACK_TYPE_CDI_RAW: - return 2336; - case CDRWIN_TRACK_TYPE_CDG: - case CDRWIN_TRACK_TYPE_AUDIO: - return 2352; - default: - return 0; - } + return trackType switch + { + CDRWIN_TRACK_TYPE_MODE1 or CDRWIN_TRACK_TYPE_MODE2_FORM1 or CDRWIN_TRACK_TYPE_MODE1_RAW => 2048, + CDRWIN_TRACK_TYPE_MODE2_FORM2 => 2324, + CDRWIN_TRACK_TYPE_MODE2_FORMLESS + or CDRWIN_TRACK_TYPE_CDI + or CDRWIN_TRACK_TYPE_MODE2_RAW + or CDRWIN_TRACK_TYPE_CDI_RAW => 2336, + CDRWIN_TRACK_TYPE_CDG or CDRWIN_TRACK_TYPE_AUDIO => 2352, + _ => 0 + }; } static TrackType CdrWinTrackTypeToTrackType(string trackType) { - switch(trackType) - { - case CDRWIN_TRACK_TYPE_MODE1: - case CDRWIN_TRACK_TYPE_MODE1_RAW: - return TrackType.CdMode1; - case CDRWIN_TRACK_TYPE_MODE2_FORM1: - return TrackType.CdMode2Form1; - case CDRWIN_TRACK_TYPE_MODE2_FORM2: - return TrackType.CdMode2Form2; - case CDRWIN_TRACK_TYPE_CDI_RAW: - case CDRWIN_TRACK_TYPE_CDI: - case CDRWIN_TRACK_TYPE_MODE2_RAW: - case CDRWIN_TRACK_TYPE_MODE2_FORMLESS: - return TrackType.CdMode2Formless; - case CDRWIN_TRACK_TYPE_AUDIO: - case CDRWIN_TRACK_TYPE_CDG: - return TrackType.Audio; - default: - return TrackType.Data; - } + return trackType switch + { + CDRWIN_TRACK_TYPE_MODE1 or CDRWIN_TRACK_TYPE_MODE1_RAW => TrackType.CdMode1, + CDRWIN_TRACK_TYPE_MODE2_FORM1 => TrackType.CdMode2Form1, + CDRWIN_TRACK_TYPE_MODE2_FORM2 => TrackType.CdMode2Form2, + CDRWIN_TRACK_TYPE_CDI_RAW + or CDRWIN_TRACK_TYPE_CDI + or CDRWIN_TRACK_TYPE_MODE2_RAW + or CDRWIN_TRACK_TYPE_MODE2_FORMLESS => TrackType.CdMode2Formless, + CDRWIN_TRACK_TYPE_AUDIO or CDRWIN_TRACK_TYPE_CDG => TrackType.Audio, + _ => TrackType.Data + }; } static MediaType CdrWinIsoBusterDiscTypeToMediaType(string discType) { - switch(discType) - { - case CDRWIN_DISK_TYPE_CD: - return MediaType.CD; - case CDRWIN_DISK_TYPE_CDRW: - case CDRWIN_DISK_TYPE_CDMRW: - case CDRWIN_DISK_TYPE_CDMRW2: - return MediaType.CDRW; - case CDRWIN_DISK_TYPE_DVD: - return MediaType.DVDROM; - case CDRWIN_DISK_TYPE_DVDPRW: - case CDRWIN_DISK_TYPE_DVDPMRW: - case CDRWIN_DISK_TYPE_DVDPMRW2: - return MediaType.DVDPRW; - case CDRWIN_DISK_TYPE_DVDPRWDL: - case CDRWIN_DISK_TYPE_DVDPMRWDL: - case CDRWIN_DISK_TYPE_DVDPMRWDL2: - return MediaType.DVDPRWDL; - case CDRWIN_DISK_TYPE_DVDPR: - case CDRWIN_DISK_TYPE_DVDPVR: - return MediaType.DVDPR; - case CDRWIN_DISK_TYPE_DVDPRDL: - return MediaType.DVDPRDL; - case CDRWIN_DISK_TYPE_DVDRAM: - return MediaType.DVDRAM; - case CDRWIN_DISK_TYPE_DVDVR: - case CDRWIN_DISK_TYPE_DVDR: - return MediaType.DVDR; - case CDRWIN_DISK_TYPE_DVDRDL: - return MediaType.DVDRDL; - case CDRWIN_DISK_TYPE_DVDRW: - case CDRWIN_DISK_TYPE_DVDRWDL: - case CDRWIN_DISK_TYPE_DVDRW2: - return MediaType.DVDRW; - case CDRWIN_DISK_TYPE_HDDVD: - return MediaType.HDDVDROM; - case CDRWIN_DISK_TYPE_HDDVDRAM: - return MediaType.HDDVDRAM; - case CDRWIN_DISK_TYPE_HDDVDR: - case CDRWIN_DISK_TYPE_HDDVDRDL: - return MediaType.HDDVDR; - case CDRWIN_DISK_TYPE_HDDVDRW: - case CDRWIN_DISK_TYPE_HDDVDRWDL: - return MediaType.HDDVDRW; - case CDRWIN_DISK_TYPE_BD: - return MediaType.BDROM; - case CDRWIN_DISK_TYPE_BDR: - case CDRWIN_DISK_TYPE_BDRDL: - return MediaType.BDR; - case CDRWIN_DISK_TYPE_BDRE: - case CDRWIN_DISK_TYPE_BDREDL: - return MediaType.BDRE; - default: - return MediaType.Unknown; - } + return discType switch + { + CDRWIN_DISK_TYPE_CD => MediaType.CD, + CDRWIN_DISK_TYPE_CDRW or CDRWIN_DISK_TYPE_CDMRW or CDRWIN_DISK_TYPE_CDMRW2 => MediaType.CDRW, + CDRWIN_DISK_TYPE_DVD => MediaType.DVDROM, + CDRWIN_DISK_TYPE_DVDPRW or CDRWIN_DISK_TYPE_DVDPMRW or CDRWIN_DISK_TYPE_DVDPMRW2 => MediaType.DVDPRW, + CDRWIN_DISK_TYPE_DVDPRWDL or CDRWIN_DISK_TYPE_DVDPMRWDL or CDRWIN_DISK_TYPE_DVDPMRWDL2 => MediaType + .DVDPRWDL, + CDRWIN_DISK_TYPE_DVDPR or CDRWIN_DISK_TYPE_DVDPVR => MediaType.DVDPR, + CDRWIN_DISK_TYPE_DVDPRDL => MediaType.DVDPRDL, + CDRWIN_DISK_TYPE_DVDRAM => MediaType.DVDRAM, + CDRWIN_DISK_TYPE_DVDVR or CDRWIN_DISK_TYPE_DVDR => MediaType.DVDR, + CDRWIN_DISK_TYPE_DVDRDL => MediaType.DVDRDL, + CDRWIN_DISK_TYPE_DVDRW or CDRWIN_DISK_TYPE_DVDRWDL or CDRWIN_DISK_TYPE_DVDRW2 => MediaType.DVDRW, + CDRWIN_DISK_TYPE_HDDVD => MediaType.HDDVDROM, + CDRWIN_DISK_TYPE_HDDVDRAM => MediaType.HDDVDRAM, + CDRWIN_DISK_TYPE_HDDVDR or CDRWIN_DISK_TYPE_HDDVDRDL => MediaType.HDDVDR, + CDRWIN_DISK_TYPE_HDDVDRW or CDRWIN_DISK_TYPE_HDDVDRWDL => MediaType.HDDVDRW, + CDRWIN_DISK_TYPE_BD => MediaType.BDROM, + CDRWIN_DISK_TYPE_BDR or CDRWIN_DISK_TYPE_BDRDL => MediaType.BDR, + CDRWIN_DISK_TYPE_BDRE or CDRWIN_DISK_TYPE_BDREDL => MediaType.BDRE, + _ => MediaType.Unknown + }; } static (byte minute, byte second, byte frame) LbaToMsf(ulong sector) => @@ -210,98 +154,70 @@ public sealed partial class CdrWin static string MediaTypeToCdrwinType(MediaType type) { - switch(type) - { - case MediaType.BDRXL: - case MediaType.BDR: - return CDRWIN_DISK_TYPE_BDR; - case MediaType.BDREXL: - case MediaType.BDRE: - return CDRWIN_DISK_TYPE_BDRE; - case MediaType.BDROM: - case MediaType.UHDBD: - case MediaType.CBHD: - case MediaType.PS3BD: - case MediaType.PS4BD: - case MediaType.PS5BD: - case MediaType.UDO: - case MediaType.UDO2: - case MediaType.UDO2_WORM: - return CDRWIN_DISK_TYPE_BD; - case MediaType.CDV: - case MediaType.DDCD: - case MediaType.DDCDR: - case MediaType.DDCDRW: - case MediaType.CDPLUS: - case MediaType.CDR: - case MediaType.CDROM: - case MediaType.CDROMXA: - case MediaType.CD: - case MediaType.CDDA: - case MediaType.CDEG: - case MediaType.CDG: - case MediaType.CDI: - case MediaType.CDMIDI: - case MediaType.DTSCD: - case MediaType.JaguarCD: - case MediaType.MEGACD: - case MediaType.PS1CD: - case MediaType.PS2CD: - case MediaType.SuperCDROM2: - case MediaType.SVCD: - case MediaType.SVOD: - case MediaType.SATURNCD: - case MediaType.ThreeDO: - case MediaType.VCD: - case MediaType.VCDHD: - case MediaType.MilCD: - case MediaType.VideoNow: - case MediaType.VideoNowColor: - case MediaType.VideoNowXp: - case MediaType.CVD: - return CDRWIN_DISK_TYPE_CD; - case MediaType.CDMRW: - return CDRWIN_DISK_TYPE_CDMRW; - case MediaType.CDRW: - return CDRWIN_DISK_TYPE_CDRW; - case MediaType.DVDPR: - return CDRWIN_DISK_TYPE_DVDPR; - case MediaType.DVDPRDL: - return CDRWIN_DISK_TYPE_DVDPRDL; - case MediaType.DVDPRW: - return CDRWIN_DISK_TYPE_DVDPRW; - case MediaType.DVDPRWDL: - return CDRWIN_DISK_TYPE_DVDPRWDL; - case MediaType.DVDR: - return CDRWIN_DISK_TYPE_DVDR; - case MediaType.DVDRAM: - return CDRWIN_DISK_TYPE_DVDRAM; - case MediaType.DVDRDL: - return CDRWIN_DISK_TYPE_DVDRDL; - case MediaType.DVDDownload: - case MediaType.DVDROM: - case MediaType.UMD: - case MediaType.PS2DVD: - case MediaType.PS3DVD: - return CDRWIN_DISK_TYPE_DVD; - case MediaType.DVDRW: - return CDRWIN_DISK_TYPE_DVDRW; - case MediaType.DVDRWDL: - return CDRWIN_DISK_TYPE_DVDRWDL; - case MediaType.HDDVDR: - return CDRWIN_DISK_TYPE_HDDVDR; - case MediaType.HDDVDRAM: - return CDRWIN_DISK_TYPE_HDDVDRAM; - case MediaType.HDDVDRDL: - return CDRWIN_DISK_TYPE_HDDVDRDL; - case MediaType.HDDVDROM: - return CDRWIN_DISK_TYPE_HDDVD; - case MediaType.HDDVDRW: - return CDRWIN_DISK_TYPE_HDDVDRW; - case MediaType.HDDVDRWDL: - return CDRWIN_DISK_TYPE_HDDVDRWDL; - default: - return ""; - } + return type switch + { + MediaType.BDRXL or MediaType.BDR => CDRWIN_DISK_TYPE_BDR, + MediaType.BDREXL or MediaType.BDRE => CDRWIN_DISK_TYPE_BDRE, + MediaType.BDROM + or MediaType.UHDBD + or MediaType.CBHD + or MediaType.PS3BD + or MediaType.PS4BD + or MediaType.PS5BD + or MediaType.UDO + or MediaType.UDO2 + or MediaType.UDO2_WORM => CDRWIN_DISK_TYPE_BD, + MediaType.CDV + or MediaType.DDCD + or MediaType.DDCDR + or MediaType.DDCDRW + or MediaType.CDPLUS + or MediaType.CDR + or MediaType.CDROM + or MediaType.CDROMXA + or MediaType.CD + or MediaType.CDDA + or MediaType.CDEG + or MediaType.CDG + or MediaType.CDI + or MediaType.CDMIDI + or MediaType.DTSCD + or MediaType.JaguarCD + or MediaType.MEGACD + or MediaType.PS1CD + or MediaType.PS2CD + or MediaType.SuperCDROM2 + or MediaType.SVCD + or MediaType.SVOD + or MediaType.SATURNCD + or MediaType.ThreeDO + or MediaType.VCD + or MediaType.VCDHD + or MediaType.MilCD + or MediaType.VideoNow + or MediaType.VideoNowColor + or MediaType.VideoNowXp + or MediaType.CVD => CDRWIN_DISK_TYPE_CD, + MediaType.CDMRW => CDRWIN_DISK_TYPE_CDMRW, + MediaType.CDRW => CDRWIN_DISK_TYPE_CDRW, + MediaType.DVDPR => CDRWIN_DISK_TYPE_DVDPR, + MediaType.DVDPRDL => CDRWIN_DISK_TYPE_DVDPRDL, + MediaType.DVDPRW => CDRWIN_DISK_TYPE_DVDPRW, + MediaType.DVDPRWDL => CDRWIN_DISK_TYPE_DVDPRWDL, + MediaType.DVDR => CDRWIN_DISK_TYPE_DVDR, + MediaType.DVDRAM => CDRWIN_DISK_TYPE_DVDRAM, + MediaType.DVDRDL => CDRWIN_DISK_TYPE_DVDRDL, + MediaType.DVDDownload or MediaType.DVDROM or MediaType.UMD or MediaType.PS2DVD or MediaType.PS3DVD => + CDRWIN_DISK_TYPE_DVD, + MediaType.DVDRW => CDRWIN_DISK_TYPE_DVDRW, + MediaType.DVDRWDL => CDRWIN_DISK_TYPE_DVDRWDL, + MediaType.HDDVDR => CDRWIN_DISK_TYPE_HDDVDR, + MediaType.HDDVDRAM => CDRWIN_DISK_TYPE_HDDVDRAM, + MediaType.HDDVDRDL => CDRWIN_DISK_TYPE_HDDVDRDL, + MediaType.HDDVDROM => CDRWIN_DISK_TYPE_HDDVD, + MediaType.HDDVDRW => CDRWIN_DISK_TYPE_HDDVDRW, + MediaType.HDDVDRWDL => CDRWIN_DISK_TYPE_HDDVDRWDL, + _ => "" + }; } } \ No newline at end of file diff --git a/Aaru.Images/CisCopy/Read.cs b/Aaru.Images/CisCopy/Read.cs index a822a4486..c2b4a48d2 100644 --- a/Aaru.Images/CisCopy/Read.cs +++ b/Aaru.Images/CisCopy/Read.cs @@ -86,30 +86,13 @@ public sealed partial class CisCopy return ErrorNumber.NotImplemented; } - var trackSize = 0; - - switch(type) - { - case DiskType.MD1DD8: - case DiskType.MD2DD8: - trackSize = 8 * 512; - - break; - case DiskType.MD1DD: - case DiskType.MD2DD: - case DiskType.MF2DD: - trackSize = 9 * 512; - - break; - case DiskType.MD2HD: - trackSize = 15 * 512; - - break; - case DiskType.MF2HD: - trackSize = 18 * 512; - - break; - } + int trackSize = type switch + { + DiskType.MD1DD8 or DiskType.MD2DD8 => 8 * 512, + DiskType.MD1DD or DiskType.MD2DD or DiskType.MF2DD => 9 * 512, + DiskType.MD2HD => 15 * 512, + DiskType.MF2HD => 18 * 512 + }; var headStep = 1; diff --git a/Aaru.Images/CisCopy/Write.cs b/Aaru.Images/CisCopy/Write.cs index 376723249..9acb031d7 100644 --- a/Aaru.Images/CisCopy/Write.cs +++ b/Aaru.Images/CisCopy/Write.cs @@ -122,24 +122,11 @@ public sealed partial class CisCopy _writingStream.WriteByte((byte)diskType); - byte tracks = 0; - - switch(diskType) - { - case DiskType.MD1DD8: - case DiskType.MD1DD: - case DiskType.MD2DD8: - case DiskType.MD2DD: - tracks = 80; - - break; - case DiskType.MF2DD: - case DiskType.MD2HD: - case DiskType.MF2HD: - tracks = 160; - - break; - } + byte tracks = diskType switch + { + DiskType.MD1DD8 or DiskType.MD1DD or DiskType.MD2DD8 or DiskType.MD2DD => 80, + DiskType.MF2DD or DiskType.MD2HD or DiskType.MF2HD => 160 + }; var headStep = 1; diff --git a/Aaru.Images/CloneCD/Read.cs b/Aaru.Images/CloneCD/Read.cs index adf8396cf..29ce2aeba 100644 --- a/Aaru.Images/CloneCD/Read.cs +++ b/Aaru.Images/CloneCD/Read.cs @@ -865,15 +865,11 @@ public sealed partial class CloneCd // Any non first track is audio audio |= i != 0 && Tracks[i].Type == TrackType.Audio; - switch(Tracks[i].Type) - { - case TrackType.CdMode2Form1: - case TrackType.CdMode2Form2: - case TrackType.CdMode2Formless: - mode2 = true; - - break; - } + mode2 = Tracks[i].Type switch + { + TrackType.CdMode2Form1 or TrackType.CdMode2Form2 or TrackType.CdMode2Formless => true, + _ => mode2 + }; } // TODO: Check format diff --git a/Aaru.Images/DiscJuggler/Read.cs b/Aaru.Images/DiscJuggler/Read.cs index 5dcd349a7..10cbb0438 100644 --- a/Aaru.Images/DiscJuggler/Read.cs +++ b/Aaru.Images/DiscJuggler/Read.cs @@ -722,15 +722,11 @@ public sealed partial class DiscJuggler // Any non first track is audio audio |= i != 0 && Tracks[i].Type == TrackType.Audio; - switch(Tracks[i].Type) - { - case TrackType.CdMode2Form1: - case TrackType.CdMode2Form2: - case TrackType.CdMode2Formless: - mode2 = true; - - break; - } + mode2 = Tracks[i].Type switch + { + TrackType.CdMode2Form1 or TrackType.CdMode2Form2 or TrackType.CdMode2Formless => true, + _ => mode2 + }; } if(!data && !firstdata) diff --git a/Aaru.Images/Nero/Helpers.cs b/Aaru.Images/Nero/Helpers.cs index f31b7a1e1..beaa2e005 100644 --- a/Aaru.Images/Nero/Helpers.cs +++ b/Aaru.Images/Nero/Helpers.cs @@ -38,104 +38,58 @@ public sealed partial class Nero { static CommonTypes.MediaType NeroMediaTypeToMediaType(NeroMediaTypes type) { - switch(type) - { - case NeroMediaTypes.NeroMtypDdcd: - return CommonTypes.MediaType.DDCD; - case NeroMediaTypes.NeroMtypDvdM: - case NeroMediaTypes.NeroMtypDvdMR: - return CommonTypes.MediaType.DVDR; - case NeroMediaTypes.NeroMtypDvdP: - case NeroMediaTypes.NeroMtypDvdPR: - return CommonTypes.MediaType.DVDPR; - case NeroMediaTypes.NeroMtypDvdRam: - return CommonTypes.MediaType.DVDRAM; - case NeroMediaTypes.NeroMtypMl: - case NeroMediaTypes.NeroMtypMrw: - case NeroMediaTypes.NeroMtypCdrw: - return CommonTypes.MediaType.CDRW; - case NeroMediaTypes.NeroMtypCdr: - return CommonTypes.MediaType.CDR; - case NeroMediaTypes.NeroMtypDvdRom: - case NeroMediaTypes.NeroMtypDvdAny: - case NeroMediaTypes.NeroMtypDvdAnyR9: - case NeroMediaTypes.NeroMtypDvdAnyOld: - return CommonTypes.MediaType.DVDROM; - case NeroMediaTypes.NeroMtypCdrom: - return CommonTypes.MediaType.CDROM; - case NeroMediaTypes.NeroMtypDvdMRw: - return CommonTypes.MediaType.DVDRW; - case NeroMediaTypes.NeroMtypDvdPRw: - return CommonTypes.MediaType.DVDPRW; - case NeroMediaTypes.NeroMtypDvdPR9: - return CommonTypes.MediaType.DVDPRDL; - case NeroMediaTypes.NeroMtypDvdMR9: - return CommonTypes.MediaType.DVDRDL; - case NeroMediaTypes.NeroMtypBd: - case NeroMediaTypes.NeroMtypBdAny: - case NeroMediaTypes.NeroMtypBdRom: - return CommonTypes.MediaType.BDROM; - case NeroMediaTypes.NeroMtypBdR: - return CommonTypes.MediaType.BDR; - case NeroMediaTypes.NeroMtypBdRe: - return CommonTypes.MediaType.BDRE; - case NeroMediaTypes.NeroMtypHdDvd: - case NeroMediaTypes.NeroMtypHdDvdAny: - case NeroMediaTypes.NeroMtypHdDvdRom: - return CommonTypes.MediaType.HDDVDROM; - case NeroMediaTypes.NeroMtypHdDvdR: - return CommonTypes.MediaType.HDDVDR; - case NeroMediaTypes.NeroMtypHdDvdRw: - return CommonTypes.MediaType.HDDVDRW; - default: - return CommonTypes.MediaType.CD; - } + return type switch + { + NeroMediaTypes.NeroMtypDdcd => CommonTypes.MediaType.DDCD, + NeroMediaTypes.NeroMtypDvdM or NeroMediaTypes.NeroMtypDvdMR => CommonTypes.MediaType.DVDR, + NeroMediaTypes.NeroMtypDvdP or NeroMediaTypes.NeroMtypDvdPR => CommonTypes.MediaType.DVDPR, + NeroMediaTypes.NeroMtypDvdRam => CommonTypes.MediaType.DVDRAM, + NeroMediaTypes.NeroMtypMl or NeroMediaTypes.NeroMtypMrw or NeroMediaTypes.NeroMtypCdrw => CommonTypes + .MediaType.CDRW, + NeroMediaTypes.NeroMtypCdr => CommonTypes.MediaType.CDR, + NeroMediaTypes.NeroMtypDvdRom + or NeroMediaTypes.NeroMtypDvdAny + or NeroMediaTypes.NeroMtypDvdAnyR9 + or NeroMediaTypes.NeroMtypDvdAnyOld => CommonTypes.MediaType.DVDROM, + NeroMediaTypes.NeroMtypCdrom => CommonTypes.MediaType.CDROM, + NeroMediaTypes.NeroMtypDvdMRw => CommonTypes.MediaType.DVDRW, + NeroMediaTypes.NeroMtypDvdPRw => CommonTypes.MediaType.DVDPRW, + NeroMediaTypes.NeroMtypDvdPR9 => CommonTypes.MediaType.DVDPRDL, + NeroMediaTypes.NeroMtypDvdMR9 => CommonTypes.MediaType.DVDRDL, + NeroMediaTypes.NeroMtypBd or NeroMediaTypes.NeroMtypBdAny or NeroMediaTypes.NeroMtypBdRom => + CommonTypes.MediaType.BDROM, + NeroMediaTypes.NeroMtypBdR => CommonTypes.MediaType.BDR, + NeroMediaTypes.NeroMtypBdRe => CommonTypes.MediaType.BDRE, + NeroMediaTypes.NeroMtypHdDvd or NeroMediaTypes.NeroMtypHdDvdAny or NeroMediaTypes.NeroMtypHdDvdRom => + CommonTypes.MediaType.HDDVDROM, + NeroMediaTypes.NeroMtypHdDvdR => CommonTypes.MediaType.HDDVDR, + NeroMediaTypes.NeroMtypHdDvdRw => CommonTypes.MediaType.HDDVDRW, + _ => CommonTypes.MediaType.CD + }; } static TrackType NeroTrackModeToTrackType(DaoMode mode) { - switch(mode) - { - case DaoMode.Data: - case DaoMode.DataRaw: - case DaoMode.DataRawSub: - return TrackType.CdMode1; - case DaoMode.DataM2F1: - return TrackType.CdMode2Form1; - case DaoMode.DataM2F2: - return TrackType.CdMode2Form2; - case DaoMode.DataM2RawSub: - case DaoMode.DataM2Raw: - return TrackType.CdMode2Formless; - case DaoMode.Audio: - case DaoMode.AudioAlt: - case DaoMode.AudioSub: - return TrackType.Audio; - default: - return TrackType.Data; - } + return mode switch + { + DaoMode.Data or DaoMode.DataRaw or DaoMode.DataRawSub => TrackType.CdMode1, + DaoMode.DataM2F1 => TrackType.CdMode2Form1, + DaoMode.DataM2F2 => TrackType.CdMode2Form2, + DaoMode.DataM2RawSub or DaoMode.DataM2Raw => TrackType.CdMode2Formless, + DaoMode.Audio or DaoMode.AudioAlt or DaoMode.AudioSub => TrackType.Audio, + _ => TrackType.Data + }; } static ushort NeroTrackModeToBytesPerSector(DaoMode mode) { - switch(mode) - { - case DaoMode.Data: - case DaoMode.DataM2F1: - return 2048; - case DaoMode.DataM2F2: - return 2336; - case DaoMode.DataRaw: - case DaoMode.DataM2Raw: - case DaoMode.AudioAlt: - case DaoMode.Audio: - return 2352; - case DaoMode.DataM2RawSub: - case DaoMode.DataRawSub: - case DaoMode.AudioSub: - return 2448; - default: - return 2352; - } + return mode switch + { + DaoMode.Data or DaoMode.DataM2F1 => 2048, + DaoMode.DataM2F2 => 2336, + DaoMode.DataRaw or DaoMode.DataM2Raw or DaoMode.AudioAlt or DaoMode.Audio => 2352, + DaoMode.DataM2RawSub or DaoMode.DataRawSub or DaoMode.AudioSub => 2448, + _ => 2352 + }; } } \ No newline at end of file diff --git a/Aaru.Images/Nero/Read.cs b/Aaru.Images/Nero/Read.cs index a66ab7f20..cd7ee0b24 100644 --- a/Aaru.Images/Nero/Read.cs +++ b/Aaru.Images/Nero/Read.cs @@ -1179,21 +1179,16 @@ public sealed partial class Nero // Flags not set for this track if(!_trackFlags.ContainsKey(track.Sequence)) { - switch(track.Type) - { - case TrackType.Audio: - _trackFlags[track.Sequence] = 0; - - break; - case TrackType.Data: - case TrackType.CdMode1: - case TrackType.CdMode2Formless: - case TrackType.CdMode2Form1: - case TrackType.CdMode2Form2: - _trackFlags[track.Sequence] = 4; - - break; - } + _trackFlags[track.Sequence] = track.Type switch + { + TrackType.Audio => 0, + TrackType.Data + or TrackType.CdMode1 + or TrackType.CdMode2Formless + or TrackType.CdMode2Form1 + or TrackType.CdMode2Form2 => 4, + _ => _trackFlags[track.Sequence] + }; } // If ISRC is not empty @@ -1586,16 +1581,14 @@ public sealed partial class Nero (DaoMode)_neroTracks.ElementAt(i).Value.Mode == DaoMode.AudioAlt || (DaoMode)_neroTracks.ElementAt(i).Value.Mode == DaoMode.AudioSub); - switch((DaoMode)_neroTracks.ElementAt(i).Value.Mode) - { - case DaoMode.DataM2F1: - case DaoMode.DataM2F2: - case DaoMode.DataM2Raw: - case DaoMode.DataM2RawSub: - mode2 = true; - - break; - } + mode2 = (DaoMode)_neroTracks.ElementAt(i).Value.Mode switch + { + DaoMode.DataM2F1 + or DaoMode.DataM2F2 + or DaoMode.DataM2Raw + or DaoMode.DataM2RawSub => true, + _ => mode2 + }; } if(!data && !firstData) diff --git a/Aaru.Images/VDI/Read.cs b/Aaru.Images/VDI/Read.cs index 8c80c5960..7b981e9ec 100644 --- a/Aaru.Images/VDI/Read.cs +++ b/Aaru.Images/VDI/Read.cs @@ -123,38 +123,17 @@ public sealed partial class Vdi _imageInfo.Comments = _vHdr.comments; _imageInfo.Version = $"{_vHdr.majorVersion}.{_vHdr.minorVersion}"; - switch(_vHdr.creator) - { - case SUN_VDI: - _imageInfo.Application = "Sun VirtualBox"; - - break; - case SUN_OLD_VDI: - _imageInfo.Application = "Sun xVM"; - - break; - case ORACLE_VDI: - _imageInfo.Application = "Oracle VirtualBox"; - - break; - case QEMUVDI: - _imageInfo.Application = "QEMU"; - - break; - case INNOTEK_VDI: - case INNOTEK_OLD_VDI: - _imageInfo.Application = "innotek VirtualBox"; - - break; - case DIC_VDI: - _imageInfo.Application = "DiscImageChef"; - - break; - case DIC_AARU: - _imageInfo.Application = "Aaru"; - - break; - } + _imageInfo.Application = _vHdr.creator switch + { + SUN_VDI => "Sun VirtualBox", + SUN_OLD_VDI => "Sun xVM", + ORACLE_VDI => "Oracle VirtualBox", + QEMUVDI => "QEMU", + INNOTEK_VDI or INNOTEK_OLD_VDI => "innotek VirtualBox", + DIC_VDI => "DiscImageChef", + DIC_AARU => "Aaru", + _ => _imageInfo.Application + }; _imageStream = stream; diff --git a/Aaru.Images/VHD/Read.cs b/Aaru.Images/VHD/Read.cs index d12e42add..e156ab6fc 100644 --- a/Aaru.Images/VHD/Read.cs +++ b/Aaru.Images/VHD/Read.cs @@ -213,27 +213,19 @@ public sealed partial class Vhd _imageInfo.ApplicationVersion = $"{(_thisFooter.CreatorVersion & 0xFFFF0000) >> 16}.{ _thisFooter.CreatorVersion & 0x0000FFFF:D2}"; - switch(_thisFooter.CreatorHostOs) - { - case CREATOR_MACINTOSH: - case CREATOR_MACINTOSH_OLD: - _imageInfo.Application = "VirtualBox for Mac"; + _imageInfo.Application = _thisFooter.CreatorHostOs switch + { + CREATOR_MACINTOSH or CREATOR_MACINTOSH_OLD => "VirtualBox for Mac", + CREATOR_WINDOWS => - break; - case CREATOR_WINDOWS: - // VirtualBox uses Windows creator for any other OS - _imageInfo.Application = "VirtualBox"; - - break; - default: - _imageInfo.Application = string.Format(Localization.VirtualBox_for_unknown_OS_0, - Encoding.ASCII - .GetString(BigEndianBitConverter - .GetBytes(_thisFooter - .CreatorHostOs))); - - break; - } + // VirtualBox uses Windows creator for any other OS + "VirtualBox", + _ => string.Format(Localization.VirtualBox_for_unknown_OS_0, + Encoding.ASCII + .GetString(BigEndianBitConverter + .GetBytes(_thisFooter + .CreatorHostOs))) + }; break; } diff --git a/Aaru.Partitions/Atari.cs b/Aaru.Partitions/Atari.cs index 1e016eae1..49d653655 100644 --- a/Aaru.Partitions/Atari.cs +++ b/Aaru.Partitions/Atari.cs @@ -220,54 +220,21 @@ public sealed class AtariPartitions : IPartition Scheme = Name }; - switch(type) - { - case TYPE_GEMDOS: - part.Description = Localization.Atari_GEMDOS_partition; - - break; - case TYPE_BIG_GEMDOS: - part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB; - - break; - case TYPE_LINUX: - part.Description = Localization.Linux_partition; - - break; - case TYPE_SWAP: - part.Description = Localization.Swap_partition; - - break; - case TYPE_RAW: - part.Description = Localization.RAW_partition; - - break; - case TYPE_NETBSD: - part.Description = Localization.NetBSD_partition; - - break; - case TYPE_NETBSD_SWAP: - part.Description = Localization.NetBSD_swap_partition; - - break; - case TYPE_SYSTEM_V: - part.Description = Localization.Atari_UNIX_partition; - - break; - case TYPE_MAC: - part.Description = Localization.Macintosh_partition; - - break; - case TYPE_MINIX: - case TYPE_MINIX2: - part.Description = Localization.MINIX_partition; - - break; - default: - part.Description = Localization.Unknown_partition_type; - - break; - } + part.Description = type switch + { + TYPE_GEMDOS => Localization.Atari_GEMDOS_partition, + TYPE_BIG_GEMDOS => Localization + .Atari_GEMDOS_partition_bigger_than_32_MiB, + TYPE_LINUX => Localization.Linux_partition, + TYPE_SWAP => Localization.Swap_partition, + TYPE_RAW => Localization.RAW_partition, + TYPE_NETBSD => Localization.NetBSD_partition, + TYPE_NETBSD_SWAP => Localization.NetBSD_swap_partition, + TYPE_SYSTEM_V => Localization.Atari_UNIX_partition, + TYPE_MAC => Localization.Macintosh_partition, + TYPE_MINIX or TYPE_MINIX2 => Localization.MINIX_partition, + _ => Localization.Unknown_partition_type + }; partitions.Add(part); partitionSequence++; @@ -344,54 +311,21 @@ public sealed class AtariPartitions : IPartition Scheme = Name }; - switch(extendedType) - { - case TYPE_GEMDOS: - part.Description = Localization.Atari_GEMDOS_partition; - - break; - case TYPE_BIG_GEMDOS: - part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB; - - break; - case TYPE_LINUX: - part.Description = Localization.Linux_partition; - - break; - case TYPE_SWAP: - part.Description = Localization.Swap_partition; - - break; - case TYPE_RAW: - part.Description = Localization.RAW_partition; - - break; - case TYPE_NETBSD: - part.Description = Localization.NetBSD_partition; - - break; - case TYPE_NETBSD_SWAP: - part.Description = Localization.NetBSD_swap_partition; - - break; - case TYPE_SYSTEM_V: - part.Description = Localization.Atari_UNIX_partition; - - break; - case TYPE_MAC: - part.Description = Localization.Macintosh_partition; - - break; - case TYPE_MINIX: - case TYPE_MINIX2: - part.Description = Localization.MINIX_partition; - - break; - default: - part.Description = Localization.Unknown_partition_type; - - break; - } + part.Description = extendedType switch + { + TYPE_GEMDOS => Localization.Atari_GEMDOS_partition, + TYPE_BIG_GEMDOS => Localization + .Atari_GEMDOS_partition_bigger_than_32_MiB, + TYPE_LINUX => Localization.Linux_partition, + TYPE_SWAP => Localization.Swap_partition, + TYPE_RAW => Localization.RAW_partition, + TYPE_NETBSD => Localization.NetBSD_partition, + TYPE_NETBSD_SWAP => Localization.NetBSD_swap_partition, + TYPE_SYSTEM_V => Localization.Atari_UNIX_partition, + TYPE_MAC => Localization.Macintosh_partition, + TYPE_MINIX or TYPE_MINIX2 => Localization.MINIX_partition, + _ => Localization.Unknown_partition_type + }; partitions.Add(part); partitionSequence++; @@ -446,54 +380,20 @@ public sealed class AtariPartitions : IPartition Scheme = Name }; - switch(type) - { - case TYPE_GEMDOS: - part.Description = Localization.Atari_GEMDOS_partition; - - break; - case TYPE_BIG_GEMDOS: - part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB; - - break; - case TYPE_LINUX: - part.Description = Localization.Linux_partition; - - break; - case TYPE_SWAP: - part.Description = Localization.Swap_partition; - - break; - case TYPE_RAW: - part.Description = Localization.RAW_partition; - - break; - case TYPE_NETBSD: - part.Description = Localization.NetBSD_partition; - - break; - case TYPE_NETBSD_SWAP: - part.Description = Localization.NetBSD_swap_partition; - - break; - case TYPE_SYSTEM_V: - part.Description = Localization.Atari_UNIX_partition; - - break; - case TYPE_MAC: - part.Description = Localization.Macintosh_partition; - - break; - case TYPE_MINIX: - case TYPE_MINIX2: - part.Description = Localization.MINIX_partition; - - break; - default: - part.Description = Localization.Unknown_partition_type; - - break; - } + part.Description = type switch + { + TYPE_GEMDOS => Localization.Atari_GEMDOS_partition, + TYPE_BIG_GEMDOS => Localization.Atari_GEMDOS_partition_bigger_than_32_MiB, + TYPE_LINUX => Localization.Linux_partition, + TYPE_SWAP => Localization.Swap_partition, + TYPE_RAW => Localization.RAW_partition, + TYPE_NETBSD => Localization.NetBSD_partition, + TYPE_NETBSD_SWAP => Localization.NetBSD_swap_partition, + TYPE_SYSTEM_V => Localization.Atari_UNIX_partition, + TYPE_MAC => Localization.Macintosh_partition, + TYPE_MINIX or TYPE_MINIX2 => Localization.MINIX_partition, + _ => Localization.Unknown_partition_type + }; partitions.Add(part); partitionSequence++; diff --git a/Aaru.Partitions/BSD.cs b/Aaru.Partitions/BSD.cs index ec23c1941..dd3bab697 100644 --- a/Aaru.Partitions/BSD.cs +++ b/Aaru.Partitions/BSD.cs @@ -207,68 +207,38 @@ public sealed class BSD : IPartition internal static string FSTypeToString(fsType typ) { - switch(typ) - { - case fsType.Unused: - return Localization.Unused_entry; - case fsType.Swap: - return Localization.Swap_partition; - case fsType.V6: - return Localization.UNIX_6th_Edition; - case fsType.V7: - return Localization.UNIX_7th_Edition; - case fsType.SystemV: - return Localization.UNIX_System_V; - case fsType.V7_1K: - return Localization.UNIX_7th_Edition_with_1K_blocks; - case fsType.V8: - return Localization.UNIX_8th_Edition_with_4K_blocks; - case fsType.BSDFFS: - return Localization._4_2_BSD_Fast_File_System; - case fsType.BSDLFS: - return Localization._4_4_LFS; - case fsType.HPFS: - return Localization.HPFS; - case fsType.ISO9660: - return Localization.ISO9660; - case fsType.Boot: - case fsType.SysVBoot: - return Localization.Boot; - case fsType.AFFS: - return Localization.Amiga_FFS; - case fsType.HFS: - return Localization.Apple_HFS; - case fsType.ADVfs: - return Localization.Digital_Advanced_File_System; - case fsType.LSMpublic: - return Localization.Digital_LSM_Public_Region; - case fsType.LSMprivate: - return Localization.Digital_LSM_Private_Region; - case fsType.LSMsimple: - return Localization.Digital_LSM_Simple_Disk; - case fsType.CCD: - return Localization.Concatenated_disk; - case fsType.JFS2: - return Localization.IBM_JFS2; - case fsType.HAMMER: - return Localization.Hammer; - case fsType.HAMMER2: - return Localization.Hammer2; - case fsType.UDF: - return Localization.UDF; - case fsType.EFS: - return Localization.EFS; - case fsType.ZFS: - return Localization.ZFS; - case fsType.NANDFS: - return Localization.FreeBSD_nandfs; - case fsType.MSDOS: - return Localization.FAT; - case fsType.Other: - return Localization.Other_or_unknown; - default: - return Localization.Unknown_partition_type; - } + return typ switch + { + fsType.Unused => Localization.Unused_entry, + fsType.Swap => Localization.Swap_partition, + fsType.V6 => Localization.UNIX_6th_Edition, + fsType.V7 => Localization.UNIX_7th_Edition, + fsType.SystemV => Localization.UNIX_System_V, + fsType.V7_1K => Localization.UNIX_7th_Edition_with_1K_blocks, + fsType.V8 => Localization.UNIX_8th_Edition_with_4K_blocks, + fsType.BSDFFS => Localization._4_2_BSD_Fast_File_System, + fsType.BSDLFS => Localization._4_4_LFS, + fsType.HPFS => Localization.HPFS, + fsType.ISO9660 => Localization.ISO9660, + fsType.Boot or fsType.SysVBoot => Localization.Boot, + fsType.AFFS => Localization.Amiga_FFS, + fsType.HFS => Localization.Apple_HFS, + fsType.ADVfs => Localization.Digital_Advanced_File_System, + fsType.LSMpublic => Localization.Digital_LSM_Public_Region, + fsType.LSMprivate => Localization.Digital_LSM_Private_Region, + fsType.LSMsimple => Localization.Digital_LSM_Simple_Disk, + fsType.CCD => Localization.Concatenated_disk, + fsType.JFS2 => Localization.IBM_JFS2, + fsType.HAMMER => Localization.Hammer, + fsType.HAMMER2 => Localization.Hammer2, + fsType.UDF => Localization.UDF, + fsType.EFS => Localization.EFS, + fsType.ZFS => Localization.ZFS, + fsType.NANDFS => Localization.FreeBSD_nandfs, + fsType.MSDOS => Localization.FAT, + fsType.Other => Localization.Other_or_unknown, + _ => Localization.Unknown_partition_type + }; } static DiskLabel SwapDiskLabel(DiskLabel dl) diff --git a/Aaru.Partitions/GPT.cs b/Aaru.Partitions/GPT.cs index 7e18b3f1b..1f0260254 100644 --- a/Aaru.Partitions/GPT.cs +++ b/Aaru.Partitions/GPT.cs @@ -220,205 +220,109 @@ public sealed class GuidPartitionTable : IPartition { string strType = type.ToString().ToUpperInvariant(); - switch(strType) - { - case "024DEE41-33E7-11D3-9D69-0008C781F39F": - return Localization.MBR_scheme; - case "C12A7328-F81F-11D2-BA4B-00A0C93EC93B": - return Localization.EFI_System; - case "21686148-6449-6E6F-744E-656564454649": - return Localization.BIOS_Boot; - case "D3BFE2DE-3DAF-11DF-BA40-E3A556D89593": - return Localization.Intel_Fast_Flash_iFFS; - case "F4019732-066E-4E12-8273-346C5641494F": - return Localization.Sony_boot; - case "BFBFAFE7-A34F-448A-9A5B-6213EB736C22": - return Localization.Lenovo_boot; - case "E3C9E316-0B5C-4DB8-817D-F92DF00215AE": - return Localization.Microsoft_Reserved_MSR; - case "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7": - return Localization.Microsoft_Basic_data; - case "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3": - return Localization.Logical_Disk_Manager_LDM_metadata; - case "AF9B60A0-1431-4F62-BC68-3311714A69AD": - return Localization.Logical_Disk_Manager_data; - case "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC": - return Localization.Windows_Recovery_Environment; - case "37AFFC90-EF7D-4E96-91C3-2D7AE055B174": - return Localization.IBM_General_Parallel_File_System_GPFS; - case "E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D": - return Localization.Windows_Storage_Spaces; - case "75894C1E-3AEB-11D3-B7C1-7B03A0000000": - return Localization.HP_UX_Data; - case "E2A1E728-32E3-11D6-A682-7B03A0000000": - return Localization.HP_UX_Service; - case "0FC63DAF-8483-4772-8E79-3D69D8477DE4": - return Localization.Linux_filesystem; - case "A19D880F-05FC-4D3B-A006-743F0F84911E": - return Localization.Linux_RAID; - case "44479540-F297-41B2-9AF7-D131D5F0458A": - return Localization.Linux_Root_x86; - case "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709": - return Localization.Linux_Root_x86_64; - case "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3": - return Localization.Linux_Root_32_bit_ARM; - case "B921B045-1DF0-41C3-AF44-4C6F280D3FAE": - return Localization.Linux_Root_AArch64; - case "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F": - return Localization.Linux_swap; - case "E6D6D379-F507-44C2-A23C-238F2A3DF928": - return Localization.Logical_Volume_Manager_LVM; - case "933AC7E1-2EB4-4F13-B844-0E14E2AEF915": - return Localization.Linux_home; - case "3B8F8425-20E0-4F3B-907F-1A25A76F98E8": - return Localization.Linux_srv; - case "7FFEC5C9-2D00-49B7-8941-3EA10A5586B7": - return Localization.Plain_dm_crypt; - case "CA7D7CCB-63ED-4C53-861C-1742536059CC": - return Localization.LUKS; - case "8DA63339-0007-60C0-C436-083AC8230908": - return Localization.Linux_Reserved; - case "83BD6B9D-7F41-11DC-BE0B-001560B84F0F": - return Localization.FreeBSD_Boot; - case "516E7CB4-6ECF-11D6-8FF8-00022D09712B": - return Localization.FreeBSD_Data; - case "516E7CB5-6ECF-11D6-8FF8-00022D09712B": - return Localization.FreeBSD_swap; - case "516E7CB6-6ECF-11D6-8FF8-00022D09712B": - return Localization.FreeBSD_UFS; - case "516E7CB7-6ECF-11D6-8FF8-00022D09712B": - return Localization.FreeBSD_UFS2; - case "516E7CB8-6ECF-11D6-8FF8-00022D09712B": - return Localization.FreeBSD_Vinum; - case "516E7CBA-6ECF-11D6-8FF8-00022D09712B": - return Localization.FreeBSD_ZFS; - case "74BA7DD9-A689-11E1-BD04-00E081286ACF": - return Localization.FreeBSD_nandfs; - case "48465300-0000-11AA-AA11-00306543ECAC": - return Localization.Apple_HFS; - case "55465300-0000-11AA-AA11-00306543ECAC": - return Localization.Apple_UFS; - case "52414944-0000-11AA-AA11-00306543ECAC": - return Localization.Apple_RAID; - case "52414944-5F4F-11AA-AA11-00306543ECAC": - return Localization.Apple_RAID_offline; - case "426F6F74-0000-11AA-AA11-00306543ECAC": - return Localization.Apple_Boot; - case "4C616265-6C00-11AA-AA11-00306543ECAC": - return Localization.Apple_Label; - case "5265636F-7665-11AA-AA11-00306543ECAC": - return Localization.Apple_TV_Recovery; - case "53746F72-6167-11AA-AA11-00306543ECAC": - return Localization.Apple_Core_Storage; - case "6A82CB45-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_boot; - case "6A85CF4D-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_Root; - case "6A87C46F-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_Swap; - case "6A8B642B-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_Backup; - case "6A898CC3-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_usr_or_Apple_ZFS; - case "6A8EF2E9-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_var; - case "6A90BA39-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_home; - case "6A9283A5-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_Alternate_sector; - case "6A945A3B-1DD2-11B2-99A6-080020736631": - case "6A9630D1-1DD2-11B2-99A6-080020736631": - case "6A980767-1DD2-11B2-99A6-080020736631": - case "6A96237F-1DD2-11B2-99A6-080020736631": - case "6A8D2AC7-1DD2-11B2-99A6-080020736631": - return Localization.Solaris_Reserved; - case "49F48D32-B10E-11DC-B99B-0019D1879648": - return Localization.NetBSD_Swap; - case "49F48D5A-B10E-11DC-B99B-0019D1879648": - return Localization.NetBSD_FFS; - case "49F48D82-B10E-11DC-B99B-0019D1879648": - return Localization.NetBSD_LFS; - case "49F48DAA-B10E-11DC-B99B-0019D1879648": - return Localization.NetBSD_RAID; - case "2DB519C4-B10F-11DC-B99B-0019D1879648": - return Localization.NetBSD_Concatenated; - case "2DB519EC-B10F-11DC-B99B-0019D1879648": - return Localization.NetBSD_Encrypted; - case "FE3A2A5D-4F32-41A7-B725-ACCC3285A309": - return Localization.ChromeOS_kernel; - case "3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC": - return Localization.ChromeOS_rootfs; - case "2E0A753D-9E48-43B0-8337-B15192CB1B5E": - return Localization.ChromeOS_future_use; - case "42465331-3BA3-10F1-802A-4861696B7521": - return Localization.Haiku_BFS; - case "85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7": - return Localization.MidnightBSD_Boot; - case "85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7": - return Localization.MidnightBSD_Data; - case "85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7": - return Localization.MidnightBSD_Swap; - case "0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7": - return Localization.MidnightBSD_UFS; - case "85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7": - return Localization.MidnightBSD_Vinum; - case "85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7": - return Localization.MidnightBSD_ZFS; - case "45B0969E-9B03-4F30-B4C6-B4B80CEFF106": - return Localization.Ceph_Journal; - case "45B0969E-9B03-4F30-B4C6-5EC00CEFF106": - return Localization.Ceph_dm_crypt_Encrypted_Journal; - case "4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D": - return Localization.Ceph_OSD; - case "4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D": - return Localization.Ceph_dm_crypt_OSD; - case "89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE": - return Localization.Ceph_disk_in_creation; - case "89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE": - return Localization.Ceph_dm_crypt_disk_in_creation; - case "824CC7A0-36A8-11E3-890A-952519AD3F61": - return Localization.OpenBSD_Data; - case "CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1": - return Localization.QNX_Power_safe_QNX6; - case "C91818F9-8025-47AF-89D2-F030D7000C2C": - return Localization.Plan_9; - case "9D275380-40AD-11DB-BF97-000C2911D1B8": - return Localization.VMware_vmkcore_coredump; - case "AA31E02A-400F-11DB-9590-000C2911D1B8": - return Localization.VMware_VMFS; - case "9198EFFC-31C0-11DB-8F78-000C2911D1B8": - return Localization.VMware_Reserved; - case "7412F7D5-A156-4B13-81DC-867174929325": - return Localization.ONIE_boot; - case "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149": - return Localization.ONIE_config; - case "9E1A2D38-C612-4316-AA26-8B49521E5A8B": - return Localization.PowerPC_PReP_boot; - case "0311FC50-01CA-4725-AD77-9ADBB20ACE98": - return Localization.Acronis_Secure_Zone; - case "7C3457EF-0000-11AA-AA11-00306543ECAC": - return Localization.Apple_File_System; - case "9D087404-1CA5-11DC-8817-01301BB8A9F5": - return Localization.DragonflyBSD_Label; - case "9D58FDBD-1CA5-11DC-8817-01301BB8A9F5": - return Localization.DragonflyBSD_Swap; - case "9D94CE7C-1CA5-11DC-8817-01301BB8A9F5": - return Localization.DragonflyBSD_UFS; - case "9DD4478F-1CA5-11DC-8817-01301BB8A9F5": - return Localization.DragonflyBSD_Vinum; - case "DBD5211B-1CA5-11DC-8817-01301BB8A9F5": - return Localization.DragonflyBSD_CCD; - case "3D48CE54-1D16-11DC-8817-01301BB8A9F5": - return Localization.DragonflyBSD_Label; - case "BD215AB2-1D16-11DC-8696-01301BB8A9F5": - return Localization.DragonflyBSD_Legacy; - case "61DC63AC-6E38-11DC-8513-01301BB8A9F5": - return Localization.DragonflyBSD_Hammer; - case "5CBB9AD1-862D-11DC-A94D-01301BB8A9F5": - return Localization.DragonflyBSD_Hammer2; - default: - return ""; - } + return strType switch + { + "024DEE41-33E7-11D3-9D69-0008C781F39F" => Localization.MBR_scheme, + "C12A7328-F81F-11D2-BA4B-00A0C93EC93B" => Localization.EFI_System, + "21686148-6449-6E6F-744E-656564454649" => Localization.BIOS_Boot, + "D3BFE2DE-3DAF-11DF-BA40-E3A556D89593" => Localization.Intel_Fast_Flash_iFFS, + "F4019732-066E-4E12-8273-346C5641494F" => Localization.Sony_boot, + "BFBFAFE7-A34F-448A-9A5B-6213EB736C22" => Localization.Lenovo_boot, + "E3C9E316-0B5C-4DB8-817D-F92DF00215AE" => Localization.Microsoft_Reserved_MSR, + "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7" => Localization.Microsoft_Basic_data, + "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3" => Localization.Logical_Disk_Manager_LDM_metadata, + "AF9B60A0-1431-4F62-BC68-3311714A69AD" => Localization.Logical_Disk_Manager_data, + "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC" => Localization.Windows_Recovery_Environment, + "37AFFC90-EF7D-4E96-91C3-2D7AE055B174" => Localization.IBM_General_Parallel_File_System_GPFS, + "E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D" => Localization.Windows_Storage_Spaces, + "75894C1E-3AEB-11D3-B7C1-7B03A0000000" => Localization.HP_UX_Data, + "E2A1E728-32E3-11D6-A682-7B03A0000000" => Localization.HP_UX_Service, + "0FC63DAF-8483-4772-8E79-3D69D8477DE4" => Localization.Linux_filesystem, + "A19D880F-05FC-4D3B-A006-743F0F84911E" => Localization.Linux_RAID, + "44479540-F297-41B2-9AF7-D131D5F0458A" => Localization.Linux_Root_x86, + "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709" => Localization.Linux_Root_x86_64, + "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3" => Localization.Linux_Root_32_bit_ARM, + "B921B045-1DF0-41C3-AF44-4C6F280D3FAE" => Localization.Linux_Root_AArch64, + "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F" => Localization.Linux_swap, + "E6D6D379-F507-44C2-A23C-238F2A3DF928" => Localization.Logical_Volume_Manager_LVM, + "933AC7E1-2EB4-4F13-B844-0E14E2AEF915" => Localization.Linux_home, + "3B8F8425-20E0-4F3B-907F-1A25A76F98E8" => Localization.Linux_srv, + "7FFEC5C9-2D00-49B7-8941-3EA10A5586B7" => Localization.Plain_dm_crypt, + "CA7D7CCB-63ED-4C53-861C-1742536059CC" => Localization.LUKS, + "8DA63339-0007-60C0-C436-083AC8230908" => Localization.Linux_Reserved, + "83BD6B9D-7F41-11DC-BE0B-001560B84F0F" => Localization.FreeBSD_Boot, + "516E7CB4-6ECF-11D6-8FF8-00022D09712B" => Localization.FreeBSD_Data, + "516E7CB5-6ECF-11D6-8FF8-00022D09712B" => Localization.FreeBSD_swap, + "516E7CB6-6ECF-11D6-8FF8-00022D09712B" => Localization.FreeBSD_UFS, + "516E7CB7-6ECF-11D6-8FF8-00022D09712B" => Localization.FreeBSD_UFS2, + "516E7CB8-6ECF-11D6-8FF8-00022D09712B" => Localization.FreeBSD_Vinum, + "516E7CBA-6ECF-11D6-8FF8-00022D09712B" => Localization.FreeBSD_ZFS, + "74BA7DD9-A689-11E1-BD04-00E081286ACF" => Localization.FreeBSD_nandfs, + "48465300-0000-11AA-AA11-00306543ECAC" => Localization.Apple_HFS, + "55465300-0000-11AA-AA11-00306543ECAC" => Localization.Apple_UFS, + "52414944-0000-11AA-AA11-00306543ECAC" => Localization.Apple_RAID, + "52414944-5F4F-11AA-AA11-00306543ECAC" => Localization.Apple_RAID_offline, + "426F6F74-0000-11AA-AA11-00306543ECAC" => Localization.Apple_Boot, + "4C616265-6C00-11AA-AA11-00306543ECAC" => Localization.Apple_Label, + "5265636F-7665-11AA-AA11-00306543ECAC" => Localization.Apple_TV_Recovery, + "53746F72-6167-11AA-AA11-00306543ECAC" => Localization.Apple_Core_Storage, + "6A82CB45-1DD2-11B2-99A6-080020736631" => Localization.Solaris_boot, + "6A85CF4D-1DD2-11B2-99A6-080020736631" => Localization.Solaris_Root, + "6A87C46F-1DD2-11B2-99A6-080020736631" => Localization.Solaris_Swap, + "6A8B642B-1DD2-11B2-99A6-080020736631" => Localization.Solaris_Backup, + "6A898CC3-1DD2-11B2-99A6-080020736631" => Localization.Solaris_usr_or_Apple_ZFS, + "6A8EF2E9-1DD2-11B2-99A6-080020736631" => Localization.Solaris_var, + "6A90BA39-1DD2-11B2-99A6-080020736631" => Localization.Solaris_home, + "6A9283A5-1DD2-11B2-99A6-080020736631" => Localization.Solaris_Alternate_sector, + "6A945A3B-1DD2-11B2-99A6-080020736631" + or "6A9630D1-1DD2-11B2-99A6-080020736631" + or "6A980767-1DD2-11B2-99A6-080020736631" + or "6A96237F-1DD2-11B2-99A6-080020736631" + or "6A8D2AC7-1DD2-11B2-99A6-080020736631" => Localization.Solaris_Reserved, + "49F48D32-B10E-11DC-B99B-0019D1879648" => Localization.NetBSD_Swap, + "49F48D5A-B10E-11DC-B99B-0019D1879648" => Localization.NetBSD_FFS, + "49F48D82-B10E-11DC-B99B-0019D1879648" => Localization.NetBSD_LFS, + "49F48DAA-B10E-11DC-B99B-0019D1879648" => Localization.NetBSD_RAID, + "2DB519C4-B10F-11DC-B99B-0019D1879648" => Localization.NetBSD_Concatenated, + "2DB519EC-B10F-11DC-B99B-0019D1879648" => Localization.NetBSD_Encrypted, + "FE3A2A5D-4F32-41A7-B725-ACCC3285A309" => Localization.ChromeOS_kernel, + "3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC" => Localization.ChromeOS_rootfs, + "2E0A753D-9E48-43B0-8337-B15192CB1B5E" => Localization.ChromeOS_future_use, + "42465331-3BA3-10F1-802A-4861696B7521" => Localization.Haiku_BFS, + "85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7" => Localization.MidnightBSD_Boot, + "85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7" => Localization.MidnightBSD_Data, + "85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7" => Localization.MidnightBSD_Swap, + "0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7" => Localization.MidnightBSD_UFS, + "85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7" => Localization.MidnightBSD_Vinum, + "85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7" => Localization.MidnightBSD_ZFS, + "45B0969E-9B03-4F30-B4C6-B4B80CEFF106" => Localization.Ceph_Journal, + "45B0969E-9B03-4F30-B4C6-5EC00CEFF106" => Localization.Ceph_dm_crypt_Encrypted_Journal, + "4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D" => Localization.Ceph_OSD, + "4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D" => Localization.Ceph_dm_crypt_OSD, + "89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE" => Localization.Ceph_disk_in_creation, + "89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE" => Localization.Ceph_dm_crypt_disk_in_creation, + "824CC7A0-36A8-11E3-890A-952519AD3F61" => Localization.OpenBSD_Data, + "CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1" => Localization.QNX_Power_safe_QNX6, + "C91818F9-8025-47AF-89D2-F030D7000C2C" => Localization.Plan_9, + "9D275380-40AD-11DB-BF97-000C2911D1B8" => Localization.VMware_vmkcore_coredump, + "AA31E02A-400F-11DB-9590-000C2911D1B8" => Localization.VMware_VMFS, + "9198EFFC-31C0-11DB-8F78-000C2911D1B8" => Localization.VMware_Reserved, + "7412F7D5-A156-4B13-81DC-867174929325" => Localization.ONIE_boot, + "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149" => Localization.ONIE_config, + "9E1A2D38-C612-4316-AA26-8B49521E5A8B" => Localization.PowerPC_PReP_boot, + "0311FC50-01CA-4725-AD77-9ADBB20ACE98" => Localization.Acronis_Secure_Zone, + "7C3457EF-0000-11AA-AA11-00306543ECAC" => Localization.Apple_File_System, + "9D087404-1CA5-11DC-8817-01301BB8A9F5" => Localization.DragonflyBSD_Label, + "9D58FDBD-1CA5-11DC-8817-01301BB8A9F5" => Localization.DragonflyBSD_Swap, + "9D94CE7C-1CA5-11DC-8817-01301BB8A9F5" => Localization.DragonflyBSD_UFS, + "9DD4478F-1CA5-11DC-8817-01301BB8A9F5" => Localization.DragonflyBSD_Vinum, + "DBD5211B-1CA5-11DC-8817-01301BB8A9F5" => Localization.DragonflyBSD_CCD, + "3D48CE54-1D16-11DC-8817-01301BB8A9F5" => Localization.DragonflyBSD_Label, + "BD215AB2-1D16-11DC-8696-01301BB8A9F5" => Localization.DragonflyBSD_Legacy, + "61DC63AC-6E38-11DC-8513-01301BB8A9F5" => Localization.DragonflyBSD_Hammer, + "5CBB9AD1-862D-11DC-A94D-01301BB8A9F5" => Localization.DragonflyBSD_Hammer2, + _ => "" + }; } #region Nested type: Entry diff --git a/Aaru.Partitions/PC98.cs b/Aaru.Partitions/PC98.cs index 63b1e7fb4..1d965fd6d 100644 --- a/Aaru.Partitions/PC98.cs +++ b/Aaru.Partitions/PC98.cs @@ -160,32 +160,20 @@ public sealed class PC98 : IPartition static string DecodePC98Sid(byte sid) { - switch(sid & 0x7F) - { - case 0x01: - return Localization.FAT12; - case 0x04: - return Localization.PC_UX; - case 0x06: - return Localization.N88_BASIC_86; + return (sid & 0x7F) switch + { + 0x01 => Localization.FAT12, + 0x04 => Localization.PC_UX, + 0x06 => Localization.N88_BASIC_86, - // Supposedly for FAT16 < 32 MiB, seen in bigger partitions - case 0x11: - case 0x21: - return Localization.FAT16; - case 0x28: - case 0x41: - case 0x48: - return Localization.Windows_Volume_Set; - case 0x44: - return Localization.FreeBSD; - case 0x61: - return Localization.FAT32; - case 0x62: - return Localization.Linux; - default: - return Localization.Unknown_partition_type; - } + // Supposedly for FAT16 < 32 MiB, seen in bigger partitions + 0x11 or 0x21 => Localization.FAT16, + 0x28 or 0x41 or 0x48 => Localization.Windows_Volume_Set, + 0x44 => Localization.FreeBSD, + 0x61 => Localization.FAT32, + 0x62 => Localization.Linux, + _ => Localization.Unknown_partition_type + }; } #region Nested type: Partition diff --git a/Aaru.Tests.Devices/SCSI/Plextor.cs b/Aaru.Tests.Devices/SCSI/Plextor.cs index e47bfc79c..8f78b3e4f 100644 --- a/Aaru.Tests.Devices/SCSI/Plextor.cs +++ b/Aaru.Tests.Devices/SCSI/Plextor.cs @@ -1183,26 +1183,13 @@ static class Plextor continue; } - switch(subchan) - { - case PlextorSubchannel.Q16: - blockSize = 2368; - - break; - case PlextorSubchannel.Pack: - case PlextorSubchannel.All: - blockSize = 2448; - - break; - case PlextorSubchannel.RawC2: - blockSize = 2742; - - break; - default: - blockSize = 2352; - - break; - } + blockSize = subchan switch + { + PlextorSubchannel.Q16 => 2368, + PlextorSubchannel.Pack or PlextorSubchannel.All => 2448, + PlextorSubchannel.RawC2 => 2742, + _ => 2352 + }; break; case 2: