mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
[Refactor] Convert to switch expressions.
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -81,21 +81,14 @@ public sealed partial class MediaScan
|
||||
/// <exception cref="NotSupportedException">Unknown device type</exception>
|
||||
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)
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>Aborts the running media scan</summary>
|
||||
|
||||
@@ -42,96 +42,85 @@ public static class Error
|
||||
/// <returns>Error description.</returns>
|
||||
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)
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -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}";
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user