diff --git a/Aaru.Core/Devices/Dumping/ATA.cs b/Aaru.Core/Devices/Dumping/ATA.cs index a50316a37..b6e2f5f49 100644 --- a/Aaru.Core/Devices/Dumping/ATA.cs +++ b/Aaru.Core/Devices/Dumping/ATA.cs @@ -45,6 +45,7 @@ using Aaru.Core.Graphics; using Aaru.Core.Logging; using Aaru.Decoders.ATA; using Aaru.Decoders.PCMCIA; +using Aaru.Logging; using Humanizer; using Humanizer.Bytes; using Humanizer.Localisation; @@ -85,7 +86,6 @@ public partial class Dump MediaType mediaType = MediaType.Unknown; UpdateStatus?.Invoke(Localization.Core.Requesting_ATA_IDENTIFY_DEVICE); - _dumpLog.WriteLine(Localization.Core.Requesting_ATA_IDENTIFY_DEVICE); bool sense = _dev.AtaIdentify(out byte[] cmdBuf, out AtaErrorRegistersChs errorChs); if(sense) @@ -107,7 +107,6 @@ public partial class Dump // Initialize reader UpdateStatus?.Invoke(Localization.Core.Initializing_reader); - _dumpLog.WriteLine(Localization.Core.Initializing_reader); var ataReader = new Reader(_dev, timeout, ataIdentify, _errorLog); // Fill reader blocks @@ -116,7 +115,7 @@ public partial class Dump // Check block sizes if(ataReader.GetBlockSize()) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_get_block_size_0, ataReader.ErrorMessage); + AaruLogging.Error(Localization.Core.ERROR_Cannot_get_block_size_0, ataReader.ErrorMessage); ErrorMessage(ataReader.ErrorMessage); return; @@ -127,8 +126,8 @@ public partial class Dump if(ataReader.FindReadCommand()) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_find_correct_read_command_0, - ataReader.ErrorMessage); + AaruLogging.Error(Localization.Core.ERROR_Cannot_find_correct_read_command_0, + ataReader.ErrorMessage); ErrorMessage(ataReader.ErrorMessage); @@ -138,7 +137,7 @@ public partial class Dump // Check how many blocks to read, if error show and return if(ataReader.GetBlocksToRead(_maximumReadable)) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_get_blocks_to_read_0, ataReader.ErrorMessage); + AaruLogging.Error(Localization.Core.ERROR_Cannot_get_blocks_to_read_0, ataReader.ErrorMessage); ErrorMessage(ataReader.ErrorMessage); return; @@ -167,17 +166,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Device_reports_0_bytes_per_physical_block, physicalSectorSize)); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_blocks_1_bytes, blocks, blocks * blockSize); - - _dumpLog.WriteLine(Localization.Core.Device_reports_0_cylinders_1_heads_2_sectors_per_track, - cylinders, - heads, - sectors); - - _dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_at_a_time, blocksToRead); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_logical_block, blockSize); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_physical_block, physicalSectorSize); - bool removable = !_dev.IsCompactFlash && ataId.GeneralConfiguration.HasFlag(Identify.GeneralConfigurationBit.Removable); @@ -209,14 +197,13 @@ public partial class Dump IbgLog ibgLog; double duration; - var ret = true; + bool ret = true; if(_dev.IsUsb && _dev.UsbDescriptors != null && !outputFormat.SupportedMediaTags.Contains(MediaTagType.USB_Descriptors)) { ret = false; - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_USB_descriptors); ErrorMessage(Localization.Core.Output_format_does_not_support_USB_descriptors); } @@ -225,27 +212,21 @@ public partial class Dump !outputFormat.SupportedMediaTags.Contains(MediaTagType.PCMCIA_CIS)) { ret = false; - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_PCMCIA_CIS_descriptors); ErrorMessage(Localization.Core.Output_format_does_not_support_PCMCIA_CIS_descriptors); } if(!outputFormat.SupportedMediaTags.Contains(MediaTagType.ATA_IDENTIFY)) { ret = false; - _dumpLog.WriteLine(Localization.Core.Dump_Ata_Output_format_does_not_support_ATA_IDENTIFY_); ErrorMessage(Localization.Core.Dump_Ata_Output_format_does_not_support_ATA_IDENTIFY_); } if(!ret) { if(_force) - { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_continuing); ErrorMessage(Localization.Core.Several_media_tags_not_supported_continuing); - } else { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_not_continuing); return; @@ -264,9 +245,6 @@ public partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputFormat.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputFormat.ErrorMessage); @@ -296,10 +274,7 @@ public partial class Dump ibgLog = new IbgLog(_outputPrefix + ".ibg", ataProfile); if(_resume.NextBlock > 0) - { UpdateStatus?.Invoke(string.Format(Localization.Core.Resuming_from_block_0, _resume.NextBlock)); - _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); - } if(_createGraph) { @@ -319,7 +294,7 @@ public partial class Dump _mediaGraph?.PaintSectorsBad(_resume.BadBlocks); } - var newTrim = false; + bool newTrim = false; _dumpStopwatch.Restart(); _speedStopwatch.Reset(); @@ -332,7 +307,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -378,7 +352,11 @@ public partial class Dump ibgLog.Write(i, 0); outputFormat.WriteSectors(new byte[blockSize * _skip], i, _skip); imageWriteDuration += _writeStopwatch.Elapsed.TotalSeconds; - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + + UpdateProgress?.Invoke(Localization.Core.Skipping_0_blocks_from_errored_block_1, + _skip, + (long)i); + i += _skip - blocksToRead; newTrim = true; } @@ -426,18 +404,6 @@ public partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize()); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); #region Trimming @@ -445,7 +411,6 @@ public partial class Dump { _trimStopwatch.Restart(); UpdateStatus?.Invoke(Localization.Core.Trimming_skipped_sectors); - _dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors); ulong[] tmpArray = _resume.BadBlocks.ToArray(); InitProgress?.Invoke(); @@ -456,7 +421,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -481,9 +445,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Trimming_finished_in_0, _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, - _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); } #endregion Trimming @@ -492,8 +453,8 @@ public partial class Dump if(_resume.BadBlocks.Count > 0 && !_aborted && _retryPasses > 0) { - var pass = 1; - var forward = true; + int pass = 1; + bool forward = true; InitProgress?.Invoke(); repeatRetryLba: @@ -505,7 +466,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -551,10 +511,6 @@ public partial class Dump .Correctly_retried_block_0_in_pass_1, badSector, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, - badSector, - pass); } else if(_persistent) outputFormat.WriteSector(cmdBuf, badSector); } @@ -624,7 +580,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -663,11 +618,6 @@ public partial class Dump imageWriteDuration += _writeStopwatch.Elapsed.TotalSeconds; extents.Add(currentBlock); _mediaGraph?.PaintSectorGood((ulong)((cy * heads + hd) * sectors + (sc - 1))); - - _dumpLog.WriteLine(Localization.Core.Error_reading_cylinder_0_head_1_sector_2, - cy, - hd, - sc); } else { @@ -725,23 +675,10 @@ public partial class Dump ByteSize.FromBytes(blockSize * (blocks + 1)) .Per(imageWriteDuration.Seconds()) .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize()); - - _dumpLog.WriteLine(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize()); } foreach(ulong bad in _resume.BadBlocks) - _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); + AaruLogging.Information(Localization.Core.Sector_0_could_not_be_read, bad); outputFormat.SetDumpHardware(_resume.Tries); @@ -761,7 +698,6 @@ public partial class Dump if(_preSidecar != null) outputFormat.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputFormat.Close(); @@ -770,12 +706,9 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Closed_in_0, _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); if(_aborted) { - _dumpLog.WriteLine(Localization.Core.Aborted); UpdateStatus?.Invoke(Localization.Core.Aborted); return; @@ -792,7 +725,6 @@ public partial class Dump if(_metadata) { - _dumpLog.WriteLine(Localization.Core.Creating_sidecar); UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; @@ -829,7 +761,6 @@ public partial class Dump if(_dev.IsUsb && _dev.UsbDescriptors != null) { - _dumpLog.WriteLine(Localization.Core.Reading_USB_descriptors); UpdateStatus?.Invoke(Localization.Core.Reading_USB_descriptors); sidecar.BlockMedias[0].Usb = new Usb @@ -847,7 +778,6 @@ public partial class Dump if(_dev.IsPcmcia && _dev.Cis != null) { - _dumpLog.WriteLine(Localization.Core.Reading_PCMCIA_CIS); UpdateStatus?.Invoke(Localization.Core.Reading_PCMCIA_CIS); sidecar.BlockMedias[0].Pcmcia = new Pcmcia @@ -860,7 +790,6 @@ public partial class Dump } }; - _dumpLog.WriteLine(Localization.Core.Decoding_PCMCIA_CIS); UpdateStatus?.Invoke(Localization.Core.Decoding_PCMCIA_CIS); Tuple[] tuples = CIS.GetTuples(_dev.Cis); @@ -931,14 +860,6 @@ public partial class Dump .Per(totalChkDuration.Milliseconds()) .Humanize())); - _dumpLog.WriteLine(Localization.Core.Sidecar_created_in_0, - _sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - - _dumpLog.WriteLine(Localization.Core.Average_checksum_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalChkDuration.Milliseconds()) - .Humanize()); - List<(ulong start, string type)> filesystems = []; if(sidecar.BlockMedias[0].FileSystemInformation != null) @@ -961,10 +882,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Found_filesystem_0_at_sector_1, filesystem.type, filesystem.start)); - - _dumpLog.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1, - filesystem.type, - filesystem.start); } } diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/CdiReady.cs b/Aaru.Core/Devices/Dumping/CompactDisc/CdiReady.cs index e9a3f6910..0a278edcd 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/CdiReady.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/CdiReady.cs @@ -60,7 +60,7 @@ partial class Dump byte[] syncMark = [0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00]; - var testMark = new byte[12]; + byte[] testMark = new byte[12]; Array.Copy(sector, 0, testMark, 0, 12); return syncMark.SequenceEqual(testMark) && (sector[0xF] == 0 || sector[0xF] == 1 || sector[0xF] == 2); @@ -79,9 +79,9 @@ partial class Dump byte[] syncMark = [0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00]; - var testMark = new byte[12]; + byte[] testMark = new byte[12]; - for(var i = 0; i <= 2336; i++) + for(int i = 0; i <= 2336; i++) { Array.Copy(sector, i, testMark, 0, 12); @@ -162,7 +162,6 @@ partial class Dump if(cdiReadyReadAsAudio) { - _dumpLog.WriteLine(Localization.Core.Setting_speed_to_8x_for_CD_i_Ready_reading_as_audio); UpdateStatus?.Invoke(Localization.Core.Setting_speed_to_8x_for_CD_i_Ready_reading_as_audio); _dev.SetCdSpeed(out _, RotationalControl.ClvAndImpureCav, 1416, 0, _dev.Timeout, out _); @@ -176,12 +175,11 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } - var firstSectorToRead = (uint)i; + uint firstSectorToRead = (uint)i; blocksToRead = _maximumReadable; @@ -290,8 +288,8 @@ partial class Dump if(supportedSubchannel != MmcSubchannel.None) { - var data = new byte[sectorSize]; - var sub = new byte[subSize]; + byte[] data = new byte[sectorSize]; + byte[] sub = new byte[subSize]; Array.Copy(cmdBuf, 0, data, 0, sectorSize); @@ -316,7 +314,6 @@ partial class Dump outputOptical, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -349,10 +346,6 @@ partial class Dump i + r, firstTrack.EndSector)); - _dumpLog.WriteLine(Localization.Core.Adding_CD_i_Ready_hole_from_LBA_0_to_1_inclusive, - i + r, - firstTrack.EndSector); - break; } @@ -393,11 +386,11 @@ partial class Dump if(supportedSubchannel != MmcSubchannel.None) { - var data = new byte[sectorSize * blocksToRead]; - var sub = new byte[subSize * blocksToRead]; - var tmpData = new byte[sectorSize]; + byte[] data = new byte[sectorSize * blocksToRead]; + byte[] sub = new byte[subSize * blocksToRead]; + byte[] tmpData = new byte[sectorSize]; - for(var b = 0; b < blocksToRead; b++) + for(int b = 0; b < blocksToRead; b++) { if(cdiReadyReadAsAudio) { @@ -428,7 +421,6 @@ partial class Dump outputOptical, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -455,10 +447,10 @@ partial class Dump { if(cdiReadyReadAsAudio) { - var tmpData = new byte[sectorSize]; - var data = new byte[sectorSize * blocksToRead]; + byte[] tmpData = new byte[sectorSize]; + byte[] data = new byte[sectorSize * blocksToRead]; - for(var b = 0; b < blocksToRead; b++) + for(int b = 0; b < blocksToRead; b++) { Array.Copy(cmdBuf, (int)(b * sectorSize), tmpData, 0, sectorSize); tmpData = Sector.Scramble(tmpData); diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs index 2ee31571d..53a6fe863 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs @@ -133,7 +133,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -218,7 +217,6 @@ partial class Dump switch(inData) { case false when currentReadSpeed == 0xFFFF: - _dumpLog.WriteLine(Localization.Core.Setting_speed_to_8x_for_audio_reading); UpdateStatus?.Invoke(Localization.Core.Setting_speed_to_8x_for_audio_reading); _dev.SetCdSpeed(out _, RotationalControl.ClvAndImpureCav, 1416, 0, _dev.Timeout, out _); @@ -228,11 +226,6 @@ partial class Dump break; case true when currentReadSpeed != _speed: { - _dumpLog.WriteLine(_speed == 0xFFFF - ? Localization.Core.Setting_speed_to_MAX_for_data_reading - : string.Format(Localization.Core.Setting_speed_to_0_x_for_data_reading, - _speed)); - UpdateStatus?.Invoke(_speed == 0xFFFF ? Localization.Core.Setting_speed_to_MAX_for_data_reading : string.Format(Localization.Core.Setting_speed_to_0_x_for_data_reading, @@ -814,7 +807,6 @@ partial class Dump outputFormat as IWritableOpticalImage, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -903,14 +895,12 @@ partial class Dump _resume.BadBlocks.Add(i + r); - AaruLogging.Debug(MODULE_NAME, - Localization.Core.READ_error_0, - Sense.PrettifySense(senseBuf)); + AaruLogging.Debug(MODULE_NAME, Localization.Core.READ_error_0, Sense.PrettifySense(senseBuf)); mhddLog.Write(i + r, cmdDuration < 500 ? 65535 : cmdDuration); - ibgLog.Write(i + r, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, 1, i + r); + ibgLog.Write(i + r, 0); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, 1, i + r); newTrim = true; } @@ -1003,7 +993,6 @@ partial class Dump outputFormat as IWritableOpticalImage, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -1108,7 +1097,7 @@ partial class Dump mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(i, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; newTrim = true; } @@ -1135,7 +1124,6 @@ partial class Dump if(!failedCrossingLeadOut) return; - _dumpLog.WriteLine(Localization.Core.Failed_crossing_into_Lead_Out); UpdateStatus?.Invoke(Localization.Core.Failed_crossing_into_Lead_Out); } } \ No newline at end of file diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs index aa9f4e4cf..776a344fa 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs @@ -127,14 +127,13 @@ sealed partial class Dump if(_dumpRaw) { - _dumpLog.WriteLine(Localization.Core.Raw_CD_dumping_not_yet_implemented); + AaruLogging.WriteLine(Localization.Core.Raw_CD_dumping_not_yet_implemented); StoppingErrorMessage?.Invoke(Localization.Core.Raw_CD_dumping_not_yet_implemented); return; } tracks = GetCdTracks(_dev, - _dumpLog, _force, out lastSector, leadOutStarts, @@ -146,7 +145,7 @@ sealed partial class Dump if(tracks is null) { - _dumpLog.WriteLine(Localization.Core.Could_not_get_tracks); + AaruLogging.WriteLine(Localization.Core.Could_not_get_tracks); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_get_tracks); return; @@ -155,11 +154,11 @@ sealed partial class Dump firstLba = (uint)tracks.Min(t => t.StartSector); // Check subchannels support - supportsPqSubchannel = SupportsPqSubchannel(_dev, _dumpLog, UpdateStatus, firstLba) || - SupportsPqSubchannel(_dev, _dumpLog, UpdateStatus, firstLba + 5); + supportsPqSubchannel = SupportsPqSubchannel(_dev, UpdateStatus, firstLba) || + SupportsPqSubchannel(_dev, UpdateStatus, firstLba + 5); - supportsRwSubchannel = SupportsRwSubchannel(_dev, _dumpLog, UpdateStatus, firstLba) || - SupportsRwSubchannel(_dev, _dumpLog, UpdateStatus, firstLba + 5); + supportsRwSubchannel = SupportsRwSubchannel(_dev, UpdateStatus, firstLba) || + SupportsRwSubchannel(_dev, UpdateStatus, firstLba + 5); if(supportsRwSubchannel) supportedSubchannel = MmcSubchannel.Raw; @@ -184,8 +183,8 @@ sealed partial class Dump desiredSubchannel = MmcSubchannel.Raw; else { - _dumpLog.WriteLine(Localization.Core - .Drive_does_not_support_the_requested_subchannel_format_not_continuing); + AaruLogging.WriteLine(Localization.Core + .Drive_does_not_support_the_requested_subchannel_format_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core .Drive_does_not_support_the_requested_subchannel_format_not_continuing); @@ -201,8 +200,8 @@ sealed partial class Dump desiredSubchannel = MmcSubchannel.Q16; else { - _dumpLog.WriteLine(Localization.Core - .Drive_does_not_support_the_requested_subchannel_format_not_continuing); + AaruLogging.WriteLine(Localization.Core + .Drive_does_not_support_the_requested_subchannel_format_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core .Drive_does_not_support_the_requested_subchannel_format_not_continuing); @@ -216,8 +215,8 @@ sealed partial class Dump desiredSubchannel = MmcSubchannel.Q16; else { - _dumpLog.WriteLine(Localization.Core - .Drive_does_not_support_the_requested_subchannel_format_not_continuing); + AaruLogging.WriteLine(Localization.Core + .Drive_does_not_support_the_requested_subchannel_format_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core .Drive_does_not_support_the_requested_subchannel_format_not_continuing); @@ -242,12 +241,12 @@ sealed partial class Dump { if(_force || _subchannel == DumpSubchannel.None) { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_subchannels_continuing); + AaruLogging.WriteLine(Localization.Core.Output_format_does_not_support_subchannels_continuing); UpdateStatus?.Invoke(Localization.Core.Output_format_does_not_support_subchannels_continuing); } else { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_subchannels_not_continuing); + AaruLogging.WriteLine(Localization.Core.Output_format_does_not_support_subchannels_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core .Output_format_does_not_support_subchannels_not_continuing); @@ -261,7 +260,6 @@ sealed partial class Dump switch(supportedSubchannel) { case MmcSubchannel.None: - _dumpLog.WriteLine(Localization.Core.Checking_if_drive_supports_reading_without_subchannel); UpdateStatus?.Invoke(Localization.Core.Checking_if_drive_supports_reading_without_subchannel); readcd = !_dev.ReadCd(out cmdBuf, @@ -299,16 +297,14 @@ sealed partial class Dump if(!readcd) { - _dumpLog.WriteLine(Localization.Core.Drive_does_not_support_READ_CD_trying_SCSI_READ_commands); + AaruLogging.WriteLine(Localization.Core.Drive_does_not_support_READ_CD_trying_SCSI_READ_commands); ErrorMessage?.Invoke(Localization.Core.Drive_does_not_support_READ_CD_trying_SCSI_READ_commands); - _dumpLog.WriteLine(Localization.Core.Checking_if_drive_supports_READ_6); UpdateStatus?.Invoke(Localization.Core.Checking_if_drive_supports_READ_6); read6 = !_dev.Read6(out cmdBuf, out _, firstLba, 2048, 1, _dev.Timeout, out _) || !_dev.Read6(out cmdBuf, out _, firstLba + 5, 2048, 1, _dev.Timeout, out _); - _dumpLog.WriteLine(Localization.Core.Checking_if_drive_supports_READ_10); UpdateStatus?.Invoke(Localization.Core.Checking_if_drive_supports_READ_10); read10 = @@ -339,7 +335,6 @@ sealed partial class Dump _dev.Timeout, out _); - _dumpLog.WriteLine(Localization.Core.Checking_if_drive_supports_READ_12); UpdateStatus?.Invoke(Localization.Core.Checking_if_drive_supports_READ_12); read12 = @@ -372,7 +367,6 @@ sealed partial class Dump _dev.Timeout, out _); - _dumpLog.WriteLine(Localization.Core.Checking_if_drive_supports_READ_16); UpdateStatus?.Invoke(Localization.Core.Checking_if_drive_supports_READ_16); read16 = @@ -406,51 +400,34 @@ sealed partial class Dump switch(read6) { case false when !read10 && !read12 && !read16: - _dumpLog.WriteLine(Localization.Core.Cannot_read_from_disc_not_continuing); + AaruLogging.WriteLine(Localization.Core.Cannot_read_from_disc_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_read_from_disc_not_continuing); return; case true: - _dumpLog.WriteLine(Localization.Core.Drive_supports_READ_6); UpdateStatus?.Invoke(Localization.Core.Drive_supports_READ_6); break; } - if(read10) - { - _dumpLog.WriteLine(Localization.Core.Drive_supports_READ_10); - UpdateStatus?.Invoke(Localization.Core.Drive_supports_READ_10); - } + if(read10) UpdateStatus?.Invoke(Localization.Core.Drive_supports_READ_10); - if(read12) - { - _dumpLog.WriteLine(Localization.Core.Drive_supports_READ_12); - UpdateStatus?.Invoke(Localization.Core.Drive_supports_READ_12); - } + if(read12) UpdateStatus?.Invoke(Localization.Core.Drive_supports_READ_12); - if(read16) - { - _dumpLog.WriteLine(Localization.Core.Drive_supports_READ_16); - UpdateStatus?.Invoke(Localization.Core.Drive_supports_READ_16); - } + if(read16) UpdateStatus?.Invoke(Localization.Core.Drive_supports_READ_16); } - _dumpLog.WriteLine(Localization.Core.Drive_can_read_without_subchannel); UpdateStatus?.Invoke(Localization.Core.Drive_can_read_without_subchannel); subSize = 0; break; case MmcSubchannel.Raw: - _dumpLog.WriteLine(Localization.Core.Full_raw_subchannel_reading_supported); UpdateStatus?.Invoke(Localization.Core.Full_raw_subchannel_reading_supported); subSize = 96; break; case MmcSubchannel.Q16: - _dumpLog.WriteLine(Localization.Core.PQ_subchannel_reading_supported); - _dumpLog.WriteLine(Localization.Core.WARNING_If_disc_says_CDG_CDEG_CDMIDI_dump_will_be_incorrect); UpdateStatus?.Invoke(Localization.Core.PQ_subchannel_reading_supported); UpdateStatus?.Invoke(Localization.Core.WARNING_If_disc_says_CDG_CDEG_CDMIDI_dump_will_be_incorrect); @@ -504,25 +481,17 @@ sealed partial class Dump bcdSubchannel = (tmpBuf[21] & 0x30) > 0; if(bcdSubchannel) - { - _dumpLog.WriteLine(Localization.Core.Drive_returns_subchannel_in_BCD); UpdateStatus?.Invoke(Localization.Core.Drive_returns_subchannel_in_BCD); - } else - { - _dumpLog.WriteLine(Localization.Core.Drive_does_not_returns_subchannel_in_BCD); UpdateStatus?.Invoke(Localization.Core.Drive_does_not_returns_subchannel_in_BCD); - } } } foreach(Track trk in tracks) trk.SubchannelType = subType; - _dumpLog.WriteLine(Localization.Core.Calculating_pregaps__can_take_some_time); UpdateStatus?.Invoke(Localization.Core.Calculating_pregaps__can_take_some_time); SolveTrackPregaps(_dev, - _dumpLog, UpdateStatus, tracks, supportsPqSubchannel, @@ -532,25 +501,18 @@ sealed partial class Dump true); if(inexactPositioning) - { - _dumpLog.WriteLine(Localization.Core.The_drive_has_returned_incorrect_Q_positioning_calculating_pregaps); - UpdateStatus?.Invoke(Localization.Core.The_drive_has_returned_incorrect_Q_positioning_calculating_pregaps); - } if(!outputOptical.OpticalCapabilities.HasFlag(OpticalImageCapabilities.CanStoreRawData)) { if(!_force) { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_storing_raw_data_not_continuing); - StoppingErrorMessage?.Invoke(Localization.Core .Output_format_does_not_support_storing_raw_data_not_continuing); return; } - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_storing_raw_data_continuing); ErrorMessage?.Invoke(Localization.Core.Output_format_does_not_support_storing_raw_data_continuing); } @@ -558,8 +520,6 @@ sealed partial class Dump if(!outputOptical.OpticalCapabilities.HasFlag(OpticalImageCapabilities.CanStoreAudioTracks) && tracks.Any(track => track.Type == TrackType.Audio)) { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_audio_tracks_cannot_continue); - StoppingErrorMessage?.Invoke(Localization.Core.Output_format_does_not_support_audio_tracks_cannot_continue); return; @@ -571,14 +531,11 @@ sealed partial class Dump { if(!_force) { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_pregaps_not_continuing); - StoppingErrorMessage?.Invoke(Localization.Core.Output_format_does_not_support_pregaps_not_continuing); return; } - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_pregaps_continuing); ErrorMessage?.Invoke(Localization.Core.Output_format_does_not_support_pregaps_continuing); } @@ -624,7 +581,6 @@ sealed partial class Dump // TODO: Disabled until 6.0 /*if(!_force) {*/ - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_sessions); StoppingErrorMessage?.Invoke(Localization.Core.Output_format_does_not_support_sessions); @@ -641,14 +597,9 @@ sealed partial class Dump foreach(MediaTagType tag in mediaTags.Keys.Where(tag => !outputOptical.SupportedMediaTags.Contains(tag))) { if(_force) - { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_0_continuing, tag); ErrorMessage?.Invoke(string.Format(Localization.Core.Output_format_does_not_support_0_continuing, tag)); - } else { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_0_not_continuing, tag); - StoppingErrorMessage?.Invoke(string.Format(Localization.Core .Output_format_does_not_support_0_not_continuing, tag)); @@ -678,7 +629,6 @@ sealed partial class Dump leadOutExtents.Add(dataExtentsArray[i].Item2 + 1, dataExtentsArray[i + 1].Item1 - 1); } - _dumpLog.WriteLine(Localization.Core.Detecting_disc_type); UpdateStatus?.Invoke(Localization.Core.Detecting_disc_type); MMC.DetectDiscType(ref dskType, @@ -696,13 +646,11 @@ sealed partial class Dump if(hiddenTrack || firstLba > 0) { - _dumpLog.WriteLine(Localization.Core.Disc_contains_a_hidden_track); UpdateStatus?.Invoke(Localization.Core.Disc_contains_a_hidden_track); if(!outputOptical.OpticalCapabilities.HasFlag(OpticalImageCapabilities.CanStoreHiddenTracks)) { StoppingErrorMessage?.Invoke(Localization.Core.Output_format_does_not_support_hidden_tracks); - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_hidden_tracks); return; } @@ -727,11 +675,7 @@ sealed partial class Dump } if(tracks.Any(t => t.Type == TrackType.Audio) && desiredSubchannel != MmcSubchannel.Raw) - { - _dumpLog.WriteLine(Localization.Core.WARNING_If_disc_says_CDG_CDEG_CDMIDI_dump_will_be_incorrect); - UpdateStatus?.Invoke(Localization.Core.WARNING_If_disc_says_CDG_CDEG_CDMIDI_dump_will_be_incorrect); - } // Check mode for tracks foreach(Track trk in tracks.Where(t => t.Type != TrackType.Audio)) @@ -743,7 +687,6 @@ sealed partial class Dump continue; } - _dumpLog.WriteLine(Localization.Core.Checking_mode_for_track_0, trk.Sequence); UpdateStatus?.Invoke(string.Format(Localization.Core.Checking_mode_for_track_0, trk.Sequence)); sense = _dev.ReadCd(out cmdBuf, @@ -765,8 +708,6 @@ sealed partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Unable_to_guess_mode_for_track_0_continuing, trk.Sequence); - UpdateStatus?.Invoke(string.Format(Localization.Core.Unable_to_guess_mode_for_track_0_continuing, trk.Sequence)); @@ -798,7 +739,6 @@ sealed partial class Dump case 1: case 0x61: // Scrambled UpdateStatus?.Invoke(string.Format(Localization.Core.Track_0_is_MODE1, trk.Sequence)); - _dumpLog.WriteLine(Localization.Core.Track_0_is_MODE1, trk.Sequence); trk.Type = TrackType.CdMode1; break; @@ -807,7 +747,6 @@ sealed partial class Dump if(dskType is MediaType.CDI or MediaType.CDIREADY) { UpdateStatus?.Invoke(string.Format(Localization.Core.Track_0_is_MODE2, trk.Sequence)); - _dumpLog.WriteLine(Localization.Core.Track_0_is_MODE2, trk.Sequence); trk.Type = TrackType.CdMode2Formless; break; @@ -816,14 +755,12 @@ sealed partial class Dump if((cmdBuf[0x012] & 0x20) == 0x20) // mode 2 form 2 { UpdateStatus?.Invoke(string.Format(Localization.Core.Track_0_is_MODE2_FORM_2, trk.Sequence)); - _dumpLog.WriteLine(Localization.Core.Track_0_is_MODE2_FORM_2, trk.Sequence); trk.Type = TrackType.CdMode2Form2; break; } UpdateStatus?.Invoke(string.Format(Localization.Core.Track_0_is_MODE2_FORM_1, trk.Sequence)); - _dumpLog.WriteLine(Localization.Core.Track_0_is_MODE2_FORM_1, trk.Sequence); trk.Type = TrackType.CdMode2Form1; // These media type specifications do not legally allow mode 2 tracks to be present @@ -835,7 +772,6 @@ sealed partial class Dump trk.Sequence, cmdBuf[15])); - _dumpLog.WriteLine(Localization.Core.Track_0_is_unknown_mode_1, trk.Sequence, cmdBuf[15]); break; } @@ -848,7 +784,6 @@ sealed partial class Dump StoppingErrorMessage?.Invoke(Localization.Core .Output_format_does_not_support_more_than_1_track_not_continuing); - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_more_than_1_track_not_continuing); return; } @@ -858,7 +793,6 @@ sealed partial class Dump StoppingErrorMessage?.Invoke(Localization.Core .Output_format_does_not_support_audio_tracks_not_continuing); - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_audio_tracks_not_continuing); return; } @@ -868,7 +802,6 @@ sealed partial class Dump StoppingErrorMessage?.Invoke(Localization.Core .Output_format_only_supports_MODE_1_tracks_not_continuing); - _dumpLog.WriteLine(Localization.Core.Output_format_only_supports_MODE_1_tracks_not_continuing); return; } @@ -883,17 +816,11 @@ sealed partial class Dump { if(_force) { - _dumpLog.WriteLine(Localization.Core - .Output_format_does_not_support_CD_first_track_pregap_continuing); - ErrorMessage?.Invoke(Localization.Core .Output_format_does_not_support_CD_first_track_pregap_continuing); } else { - _dumpLog.WriteLine(Localization.Core - .Output_format_does_not_support_CD_first_track_pregap_not_continuing); - StoppingErrorMessage?.Invoke(Localization.Core .Output_format_does_not_support_CD_first_track_pregap_not_continuing); @@ -995,8 +922,6 @@ sealed partial class Dump if(_dev.Error || sense) { - _dumpLog.WriteLine(Localization.Core.Device_error_0_trying_to_guess_ideal_transfer_length, _dev.LastError); - StoppingErrorMessage?.Invoke(string.Format(Localization.Core .Device_error_0_trying_to_guess_ideal_transfer_length, _dev.LastError)); @@ -1014,13 +939,6 @@ sealed partial class Dump if(_dumpFirstTrackPregap && readcd) ReadCdFirstTrackPregap(blockSize, ref currentSpeed, mediaTags, supportedSubchannel, ref totalDuration); - _dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, _maximumReadable); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_blocks_1_bytes, blocks, blocks * blockSize); - _dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_at_a_time, _maximumReadable); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_logical_block, blockSize); - _dumpLog.WriteLine(Localization.Core.SCSI_device_type_0, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.Media_identified_as_0, dskType); - UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, _maximumReadable)); UpdateStatus?.Invoke(string.Format(Localization.Core.Device_reports_0_blocks_1_bytes, @@ -1041,8 +959,8 @@ sealed partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputOptical.ErrorMessage); + AaruLogging.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); + AaruLogging.WriteLine(outputOptical.ErrorMessage); StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + @@ -1080,8 +998,8 @@ sealed partial class Dump if(!ret && desiredSubchannel == MmcSubchannel.None) { - _dumpLog.WriteLine(Localization.Core.Error_sending_tracks_to_output_image_not_continuing); - _dumpLog.WriteLine(outputOptical.ErrorMessage); + AaruLogging.WriteLine(Localization.Core.Error_sending_tracks_to_output_image_not_continuing); + AaruLogging.WriteLine(outputOptical.ErrorMessage); StoppingErrorMessage?.Invoke(Localization.Core.Error_sending_tracks_to_output_image_not_continuing + Environment.NewLine + @@ -1095,14 +1013,9 @@ sealed partial class Dump !outputOptical.OpticalCapabilities.HasFlag(OpticalImageCapabilities.CanStoreSubchannelRw)) { if(_force) - { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_subchannels_continuing); ErrorMessage?.Invoke(Localization.Core.Output_format_does_not_support_subchannels_continuing); - } else { - _dumpLog.WriteLine(Localization.Core.Output_format_does_not_support_subchannels_not_continuing); - StoppingErrorMessage?.Invoke(Localization.Core .Output_format_does_not_support_subchannels_not_continuing); @@ -1112,8 +1025,8 @@ sealed partial class Dump if(supportedSubchannel != MmcSubchannel.None) { - _dumpLog.WriteLine(string.Format(Localization.Core.Creating_subchannel_log_in_0, - _outputPrefix + ".sub.log")); + AaruLogging.WriteLine(string.Format(Localization.Core.Creating_subchannel_log_in_0, + _outputPrefix + ".sub.log")); subLog = new SubchannelLog(_outputPrefix + ".sub.log", bcdSubchannel); } @@ -1125,7 +1038,6 @@ sealed partial class Dump if(track is null) continue; - _dumpLog.WriteLine(Localization.Core.Setting_flags_for_track_0, track.Sequence); UpdateStatus?.Invoke(string.Format(Localization.Core.Setting_flags_for_track_0, track.Sequence)); outputOptical.WriteSectorTag([kvp.Value], kvp.Key, SectorTagType.CdTrackFlags); @@ -1137,10 +1049,7 @@ sealed partial class Dump sense = _dev.ReadMcn(out mcn, out _, out _, _dev.Timeout, out _); if(!sense && mcn != null && mcn != "0000000000000") - { UpdateStatus?.Invoke(string.Format(Localization.Core.Found_Media_Catalogue_Number_0, mcn)); - _dumpLog.WriteLine(Localization.Core.Found_Media_Catalogue_Number_0, mcn); - } else mcn = null; } @@ -1157,7 +1066,6 @@ sealed partial class Dump isrcs[(byte)trk.Sequence] = isrc; UpdateStatus?.Invoke(string.Format(Localization.Core.Found_ISRC_for_track_0_1, trk.Sequence, isrc)); - _dumpLog.WriteLine(string.Format(Localization.Core.Found_ISRC_for_track_0_1, trk.Sequence, isrc)); } } @@ -1170,16 +1078,12 @@ sealed partial class Dump foreach(int sub in _resume.BadSubchannels) subchannelExtents.Add(sub); if(_resume.NextBlock < blocks) - { - for(ulong i = _resume.NextBlock; i < blocks; i++) subchannelExtents.Add((int)i); - } + for(ulong i = _resume.NextBlock; i < blocks; i++) + subchannelExtents.Add((int)i); } if(_resume.NextBlock > 0) - { UpdateStatus?.Invoke(string.Format(Localization.Core.Resuming_from_block_0, _resume.NextBlock)); - _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); - } if(_skip < _maximumReadable) _skip = _maximumReadable; @@ -1199,7 +1103,6 @@ sealed partial class Dump if(tracks.All(t => t.Type != TrackType.Audio)) { // No audio tracks so no need to fix offset - _dumpLog.WriteLine(Localization.Core.No_audio_tracks_disabling_offset_fix); UpdateStatus.Invoke(Localization.Core.No_audio_tracks_disabling_offset_fix); _fixOffset = false; @@ -1207,9 +1110,6 @@ sealed partial class Dump if(!readcd) { - _dumpLog.WriteLine(Localization.Core - .READ_CD_command_is_not_supported_disabling_offset_fix_Dump_may_not_be_correct); - UpdateStatus?.Invoke(Localization.Core .READ_CD_command_is_not_supported_disabling_offset_fix_Dump_may_not_be_correct); @@ -1218,9 +1118,6 @@ sealed partial class Dump } else if(tracks.Any(t => t.Type == TrackType.Audio)) { - _dumpLog.WriteLine(Localization.Core - .There_are_audio_tracks_and_offset_fixing_is_disabled_dump_may_not_be_correct); - UpdateStatus?.Invoke(Localization.Core .There_are_audio_tracks_and_offset_fixing_is_disabled_dump_may_not_be_correct); } @@ -1236,7 +1133,6 @@ sealed partial class Dump _debug, _dev, dskType, - _dumpLog, tracks, UpdateStatus, out int? driveOffset, @@ -1247,31 +1143,20 @@ sealed partial class Dump { if(driveOffset is null) { - _dumpLog.WriteLine(Localization.Core.Drive_reading_offset_not_found_in_database); UpdateStatus?.Invoke(Localization.Core.Drive_reading_offset_not_found_in_database); - _dumpLog.WriteLine(Localization.Core.Disc_offset_cannot_be_calculated); UpdateStatus?.Invoke(Localization.Core.Disc_offset_cannot_be_calculated); if(tracks.Any(t => t.Type == TrackType.Audio)) - { - _dumpLog.WriteLine(Localization.Core.Dump_may_not_be_correct); - UpdateStatus?.Invoke(Localization.Core.Dump_may_not_be_correct); - } if(_fixOffset) _fixOffset = false; } else { - _dumpLog.WriteLine(string.Format(Localization.Core.Drive_reading_offset_is_0_bytes_1_samples, - driveOffset, - driveOffset / 4)); - UpdateStatus?.Invoke(string.Format(Localization.Core.Drive_reading_offset_is_0_bytes_1_samples, driveOffset, driveOffset / 4)); - _dumpLog.WriteLine(Localization.Core.Disc_write_offset_is_unknown_dump_may_not_be_correct); UpdateStatus?.Invoke(Localization.Core.Disc_write_offset_is_unknown_dump_may_not_be_correct); offsetBytes = driveOffset.Value; @@ -1294,13 +1179,8 @@ sealed partial class Dump if(driveOffset is null) { - _dumpLog.WriteLine(Localization.Core.Drive_reading_offset_not_found_in_database); UpdateStatus?.Invoke(Localization.Core.Drive_reading_offset_not_found_in_database); - _dumpLog.WriteLine(string.Format(Localization.Core.Combined_disc_and_drive_offset_are_0_bytes_1_samples, - offsetBytes, - offsetBytes / 4)); - UpdateStatus?.Invoke(string.Format(Localization.Core .Combined_disc_and_drive_offset_are_0_bytes_1_samples, offsetBytes, @@ -1308,19 +1188,12 @@ sealed partial class Dump } else { - _dumpLog.WriteLine(string.Format(Localization.Core.Drive_reading_offset_is_0_bytes_1_samples, - driveOffset, - driveOffset / 4)); - UpdateStatus?.Invoke(string.Format(Localization.Core.Drive_reading_offset_is_0_bytes_1_samples, driveOffset, driveOffset / 4)); discOffset = offsetBytes - driveOffset; - _dumpLog.WriteLine(string.Format(Localization.Core.Disc_offset_is_0_bytes_1_samples, - discOffset, - discOffset / 4)); UpdateStatus?.Invoke(string.Format(Localization.Core.Disc_offset_is_0_bytes_1_samples, discOffset, @@ -1364,10 +1237,6 @@ sealed partial class Dump // Set speed if(_speedMultiplier >= 0) { - _dumpLog.WriteLine(_speed == 0xFFFF - ? Localization.Core.Setting_speed_to_MAX_for_data_reading - : string.Format(Localization.Core.Setting_speed_to_0_x_for_data_reading, _speed)); - UpdateStatus?.Invoke(_speed == 0xFFFF ? Localization.Core.Setting_speed_to_MAX_for_data_reading : string.Format(Localization.Core.Setting_speed_to_0_x_for_data_reading, _speed)); @@ -1390,9 +1259,6 @@ sealed partial class Dump if(!supportsLongSectors) { - _dumpLog.WriteLine(Localization.Core - .Dumping_CD_i_Ready_requires_the_output_image_format_to_support_long_sectors); - StoppingErrorMessage?.Invoke(Localization.Core .Dumping_CD_i_Ready_requires_the_output_image_format_to_support_long_sectors); @@ -1401,9 +1267,6 @@ sealed partial class Dump if(!readcd) { - _dumpLog.WriteLine(Localization.Core - .Dumping_CD_i_Ready_requires_the_drive_to_support_the_READ_CD_command); - StoppingErrorMessage?.Invoke(Localization.Core .Dumping_CD_i_Ready_requires_the_drive_to_support_the_READ_CD_command); @@ -1442,9 +1305,6 @@ sealed partial class Dump if(offsetBytes % sectorSize != 0) sectorsForOffset++; - _dumpLog.WriteLine(Localization.Core - .Enabling_skipping_CD_i_Ready_hole_because_drive_returns_data_as_audio); - UpdateStatus?.Invoke(Localization.Core .Enabling_skipping_CD_i_Ready_hole_because_drive_returns_data_as_audio); @@ -1452,13 +1312,8 @@ sealed partial class Dump if(driveOffset is null) { - _dumpLog.WriteLine(Localization.Core.Drive_reading_offset_not_found_in_database); UpdateStatus?.Invoke(Localization.Core.Drive_reading_offset_not_found_in_database); - _dumpLog.WriteLine(string.Format(Localization.Core - .Combined_disc_and_drive_offset_are_0_bytes_1_samples, - offsetBytes, - offsetBytes / 4)); UpdateStatus?.Invoke(string.Format(Localization.Core .Combined_disc_and_drive_offset_are_0_bytes_1_samples, @@ -1467,19 +1322,12 @@ sealed partial class Dump } else { - _dumpLog.WriteLine(string.Format(Localization.Core.Drive_reading_offset_is_0_bytes_1_samples, - driveOffset, - driveOffset / 4)); - UpdateStatus?.Invoke(string.Format(Localization.Core.Drive_reading_offset_is_0_bytes_1_samples, driveOffset, driveOffset / 4)); discOffset = offsetBytes - driveOffset; - _dumpLog.WriteLine(string.Format(Localization.Core.Disc_offset_is_0_bytes_1_samples, - discOffset, - discOffset / 4)); UpdateStatus?.Invoke(string.Format(Localization.Core.Disc_offset_is_0_bytes_1_samples, discOffset, @@ -1490,9 +1338,6 @@ sealed partial class Dump if(!_skipCdireadyHole) { - _dumpLog.WriteLine(Localization.Core - .There_will_be_thousand_of_errors_between_track_0_and_track_1_that_is_normal_and_you_can_ignore_them); - UpdateStatus?.Invoke(Localization.Core .There_will_be_thousand_of_errors_between_track_0_and_track_1_that_is_normal_and_you_can_ignore_them); } @@ -1592,18 +1437,6 @@ sealed partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); TrimCdUserData(audioExtents, blockSize, @@ -1661,9 +1494,8 @@ sealed partial class Dump supportsLongSectors); foreach(Tuple leadoutExtent in leadOutExtents.ToArray()) - { - for(ulong e = leadoutExtent.Item1; e <= leadoutExtent.Item2; e++) subchannelExtents.Remove((int)e); - } + for(ulong e = leadoutExtent.Item1; e <= leadoutExtent.Item2; e++) + subchannelExtents.Remove((int)e); if(subchannelExtents.Count > 0 && _retryPasses > 0 && _retrySubchannel) { @@ -1697,7 +1529,6 @@ sealed partial class Dump if(ret || _force) continue; // Cannot write tag to image - _dumpLog.WriteLine(string.Format(Localization.Core.Cannot_write_tag_0, tag.Key)); StoppingErrorMessage?.Invoke(outputOptical.ErrorMessage); return; @@ -1706,7 +1537,8 @@ sealed partial class Dump _resume.BadBlocks.Sort(); - foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); + foreach(ulong bad in _resume.BadBlocks) + AaruLogging.Information(Localization.Core.Sector_0_could_not_be_read, bad); currentTry.Extents = ExtentsConverter.ToMetadata(extents); @@ -1723,7 +1555,6 @@ sealed partial class Dump trackFlags, blocks, subLog, - _dumpLog, InitProgress, UpdateProgress, EndProgress, @@ -1755,14 +1586,10 @@ sealed partial class Dump continue; UpdateStatus?.Invoke(string.Format(Localization.Core.Setting_ISRC_for_track_0_to_1, isrc.Key, isrc.Value)); - _dumpLog.WriteLine(Localization.Core.Setting_ISRC_for_track_0_to_1, isrc.Key, isrc.Value); } if(mcn != null && outputOptical.WriteMediaTag(Encoding.ASCII.GetBytes(mcn), MediaTagType.CD_MCN)) - { UpdateStatus?.Invoke(string.Format(Localization.Core.Setting_disc_Media_Catalogue_Number_to_0, mcn)); - _dumpLog.WriteLine(Localization.Core.Setting_disc_Media_Catalogue_Number_to_0, mcn); - } foreach(Track trk in tracks) { @@ -1783,7 +1610,6 @@ sealed partial class Dump outputOptical.SetTracks(tracks.ToList()); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputOptical.Close(); @@ -1796,7 +1622,7 @@ sealed partial class Dump if(_aborted) { - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); return; } diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs index a78fee840..6476b3c0b 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs @@ -197,7 +197,6 @@ partial class Dump md10 = Modes.EncodeMode10(md, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _); if(sense) sense = _dev.ModeSelect10(md10, out senseBuf, true, false, _dev.Timeout, out _); @@ -208,9 +207,6 @@ partial class Dump .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); AaruLogging.Debug(Localization.Core.Error_0, Sense.PrettifySense(senseBuf)); - - _dumpLog.WriteLine(Localization.Core - .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); } else runningPersistent = true; @@ -228,7 +224,7 @@ partial class Dump if(_aborted) { currentTry.Extents = ExtentsConverter.ToMetadata(extents); - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); break; } @@ -469,8 +465,9 @@ partial class Dump // MEDIUM ERROR, retry with ignore error below if(decSense is { ASC: 0x11 }) - if(!sectorsNotEvenPartial.Contains(badSector)) - sectorsNotEvenPartial.Add(badSector); + { + if(!sectorsNotEvenPartial.Contains(badSector)) sectorsNotEvenPartial.Add(badSector); + } } // Because one block has been partially used to fix the offset @@ -499,7 +496,6 @@ partial class Dump badSector, pass)); - _dumpLog.WriteLine(Localization.Core.Correctly_retried_sector_0_in_pass_1, badSector, pass); sectorsNotEvenPartial.Remove(badSector); } else @@ -532,7 +528,6 @@ partial class Dump outputOptical, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -600,7 +595,7 @@ partial class Dump md6 = Modes.EncodeMode6(md, _dev.ScsiType); md10 = Modes.EncodeMode10(md, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_ignore_error_correction); + AaruLogging.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_ignore_error_correction); sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _); if(sense) sense = _dev.ModeSelect10(md10, out senseBuf, true, false, _dev.Timeout, out _); @@ -618,7 +613,7 @@ partial class Dump if(_aborted) { currentTry.Extents = ExtentsConverter.ToMetadata(extents); - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); break; } @@ -657,7 +652,7 @@ partial class Dump continue; } - _dumpLog.WriteLine(Localization.Core.Got_partial_data_for_sector_0_in_pass_1, badSector, pass); + AaruLogging.WriteLine(Localization.Core.Got_partial_data_for_sector_0_in_pass_1, badSector, pass); if(supportedSubchannel != MmcSubchannel.None) { @@ -686,7 +681,6 @@ partial class Dump outputOptical, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -722,7 +716,7 @@ partial class Dump md6 = Modes.EncodeMode6(md, _dev.ScsiType); md10 = Modes.EncodeMode10(md, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); + AaruLogging.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _); if(sense) _dev.ModeSelect10(md10, out senseBuf, true, false, _dev.Timeout, out _); @@ -790,7 +784,7 @@ partial class Dump if(_aborted) { - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); break; } @@ -862,7 +856,6 @@ partial class Dump outputOptical, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -873,8 +866,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_sector_0_subchannel_in_pass_1, badSector, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_sector_0_subchannel_in_pass_1, badSector, pass); } if(pass < _retryPasses && !_aborted && subchannelExtents.Count > 0) diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/LeadOuts.cs b/Aaru.Core/Devices/Dumping/CompactDisc/LeadOuts.cs index 24cefff31..b421c9524 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/LeadOuts.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/LeadOuts.cs @@ -44,6 +44,7 @@ using Aaru.CommonTypes.Extents; using Aaru.CommonTypes.Interfaces; using Aaru.Core.Logging; using Aaru.Devices; +using Aaru.Logging; using Humanizer; using Humanizer.Bytes; using Track = Aaru.CommonTypes.Structs.Track; @@ -91,12 +92,11 @@ partial class Dump { byte[] cmdBuf = null; // Data buffer const uint sectorSize = 2352; // Full sector size - var sense = true; // Sense indicator + bool sense = true; // Sense indicator byte[] senseBuf = null; var outputOptical = _outputPlugin as IWritableOpticalImage; UpdateStatus?.Invoke(Localization.Core.Reading_lead_outs); - _dumpLog.WriteLine(Localization.Core.Reading_lead_outs); InitProgress?.Invoke(); @@ -107,7 +107,7 @@ partial class Dump if(_aborted) { currentTry.Extents = ExtentsConverter.ToMetadata(extents); - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); break; } @@ -205,10 +205,10 @@ partial class Dump if(supportedSubchannel != MmcSubchannel.None) { - var data = new byte[sectorSize * _maximumReadable]; - var sub = new byte[subSize * _maximumReadable]; + byte[] data = new byte[sectorSize * _maximumReadable]; + byte[] sub = new byte[subSize * _maximumReadable]; - for(var b = 0; b < _maximumReadable; b++) + for(int b = 0; b < _maximumReadable; b++) { Array.Copy(cmdBuf, (int)(0 + b * blockSize), data, sectorSize * b, sectorSize); @@ -232,7 +232,6 @@ partial class Dump outputOptical, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -332,11 +331,11 @@ partial class Dump { byte[] cmdBuf = null; // Data buffer const uint sectorSize = 2352; // Full sector size - var sense = true; // Sense indicator + bool sense = true; // Sense indicator byte[] senseBuf = null; var outputOptical = _outputPlugin as IWritableOpticalImage; - _dumpLog.WriteLine("Retrying lead-outs"); + AaruLogging.WriteLine("Retrying lead-outs"); InitProgress?.Invoke(); @@ -347,7 +346,7 @@ partial class Dump if(_aborted) { currentTry.Extents = ExtentsConverter.ToMetadata(extents); - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); break; } @@ -445,10 +444,10 @@ partial class Dump if(supportedSubchannel != MmcSubchannel.None) { - var data = new byte[sectorSize * _maximumReadable]; - var sub = new byte[subSize * _maximumReadable]; + byte[] data = new byte[sectorSize * _maximumReadable]; + byte[] sub = new byte[subSize * _maximumReadable]; - for(var b = 0; b < _maximumReadable; b++) + for(int b = 0; b < _maximumReadable; b++) { Array.Copy(cmdBuf, (int)(0 + b * blockSize), data, sectorSize * b, sectorSize); @@ -472,7 +471,6 @@ partial class Dump outputOptical, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Pregap.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Pregap.cs index c3f1cc85d..3ba466e3f 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Pregap.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Pregap.cs @@ -42,7 +42,6 @@ using Aaru.Checksums; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Structs; -using Aaru.Core.Logging; using Aaru.Devices; using Aaru.Logging; using Humanizer; @@ -70,7 +69,6 @@ partial class Dump int firstTrackPregapSectorsGood = 0; var firstTrackPregapMs = new MemoryStream(); - _dumpLog.WriteLine(Localization.Core.Reading_first_track_pregap); UpdateStatus?.Invoke(Localization.Core.Reading_first_track_pregap); InitProgress?.Invoke(); _speedStopwatch.Restart(); @@ -81,7 +79,6 @@ partial class Dump { if(_aborted) { - _dumpLog.WriteLine(Localization.Core.Aborted); UpdateStatus?.Invoke(Localization.Core.Aborted); break; @@ -145,8 +142,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Got_0_first_track_pregap_sectors, firstTrackPregapSectorsGood)); - _dumpLog.WriteLine(Localization.Core.Got_0_first_track_pregap_sectors, firstTrackPregapSectorsGood); - firstTrackPregapMs.Close(); } @@ -160,8 +155,8 @@ partial class Dump /// Database entry for device /// Set if we found the drive does not return the exact subchannel we requested /// Set if dumping, otherwise media info - public static void SolveTrackPregaps(Device dev, DumpLog dumpLog, UpdateStatusHandler updateStatus, Track[] tracks, - bool supportsPqSubchannel, bool supportsRwSubchannel, + public static void SolveTrackPregaps(Device dev, UpdateStatusHandler updateStatus, Track[] tracks, + bool supportsPqSubchannel, bool supportsRwSubchannel, Database.Models.Device dbDev, out bool inexactPositioning, bool dumping) { bool sense = true; // Sense indicator @@ -190,18 +185,15 @@ partial class Dump } AaruLogging.Debug(PREGAP_MODULE_NAME, - bcd switch - { - true => Localization.Core.Subchannel_is_BCD, - false => Localization.Core.Subchannel_is_not_BCD, - _ => Localization.Core.Could_not_detect_drive_subchannel_BCD - }); + bcd switch + { + true => Localization.Core.Subchannel_is_BCD, + false => Localization.Core.Subchannel_is_not_BCD, + _ => Localization.Core.Could_not_detect_drive_subchannel_BCD + }); if(bcd is null) { - dumpLog?.WriteLine(Localization.Core - .Could_not_detect_if_drive_subchannel_is_BCD_or_not_pregaps_could_not_be_calculated_dump_may_be_incorrect); - updateStatus?.Invoke(Localization.Core .Could_not_detect_if_drive_subchannel_is_BCD_or_not_pregaps_could_not_be_calculated_dump_may_be_incorrect); @@ -236,8 +228,8 @@ partial class Dump if(dumping && dev.Manufacturer.ToLowerInvariant().StartsWith("plextor", StringComparison.Ordinal)) { AaruLogging.Debug(PREGAP_MODULE_NAME, - Localization.Core.Skipping_track_0_due_to_Plextor_firmware_bug, - track.Sequence); + Localization.Core.Skipping_track_0_due_to_Plextor_firmware_bug, + track.Sequence); continue; } @@ -264,10 +256,10 @@ partial class Dump if(sense) { AaruLogging.Debug(PREGAP_MODULE_NAME, - Localization.Core.LBA_0_Try_1_Sense_2, - lba, - retries + 1, - sense); + Localization.Core.LBA_0_Try_1_Sense_2, + lba, + retries + 1, + sense); continue; } @@ -277,25 +269,25 @@ partial class Dump CRC16CcittContext.Data(subBuf, 10, out crc); AaruLogging.Debug(PREGAP_MODULE_NAME, - Localization.Core - .LBA_0_Try_1_Sense_2_Q_3_4_5_6_7_8_9_10_11_12_CRC_13_14_Calculated_CRC_15_16, - lba, - retries + 1, - sense, - subBuf[0], - subBuf[1], - subBuf[2], - subBuf[3], - subBuf[4], - subBuf[5], - subBuf[6], - subBuf[7], - subBuf[8], - subBuf[9], - subBuf[10], - subBuf[11], - crc[0], - crc[1]); + Localization.Core + .LBA_0_Try_1_Sense_2_Q_3_4_5_6_7_8_9_10_11_12_CRC_13_14_Calculated_CRC_15_16, + lba, + retries + 1, + sense, + subBuf[0], + subBuf[1], + subBuf[2], + subBuf[3], + subBuf[4], + subBuf[5], + subBuf[6], + subBuf[7], + subBuf[8], + subBuf[9], + subBuf[10], + subBuf[11], + crc[0], + crc[1]); crcOk = crc[0] == subBuf[10] && crc[1] == subBuf[11]; @@ -330,25 +322,25 @@ partial class Dump if(crcOk) { AaruLogging.Debug(PREGAP_MODULE_NAME, - Localization.Core - .LBA_0_Try_1_Sense_2_Q_FIXED_3_4_5_6_7_8_9_10_11_12_CRC_13_14_Calculated_CRC_15_16, - lba, - retries + 1, - sense, - subBuf[0], - subBuf[1], - subBuf[2], - subBuf[3], - subBuf[4], - subBuf[5], - subBuf[6], - subBuf[7], - subBuf[8], - subBuf[9], - subBuf[10], - subBuf[11], - crc[0], - crc[1]); + Localization.Core + .LBA_0_Try_1_Sense_2_Q_FIXED_3_4_5_6_7_8_9_10_11_12_CRC_13_14_Calculated_CRC_15_16, + lba, + retries + 1, + sense, + subBuf[0], + subBuf[1], + subBuf[2], + subBuf[3], + subBuf[4], + subBuf[5], + subBuf[6], + subBuf[7], + subBuf[8], + subBuf[9], + subBuf[10], + subBuf[11], + crc[0], + crc[1]); } else continue; @@ -404,25 +396,25 @@ partial class Dump CRC16CcittContext.Data(subBuf, 10, out crc); AaruLogging.Debug(PREGAP_MODULE_NAME, - Localization.Core - .LBA_0_Try_1_Sense_2_Q_3_4_5_6_7_8_9_10_11_12_CRC_13_14_Calculated_CRC_15_16, - lba, - retries + 1, - sense, - subBuf[0], - subBuf[1], - subBuf[2], - subBuf[3], - subBuf[4], - subBuf[5], - subBuf[6], - subBuf[7], - subBuf[8], - subBuf[9], - subBuf[10], - subBuf[11], - crc[0], - crc[1]); + Localization.Core + .LBA_0_Try_1_Sense_2_Q_3_4_5_6_7_8_9_10_11_12_CRC_13_14_Calculated_CRC_15_16, + lba, + retries + 1, + sense, + subBuf[0], + subBuf[1], + subBuf[2], + subBuf[3], + subBuf[4], + subBuf[5], + subBuf[6], + subBuf[7], + subBuf[8], + subBuf[9], + subBuf[10], + subBuf[11], + crc[0], + crc[1]); crcOk = crc[0] == subBuf[10] && crc[1] == subBuf[11]; @@ -457,25 +449,25 @@ partial class Dump if(crcOk) { AaruLogging.Debug(PREGAP_MODULE_NAME, - Localization.Core - .LBA_0_Try_1_Sense_2_Q_FIXED_3_4_5_6_7_8_9_10_11_12_CRC_13_14_Calculated_CRC_15_16, - lba, - retries + 1, - sense, - subBuf[0], - subBuf[1], - subBuf[2], - subBuf[3], - subBuf[4], - subBuf[5], - subBuf[6], - subBuf[7], - subBuf[8], - subBuf[9], - subBuf[10], - subBuf[11], - crc[0], - crc[1]); + Localization.Core + .LBA_0_Try_1_Sense_2_Q_FIXED_3_4_5_6_7_8_9_10_11_12_CRC_13_14_Calculated_CRC_15_16, + lba, + retries + 1, + sense, + subBuf[0], + subBuf[1], + subBuf[2], + subBuf[3], + subBuf[4], + subBuf[5], + subBuf[6], + subBuf[7], + subBuf[8], + subBuf[9], + subBuf[10], + subBuf[11], + crc[0], + crc[1]); break; } @@ -497,27 +489,17 @@ partial class Dump if(previousTrack.Type == TrackType.Audio && track.Type != TrackType.Audio || previousTrack.Type != TrackType.Audio && track.Type == TrackType.Audio) { - dumpLog?.WriteLine(Localization.Core - .Could_not_read_subchannel_for_this_track_supposing_hundred_fifty_sectors); - updateStatus?.Invoke(Localization.Core .Could_not_read_subchannel_for_this_track_supposing_hundred_fifty_sectors); } else { - dumpLog?.WriteLine(Localization.Core - .Could_not_read_subchannel_for_this_track_supposing_zero_sectors); - updateStatus?.Invoke(Localization.Core .Could_not_read_subchannel_for_this_track_supposing_zero_sectors); } } else { - dumpLog?.WriteLine(string.Format(Localization.Core - .Could_not_read_subchannel_for_this_track_supposing_0_sectors, - pregaps[track.Sequence])); - updateStatus?.Invoke(string.Format(Localization.Core .Could_not_read_subchannel_for_this_track_supposing_0_sectors, pregaps[track.Sequence])); @@ -526,9 +508,6 @@ partial class Dump break; } - dumpLog?.WriteLine(string.Format(Localization.Core.Could_not_read_subchannel_for_sector_0, - lba)); - updateStatus?.Invoke(string.Format(Localization.Core.Could_not_read_subchannel_for_sector_0, lba)); @@ -538,9 +517,6 @@ partial class Dump continue; } - dumpLog?.WriteLine(string.Format(Localization.Core.Could_not_get_correct_subchannel_for_sector_0, - lba)); - updateStatus?.Invoke(string.Format(Localization.Core.Could_not_get_correct_subchannel_for_sector_0, lba)); } @@ -612,9 +588,9 @@ partial class Dump if(diff != 0) { AaruLogging.Debug(PREGAP_MODULE_NAME, - Localization.Core.Invalid_Q_position_for_LBA_0_got_1, - lba, - posQ); + Localization.Core.Invalid_Q_position_for_LBA_0_got_1, + lba, + posQ); inexactPositioning = true; } @@ -636,9 +612,9 @@ partial class Dump if(crcOk || pregapQ - pregaps[track.Sequence] < 10) { AaruLogging.Debug(PREGAP_MODULE_NAME, - Localization.Core.Pregap_for_track_0_1, - track.Sequence, - pregapQ); + Localization.Core.Pregap_for_track_0_1, + track.Sequence, + pregapQ); pregaps[track.Sequence] = pregapQ; } @@ -680,8 +656,6 @@ partial class Dump trk.StartSector -= trk.Pregap; #if DEBUG - dumpLog?.WriteLine(string.Format(Localization.Core.Track_0_pregap_is_1_sectors, trk.Sequence, trk.Pregap)); - updateStatus?.Invoke(string.Format(Localization.Core.Track_0_pregap_is_1_sectors, trk.Sequence, trk.Pregap)); diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Recordable.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Recordable.cs index 6fb1598dd..2bec64b82 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Recordable.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Recordable.cs @@ -63,9 +63,6 @@ partial class Dump if(runOutSectors.Count == 0) return; - _dumpLog.WriteLine(string.Format(Localization.Core._0_sectors_at_the_end_of_the_disc_are_unreadable, - runOutSectors.Count)); - UpdateStatus?.Invoke(string.Format(Localization.Core._0_sectors_at_the_end_of_the_disc_are_unreadable, runOutSectors.Count)); @@ -75,7 +72,7 @@ partial class Dump if(track is null) continue; - var sector = new byte[2352]; + byte[] sector = new byte[2352]; switch(track.Type) { diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Subchannel.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Subchannel.cs index a65db318b..3865911a4 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Subchannel.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Subchannel.cs @@ -35,7 +35,6 @@ // ReSharper disable TooWideLocalVariableScope using Aaru.CommonTypes; -using Aaru.Core.Logging; using Aaru.Devices; namespace Aaru.Core.Devices.Dumping; @@ -48,9 +47,8 @@ partial class Dump /// Progress update callback /// LBA to try /// true if read correctly, false otherwise - public static bool SupportsRwSubchannel(Device dev, DumpLog dumpLog, UpdateStatusHandler updateStatus, uint lba) + public static bool SupportsRwSubchannel(Device dev, UpdateStatusHandler updateStatus, uint lba) { - dumpLog?.WriteLine(Localization.Core.Checking_if_drive_supports_full_raw_subchannel_reading); updateStatus?.Invoke(Localization.Core.Checking_if_drive_supports_full_raw_subchannel_reading); return !dev.ReadCd(out _, @@ -77,9 +75,8 @@ partial class Dump /// Progress update callback /// LBA to try /// true if read correctly, false otherwise - public static bool SupportsPqSubchannel(Device dev, DumpLog dumpLog, UpdateStatusHandler updateStatus, uint lba) + public static bool SupportsPqSubchannel(Device dev, UpdateStatusHandler updateStatus, uint lba) { - dumpLog?.WriteLine(Localization.Core.Checking_if_drive_supports_PQ_subchannel_reading); updateStatus?.Invoke(Localization.Core.Checking_if_drive_supports_PQ_subchannel_reading); return !dev.ReadCd(out _, diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs index ec475c42e..89f6114f6 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs @@ -61,7 +61,6 @@ partial class Dump firstTrackLastSession = 1; // ATIP exists on blank CDs - _dumpLog.WriteLine(Localization.Core.Reading_ATIP); UpdateStatus?.Invoke(Localization.Core.Reading_ATIP); sense = _dev.ReadAtip(out cmdBuf, out _, _dev.Timeout, out _); @@ -81,7 +80,6 @@ partial class Dump } } - _dumpLog.WriteLine(Localization.Core.Reading_Disc_Information); UpdateStatus?.Invoke(Localization.Core.Reading_Disc_Information); sense = _dev.ReadDiscInformation(out cmdBuf, @@ -105,7 +103,6 @@ partial class Dump } } - _dumpLog.WriteLine(Localization.Core.Reading_PMA); UpdateStatus?.Invoke(Localization.Core.Reading_PMA); sense = _dev.ReadPma(out cmdBuf, out _, _dev.Timeout, out _); @@ -117,7 +114,6 @@ partial class Dump _mediaGraph?.PaintRecordableInformationGood(); } - _dumpLog.WriteLine(Localization.Core.Reading_Session_Information); UpdateStatus?.Invoke(Localization.Core.Reading_Session_Information); sense = _dev.ReadSessionInfo(out cmdBuf, out _, _dev.Timeout, out _); @@ -132,7 +128,6 @@ partial class Dump } } - _dumpLog.WriteLine(Localization.Core.Reading_CD_Text_from_Lead_In); UpdateStatus?.Invoke(Localization.Core.Reading_CD_Text_from_Lead_In); sense = _dev.ReadCdText(out cmdBuf, out _, _dev.Timeout, out _); diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Tracks.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Tracks.cs index 9a9fdadd5..f2066a4dc 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Tracks.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Tracks.cs @@ -40,7 +40,6 @@ using System.Linq; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Structs; -using Aaru.Core.Logging; using Aaru.Decoders.CD; using Aaru.Devices; @@ -60,9 +59,9 @@ partial class Dump /// Track flags /// Update status handler /// List of tracks - public static Track[] GetCdTracks(Device dev, DumpLog dumpLog, bool force, out long lastSector, - Dictionary leadOutStarts, Dictionary mediaTags, - ErrorMessageHandler stoppingErrorMessage, out FullTOC.CDFullTOC? toc, + public static Track[] GetCdTracks(Device dev, bool force, out long lastSector, Dictionary leadOutStarts, + Dictionary mediaTags, + ErrorMessageHandler stoppingErrorMessage, out FullTOC.CDFullTOC? toc, Dictionary trackFlags, UpdateStatusHandler updateStatus) { byte[] cmdBuf; // Data buffer @@ -76,7 +75,6 @@ partial class Dump // We discarded all discs that falsify a TOC before requesting a real TOC // No TOC, no CD (or an empty one) - dumpLog?.WriteLine(Localization.Core.Reading_full_TOC); updateStatus?.Invoke(Localization.Core.Reading_full_TOC); sense = dev.ReadRawToc(out cmdBuf, out _, 0, dev.Timeout, out _); @@ -93,7 +91,6 @@ partial class Dump } updateStatus?.Invoke(Localization.Core.Building_track_map); - dumpLog?.WriteLine(Localization.Core.Building_track_map); if(toc.HasValue) { @@ -179,16 +176,12 @@ partial class Dump else { updateStatus?.Invoke(Localization.Core.Cannot_read_RAW_TOC_requesting_processed_one); - dumpLog?.WriteLine(Localization.Core.Cannot_read_RAW_TOC_requesting_processed_one); sense = dev.ReadToc(out cmdBuf, out _, false, 0, dev.Timeout, out _); TOC.CDTOC? oldToc = TOC.Decode(cmdBuf); if((sense || !oldToc.HasValue) && !force) { - dumpLog?.WriteLine(Localization.Core - .Could_not_read_TOC_if_you_want_to_continue_use_force_and_will_try_from_LBA_0_to_360000); - stoppingErrorMessage?.Invoke(Localization.Core .Could_not_read_TOC_if_you_want_to_continue_use_force_and_will_try_from_LBA_0_to_360000); @@ -237,7 +230,6 @@ partial class Dump if(trackList.Count == 0) { updateStatus?.Invoke(Localization.Core.No_tracks_found_adding_a_single_track_from_zero_to_Lead_Out); - dumpLog?.WriteLine(Localization.Core.No_tracks_found_adding_a_single_track_from_zero_to_Lead_Out); trackList.Add(new Track { @@ -258,7 +250,7 @@ partial class Dump if(!sense) { - var temp = new byte[8]; + byte[] temp = new byte[8]; Array.Copy(cmdBuf, 0, temp, 0, 8); Array.Reverse(temp); @@ -278,14 +270,12 @@ partial class Dump stoppingErrorMessage?.Invoke(Localization.Core .Could_not_find_Lead_Out_if_you_want_to_continue_use_force_option); - dumpLog?.WriteLine(Localization.Core.Could_not_find_Lead_Out_if_you_want_to_continue_use_force_option); return null; } updateStatus?.Invoke(Localization.Core.WARNING_Could_not_find_Lead_Out_start_will_try_to_read_up_to); - dumpLog?.WriteLine(Localization.Core.WARNING_Could_not_find_Lead_Out_start_will_try_to_read_up_to); lastSector = 360000; return trackList.ToArray(); diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs index fda467809..b93fab69d 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs @@ -84,7 +84,7 @@ partial class Dump Dictionary isrcs, ref string mcn, HashSet subchannelExtents, Dictionary smallestPregapLbaPerTrack) { - var sense = true; // Sense indicator + bool sense = true; // Sense indicator byte[] cmdBuf = null; // Data buffer double cmdDuration = 0; // Command execution time const uint sectorSize = 2352; // Full sector size @@ -103,14 +103,13 @@ partial class Dump if(_resume.BadBlocks.Count <= 0 || _aborted || !_trim || !newTrim) return; UpdateStatus?.Invoke(Localization.Core.Trimming_skipped_sectors); - _dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors); InitProgress?.Invoke(); _trimStopwatch.Restart(); trimStart: ulong[] tmpArray = _resume.BadBlocks.ToArray(); - for(var b = 0; b < tmpArray.Length; b++) + for(int b = 0; b < tmpArray.Length; b++) { ulong badSector = tmpArray[b]; @@ -118,7 +117,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -128,7 +126,7 @@ partial class Dump Track track = tracks.OrderBy(t => t.StartSector).LastOrDefault(t => badSector >= t.StartSector); byte sectorsToTrim = 1; - var badSectorToRead = (uint)badSector; + uint badSectorToRead = (uint)badSector; if(_fixOffset && audioExtents.Contains(badSector) && offsetBytes != 0) { @@ -292,7 +290,7 @@ partial class Dump { case 0: - for(var c = 16; c < 2352; c++) + for(int c = 16; c < 2352; c++) { if(cmdBuf[c] == 0x00) continue; @@ -419,8 +417,8 @@ partial class Dump if(supportedSubchannel != MmcSubchannel.None) { - var data = new byte[sectorSize]; - var sub = new byte[subSize]; + byte[] data = new byte[sectorSize]; + byte[] sub = new byte[subSize]; Array.Copy(cmdBuf, 0, data, 0, sectorSize); Array.Copy(cmdBuf, sectorSize, sub, 0, subSize); @@ -446,7 +444,6 @@ partial class Dump outputOptical, _fixSubchannel, _fixSubchannelCrc, - _dumpLog, UpdateStatus, smallestPregapLbaPerTrack, true, @@ -480,8 +477,5 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Trimming_finished_in_0, _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, - _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); } } \ No newline at end of file diff --git a/Aaru.Core/Devices/Dumping/Dump.cs b/Aaru.Core/Devices/Dumping/Dump.cs index f20997fd0..7a212edd5 100644 --- a/Aaru.Core/Devices/Dumping/Dump.cs +++ b/Aaru.Core/Devices/Dumping/Dump.cs @@ -77,7 +77,6 @@ public partial class Dump readonly string _devicePath; readonly uint _dimensions; readonly bool _doResume; - readonly DumpLog _dumpLog; readonly bool _dumpRaw; readonly Stopwatch _dumpStopwatch; readonly Encoding _encoding; @@ -128,7 +127,6 @@ public partial class Dump /// Should resume? /// Device /// Path to the device - /// Prefix for output log files /// Plugin for output file /// How many times to retry /// Force to continue dump whenever possible @@ -136,15 +134,15 @@ public partial class Dump /// Store whatever data the drive returned on error /// Stop dump on first error /// Information for dump resuming - /// Dump logger /// Encoding to use when analyzing dump + /// Prefix for output log files /// Path to output file /// Formats to pass to output file plugin - /// Trim errors from skipped sectors - /// Try to read and dump as much first track pregap as possible /// Sidecar to store in dumped image /// How many sectors to skip reading on error /// Create metadata sidecar after dump? + /// Trim errors from skipped sectors + /// Try to read and dump as much first track pregap as possible /// Fix audio offset /// Debug mode /// Desired subchannel to save to image @@ -167,14 +165,14 @@ public partial class Dump /// How many CD-R(W) run end sectors to ignore and regenerate /// If set to true creates a graph of the dump. /// Dimensions of graph in pixels for a square - public Dump(bool doResume, Device dev, string devicePath, IBaseWritableImage outputPlugin, ushort retryPasses, - bool force, bool dumpRaw, bool persistent, bool stopOnError, Resume resume, DumpLog dumpLog, - Encoding encoding, string outputPrefix, string outputPath, Dictionary formatOptions, - Metadata preSidecar, uint skip, bool metadata, bool trim, bool dumpFirstTrackPregap, bool fixOffset, - bool debug, DumpSubchannel subchannel, int speed, bool @private, bool fixSubchannelPosition, - bool retrySubchannel, bool fixSubchannel, bool fixSubchannelCrc, bool skipCdireadyHole, - ErrorLog errorLog, bool generateSubchannels, uint maximumReadable, bool useBufferedReads, - bool storeEncrypted, bool titleKeys, uint ignoreCdrRunOuts, bool createGraph, uint dimensions) + public Dump(bool doResume, Device dev, string devicePath, IBaseWritableImage outputPlugin, ushort retryPasses, + bool force, bool dumpRaw, bool persistent, bool stopOnError, Resume resume, Encoding encoding, + string outputPrefix, string outputPath, Dictionary formatOptions, Metadata preSidecar, + uint skip, bool metadata, bool trim, bool dumpFirstTrackPregap, bool fixOffset, bool debug, + DumpSubchannel subchannel, int speed, bool @private, bool fixSubchannelPosition, bool retrySubchannel, + bool fixSubchannel, bool fixSubchannelCrc, bool skipCdireadyHole, ErrorLog errorLog, + bool generateSubchannels, uint maximumReadable, bool useBufferedReads, bool storeEncrypted, + bool titleKeys, uint ignoreCdrRunOuts, bool createGraph, uint dimensions) { _doResume = doResume; _dev = dev; @@ -186,7 +184,6 @@ public partial class Dump _persistent = persistent; _stopOnError = stopOnError; _resume = resume; - _dumpLog = dumpLog; _encoding = encoding; _outputPrefix = outputPrefix; _outputPath = outputPath; @@ -237,14 +234,9 @@ public partial class Dump d.Revision == _dev.FirmwareRevision); if(_dbDev is null) - { - _dumpLog.WriteLine(Localization.Core.Device_not_in_database); - UpdateStatus?.Invoke(Localization.Core.Device_not_in_database); - } else { - _dumpLog.WriteLine(string.Format(Localization.Core.Device_in_database_since_0, _dbDev.LastSynchronized)); UpdateStatus?.Invoke(string.Format(Localization.Core.Device_in_database_since_0, _dbDev.LastSynchronized)); if(_dbDev.OptimalMultipleSectorsRead > 0) _maximumReadable = (uint)_dbDev.OptimalMultipleSectorsRead; @@ -282,8 +274,6 @@ public partial class Dump break; default: - _dumpLog.WriteLine(Localization.Core.Unknown_device_type); - _dumpLog.Close(); StoppingErrorMessage?.Invoke(Localization.Core.Unknown_device_type); return; @@ -293,7 +283,6 @@ public partial class Dump } _errorLog.Close(); - _dumpLog.Close(); if(_resume == null || !_doResume) return; diff --git a/Aaru.Core/Devices/Dumping/LinearMemory/Retrode.cs b/Aaru.Core/Devices/Dumping/LinearMemory/Retrode.cs index 9c0eb0430..5a15fa5c9 100644 --- a/Aaru.Core/Devices/Dumping/LinearMemory/Retrode.cs +++ b/Aaru.Core/Devices/Dumping/LinearMemory/Retrode.cs @@ -36,6 +36,7 @@ using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Interfaces; using Aaru.Core.Graphics; +using Aaru.Logging; using Humanizer; using Humanizer.Bytes; using Humanizer.Localisation; @@ -72,52 +73,48 @@ public partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_read); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read); return; } - var tmp = new byte[8]; + byte[] tmp = new byte[8]; Array.Copy(buffer, 0x36, tmp, 0, 8); // UMDs are stored inside a FAT16 volume if(!tmp.SequenceEqual(_fatSignature)) { - _dumpLog.WriteLine(Localization.Core.Retrode_partition_not_recognized_not_dumping); StoppingErrorMessage?.Invoke(Localization.Core.Retrode_partition_not_recognized_not_dumping); return; } - var fatStart = (ushort)((buffer[0x0F] << 8) + buffer[0x0E]); - var sectorsPerFat = (ushort)((buffer[0x17] << 8) + buffer[0x16]); - var rootStart = (ushort)(sectorsPerFat * 2 + fatStart); - var rootSize = (ushort)(((buffer[0x12] << 8) + buffer[0x11]) * 32 / 512); - byte sectorsPerCluster = buffer[0x0D]; + ushort fatStart = (ushort)((buffer[0x0F] << 8) + buffer[0x0E]); + ushort sectorsPerFat = (ushort)((buffer[0x17] << 8) + buffer[0x16]); + ushort rootStart = (ushort)(sectorsPerFat * 2 + fatStart); + ushort rootSize = (ushort)(((buffer[0x12] << 8) + buffer[0x11]) * 32 / 512); + byte sectorsPerCluster = buffer[0x0D]; UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_root_directory_in_sector_0, rootStart)); - _dumpLog.WriteLine(Localization.Core.Reading_root_directory_in_sector_0, rootStart); sense = _dev.Read10(out buffer, out _, 0, false, true, false, false, rootStart, 512, 0, 1, _dev.Timeout, out _); if(sense) { StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read); - _dumpLog.WriteLine(Localization.Core.Could_not_read); return; } - int romPos; - var sfcFound = false; - var genesisFound = false; - var smsFound = false; - var n64Found = false; - var gbFound = false; - var gbcFound = false; - var gbaFound = false; + int romPos; + bool sfcFound = false; + bool genesisFound = false; + bool smsFound = false; + bool n64Found = false; + bool gbFound = false; + bool gbcFound = false; + bool gbaFound = false; tmp = new byte[3]; for(romPos = 0; romPos < buffer.Length; romPos += 0x20) @@ -176,13 +173,12 @@ public partial class Dump if(!sfcFound && !genesisFound && !smsFound && !n64Found && !gbaFound && !gbFound && !gbcFound) { StoppingErrorMessage?.Invoke(Localization.Core.No_cartridge_found_not_dumping); - _dumpLog.WriteLine(Localization.Core.No_cartridge_found_not_dumping); return; } - var cluster = BitConverter.ToUInt16(buffer, romPos + 0x1A); - var romSize = BitConverter.ToUInt32(buffer, romPos + 0x1C); + ushort cluster = BitConverter.ToUInt16(buffer, romPos + 0x1A); + uint romSize = BitConverter.ToUInt32(buffer, romPos + 0x1C); MediaType mediaType = gbaFound ? MediaType.GameBoyAdvanceGamePak @@ -205,8 +201,6 @@ public partial class Dump if(_outputPlugin is not IByteAddressableImage outputBai || !outputBai.SupportedMediaTypes.Contains(mediaType)) { - _dumpLog.WriteLine(Localization.Core.The_specified_format_does_not_support_the_inserted_cartridge); - StoppingErrorMessage?.Invoke(Localization.Core .The_specified_format_does_not_support_the_inserted_cartridge); @@ -229,13 +223,12 @@ public partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_read); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read); return; } - var startSector = (uint)(rootStart + rootSize + (cluster - 2) * sectorsPerCluster); + uint startSector = (uint)(rootStart + rootSize + (cluster - 2) * sectorsPerCluster); uint romSectors = romSize / 512; uint romRemaining = romSize % 512; @@ -266,16 +259,12 @@ public partial class Dump } UpdateStatus?.Invoke(string.Format(Localization.Core.Media_identified_as_0, mediaType)); - _dumpLog.WriteLine(Localization.Core.Media_identified_as_0, mediaType); ErrorNumber ret = outputBai.Create(_outputPath, mediaType, _formatOptions, romSize); // Cannot create image if(ret != ErrorNumber.NoError) { - _dumpLog.WriteLine(Localization.Core.Error_0_creating_output_image_not_continuing, ret); - _dumpLog.WriteLine(outputBai.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputBai.ErrorMessage); @@ -297,7 +286,6 @@ public partial class Dump if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -349,7 +337,7 @@ public partial class Dump // TODO: Reset device after X errors if(_stopOnError) return; // TODO: Return more cleanly - _dumpLog.WriteLine(Localization.Core.Skipping_0_bytes_from_errored_byte_1, _skip * 512, i * 512); + AaruLogging.WriteLine(Localization.Core.Skipping_0_bytes_from_errored_byte_1, _skip * 512, i * 512); i += _skip - blocksToRead; } @@ -411,9 +399,9 @@ public partial class Dump // TODO: Reset device after X errors if(_stopOnError) return; // TODO: Return more cleanly - _dumpLog.WriteLine(Localization.Core.Skipping_0_bytes_from_errored_byte_1, - _skip * 512, - romSectors * 512); + AaruLogging.WriteLine(Localization.Core.Skipping_0_bytes_from_errored_byte_1, + _skip * 512, + romSectors * 512); } } @@ -432,19 +420,6 @@ public partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(512 * (romSectors + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(512 * (romSectors + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); - var metadata = new CommonTypes.Structs.ImageInfo { Application = "Aaru", @@ -463,19 +438,17 @@ public partial class Dump if(_preSidecar != null) outputBai.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputBai.Close(); _imageCloseStopwatch.Stop(); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); + AaruLogging.WriteLine(Localization.Core.Closed_in_0, + _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); return; } diff --git a/Aaru.Core/Devices/Dumping/MMC.cs b/Aaru.Core/Devices/Dumping/MMC.cs index 5ce5e7f71..f4c7e75ec 100644 --- a/Aaru.Core/Devices/Dumping/MMC.cs +++ b/Aaru.Core/Devices/Dumping/MMC.cs @@ -44,6 +44,7 @@ using Aaru.Decoders.SCSI.MMC; using Aaru.Decryption; using Aaru.Decryption.DVD; using Aaru.Devices; +using Aaru.Logging; using DDS = Aaru.Decoders.DVD.DDS; using DMI = Aaru.Decoders.Xbox.DMI; using DVDDecryption = Aaru.Decryption.DVD.Dump; @@ -63,9 +64,9 @@ partial class Dump MediaType dskType = MediaType.Unknown; bool sense; byte[] tmpBuf; - var compactDisc = true; - var gotConfiguration = false; - var isXbox = false; + bool compactDisc = true; + bool gotConfiguration = false; + bool isXbox = false; DVDDecryption dvdDecrypt = null; _speedMultiplier = 1; @@ -76,7 +77,7 @@ partial class Dump { gotConfiguration = true; Features.SeparatedFeatures ftr = Features.Separate(cmdBuf); - _dumpLog.WriteLine(Localization.Core.Device_reports_current_profile_is_0, ftr.CurrentProfile); + AaruLogging.WriteLine(Localization.Core.Device_reports_current_profile_is_0, ftr.CurrentProfile); switch(ftr.CurrentProfile) { @@ -308,7 +309,7 @@ partial class Dump var scsiReader = new Reader(_dev, _dev.Timeout, null, _errorLog, _dumpRaw); ulong blocks = scsiReader.GetDeviceBlocks(); - _dumpLog.WriteLine(Localization.Core.Device_reports_disc_has_0_blocks, blocks); + AaruLogging.WriteLine(Localization.Core.Device_reports_disc_has_0_blocks, blocks); Dictionary mediaTags = new(); if(dskType == MediaType.PD650) @@ -328,7 +329,7 @@ partial class Dump switch(dskType) { case MediaType.Unknown when blocks > 0: - _dumpLog.WriteLine(Localization.Core.Reading_Physical_Format_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Physical_Format_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -346,9 +347,6 @@ partial class Dump if(nintendoPfi is { DiskCategory: DiskCategory.Nintendo, PartVersion: 15 }) { - _dumpLog.WriteLine(Localization.Core - .Dumping_Nintendo_GameCube_or_Wii_discs_is_not_yet_implemented); - StoppingErrorMessage?.Invoke(Localization.Core .Dumping_Nintendo_GameCube_or_Wii_discs_is_not_yet_implemented); @@ -374,7 +372,8 @@ partial class Dump case MediaType.HDDVDROM: case MediaType.HDDVDRW: case MediaType.HDDVDRWDL: - _dumpLog.WriteLine(Localization.Core.Reading_Physical_Format_Information); + + AaruLogging.WriteLine(Localization.Core.Reading_Physical_Format_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -424,7 +423,7 @@ partial class Dump } } - _dumpLog.WriteLine(Localization.Core.Reading_Disc_Manufacturing_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Disc_Manufacturing_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -459,9 +458,6 @@ partial class Dump if(sense || Inquiry.Decode(inqBuf)?.KreonPresent != true) { - _dumpLog.WriteLine(Localization.Core - .Dumping_Xbox_Game_Discs_requires_a_drive_with_Kreon_firmware); - StoppingErrorMessage?.Invoke(Localization.Core .Dumping_Xbox_Game_Discs_requires_a_drive_with_Kreon_firmware); @@ -493,15 +489,11 @@ partial class Dump #endregion Nintendo -#region All DVD and HD DVD types - -#endregion All DVD and HD DVD types - #region DVD-ROM if(dskType is MediaType.DVDDownload or MediaType.DVDROM) { - _dumpLog.WriteLine(Localization.Core.Reading_Lead_in_Copyright_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Lead_in_Copyright_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -641,7 +633,7 @@ partial class Dump case MediaType.DVDDownload: case MediaType.DVDROM: case MediaType.HDDVDROM: - _dumpLog.WriteLine(Localization.Core.Reading_Burst_Cutting_Area); + AaruLogging.WriteLine(Localization.Core.Reading_Burst_Cutting_Area); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -668,7 +660,7 @@ partial class Dump case MediaType.DVDRAM: case MediaType.HDDVDRAM: - _dumpLog.WriteLine(Localization.Core.Reading_Disc_Description_Structure); + AaruLogging.WriteLine(Localization.Core.Reading_Disc_Description_Structure); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -690,7 +682,7 @@ partial class Dump } } - _dumpLog.WriteLine(Localization.Core.Reading_Spare_Area_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Spare_Area_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -720,7 +712,7 @@ partial class Dump case MediaType.DVDR: case MediaType.DVDRW: - _dumpLog.WriteLine(Localization.Core.Reading_Pre_Recorded_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Pre_Recorded_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -751,7 +743,7 @@ partial class Dump case MediaType.DVDR: case MediaType.DVDRW: case MediaType.HDDVDR: - _dumpLog.WriteLine(Localization.Core.Reading_Media_Identifier); + AaruLogging.WriteLine(Localization.Core.Reading_Media_Identifier); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -770,7 +762,7 @@ partial class Dump mediaTags.Add(MediaTagType.DVDR_MediaIdentifier, tmpBuf); } - _dumpLog.WriteLine(Localization.Core.Reading_Recordable_Physical_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Recordable_Physical_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -799,7 +791,7 @@ partial class Dump case MediaType.DVDPRDL: case MediaType.DVDPRW: case MediaType.DVDPRWDL: - _dumpLog.WriteLine(Localization.Core.Reading_ADdress_In_Pregroove); + AaruLogging.WriteLine(Localization.Core.Reading_ADdress_In_Pregroove); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -818,7 +810,7 @@ partial class Dump mediaTags.Add(MediaTagType.DVD_ADIP, tmpBuf); } - _dumpLog.WriteLine(Localization.Core.Reading_Disc_Control_Blocks); + AaruLogging.WriteLine(Localization.Core.Reading_Disc_Control_Blocks); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -844,7 +836,7 @@ partial class Dump #region HD DVD-ROM case MediaType.HDDVDROM: - _dumpLog.WriteLine(Localization.Core.Reading_Lead_in_Copyright_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Lead_in_Copyright_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -875,7 +867,7 @@ partial class Dump case MediaType.BDRXL: case MediaType.BDREXL: case MediaType.UHDBD: - _dumpLog.WriteLine(Localization.Core.Reading_Disc_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Disc_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -919,7 +911,7 @@ partial class Dump case MediaType.BDROM: case MediaType.UHDBD: - _dumpLog.WriteLine(Localization.Core.Reading_Burst_Cutting_Area); + AaruLogging.WriteLine(Localization.Core.Reading_Burst_Cutting_Area); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -948,7 +940,7 @@ partial class Dump case MediaType.BDRE: case MediaType.BDRXL: case MediaType.BDREXL: - _dumpLog.WriteLine(Localization.Core.Reading_Disc_Definition_Structure); + AaruLogging.WriteLine(Localization.Core.Reading_Disc_Definition_Structure); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -967,7 +959,7 @@ partial class Dump mediaTags.Add(MediaTagType.BD_DDS, tmpBuf); } - _dumpLog.WriteLine(Localization.Core.Reading_Spare_Area_Information); + AaruLogging.WriteLine(Localization.Core.Reading_Spare_Area_Information); sense = _dev.ReadDiscStructure(out cmdBuf, out _, @@ -1033,7 +1025,7 @@ partial class Dump Checksums = Checksum.GetChecksums(tag) }; - var tmp = new byte[tag.Length + 4]; + byte[] tmp = new byte[tag.Length + 4]; Array.Copy(tag, 0, tmp, 4, tag.Length); tmp[0] = (byte)((tag.Length & 0xFF00) >> 8); tmp[1] = (byte)(tag.Length & 0xFF); diff --git a/Aaru.Core/Devices/Dumping/Metadata.cs b/Aaru.Core/Devices/Dumping/Metadata.cs index a8c2dcce5..a56538e94 100644 --- a/Aaru.Core/Devices/Dumping/Metadata.cs +++ b/Aaru.Core/Devices/Dumping/Metadata.cs @@ -38,6 +38,7 @@ using Aaru.CommonTypes; using Aaru.CommonTypes.AaruMetadata; using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Interfaces; +using Aaru.Logging; using Humanizer; using Humanizer.Bytes; using Humanizer.Localisation; @@ -59,7 +60,7 @@ partial class Dump Dictionary mediaTags, int sessions, out double totalChkDuration, int? discOffset) { - _dumpLog.WriteLine(Localization.Core.Creating_sidecar); + AaruLogging.WriteLine(Localization.Core.Creating_sidecar); IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); totalChkDuration = 0; @@ -97,13 +98,13 @@ partial class Dump totalChkDuration = _sidecarStopwatch.Elapsed.TotalMilliseconds; - _dumpLog.WriteLine(Localization.Core.Sidecar_created_in_0, - _sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); + AaruLogging.WriteLine(Localization.Core.Sidecar_created_in_0, + _sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - _dumpLog.WriteLine(Localization.Core.Average_checksum_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalChkDuration.Milliseconds()) - .Humanize()); + AaruLogging.WriteLine(Localization.Core.Average_checksum_speed_0, + ByteSize.FromBytes(blockSize * (blocks + 1)) + .Per(totalChkDuration.Milliseconds()) + .Humanize()); if(_preSidecar != null) { @@ -131,7 +132,9 @@ partial class Dump o.type }) .Distinct()) - _dumpLog.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1, filesystem.type, filesystem.start); + AaruLogging.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1, + filesystem.type, + filesystem.start); } sidecar.OpticalDiscs[0].Dimensions = Dimensions.FromMediaType(mediaType); diff --git a/Aaru.Core/Devices/Dumping/MiniDisc.cs b/Aaru.Core/Devices/Dumping/MiniDisc.cs index 35b8b2325..8c39c3334 100644 --- a/Aaru.Core/Devices/Dumping/MiniDisc.cs +++ b/Aaru.Core/Devices/Dumping/MiniDisc.cs @@ -79,12 +79,11 @@ partial class Dump return; } - _dumpLog.WriteLine(Localization.Core.Initializing_reader); + AaruLogging.WriteLine(Localization.Core.Initializing_reader); var scsiReader = new Reader(_dev, _dev.Timeout, null, _errorLog); ulong blocks = scsiReader.GetDeviceBlocks(); uint blockSize = scsiReader.LogicalBlockSize; - _dumpLog.WriteLine(Localization.Core.Requesting_MODE_SENSE_6); UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_6); sense = _dev.ModeSense6(out byte[] cmdBuf, out _, true, ScsiModeSensePageControl.Current, 0x3F, 5, out _); @@ -96,9 +95,6 @@ partial class Dump if(blockSize != 2048) { - _dumpLog.WriteLine(Localization.Core - .MiniDisc_albums_NetMD_discs_or_user_written_audio_MiniDisc_cannot_be_dumped); - StoppingErrorMessage?.Invoke(Localization.Core .MiniDisc_albums_NetMD_discs_or_user_written_audio_MiniDisc_cannot_be_dumped); @@ -109,7 +105,7 @@ partial class Dump if(scsiReader.FindReadCommand()) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_find_correct_read_command_0, scsiReader.ErrorMessage); + AaruLogging.Error(Localization.Core.ERROR_Cannot_find_correct_read_command_0, scsiReader.ErrorMessage); StoppingErrorMessage?.Invoke(Localization.Core.Unable_to_read_medium); return; @@ -129,7 +125,7 @@ partial class Dump // 64 works, gets maximum speed (150KiB/s), slow I know... if(scsiReader.GetBlocksToRead()) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_get_blocks_to_read_0, scsiReader.ErrorMessage); + AaruLogging.Error(Localization.Core.ERROR_Cannot_get_blocks_to_read_0, scsiReader.ErrorMessage); StoppingErrorMessage?.Invoke(scsiReader.ErrorMessage); return; @@ -140,7 +136,7 @@ partial class Dump if(blocks == 0) { - _dumpLog.WriteLine(Localization.Core.ERROR_Unable_to_read_medium_or_empty_medium_present); + AaruLogging.Error(Localization.Core.ERROR_Unable_to_read_medium_or_empty_medium_present); StoppingErrorMessage?.Invoke(Localization.Core.Unable_to_read_medium_or_empty_medium_present); return; @@ -160,13 +156,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.SCSI_medium_type_0, scsiMediumType)); UpdateStatus?.Invoke(string.Format(Localization.Core.Media_identified_as_0, dskType)); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_blocks_1_bytes, blocks, blocks * blockSize); - _dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_at_a_time, blocksToRead); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_logical_block, blockSize); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_physical_block, scsiReader.LongBlockSize); - _dumpLog.WriteLine(Localization.Core.SCSI_device_type_0, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.SCSI_medium_type_0, scsiMediumType); - _dumpLog.WriteLine(Localization.Core.Media_identified_as_0, dskType); sense = _dev.MiniDiscGetType(out cmdBuf, out _, _dev.Timeout, out _); @@ -198,20 +187,15 @@ partial class Dump foreach(MediaTagType tag in mediaTags.Keys.Where(tag => !outputFormat.SupportedMediaTags.Contains(tag))) { ret = false; - _dumpLog.WriteLine(string.Format(Localization.Core.Output_format_does_not_support_0, tag)); ErrorMessage?.Invoke(string.Format(Localization.Core.Output_format_does_not_support_0, tag)); } if(!ret) { if(_force) - { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_continuing); ErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_continuing); - } else { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_not_continuing); return; @@ -219,7 +203,6 @@ partial class Dump } UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead)); - _dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead); var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, @@ -235,9 +218,6 @@ partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputFormat.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputFormat.ErrorMessage); @@ -262,12 +242,6 @@ partial class Dump if(!rigidPage.HasValue || setGeometry) continue; - _dumpLog.WriteLine(Localization.Core - .Setting_geometry_to_0_cylinders_1_heads_2_sectors_per_track, - rigidPage.Value.Cylinders, - rigidPage.Value.Heads, - (uint)(blocks / (rigidPage.Value.Cylinders * rigidPage.Value.Heads))); - UpdateStatus?.Invoke(string.Format(Localization.Core .Setting_geometry_to_0_cylinders_1_heads_2_sectors_per_track, rigidPage.Value.Cylinders, @@ -290,12 +264,6 @@ partial class Dump if(!flexiblePage.HasValue) continue; - _dumpLog.WriteLine(Localization.Core - .Setting_geometry_to_0_cylinders_1_heads_2_sectors_per_track, - flexiblePage.Value.Cylinders, - flexiblePage.Value.Heads, - flexiblePage.Value.SectorsPerTrack); - UpdateStatus?.Invoke(string.Format(Localization.Core .Setting_geometry_to_0_cylinders_1_heads_2_sectors_per_track, flexiblePage.Value.Cylinders, @@ -339,10 +307,7 @@ partial class Dump } if(_resume.NextBlock > 0) - { UpdateStatus?.Invoke(string.Format(Localization.Core.Resuming_from_block_0, _resume.NextBlock)); - _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); - } if(_createGraph) { @@ -373,7 +338,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -432,7 +396,7 @@ partial class Dump mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(i, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; newTrim = true; } @@ -478,26 +442,12 @@ partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); - #region Trimming if(_resume.BadBlocks.Count > 0 && !_aborted && _trim && newTrim) { _trimStopwatch.Restart(); UpdateStatus?.Invoke(Localization.Core.Trimming_skipped_sectors); - _dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors); ulong[] tmpArray = _resume.BadBlocks.ToArray(); InitProgress?.Invoke(); @@ -508,7 +458,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -530,9 +479,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Trimming_finished_in_0, _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, - _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); } #endregion Trimming @@ -627,7 +573,6 @@ partial class Dump md6 = Modes.EncodeMode6(md, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); sense = _dev.ModeSelect(md6, out byte[] senseBuf, true, false, _dev.Timeout, out _); if(sense) @@ -636,9 +581,6 @@ partial class Dump .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); AaruLogging.Debug(Localization.Core.Error_0, Sense.PrettifySense(senseBuf)); - - _dumpLog.WriteLine(Localization.Core - .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); } else runningPersistent = true; @@ -654,7 +596,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -702,8 +643,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass); } else if(runningPersistent) outputFormat.WriteSector(readBuffer, badSector); } @@ -730,7 +669,6 @@ partial class Dump md6 = Modes.EncodeMode6(md, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); _dev.ModeSelect(md6, out _, true, false, _dev.Timeout, out _); } @@ -741,7 +679,8 @@ partial class Dump _resume.BadBlocks.Sort(); - foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); + foreach(ulong bad in _resume.BadBlocks) + AaruLogging.Information(Localization.Core.Sector_0_could_not_be_read, bad); currentTry.Extents = ExtentsConverter.ToMetadata(extents); @@ -762,7 +701,6 @@ partial class Dump if(_preSidecar != null) outputFormat.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputFormat.Close(); @@ -771,13 +709,10 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Closed_in_0, _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); return; } @@ -787,7 +722,6 @@ partial class Dump if(_metadata) { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); - _dumpLog.WriteLine(Localization.Core.Creating_sidecar); IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); @@ -823,14 +757,6 @@ partial class Dump .Per(totalChkDuration.Milliseconds()) .Humanize())); - _dumpLog.WriteLine(Localization.Core.Sidecar_created_in_0, - _sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - - _dumpLog.WriteLine(Localization.Core.Average_checksum_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalChkDuration.Milliseconds()) - .Humanize()); - if(_preSidecar != null) { _preSidecar.BlockMedias = sidecar.BlockMedias; @@ -859,10 +785,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Found_filesystem_0_at_sector_1, filesystem.type, filesystem.start)); - - _dumpLog.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1, - filesystem.type, - filesystem.start); } } diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs index 1ab37263d..9f6794917 100644 --- a/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs +++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs @@ -81,7 +81,6 @@ public partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_detect_capacity); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_detect_capacity); return; @@ -98,7 +97,6 @@ public partial class Dump if(blocks == 0) { - _dumpLog.WriteLine(Localization.Core.ERROR_Unable_to_read_medium_or_empty_medium_present); StoppingErrorMessage?.Invoke(Localization.Core.Unable_to_read_medium_or_empty_medium_present); return; @@ -115,13 +113,11 @@ public partial class Dump if(blocks > 262144) { dskType = MediaType.MemoryStickProDuo; - _dumpLog.WriteLine(Localization.Core.Media_detected_as_MemoryStick_Pro_Duo); UpdateStatus?.Invoke(Localization.Core.Media_detected_as_MemoryStick_Pro_Duo); } else { dskType = MediaType.MemoryStickDuo; - _dumpLog.WriteLine(Localization.Core.Media_detected_as_MemoryStick_Duo); UpdateStatus?.Invoke(Localization.Core.Media_detected_as_MemoryStick_Duo); } @@ -141,9 +137,6 @@ public partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputFormat.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputFormat.ErrorMessage); @@ -178,7 +171,7 @@ public partial class Dump return; } - if(_resume.NextBlock > 0) _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); + if(_resume.NextBlock > 0) AaruLogging.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); if(_createGraph) { @@ -210,7 +203,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -278,7 +270,7 @@ public partial class Dump mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(i, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; newTrim = true; } @@ -324,18 +316,6 @@ public partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); #region Trimming @@ -343,7 +323,6 @@ public partial class Dump { _trimStopwatch.Restart(); UpdateStatus?.Invoke(Localization.Core.Trimming_skipped_sectors); - _dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors); ulong[] tmpArray = _resume.BadBlocks.ToArray(); InitProgress?.Invoke(); @@ -354,7 +333,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -392,8 +370,8 @@ public partial class Dump EndProgress?.Invoke(); _trimStopwatch.Stop(); - _dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, - _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); + AaruLogging.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, + _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); } #endregion Trimming @@ -511,7 +489,6 @@ public partial class Dump md6 = Modes.EncodeMode6(md, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _); if(sense) @@ -520,9 +497,6 @@ public partial class Dump .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); AaruLogging.Debug(Localization.Core.Error_0, Sense.PrettifySense(senseBuf)); - - _dumpLog.WriteLine(Localization.Core - .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); } else runningPersistent = true; @@ -537,7 +511,7 @@ public partial class Dump if(_aborted) { currentTry.Extents = ExtentsConverter.ToMetadata(extents); - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); break; } @@ -594,8 +568,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass); } else if(runningPersistent) outputFormat.WriteSector(readBuffer, badSector); } @@ -622,7 +594,6 @@ public partial class Dump md6 = Modes.EncodeMode6(md, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); _dev.ModeSelect(md6, out _, true, false, _dev.Timeout, out _); } @@ -633,7 +604,8 @@ public partial class Dump _resume.BadBlocks.Sort(); - foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); + foreach(ulong bad in _resume.BadBlocks) + AaruLogging.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); currentTry.Extents = ExtentsConverter.ToMetadata(extents); @@ -654,7 +626,6 @@ public partial class Dump if(_preSidecar != null) outputFormat.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputFormat.Close(); @@ -663,13 +634,9 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Closed_in_0, _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); return; } @@ -679,7 +646,6 @@ public partial class Dump if(_metadata) { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); - _dumpLog.WriteLine(Localization.Core.Creating_sidecar); IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); @@ -715,14 +681,6 @@ public partial class Dump .Per(totalChkDuration.Milliseconds()) .Humanize())); - _dumpLog.WriteLine(Localization.Core.Sidecar_created_in_0, - _sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - - _dumpLog.WriteLine(Localization.Core.Average_checksum_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalChkDuration.Milliseconds()) - .Humanize()); - if(_preSidecar != null) { _preSidecar.BlockMedias = sidecar.BlockMedias; @@ -751,10 +709,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Found_filesystem_0_at_sector_1, filesystem.type, filesystem.start)); - - _dumpLog.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1, - filesystem.type, - filesystem.start); } } diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/PlayStationPortable.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/PlayStationPortable.cs index 0d923914f..6b41b06e9 100644 --- a/Aaru.Core/Devices/Dumping/PlayStationPortable/PlayStationPortable.cs +++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/PlayStationPortable.cs @@ -37,6 +37,7 @@ using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs.Devices.SCSI; using Aaru.Decoders.SCSI; using Aaru.Devices; +using Aaru.Logging; namespace Aaru.Core.Devices.Dumping; @@ -52,9 +53,6 @@ public partial class Dump !_outputPlugin.SupportedMediaTypes.Contains(MediaType.MemoryStickProDuo) && !_outputPlugin.SupportedMediaTypes.Contains(MediaType.UMD)) { - _dumpLog.WriteLine(Localization.Core - .Selected_output_format_does_not_support_MemoryStick_Duo_or_UMD_cannot_dump); - StoppingErrorMessage?.Invoke(Localization.Core .Selected_output_format_does_not_support_MemoryStick_Duo_or_UMD_cannot_dump); @@ -62,7 +60,6 @@ public partial class Dump } UpdateStatus?.Invoke(Localization.Core.Checking_if_media_is_UMD_or_MemoryStick); - _dumpLog.WriteLine(Localization.Core.Checking_if_media_is_UMD_or_MemoryStick); bool sense = _dev.ModeSense6(out byte[] buffer, out _, @@ -74,7 +71,6 @@ public partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_get_MODE_SENSE); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_get_MODE_SENSE); return; @@ -84,7 +80,6 @@ public partial class Dump if(!decoded.HasValue) { - _dumpLog.WriteLine(Localization.Core.Could_not_decode_MODE_SENSE); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_decode_MODE_SENSE); return; @@ -102,13 +97,12 @@ public partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_read); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read); return; } - var tmp = new byte[8]; + byte[] tmp = new byte[8]; Array.Copy(buffer, 0x36, tmp, 0, 8); @@ -120,12 +114,11 @@ public partial class Dump return; } - var fatStart = (ushort)((buffer[0x0F] << 8) + buffer[0x0E]); - var sectorsPerFat = (ushort)((buffer[0x17] << 8) + buffer[0x16]); - var rootStart = (ushort)(sectorsPerFat * 2 + fatStart); + ushort fatStart = (ushort)((buffer[0x0F] << 8) + buffer[0x0E]); + ushort sectorsPerFat = (ushort)((buffer[0x17] << 8) + buffer[0x16]); + ushort rootStart = (ushort)(sectorsPerFat * 2 + fatStart); UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_root_directory_in_sector_0, rootStart)); - _dumpLog.WriteLine(Localization.Core.Reading_root_directory_in_sector_0, rootStart); sense = _dev.Read12(out buffer, out _, @@ -145,7 +138,6 @@ public partial class Dump if(sense) { StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read); - _dumpLog.WriteLine(Localization.Core.Could_not_read); return; } @@ -164,12 +156,11 @@ public partial class Dump fatStart, sectorsPerFat)); - _dumpLog.WriteLine(Localization.Core.FAT_starts_at_sector_0_and_runs_for_1_sectors, fatStart, sectorsPerFat); + AaruLogging.WriteLine(Localization.Core.FAT_starts_at_sector_0_and_runs_for_1_sectors, fatStart, sectorsPerFat); UpdateStatus?.Invoke(Localization.Core.Reading_FAT); - _dumpLog.WriteLine(Localization.Core.Reading_FAT); - var fat = new byte[sectorsPerFat * 512]; + byte[] fat = new byte[sectorsPerFat * 512]; uint position = 0; @@ -197,7 +188,6 @@ public partial class Dump if(sense) { StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read); - _dumpLog.WriteLine(Localization.Core.Could_not_read); return; } @@ -208,13 +198,12 @@ public partial class Dump } UpdateStatus?.Invoke(Localization.Core.Traversing_FAT); - _dumpLog.WriteLine(Localization.Core.Traversing_FAT); - var previousCluster = BitConverter.ToUInt16(fat, 4); + ushort previousCluster = BitConverter.ToUInt16(fat, 4); - for(var i = 3; i < fat.Length / 2; i++) + for(int i = 3; i < fat.Length / 2; i++) { - var nextCluster = BitConverter.ToUInt16(fat, i * 2); + ushort nextCluster = BitConverter.ToUInt16(fat, i * 2); if(nextCluster == previousCluster + 1) { diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs index 6e6629864..1600abffa 100644 --- a/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs +++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs @@ -91,7 +91,6 @@ public partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_read); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read); return; @@ -104,7 +103,6 @@ public partial class Dump ushort umdStart = (ushort)(rootStart + rootSize); UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_root_directory_in_sector_0, rootStart)); - _dumpLog.WriteLine(Localization.Core.Reading_root_directory_in_sector_0, rootStart); sense = _dev.Read12(out readBuffer, out _, @@ -123,7 +121,6 @@ public partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_read); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_read); return; @@ -148,13 +145,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.SCSI_device_type_0, _dev.ScsiType)); UpdateStatus?.Invoke(string.Format(Localization.Core.Media_identified_as_0, dskType)); UpdateStatus?.Invoke(string.Format(Localization.Core.Media_part_number_is_0, mediaPartNumber)); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_blocks_1_bytes, blocks, blocks * blockSize); - _dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_at_a_time, blocksToRead); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_logical_block, blockSize); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_physical_block, blockSize); - _dumpLog.WriteLine(Localization.Core.SCSI_device_type_0, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.Media_identified_as_0, dskType); - _dumpLog.WriteLine(Localization.Core.Media_part_number_is_0, mediaPartNumber); bool ret; @@ -172,9 +162,6 @@ public partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputOptical.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputOptical.ErrorMessage); @@ -222,7 +209,7 @@ public partial class Dump return; } - if(_resume.NextBlock > 0) _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); + if(_resume.NextBlock > 0) AaruLogging.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); if(_createGraph) { @@ -254,7 +241,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -322,7 +308,7 @@ public partial class Dump mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(i, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.Information(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; newTrim = true; } @@ -367,25 +353,13 @@ public partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); #region Trimming if(_resume.BadBlocks.Count > 0 && !_aborted && _trim && newTrim) { _trimStopwatch.Restart(); - _dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors); + AaruLogging.WriteLine(Localization.Core.Trimming_skipped_sectors); ulong[] tmpArray = _resume.BadBlocks.ToArray(); InitProgress?.Invoke(); @@ -395,7 +369,7 @@ public partial class Dump if(_aborted) { currentTry.Extents = ExtentsConverter.ToMetadata(extents); - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); break; } @@ -433,8 +407,8 @@ public partial class Dump EndProgress?.Invoke(); _trimStopwatch.Stop(); - _dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, - _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); + AaruLogging.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, + _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); } #endregion Trimming @@ -528,7 +502,7 @@ public partial class Dump md6 = Modes.EncodeMode6(md, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); + AaruLogging.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _); if(sense) @@ -537,9 +511,6 @@ public partial class Dump .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); AaruLogging.Debug(Localization.Core.Error_0, Sense.PrettifySense(senseBuf)); - - _dumpLog.WriteLine(Localization.Core - .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); } else runningPersistent = true; @@ -554,7 +525,7 @@ public partial class Dump if(_aborted) { currentTry.Extents = ExtentsConverter.ToMetadata(extents); - _dumpLog.WriteLine(Localization.Core.Aborted); + AaruLogging.WriteLine(Localization.Core.Aborted); break; } @@ -611,8 +582,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass); } else if(runningPersistent) outputOptical.WriteSector(readBuffer, badSector); } @@ -638,7 +607,7 @@ public partial class Dump md6 = Modes.EncodeMode6(md, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); + AaruLogging.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); _dev.ModeSelect(md6, out _, true, false, _dev.Timeout, out _); } @@ -650,7 +619,8 @@ public partial class Dump _resume.BadBlocks.Sort(); - foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); + foreach(ulong bad in _resume.BadBlocks) + AaruLogging.Information(Localization.Core.Sector_0_could_not_be_read, bad); currentTry.Extents = ExtentsConverter.ToMetadata(extents); @@ -672,19 +642,17 @@ public partial class Dump if(_preSidecar != null) outputOptical.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputOptical.Close(); _imageCloseStopwatch.Stop(); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); + AaruLogging.WriteLine(Localization.Core.Closed_in_0, + _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); return; } diff --git a/Aaru.Core/Devices/Dumping/SCSI.cs b/Aaru.Core/Devices/Dumping/SCSI.cs index 172d71ab4..6124c1e42 100644 --- a/Aaru.Core/Devices/Dumping/SCSI.cs +++ b/Aaru.Core/Devices/Dumping/SCSI.cs @@ -46,7 +46,7 @@ public partial class Dump /// Dumps a SCSI Block Commands device or a Reduced Block Commands devices void Scsi() { - var resets = 0; + int resets = 0; if(_dev.IsRemovable) { @@ -65,10 +65,6 @@ public partial class Dump decSense.Value.ASC, decSense.Value.ASCQ)); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); // Just retry, for 5 times if(decSense.Value.ASC == 0x29) @@ -82,7 +78,7 @@ public partial class Dump { case 0x3A: { - var leftRetries = 5; + int leftRetries = 5; while(leftRetries > 0) { @@ -100,11 +96,6 @@ public partial class Dump decSense.Value.SenseKey, decSense.Value.ASC, decSense.Value.ASCQ)); - - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); } leftRetries--; @@ -121,7 +112,7 @@ public partial class Dump } case 0x04 when decSense.Value.ASCQ == 0x01: { - var leftRetries = 50; + int leftRetries = 50; while(leftRetries > 0) { @@ -139,11 +130,6 @@ public partial class Dump decSense.Value.SenseKey, decSense.Value.ASC, decSense.Value.ASCQ)); - - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); } leftRetries--; @@ -176,7 +162,7 @@ public partial class Dump // These should be trapped by the OS but seems in some cases they're not case 0x28: { - var leftRetries = 10; + int leftRetries = 10; while(leftRetries > 0) { @@ -194,11 +180,6 @@ public partial class Dump decSense.Value.SenseKey, decSense.Value.ASC, decSense.Value.ASCQ)); - - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); } leftRetries--; diff --git a/Aaru.Core/Devices/Dumping/SSC.cs b/Aaru.Core/Devices/Dumping/SSC.cs index 69dd01012..87587044d 100644 --- a/Aaru.Core/Devices/Dumping/SSC.cs +++ b/Aaru.Core/Devices/Dumping/SSC.cs @@ -48,6 +48,7 @@ using Aaru.Decoders.SCSI; using Aaru.Decoders.SCSI.SSC; using Aaru.Devices; using Aaru.Helpers; +using Aaru.Logging; using Humanizer; using Humanizer.Bytes; using Humanizer.Localisation; @@ -80,10 +81,10 @@ partial class Dump if(decSense.HasValue && decSense?.SenseKey != SenseKeys.NoSense) { - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense?.SenseKey, - decSense?.ASC, - decSense?.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense?.SenseKey, + decSense?.ASC, + decSense?.ASCQ); StoppingErrorMessage?.Invoke(Localization.Core.Drive_has_status_error_please_correct_Sense_follows + Environment.NewLine + @@ -98,7 +99,6 @@ partial class Dump decSense?.ASCQ != 0x04 && decSense?.SenseKey != SenseKeys.IllegalRequest) { - _dumpLog.WriteLine(Localization.Core.Rewinding_please_wait); PulseProgress?.Invoke(Localization.Core.Rewinding_please_wait); // Rewind, let timeout apply @@ -124,12 +124,12 @@ partial class Dump Environment.NewLine + decSense?.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense?.SenseKey, - decSense?.ASC, - decSense?.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense?.SenseKey, + decSense?.ASC, + decSense?.ASCQ); return; } @@ -152,12 +152,12 @@ partial class Dump Environment.NewLine + decSense?.Description); - _dumpLog.WriteLine(Localization.Core.Could_not_get_position_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Could_not_get_position_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense?.SenseKey, - decSense?.ASC, - decSense?.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense?.SenseKey, + decSense?.ASC, + decSense?.ASCQ); return; } @@ -168,7 +168,6 @@ partial class Dump if(cmdBuf[1] != 0) { UpdateStatus?.Invoke(Localization.Core.Drive_not_in_partition_0_Rewinding_please_wait); - _dumpLog.WriteLine(Localization.Core.Drive_not_in_partition_0_Rewinding_please_wait); // Rewind, let timeout apply sense = _dev.Locate(out senseBuf, false, 0, 0, _dev.Timeout, out duration); @@ -179,12 +178,12 @@ partial class Dump Environment.NewLine + decSense?.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense?.SenseKey, - decSense?.ASC, - decSense?.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense?.SenseKey, + decSense?.ASC, + decSense?.ASCQ); return; } @@ -207,12 +206,12 @@ partial class Dump Environment.NewLine + decSense?.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense?.SenseKey, - decSense?.ASC, - decSense?.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense?.SenseKey, + decSense?.ASC, + decSense?.ASCQ); return; } @@ -227,12 +226,12 @@ partial class Dump Environment.NewLine + decSense?.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense?.SenseKey, - decSense?.ASC, - decSense?.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense?.SenseKey, + decSense?.ASC, + decSense?.ASCQ); return; } @@ -243,7 +242,6 @@ partial class Dump StoppingErrorMessage?.Invoke(Localization.Core .Drive_could_not_rewind_to_partition_0_but_no_error_occurred); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_rewind_to_partition_0_but_no_error_occurred); return; } @@ -285,9 +283,8 @@ partial class Dump Modes.DecodedMode? decMode = null; if(!sense && !_dev.Error) - { - if(Modes.DecodeMode10(cmdBuf, _dev.ScsiType).HasValue) decMode = Modes.DecodeMode10(cmdBuf, _dev.ScsiType); - } + if(Modes.DecodeMode10(cmdBuf, _dev.ScsiType).HasValue) + decMode = Modes.DecodeMode10(cmdBuf, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_6); @@ -315,9 +312,8 @@ partial class Dump if(sense || _dev.Error) sense = _dev.ModeSense(out cmdBuf, out senseBuf, 5, out duration); if(!sense && !_dev.Error) - { - if(Modes.DecodeMode6(cmdBuf, _dev.ScsiType).HasValue) decMode = Modes.DecodeMode6(cmdBuf, _dev.ScsiType); - } + if(Modes.DecodeMode6(cmdBuf, _dev.ScsiType).HasValue) + decMode = Modes.DecodeMode6(cmdBuf, _dev.ScsiType); // TODO: Check partitions page if(decMode.HasValue) @@ -360,17 +356,13 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.SCSI_density_type_0, scsiDensityCodeTape)); UpdateStatus?.Invoke(string.Format(Localization.Core.Media_identified_as_0, dskType)); - _dumpLog.WriteLine(Localization.Core.SCSI_device_type_0, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.SCSI_medium_type_0, scsiMediumTypeTape); - _dumpLog.WriteLine(Localization.Core.SCSI_density_type_0, scsiDensityCodeTape); - _dumpLog.WriteLine(Localization.Core.Media_identified_as_0, dskType); - var endOfMedia = false; + bool endOfMedia = false; ulong currentBlock = 0; uint currentFile = 0; byte currentPartition = 0; byte totalPartitions = 1; // TODO: Handle partitions. - var fixedLen = false; + bool fixedLen = false; uint transferLen = blockSize; firstRead: @@ -413,12 +405,12 @@ partial class Dump Environment.NewLine + decSense.Value.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_return_back_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_return_back_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); return; } @@ -444,12 +436,12 @@ partial class Dump Environment.NewLine + decSense.Value.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_read_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_read_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); return; } @@ -484,10 +476,6 @@ partial class Dump blockSize, currentBlock)); - _dumpLog.WriteLine(Localization.Core.Blocksize_changed_to_0_bytes_at_block_1, - blockSize, - currentBlock); - sense = _dev.Space(out senseBuf, SscSpaceCodes.LogicalBlock, -1, @@ -505,12 +493,13 @@ partial class Dump Environment.NewLine + decSense.Value.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_go_back_one_block_Sense_follows); + AaruLogging.WriteLine(Localization.Core + .Drive_could_not_go_back_one_block_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); return; } @@ -522,12 +511,12 @@ partial class Dump Environment.NewLine + decSense.Value.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_read_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_read_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); return; } @@ -536,12 +525,12 @@ partial class Dump Environment.NewLine + decSense.Value.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_read_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_read_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); return; } @@ -549,7 +538,6 @@ partial class Dump else { StoppingErrorMessage?.Invoke(Localization.Core.Cannot_read_device_dont_know_why_exiting); - _dumpLog.WriteLine(Localization.Core.Cannot_read_device_dont_know_why_exiting); return; } @@ -573,12 +561,12 @@ partial class Dump Environment.NewLine + decSense.Value.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_return_back_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_return_back_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); return; } @@ -609,11 +597,10 @@ partial class Dump return; } - var canLocateLong = false; - var canLocate = false; + bool canLocateLong = false; + bool canLocate = false; UpdateStatus?.Invoke(Localization.Core.Positioning_tape_to_block_1); - _dumpLog.WriteLine(Localization.Core.Positioning_tape_to_block_1); sense = _dev.Locate16(out senseBuf, 1, _dev.Timeout, out _); @@ -629,7 +616,6 @@ partial class Dump { canLocateLong = true; UpdateStatus?.Invoke(Localization.Core.LOCATE_LONG_works); - _dumpLog.WriteLine(Localization.Core.LOCATE_LONG_works); } } } @@ -648,7 +634,6 @@ partial class Dump { canLocate = true; UpdateStatus?.Invoke(Localization.Core.LOCATE_works); - _dumpLog.WriteLine(Localization.Core.LOCATE_works); } } } @@ -656,7 +641,6 @@ partial class Dump if(_resume.NextBlock > 0) { UpdateStatus?.Invoke(string.Format(Localization.Core.Positioning_tape_to_block_0, _resume.NextBlock)); - _dumpLog.WriteLine(Localization.Core.Positioning_tape_to_block_0, _resume.NextBlock); if(canLocateLong) { @@ -670,18 +654,12 @@ partial class Dump { if(!_force) { - _dumpLog.WriteLine(Localization.Core - .Could_not_check_current_position_unable_to_resume_If_you_want_to_continue_use_force); - StoppingErrorMessage?.Invoke(Localization.Core .Could_not_check_current_position_unable_to_resume_If_you_want_to_continue_use_force); return; } - _dumpLog.WriteLine(Localization.Core - .Could_not_check_current_position_unable_to_resume_Dumping_from_the_start); - ErrorMessage?.Invoke(Localization.Core .Could_not_check_current_position_unable_to_resume_Dumping_from_the_start); @@ -695,18 +673,12 @@ partial class Dump { if(!_force) { - _dumpLog.WriteLine(Localization.Core - .Current_position_is_not_as_expected_unable_to_resume_If_you_want_to_continue_use_force); - StoppingErrorMessage?.Invoke(Localization.Core .Current_position_is_not_as_expected_unable_to_resume_If_you_want_to_continue_use_force); return; } - _dumpLog.WriteLine(Localization.Core - .Current_position_is_not_as_expected_unable_to_resume_Dumping_from_the_start); - ErrorMessage?.Invoke(Localization.Core .Current_position_is_not_as_expected_unable_to_resume_Dumping_from_the_start); @@ -718,18 +690,12 @@ partial class Dump { if(!_force) { - _dumpLog.WriteLine(Localization.Core - .Cannot_reposition_tape_unable_to_resume_If_you_want_to_continue_use_force); - StoppingErrorMessage?.Invoke(Localization.Core .Cannot_reposition_tape_unable_to_resume_If_you_want_to_continue_use_force); return; } - _dumpLog.WriteLine(Localization.Core - .Cannot_reposition_tape_unable_to_resume_Dumping_from_the_start); - ErrorMessage?.Invoke(Localization.Core .Cannot_reposition_tape_unable_to_resume_Dumping_from_the_start); @@ -748,18 +714,12 @@ partial class Dump { if(!_force) { - _dumpLog.WriteLine(Localization.Core - .Could_not_check_current_position_unable_to_resume_If_you_want_to_continue_use_force); - StoppingErrorMessage?.Invoke(Localization.Core .Could_not_check_current_position_unable_to_resume_If_you_want_to_continue_use_force); return; } - _dumpLog.WriteLine(Localization.Core - .Could_not_check_current_position_unable_to_resume_Dumping_from_the_start); - ErrorMessage?.Invoke(Localization.Core .Could_not_check_current_position_unable_to_resume_Dumping_from_the_start); @@ -773,18 +733,12 @@ partial class Dump { if(!_force) { - _dumpLog.WriteLine(Localization.Core - .Current_position_is_not_as_expected_unable_to_resume_If_you_want_to_continue_use_force); - StoppingErrorMessage?.Invoke(Localization.Core .Current_position_is_not_as_expected_unable_to_resume_If_you_want_to_continue_use_force); return; } - _dumpLog.WriteLine(Localization.Core - .Current_position_is_not_as_expected_unable_to_resume_Dumping_from_the_start); - ErrorMessage?.Invoke(Localization.Core .Current_position_is_not_as_expected_unable_to_resume_Dumping_from_the_start); @@ -796,18 +750,12 @@ partial class Dump { if(!_force) { - _dumpLog.WriteLine(Localization.Core - .Cannot_reposition_tape_unable_to_resume_If_you_want_to_continue_use_force); - StoppingErrorMessage?.Invoke(Localization.Core .Cannot_reposition_tape_unable_to_resume_If_you_want_to_continue_use_force); return; } - _dumpLog.WriteLine(Localization.Core - .Cannot_reposition_tape_unable_to_resume_Dumping_from_the_start); - ErrorMessage?.Invoke(Localization.Core .Cannot_reposition_tape_unable_to_resume_Dumping_from_the_start); @@ -818,16 +766,12 @@ partial class Dump { if(!_force) { - _dumpLog.WriteLine(Localization.Core - .Cannot_reposition_tape_unable_to_resume_If_you_want_to_continue_use_force); - StoppingErrorMessage?.Invoke(Localization.Core .Cannot_reposition_tape_unable_to_resume_If_you_want_to_continue_use_force); return; } - _dumpLog.WriteLine(Localization.Core.Cannot_reposition_tape_unable_to_resume_Dumping_from_the_start); ErrorMessage?.Invoke(Localization.Core.Cannot_reposition_tape_unable_to_resume_Dumping_from_the_start); canLocate = false; } @@ -855,12 +799,12 @@ partial class Dump Environment.NewLine + decSense.Value.Description); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_rewind_please_correct_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); return; } @@ -871,9 +815,6 @@ partial class Dump // Cannot set image to tape mode if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_setting_output_image_in_tape_mode_not_continuing); - _dumpLog.WriteLine(outputTape.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_setting_output_image_in_tape_mode_not_continuing + Environment.NewLine + outputTape.ErrorMessage); @@ -886,9 +827,6 @@ partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputTape.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputTape.ErrorMessage); @@ -942,7 +880,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -950,7 +887,6 @@ partial class Dump if(endOfMedia) { UpdateStatus?.Invoke(string.Format(Localization.Core.Finished_partition_0, currentPartition)); - _dumpLog.WriteLine(Localization.Core.Finished_partition_0, currentPartition); currentTapeFile.LastBlock = currentBlock - 1; @@ -1040,10 +976,6 @@ partial class Dump blockSize, currentBlock)); - _dumpLog.WriteLine(Localization.Core.Blocksize_changed_to_0_bytes_at_block_1, - blockSize, - currentBlock); - sense = _dev.Space(out senseBuf, SscSpaceCodes.LogicalBlock, -1, _dev.Timeout, out duration); totalDuration += duration; @@ -1057,12 +989,12 @@ partial class Dump decSense.Value.Description); outputTape.Close(); - _dumpLog.WriteLine(Localization.Core.Drive_could_not_go_back_one_block_Sense_follows); + AaruLogging.WriteLine(Localization.Core.Drive_could_not_go_back_one_block_Sense_follows); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); return; } @@ -1075,7 +1007,6 @@ partial class Dump case SenseKeys.BlankCheck when currentBlock == 0: StoppingErrorMessage?.Invoke(Localization.Core.Cannot_dump_a_blank_tape); outputTape.Close(); - _dumpLog.WriteLine(Localization.Core.Cannot_dump_a_blank_tape); return; @@ -1085,13 +1016,11 @@ partial class Dump // TODO: Detect end of partition endOfMedia = true; UpdateStatus?.Invoke(Localization.Core.Found_end_of_tape_partition); - _dumpLog.WriteLine(Localization.Core.Found_end_of_tape_partition); continue; case SenseKeys.BlankCheck: StoppingErrorMessage?.Invoke(Localization.Core.Blank_block_found_end_of_tape); endOfMedia = true; - _dumpLog.WriteLine(Localization.Core.Blank_block_found_end_of_tape); continue; } @@ -1102,7 +1031,6 @@ partial class Dump // TODO: Detect end of partition endOfMedia = true; UpdateStatus?.Invoke(Localization.Core.Found_end_of_tape_partition); - _dumpLog.WriteLine(Localization.Core.Found_end_of_tape_partition); continue; case SenseKeys.NoSense or SenseKeys.RecoveredError when decSense.Value.ASCQ == 0x01 || filemark: @@ -1122,7 +1050,6 @@ partial class Dump currentFile, currentBlock)); - _dumpLog.WriteLine(Localization.Core.Changed_to_file_0_at_block_1, currentFile, currentBlock); continue; } @@ -1133,10 +1060,11 @@ partial class Dump .Drive_could_not_read_block_0_Sense_cannot_be_decoded_look_at_log_for_dump, currentBlock)); - _dumpLog.WriteLine(string.Format(Localization.Core.Drive_could_not_read_block_0_Sense_bytes_follow, - currentBlock)); + AaruLogging.Information(string.Format(Localization.Core + .Drive_could_not_read_block_0_Sense_bytes_follow, + currentBlock)); - _dumpLog.WriteLine(PrintHex.ByteArrayToHexArrayString(senseBuf, 32)); + AaruLogging.Information(PrintHex.ByteArrayToHexArrayString(senseBuf, 32)); } else { @@ -1146,13 +1074,13 @@ partial class Dump decSense.Value.SenseKey, decSense.Value.Description)); - _dumpLog.WriteLine(string.Format(Localization.Core.Drive_could_not_read_block_0_Sense_follows, - currentBlock)); + AaruLogging.WriteLine(string.Format(Localization.Core.Drive_could_not_read_block_0_Sense_follows, + currentBlock)); - _dumpLog.WriteLine(Localization.Core.Device_not_ready_Sense, - decSense.Value.SenseKey, - decSense.Value.ASC, - decSense.Value.ASCQ); + AaruLogging.WriteLine(Localization.Core.Device_not_ready_Sense, + decSense.Value.SenseKey, + decSense.Value.ASC, + decSense.Value.ASCQ); } // TODO: Reset device after X errors @@ -1230,25 +1158,13 @@ partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); #region Error handling if(_resume.BadBlocks.Count > 0 && !_aborted && _retryPasses > 0 && (canLocate || canLocateLong)) { - var pass = 1; - var forward = false; + int pass = 1; + bool forward = false; const bool runningPersistent = false; Modes.ModePage? currentModePage; @@ -1268,7 +1184,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -1297,7 +1212,6 @@ partial class Dump } UpdateStatus?.Invoke(string.Format(Localization.Core.Positioning_tape_to_block_0, badBlock)); - _dumpLog.WriteLine(string.Format(Localization.Core.Positioning_tape_to_block_0, badBlock)); if(canLocateLong) { @@ -1309,7 +1223,6 @@ partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_check_current_position_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_check_current_position_continuing); continue; @@ -1319,8 +1232,6 @@ partial class Dump if(position != _resume.NextBlock) { - _dumpLog.WriteLine(Localization.Core.Current_position_is_not_as_expected_continuing); - StoppingErrorMessage?.Invoke(Localization.Core .Current_position_is_not_as_expected_continuing); @@ -1329,8 +1240,6 @@ partial class Dump } else { - _dumpLog.WriteLine(string.Format(Localization.Core.Cannot_position_tape_to_block_0, badBlock)); - ErrorMessage?.Invoke(string.Format(Localization.Core.Cannot_position_tape_to_block_0, badBlock)); @@ -1347,7 +1256,6 @@ partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Could_not_check_current_position_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Could_not_check_current_position_continuing); continue; @@ -1357,8 +1265,6 @@ partial class Dump if(position != _resume.NextBlock) { - _dumpLog.WriteLine(Localization.Core.Current_position_is_not_as_expected_continuing); - StoppingErrorMessage?.Invoke(Localization.Core .Current_position_is_not_as_expected_continuing); @@ -1367,8 +1273,6 @@ partial class Dump } else { - _dumpLog.WriteLine(string.Format(Localization.Core.Cannot_position_tape_to_block_0, badBlock)); - ErrorMessage?.Invoke(string.Format(Localization.Core.Cannot_position_tape_to_block_0, badBlock)); @@ -1396,8 +1300,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badBlock, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badBlock, pass); } else if(runningPersistent) outputTape.WriteSector(cmdBuf, badBlock); } @@ -1425,7 +1327,8 @@ partial class Dump _resume.BadBlocks.Sort(); - foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Block_0_could_not_be_read, bad); + foreach(ulong bad in _resume.BadBlocks) + AaruLogging.Information(Localization.Core.Block_0_could_not_be_read, bad); currentTry.Extents = ExtentsConverter.ToMetadata(extents); @@ -1447,7 +1350,6 @@ partial class Dump if(_preSidecar != null) outputTape.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputTape.Close(); @@ -1456,21 +1358,10 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Closed_in_0, _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); - - return; - } - - if(_aborted) - { - UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); return; } @@ -1480,7 +1371,6 @@ partial class Dump if(_metadata) { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); - _dumpLog.WriteLine(Localization.Core.Creating_sidecar); IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); @@ -1516,14 +1406,6 @@ partial class Dump .Per(totalChkDuration.Milliseconds()) .Humanize())); - _dumpLog.WriteLine(Localization.Core.Sidecar_created_in_0, - _sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - - _dumpLog.WriteLine(Localization.Core.Average_checksum_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalChkDuration.Milliseconds()) - .Humanize()); - if(_preSidecar != null) { _preSidecar.BlockMedias = sidecar.BlockMedias; @@ -1552,10 +1434,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Found_filesystem_0_at_sector_1, filesystem.type, filesystem.start)); - - _dumpLog.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1, - filesystem.type, - filesystem.start); } } diff --git a/Aaru.Core/Devices/Dumping/Sbc/Cache.cs b/Aaru.Core/Devices/Dumping/Sbc/Cache.cs index 2f5ee9bc4..ade825f8d 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Cache.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Cache.cs @@ -32,6 +32,7 @@ using Aaru.CommonTypes.Extents; using Aaru.CommonTypes.Interfaces; using Aaru.Core.Logging; using Aaru.Decryption.DVD; +using Aaru.Logging; using Humanizer; using Humanizer.Bytes; @@ -89,7 +90,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -118,7 +118,7 @@ partial class Dump _writeStopwatch.Restart(); byte[] tmpBuf; - var cmi = new byte[blocksToRead]; + byte[] cmi = new byte[blocksToRead]; for(uint j = 0; j < blocksToRead; j++) { @@ -183,7 +183,7 @@ partial class Dump mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(i, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; newTrim = true; } diff --git a/Aaru.Core/Devices/Dumping/Sbc/Data.cs b/Aaru.Core/Devices/Dumping/Sbc/Data.cs index 51131a68b..eb2f1327e 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Data.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Data.cs @@ -35,6 +35,7 @@ using Aaru.Core.Logging; using Aaru.Decoders.DVD; using Aaru.Decryption; using Aaru.Decryption.DVD; +using Aaru.Logging; using Humanizer; using Humanizer.Bytes; using DVDDecryption = Aaru.Decryption.DVD.Dump; @@ -84,7 +85,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -203,8 +203,6 @@ partial class Dump _resume.NextBlock++; _aborted = true; - _dumpLog?.WriteLine(Localization.Core - .INSITE_floptical_drives_get_crazy_on_the_SCSI_bus_when_an_error_is_found); UpdateStatus?.Invoke(Localization.Core .INSITE_floptical_drives_get_crazy_on_the_SCSI_bus_when_an_error_is_found); @@ -227,7 +225,7 @@ partial class Dump mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(i, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; newTrim = true; } diff --git a/Aaru.Core/Devices/Dumping/Sbc/Dump.cs b/Aaru.Core/Devices/Dumping/Sbc/Dump.cs index 5874170d1..1ac51d56d 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Dump.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Dump.cs @@ -98,7 +98,7 @@ partial class Dump }; } - _dumpLog.WriteLine(Localization.Core.Initializing_reader); + AaruLogging.WriteLine(Localization.Core.Initializing_reader); var scsiReader = new Reader(_dev, _dev.Timeout, null, _errorLog, _dumpRaw); ulong blocks = scsiReader.GetDeviceBlocks(); uint blockSize = scsiReader.LogicalBlockSize; @@ -121,7 +121,6 @@ partial class Dump if(!sense) { - _dumpLog.WriteLine(Localization.Core.Requesting_MODE_SENSE_10); UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_10); sense = _dev.ModeSense10(out cmdBuf, @@ -156,7 +155,6 @@ partial class Dump } } - _dumpLog.WriteLine(Localization.Core.Requesting_MODE_SENSE_6); UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_6); sense = _dev.ModeSense6(out cmdBuf, @@ -229,9 +227,6 @@ partial class Dump // SonicStage changes the device mode, so it is no longer a mass storage device, and can only read // tracks written by that same application ID (changes between computers). case MediaType.MD: - _dumpLog.WriteLine(Localization.Core - .MiniDisc_albums_NetMD_discs_or_user_written_audio_MiniDisc_cannot_be_dumped); - StoppingErrorMessage?.Invoke(Localization.Core .MiniDisc_albums_NetMD_discs_or_user_written_audio_MiniDisc_cannot_be_dumped); @@ -244,7 +239,7 @@ partial class Dump if(scsiReader.FindReadCommand()) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_find_correct_read_command_0, scsiReader.ErrorMessage); + AaruLogging.WriteLine(Localization.Core.ERROR_Cannot_find_correct_read_command_0, scsiReader.ErrorMessage); StoppingErrorMessage?.Invoke(Localization.Core.Unable_to_read_medium); return; @@ -263,7 +258,7 @@ partial class Dump // Check how many blocks to read, if error show and return if(scsiReader.GetBlocksToRead(_maximumReadable)) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_get_blocks_to_read_0, scsiReader.ErrorMessage); + AaruLogging.WriteLine(Localization.Core.ERROR_Cannot_get_blocks_to_read_0, scsiReader.ErrorMessage); StoppingErrorMessage?.Invoke(scsiReader.ErrorMessage); return; @@ -275,7 +270,7 @@ partial class Dump if(blocks == 0) { - _dumpLog.WriteLine(Localization.Core.ERROR_Unable_to_read_medium_or_empty_medium_present); + AaruLogging.WriteLine(Localization.Core.ERROR_Unable_to_read_medium_or_empty_medium_present); StoppingErrorMessage?.Invoke(Localization.Core.Unable_to_read_medium_or_empty_medium_present); return; @@ -297,16 +292,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.SCSI_floppy_mode_page_present_0, containsFloppyPage)); UpdateStatus?.Invoke(string.Format(Localization.Core.Media_identified_as_0, dskType)); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_blocks_1_bytes, blocks, blocks * blockSize); - _dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_at_a_time, blocksToRead); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_logical_block, blockSize); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_bytes_per_physical_block, scsiReader.LongBlockSize); - _dumpLog.WriteLine(Localization.Core.SCSI_device_type_0, _dev.ScsiType); - _dumpLog.WriteLine(Localization.Core.SCSI_medium_type_0, scsiMediumType); - _dumpLog.WriteLine(Localization.Core.SCSI_density_type_0, scsiDensityCode); - _dumpLog.WriteLine(Localization.Core.SCSI_floppy_mode_page_present_0, containsFloppyPage); - _dumpLog.WriteLine(Localization.Core.Media_identified_as_0, dskType); - uint longBlockSize = scsiReader.LongBlockSize; if(_dumpRaw) @@ -356,20 +341,15 @@ partial class Dump foreach(MediaTagType tag in mediaTags.Keys.Where(tag => !outputFormat.SupportedMediaTags.Contains(tag))) { ret = false; - _dumpLog.WriteLine(string.Format(Localization.Core.Output_format_does_not_support_0, tag)); ErrorMessage?.Invoke(string.Format(Localization.Core.Output_format_does_not_support_0, tag)); } if(!ret) { if(_force) - { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_continuing); ErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_continuing); - } else { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_not_continuing); return; @@ -377,7 +357,6 @@ partial class Dump } UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead)); - _dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead); var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, @@ -397,9 +376,6 @@ partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputFormat.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputFormat.ErrorMessage); @@ -444,17 +420,11 @@ partial class Dump { if(_force) { - _dumpLog.WriteLine(Localization.Core - .Image_does_not_support_multiple_sessions_in_non_Compact_Disc_dumps_continuing); - ErrorMessage?.Invoke(Localization.Core .Image_does_not_support_multiple_sessions_in_non_Compact_Disc_dumps_continuing); } else { - _dumpLog.WriteLine(Localization.Core - .Image_does_not_support_multiple_sessions_in_non_Compact_Disc_dumps_not_continuing); - StoppingErrorMessage?.Invoke(Localization.Core .Image_does_not_support_multiple_sessions_in_non_Compact_Disc_dumps_not_continuing); @@ -468,17 +438,11 @@ partial class Dump { if(_force) { - _dumpLog.WriteLine(Localization.Core - .Image_does_not_support_multiple_tracks_in_non_Compact_Disc_dumps_continuing); - ErrorMessage?.Invoke(Localization.Core .Image_does_not_support_multiple_tracks_in_non_Compact_Disc_dumps_continuing); } else { - _dumpLog.WriteLine(Localization.Core - .Image_does_not_support_multiple_tracks_in_non_Compact_Disc_dumps_not_continuing); - StoppingErrorMessage?.Invoke(Localization.Core .Image_does_not_support_multiple_tracks_in_non_Compact_Disc_dumps_not_continuing); @@ -487,7 +451,6 @@ partial class Dump } UpdateStatus?.Invoke(Localization.Core.Building_track_map); - _dumpLog.WriteLine(Localization.Core.Building_track_map); List tracks = []; @@ -557,9 +520,6 @@ partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputFormat.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputFormat.ErrorMessage); @@ -586,11 +546,6 @@ partial class Dump if(!ret) { - _dumpLog.WriteLine(Localization.Core - .Error_sending_tracks_to_output_image_not_continuing); - - _dumpLog.WriteLine(opticalPlugin.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core .Error_sending_tracks_to_output_image_not_continuing + Environment.NewLine + @@ -619,8 +574,6 @@ partial class Dump } else { - _dumpLog.WriteLine(Localization.Core.The_specified_image_format_cannot_represent_optical_discs); - StoppingErrorMessage?.Invoke(Localization.Core .The_specified_image_format_cannot_represent_optical_discs); @@ -641,12 +594,6 @@ partial class Dump if(!rigidPage.HasValue || setGeometry) continue; - _dumpLog.WriteLine(Localization.Core - .Setting_geometry_to_0_cylinders_1_heads_2_sectors_per_track, - rigidPage.Value.Cylinders, - rigidPage.Value.Heads, - (uint)(blocks / (rigidPage.Value.Cylinders * rigidPage.Value.Heads))); - UpdateStatus?.Invoke(string.Format(Localization.Core .Setting_geometry_to_0_cylinders_1_heads_2_sectors_per_track, rigidPage.Value.Cylinders, @@ -669,12 +616,6 @@ partial class Dump if(!flexiblePage.HasValue) continue; - _dumpLog.WriteLine(Localization.Core - .Setting_geometry_to_0_cylinders_1_heads_2_sectors_per_track, - flexiblePage.Value.Cylinders, - flexiblePage.Value.Heads, - flexiblePage.Value.SectorsPerTrack); - UpdateStatus?.Invoke(string.Format(Localization.Core .Setting_geometry_to_0_cylinders_1_heads_2_sectors_per_track, flexiblePage.Value.Cylinders, @@ -700,9 +641,6 @@ partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputFormat.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputFormat.ErrorMessage); @@ -712,8 +650,6 @@ partial class Dump if(writeSingleOpticalTrack) { - _dumpLog.WriteLine(Localization.Core.Creating_single_track_as_could_not_retrieve_track_list_from_drive); - UpdateStatus?.Invoke(Localization.Core .Creating_single_track_as_could_not_retrieve_track_list_from_drive); @@ -781,24 +717,15 @@ partial class Dump } if(_resume.NextBlock > 0) - { UpdateStatus?.Invoke(string.Format(Localization.Core.Resuming_from_block_0, _resume.NextBlock)); - _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); - } // Set speed if(_speedMultiplier >= 0) { if(_speed == 0) - { - _dumpLog.WriteLine(Localization.Core.Setting_speed_to_MAX); UpdateStatus?.Invoke(Localization.Core.Setting_speed_to_MAX); - } else - { - _dumpLog.WriteLine(string.Format(Localization.Core.Setting_speed_to_0_x, _speed)); UpdateStatus?.Invoke(string.Format(Localization.Core.Setting_speed_to_0_x, _speed)); - } _speed *= _speedMultiplier; @@ -906,18 +833,6 @@ partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); #region Trimming @@ -927,7 +842,6 @@ partial class Dump { _trimStopwatch.Restart(); UpdateStatus?.Invoke(Localization.Core.Trimming_skipped_sectors); - _dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors); InitProgress?.Invoke(); @@ -939,9 +853,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Trimming_finished_in_0, _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, - _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _trimStopwatch.Stop(); } @@ -984,10 +895,6 @@ partial class Dump // Cannot write tag to image StoppingErrorMessage?.Invoke(string.Format(Localization.Core.Cannot_write_tag_0, tag.Key)); - _dumpLog.WriteLine(string.Format(Localization.Core.Cannot_write_tag_0, tag.Key) + - Environment.NewLine + - outputFormat.ErrorMessage); - return; } } @@ -998,13 +905,10 @@ partial class Dump if(_dev.IsUsb && _dev.UsbDescriptors != null) { UpdateStatus?.Invoke(Localization.Core.Reading_USB_descriptors); - _dumpLog.WriteLine(Localization.Core.Reading_USB_descriptors); ret = outputFormat.WriteMediaTag(_dev.UsbDescriptors, MediaTagType.USB_Descriptors); if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_USB_descriptors); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_USB_descriptors + Environment.NewLine + outputFormat.ErrorMessage); @@ -1018,7 +922,6 @@ partial class Dump if(_dev.Type == DeviceType.ATAPI) { UpdateStatus?.Invoke(Localization.Core.Requesting_ATAPI_IDENTIFY_PACKET_DEVICE); - _dumpLog.WriteLine(Localization.Core.Requesting_ATAPI_IDENTIFY_PACKET_DEVICE); sense = _dev.AtapiIdentify(out cmdBuf, out _); if(!sense) @@ -1029,8 +932,6 @@ partial class Dump if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_ATAPI_IDENTIFY_PACKET_DEVICE); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_ATAPI_IDENTIFY_PACKET_DEVICE + Environment.NewLine + outputFormat.ErrorMessage); @@ -1045,22 +946,16 @@ partial class Dump if(!sense) { UpdateStatus?.Invoke(Localization.Core.Requesting_SCSI_INQUIRY); - _dumpLog.WriteLine(Localization.Core.Requesting_SCSI_INQUIRY); ret = outputFormat.WriteMediaTag(cmdBuf, MediaTagType.SCSI_INQUIRY); if(!ret && !_force) { StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_SCSI_INQUIRY); - _dumpLog.WriteLine(Localization.Core.Cannot_write_SCSI_INQUIRY + - Environment.NewLine + - outputFormat.ErrorMessage); - return; } UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_10); - _dumpLog.WriteLine(Localization.Core.Requesting_MODE_SENSE_10); sense = _dev.ModeSense10(out cmdBuf, out _, @@ -1093,8 +988,6 @@ partial class Dump if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_SCSI_MODE_SENSE_10); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_SCSI_MODE_SENSE_10 + Environment.NewLine + outputFormat.ErrorMessage); @@ -1105,7 +998,6 @@ partial class Dump } UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_6); - _dumpLog.WriteLine(Localization.Core.Requesting_MODE_SENSE_6); sense = _dev.ModeSense6(out cmdBuf, out _, @@ -1138,8 +1030,6 @@ partial class Dump if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_SCSI_MODE_SENSE_6); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_SCSI_MODE_SENSE_6 + Environment.NewLine + outputFormat.ErrorMessage); @@ -1154,7 +1044,8 @@ partial class Dump _resume.BadBlocks.Sort(); - foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); + foreach(ulong bad in _resume.BadBlocks) + AaruLogging.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); currentTry.Extents = ExtentsConverter.ToMetadata(extents); @@ -1177,7 +1068,6 @@ partial class Dump if(_preSidecar != null) outputFormat.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputFormat.Close(); @@ -1186,13 +1076,9 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Closed_in_0, _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); return; } @@ -1207,7 +1093,6 @@ partial class Dump else { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); - _dumpLog.WriteLine(Localization.Core.Creating_sidecar); IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); @@ -1244,14 +1129,6 @@ partial class Dump .Per(totalChkDuration.Milliseconds()) .Humanize())); - _dumpLog.WriteLine(Localization.Core.Sidecar_created_in_0, - _sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - - _dumpLog.WriteLine(Localization.Core.Average_checksum_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalChkDuration.Milliseconds()) - .Humanize()); - if(_preSidecar != null) { _preSidecar.BlockMedias = sidecar.BlockMedias; @@ -1354,7 +1231,6 @@ partial class Dump */ UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_10); - _dumpLog.WriteLine(Localization.Core.Requesting_MODE_SENSE_10); sense = _dev.ModeSense10(out cmdBuf, out _, @@ -1396,7 +1272,6 @@ partial class Dump } UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_6); - _dumpLog.WriteLine(Localization.Core.Requesting_MODE_SENSE_6); sense = _dev.ModeSense6(out cmdBuf, out _, @@ -1461,10 +1336,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Found_filesystem_0_at_sector_1, filesystem.type, filesystem.start)); - - _dumpLog.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1, - filesystem.type, - filesystem.start); } } diff --git a/Aaru.Core/Devices/Dumping/Sbc/Error.cs b/Aaru.Core/Devices/Dumping/Sbc/Error.cs index f7ce5a2ef..7c4ff241b 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Error.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Error.cs @@ -223,7 +223,6 @@ partial class Dump } UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); sense = _dev.ModeSelect(md6, out byte[] senseBuf, true, false, _dev.Timeout, out _); if(sense) sense = _dev.ModeSelect10(md10, out senseBuf, true, false, _dev.Timeout, out _); @@ -234,9 +233,6 @@ partial class Dump .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); AaruLogging.Debug(Localization.Core.Error_0, Sense.PrettifySense(senseBuf)); - - _dumpLog.WriteLine(Localization.Core - .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); } else runningPersistent = true; @@ -252,7 +248,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -303,7 +298,6 @@ partial class Dump newBlank = true; UpdateStatus?.Invoke(string.Format(Localization.Core.Found_blank_block_0_in_pass_1, badSector, pass)); - _dumpLog.WriteLine(Localization.Core.Found_blank_block_0_in_pass_1, badSector, pass); continue; } @@ -363,8 +357,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass); } else if(runningPersistent) outputFormat.WriteSector(buffer, badSector); } @@ -392,7 +384,6 @@ partial class Dump md10 = Modes.EncodeMode10(md, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); sense = _dev.ModeSelect(md6, out _, true, false, _dev.Timeout, out _); if(sense) _dev.ModeSelect10(md10, out _, true, false, _dev.Timeout, out _); @@ -422,7 +413,6 @@ partial class Dump if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -465,8 +455,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_title_key_0_in_pass_1, missingKey, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_title_key_0_in_pass_1, missingKey, pass); } else { @@ -482,8 +470,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_title_key_0_in_pass_1, missingKey, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_title_key_0_in_pass_1, missingKey, pass); } } diff --git a/Aaru.Core/Devices/Dumping/Sbc/Optical.cs b/Aaru.Core/Devices/Dumping/Sbc/Optical.cs index d18b0190b..33c7993bc 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Optical.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Optical.cs @@ -101,7 +101,6 @@ partial class Dump { _resume.BlankExtents = null; UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -182,15 +181,13 @@ partial class Dump writtenExtents.Add(0, blocks - 1); foreach(Tuple blank in blankExtents.ToArray()) - { - for(ulong b = blank.Item1; b <= blank.Item2; b++) writtenExtents.Remove(b); - } + for(ulong b = blank.Item1; b <= blank.Item2; b++) + writtenExtents.Remove(b); } if(writtenExtents.Count == 0) { UpdateStatus?.Invoke(Localization.Core.Cannot_dump_empty_media); - _dumpLog.WriteLine(Localization.Core.Cannot_dump_empty_media); return; } @@ -215,7 +212,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -262,7 +258,7 @@ partial class Dump mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(i, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; newTrim = true; } diff --git a/Aaru.Core/Devices/Dumping/Sbc/Trim.cs b/Aaru.Core/Devices/Dumping/Sbc/Trim.cs index 78cf63570..656ce5692 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Trim.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Trim.cs @@ -44,14 +44,15 @@ partial class Dump /// Correctly dump extents /// Resume information /// Blank extents - void TrimSbcData(Reader scsiReader, ExtentsULong extents, DumpHardware currentTry, ExtentsULong blankExtents, byte[] discKey) + void TrimSbcData(Reader scsiReader, ExtentsULong extents, DumpHardware currentTry, ExtentsULong blankExtents, + byte[] discKey) { ulong[] tmpArray = _resume.BadBlocks.ToArray(); bool sense; bool recoveredError; bool blankCheck; byte[] buffer; - var newBlank = false; + bool newBlank = false; if(_outputPlugin is not IWritableImage outputFormat) { @@ -66,7 +67,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -82,7 +82,6 @@ partial class Dump _resume.BadBlocks.Remove(badSector); UpdateStatus?.Invoke(string.Format(Localization.Core.Found_blank_block_0, badSector)); - _dumpLog.WriteLine(Localization.Core.Found_blank_block_0, badSector); continue; } diff --git a/Aaru.Core/Devices/Dumping/SecureDigital.cs b/Aaru.Core/Devices/Dumping/SecureDigital.cs index 6c3996c63..fad244bfe 100644 --- a/Aaru.Core/Devices/Dumping/SecureDigital.cs +++ b/Aaru.Core/Devices/Dumping/SecureDigital.cs @@ -46,6 +46,7 @@ using Aaru.Core.Graphics; using Aaru.Core.Logging; using Aaru.Decoders.MMC; using Aaru.Decoders.SecureDigital; +using Aaru.Logging; using Humanizer; using Humanizer.Bytes; using Humanizer.Localisation; @@ -86,9 +87,9 @@ public partial class Dump byte[] ecsd = null; byte[] scr = null; uint physicalBlockSize = 0; - var byteAddressed = true; + bool byteAddressed = true; uint[] response; - var supportsCmd23 = false; + bool supportsCmd23 = false; var outputFormat = _outputPlugin as IWritableImage; Dictionary mediaTags = new(); @@ -98,7 +99,6 @@ public partial class Dump case DeviceType.MMC: { UpdateStatus?.Invoke(Localization.Core.Reading_CSD); - _dumpLog.WriteLine(Localization.Core.Reading_CSD); sense = _dev.ReadCsd(out csd, out response, timeout, out duration); if(!sense) @@ -115,7 +115,6 @@ public partial class Dump if(csdDecoded.Size == 0xFFF) { UpdateStatus?.Invoke(Localization.Core.Reading_Extended_CSD); - _dumpLog.WriteLine(Localization.Core.Reading_Extended_CSD); sense = _dev.ReadExtendedCsd(out ecsd, out response, timeout, out duration); if(!sense) @@ -153,7 +152,6 @@ public partial class Dump } UpdateStatus?.Invoke(Localization.Core.Reading_OCR); - _dumpLog.WriteLine(Localization.Core.Reading_OCR); sense = _dev.ReadOcr(out ocr, out response, timeout, out duration); if(sense) @@ -170,7 +168,6 @@ public partial class Dump case DeviceType.SecureDigital: { UpdateStatus?.Invoke(Localization.Core.Reading_CSD); - _dumpLog.WriteLine(Localization.Core.Reading_CSD); sense = _dev.ReadCsd(out csd, out response, timeout, out duration); if(!sense) @@ -203,7 +200,6 @@ public partial class Dump } UpdateStatus?.Invoke(Localization.Core.Reading_OCR); - _dumpLog.WriteLine(Localization.Core.Reading_OCR); sense = _dev.ReadSdocr(out ocr, out response, timeout, out duration); if(sense) @@ -215,7 +211,6 @@ public partial class Dump mediaTags.Add(MediaTagType.SD_OCR, null); UpdateStatus?.Invoke(Localization.Core.Reading_SCR); - _dumpLog.WriteLine(Localization.Core.Reading_SCR); sense = _dev.ReadScr(out scr, out response, timeout, out duration); if(sense) @@ -237,7 +232,6 @@ public partial class Dump } UpdateStatus?.Invoke(Localization.Core.Reading_CID); - _dumpLog.WriteLine(Localization.Core.Reading_CID); sense = _dev.ReadCid(out byte[] cid, out response, timeout, out duration); if(sense) @@ -255,14 +249,12 @@ public partial class Dump if(blocks == 0) { - _dumpLog.WriteLine(Localization.Core.Unable_to_get_device_size); StoppingErrorMessage?.Invoke(Localization.Core.Unable_to_get_device_size); return; } UpdateStatus?.Invoke(string.Format(Localization.Core.Device_reports_0_blocks, blocks)); - _dumpLog.WriteLine(Localization.Core.Device_reports_0_blocks, blocks); byte[] cmdBuf; bool error; @@ -306,8 +298,6 @@ public partial class Dump if(error) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_get_blocks_to_read_device_error_0, _dev.LastError); - StoppingErrorMessage?.Invoke(string.Format(Localization.Core .Device_error_0_trying_to_guess_ideal_transfer_length, _dev.LastError)); @@ -333,7 +323,6 @@ public partial class Dump if(error) { UpdateStatus?.Invoke(Localization.Core.DumBuffered_OS_reads_are_not_working_trying_direct_commands); - _dumpLog.WriteLine(Localization.Core.DumBuffered_OS_reads_are_not_working_trying_direct_commands); blocksToRead = 1; _useBufferedReads = false; } @@ -362,8 +351,6 @@ public partial class Dump if(error) { - _dumpLog.WriteLine(Localization.Core.ERROR_Cannot_get_blocks_to_read_device_error_0, _dev.LastError); - StoppingErrorMessage?.Invoke(string.Format(Localization.Core .Device_error_0_trying_to_guess_ideal_transfer_length, _dev.LastError)); @@ -378,8 +365,6 @@ public partial class Dump if(error) { - _dumpLog.WriteLine(Localization.Core.ERROR_Could_not_read_from_device_device_error_0, _dev.LastError); - StoppingErrorMessage?.Invoke(string.Format(Localization.Core.Device_error_0_trying_to_read_from_device, _dev.LastError)); @@ -388,25 +373,17 @@ public partial class Dump } if(supportsCmd23 || blocksToRead == 1) - { UpdateStatus?.Invoke(string.Format(Localization.Core.Device_can_read_0_blocks_at_a_time, blocksToRead)); - _dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_at_a_time, blocksToRead); - } else if(_useBufferedReads) { UpdateStatus?.Invoke(string.Format(Localization.Core .Device_can_read_0_blocks_at_a_time_using_OS_buffered_reads, blocksToRead)); - - _dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_at_a_time_using_OS_buffered_reads, - blocksToRead); } else { UpdateStatus?.Invoke(string.Format(Localization.Core.Device_can_read_0_blocks_using_sequential_commands, blocksToRead)); - - _dumpLog.WriteLine(Localization.Core.Device_can_read_0_blocks_using_sequential_commands, blocksToRead); } if(_skip < blocksToRead) _skip = blocksToRead; @@ -435,25 +412,20 @@ public partial class Dump return; } - var ret = true; + bool ret = true; foreach(MediaTagType tag in mediaTags.Keys.Where(tag => !outputFormat.SupportedMediaTags.Contains(tag))) { ret = false; - _dumpLog.WriteLine(string.Format(Localization.Core.Output_format_does_not_support_0, tag)); ErrorMessage?.Invoke(string.Format(Localization.Core.Output_format_does_not_support_0, tag)); } if(!ret) { if(_force) - { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_continuing); ErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_continuing); - } else { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_not_continuing); return; @@ -479,9 +451,6 @@ public partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputFormat.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputFormat.ErrorMessage); @@ -522,8 +491,6 @@ public partial class Dump // Cannot write CID to image if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_CID_to_output_image); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_CID_to_output_image + Environment.NewLine + outputFormat.ErrorMessage); @@ -542,8 +509,6 @@ public partial class Dump // Cannot write CSD to image if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_CSD_to_output_image); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_CSD_to_output_image + Environment.NewLine + outputFormat.ErrorMessage); @@ -559,8 +524,6 @@ public partial class Dump // Cannot write Extended CSD to image if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_Extended_CSD_to_output_image); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_Extended_CSD_to_output_image + Environment.NewLine + outputFormat.ErrorMessage); @@ -579,8 +542,6 @@ public partial class Dump // Cannot write OCR to image if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_OCR_to_output_image); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_OCR_to_output_image + Environment.NewLine + outputFormat.ErrorMessage); @@ -596,8 +557,6 @@ public partial class Dump // Cannot write SCR to image if(!ret && !_force) { - _dumpLog.WriteLine(Localization.Core.Cannot_write_SCR_to_output_image); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_write_SCR_to_output_image + Environment.NewLine + outputFormat.ErrorMessage); @@ -607,10 +566,7 @@ public partial class Dump } if(_resume.NextBlock > 0) - { UpdateStatus?.Invoke(string.Format(Localization.Core.Resuming_from_block_0, _resume.NextBlock)); - _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); - } if(_createGraph) { @@ -636,7 +592,7 @@ public partial class Dump _dumpStopwatch.Restart(); _speedStopwatch.Reset(); double imageWriteDuration = 0; - var newTrim = false; + bool newTrim = false; ulong sectorSpeedStart = 0; InitProgress?.Invoke(); @@ -647,7 +603,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -728,7 +683,7 @@ public partial class Dump _writeStopwatch.Restart(); outputFormat.WriteSectors(new byte[blockSize * _skip], i, _skip); imageWriteDuration += _writeStopwatch.Elapsed.TotalSeconds; - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; newTrim = true; } @@ -774,18 +729,6 @@ public partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); #region Trimming @@ -793,7 +736,6 @@ public partial class Dump { _trimStopwatch.Restart(); UpdateStatus?.Invoke(Localization.Core.Trimming_skipped_sectors); - _dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors); ulong[] tmpArray = _resume.BadBlocks.ToArray(); InitProgress?.Invoke(); @@ -804,7 +746,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -839,9 +780,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Trimming_finished_in_0, _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, - _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); } #endregion Trimming @@ -850,8 +788,8 @@ public partial class Dump if(_resume.BadBlocks.Count > 0 && !_aborted && _retryPasses > 0) { - var pass = 1; - var forward = true; + int pass = 1; + bool forward = true; InitProgress?.Invoke(); repeatRetryLba: @@ -863,7 +801,6 @@ public partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -901,8 +838,6 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass); } if(pass < _retryPasses && !_aborted && _resume.BadBlocks.Count > 0) @@ -941,7 +876,6 @@ public partial class Dump if(_preSidecar != null) outputFormat.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputFormat.Close(); @@ -950,13 +884,10 @@ public partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Closed_in_0, _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); return; } @@ -966,7 +897,6 @@ public partial class Dump if(_metadata) { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); - _dumpLog.WriteLine(Localization.Core.Creating_sidecar); IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); @@ -1004,14 +934,6 @@ public partial class Dump .Per(totalChkDuration.Milliseconds()) .Humanize())); - _dumpLog.WriteLine(Localization.Core.Sidecar_created_in_0, - _sidecarStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); - - _dumpLog.WriteLine(Localization.Core.Average_checksum_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalChkDuration.Milliseconds()) - .Humanize()); - (string type, string subType) xmlType = (null, null); switch(_dev.Type) diff --git a/Aaru.Core/Devices/Dumping/XGD.cs b/Aaru.Core/Devices/Dumping/XGD.cs index c20d91d59..b6d6b86e4 100644 --- a/Aaru.Core/Devices/Dumping/XGD.cs +++ b/Aaru.Core/Devices/Dumping/XGD.cs @@ -91,9 +91,8 @@ partial class Dump if(!isAdmin) { AaruLogging.Error(Localization.Core - .Because_of_commands_sent_dumping_XGD_must_be_administrative_Cannot_continue); + .Because_of_commands_sent_dumping_XGD_must_be_administrative_Cannot_continue); - _dumpLog.WriteLine(Localization.Core.Cannot_dump_XGD_without_administrative_privileges); return; } @@ -108,7 +107,6 @@ partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_disc_capacity); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_disc_capacity); return; @@ -127,31 +125,26 @@ partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_PFI); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_PFI); return; } UpdateStatus?.Invoke(Localization.Core.Reading_Xbox_Security_Sector); - _dumpLog.WriteLine(Localization.Core.Reading_Xbox_Security_Sector); sense = _dev.KreonExtractSs(out byte[] ssBuf, out senseBuf, _dev.Timeout, out _); if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_Xbox_Security_Sector_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_Xbox_Security_Sector_not_continuing); return; } - _dumpLog.WriteLine(Localization.Core.Decoding_Xbox_Security_Sector); UpdateStatus?.Invoke(Localization.Core.Decoding_Xbox_Security_Sector); SS.SecuritySector? xboxSs = SS.Decode(ssBuf); if(!xboxSs.HasValue) { - _dumpLog.WriteLine(Localization.Core.Cannot_decode_Xbox_Security_Sector_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_decode_Xbox_Security_Sector_not_continuing); return; @@ -164,26 +157,22 @@ partial class Dump // Get video partition size AaruLogging.Debug(MODULE_NAME, Localization.Core.Getting_video_partition_size); UpdateStatus?.Invoke(Localization.Core.Locking_drive); - _dumpLog.WriteLine(Localization.Core.Locking_drive); sense = _dev.KreonLock(out senseBuf, _dev.Timeout, out _); if(sense) { _errorLog?.WriteLine("Kreon lock", _dev.Error, _dev.LastError, senseBuf); - _dumpLog.WriteLine(Localization.Core.Cannot_lock_drive_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_lock_drive_not_continuing); return; } UpdateStatus?.Invoke(Localization.Core.Getting_video_partition_size); - _dumpLog.WriteLine(Localization.Core.Getting_video_partition_size); sense = _dev.ReadCapacity(out byte[] readBuffer, out senseBuf, _dev.Timeout, out _); if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_disc_capacity); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_disc_capacity); return; @@ -193,7 +182,6 @@ partial class Dump (ulong)((readBuffer[0] << 24) + (readBuffer[1] << 16) + (readBuffer[2] << 8) + readBuffer[3]) & 0xFFFFFFFF; UpdateStatus?.Invoke(Localization.Core.Reading_Physical_Format_Information); - _dumpLog.WriteLine(Localization.Core.Reading_Physical_Format_Information); sense = _dev.ReadDiscStructure(out readBuffer, out senseBuf, @@ -207,7 +195,6 @@ partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_PFI); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_PFI); return; @@ -225,7 +212,6 @@ partial class Dump ulong l1Video = totalSize - l0Video + 1; UpdateStatus?.Invoke(Localization.Core.Reading_Disc_Manufacturing_Information); - _dumpLog.WriteLine(Localization.Core.Reading_Disc_Manufacturing_Information); sense = _dev.ReadDiscStructure(out readBuffer, out senseBuf, @@ -239,7 +225,6 @@ partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_DMI); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_DMI); return; @@ -253,7 +238,6 @@ partial class Dump if(totalSize > 300000) { UpdateStatus?.Invoke(Localization.Core.Video_partition_is_too_big_did_lock_work_Trying_cold_values); - _dumpLog.WriteLine(Localization.Core.Video_partition_is_too_big_did_lock_work_Trying_cold_values); totalSize = (ulong)((coldReadCapacity[0] << 24) + (coldReadCapacity[1] << 16) + @@ -276,8 +260,6 @@ partial class Dump if(totalSize > 300000) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_video_partition_size_not_continuing); - StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_video_partition_size_not_continuing); return; @@ -287,25 +269,21 @@ partial class Dump // Get game partition size AaruLogging.Debug(MODULE_NAME, Localization.Core.Getting_game_partition_size); UpdateStatus?.Invoke(Localization.Core.Unlocking_drive_Xtreme_); - _dumpLog.WriteLine(Localization.Core.Unlocking_drive_Xtreme_); sense = _dev.KreonUnlockXtreme(out senseBuf, _dev.Timeout, out _); if(sense) { _errorLog?.WriteLine("Kreon Xtreme unlock", _dev.Error, _dev.LastError, senseBuf); - _dumpLog.WriteLine(Localization.Core.Cannot_unlock_drive_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_unlock_drive_not_continuing); return; } UpdateStatus?.Invoke(Localization.Core.Getting_game_partition_size); - _dumpLog.WriteLine(Localization.Core.Getting_game_partition_size); sense = _dev.ReadCapacity(out readBuffer, out senseBuf, _dev.Timeout, out _); if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_disc_capacity); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_disc_capacity); return; @@ -321,25 +299,21 @@ partial class Dump // Get middle zone size AaruLogging.Debug(MODULE_NAME, Localization.Core.Getting_middle_zone_size); UpdateStatus?.Invoke(Localization.Core.Unlocking_drive_Wxripper); - _dumpLog.WriteLine(Localization.Core.Unlocking_drive_Wxripper); sense = _dev.KreonUnlockWxripper(out senseBuf, _dev.Timeout, out _); if(sense) { _errorLog?.WriteLine("Kreon Wxripper unlock", _dev.Error, _dev.LastError, senseBuf); - _dumpLog.WriteLine(Localization.Core.Cannot_unlock_drive_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_unlock_drive_not_continuing); return; } UpdateStatus?.Invoke(Localization.Core.Getting_disc_size); - _dumpLog.WriteLine(Localization.Core.Getting_disc_size); sense = _dev.ReadCapacity(out readBuffer, out senseBuf, _dev.Timeout, out _); if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_disc_capacity); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_disc_capacity); return; @@ -349,7 +323,6 @@ partial class Dump 0xFFFFFFFF; UpdateStatus?.Invoke(Localization.Core.Reading_Physical_Format_Information); - _dumpLog.WriteLine(Localization.Core.Reading_Physical_Format_Information); sense = _dev.ReadDiscStructure(out readBuffer, out senseBuf, @@ -363,7 +336,6 @@ partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_PFI); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_PFI); return; @@ -376,7 +348,6 @@ partial class Dump if(wxRipperPfiNullable == null) { - _dumpLog.WriteLine(Localization.Core.Cannot_decode_PFI); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_decode_PFI); return; @@ -391,11 +362,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.WxRipper_PFI_Layer_0_End_PSN_0_sectors, wxRipperPfi.Layer0EndPSN)); - _dumpLog.WriteLine(string.Format(Localization.Core.WxRipper_PFI_Data_Area_Start_PSN_0_sectors, - wxRipperPfi.DataAreaStartPSN)); - - _dumpLog.WriteLine(string.Format(Localization.Core.WxRipper_PFI_Layer_0_End_PSN_0_sectors, - wxRipperPfi.Layer0EndPSN)); ulong middleZone = totalSize - (wxRipperPfi.Layer0EndPSN - wxRipperPfi.DataAreaStartPSN + 1) - gameSize + 1; @@ -404,7 +370,6 @@ partial class Dump mediaTags.Add(MediaTagType.Xbox_PFI, tmpBuf); UpdateStatus?.Invoke(Localization.Core.Reading_Disc_Manufacturing_Information); - _dumpLog.WriteLine(Localization.Core.Reading_Disc_Manufacturing_Information); sense = _dev.ReadDiscStructure(out readBuffer, out senseBuf, @@ -418,7 +383,6 @@ partial class Dump if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_get_DMI); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_get_DMI); return; @@ -439,13 +403,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Real_layer_break_0, layerBreak)); UpdateStatus?.Invoke(""); - _dumpLog.WriteLine(Localization.Core.Video_layer_0_size_0_sectors, l0Video); - _dumpLog.WriteLine(Localization.Core.Video_layer_1_size_0_sectors, l1Video); - _dumpLog.WriteLine(Localization.Core.Middle_zone_size_0_sectors, middleZone); - _dumpLog.WriteLine(Localization.Core.Game_data_size_0_sectors, gameSize); - _dumpLog.WriteLine(Localization.Core.Total_size_0_sectors, totalSize); - _dumpLog.WriteLine(Localization.Core.Real_layer_break_0, layerBreak); - bool read12 = !_dev.Read12(out readBuffer, out senseBuf, 0, @@ -463,28 +420,20 @@ partial class Dump if(!read12) { - _dumpLog.WriteLine(Localization.Core.Cannot_read_medium_aborting_scan); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_read_medium_aborting_scan); return; } - _dumpLog.WriteLine(Localization.Core.Using_SCSI_READ_12_command); UpdateStatus?.Invoke(Localization.Core.Using_SCSI_READ_12_command); // Set speed if(_speedMultiplier >= 0) { if(_speed == 0) - { - _dumpLog.WriteLine(Localization.Core.Setting_speed_to_MAX); UpdateStatus?.Invoke(Localization.Core.Setting_speed_to_MAX); - } else - { - _dumpLog.WriteLine(string.Format(Localization.Core.Setting_speed_to_0_x, _speed)); UpdateStatus?.Invoke(string.Format(Localization.Core.Setting_speed_to_0_x, _speed)); - } _speed *= _speedMultiplier; @@ -517,8 +466,6 @@ partial class Dump if(_dev.Error) { - _dumpLog.WriteLine(Localization.Core.Device_error_0_trying_to_guess_ideal_transfer_length, _dev.LastError); - StoppingErrorMessage?.Invoke(string.Format(Localization.Core .Device_error_0_trying_to_guess_ideal_transfer_length, _dev.LastError)); @@ -533,27 +480,21 @@ partial class Dump foreach(MediaTagType tag in mediaTags.Keys.Where(tag => !outputFormat.SupportedMediaTags.Contains(tag))) { ret = false; - _dumpLog.WriteLine(string.Format(Localization.Core.Output_format_does_not_support_0, tag)); ErrorMessage?.Invoke(string.Format(Localization.Core.Output_format_does_not_support_0, tag)); } if(!ret) { if(_force) - { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_continuing); ErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_continuing); - } else { - _dumpLog.WriteLine(Localization.Core.Several_media_tags_not_supported_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Several_media_tags_not_supported_not_continuing); return; } } - _dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead); UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead)); var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", @@ -570,9 +511,6 @@ partial class Dump // Cannot create image if(!ret) { - _dumpLog.WriteLine(Localization.Core.Error_creating_output_image_not_continuing); - _dumpLog.WriteLine(outputFormat.ErrorMessage); - StoppingErrorMessage?.Invoke(Localization.Core.Error_creating_output_image_not_continuing + Environment.NewLine + outputFormat.ErrorMessage); @@ -639,14 +577,10 @@ partial class Dump ulong currentSector = _resume.NextBlock; if(_resume.NextBlock > 0) - { UpdateStatus?.Invoke(string.Format(Localization.Core.Resuming_from_block_0, _resume.NextBlock)); - _dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock); - } bool newTrim = false; - _dumpLog.WriteLine(Localization.Core.Reading_game_partition); UpdateStatus?.Invoke(Localization.Core.Reading_game_partition); _speedStopwatch.Reset(); ulong sectorSpeedStart = 0; @@ -659,7 +593,6 @@ partial class Dump _resume.NextBlock = currentSector; currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -707,7 +640,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -772,21 +704,19 @@ partial class Dump for(ulong b = i; b < i + _skip; b++) _resume.BadBlocks.Add(b); - AaruLogging.Debug(MODULE_NAME, - Localization.Core.READ_error_0, - Sense.PrettifySense(senseBuf)); + AaruLogging.Debug(MODULE_NAME, Localization.Core.READ_error_0, Sense.PrettifySense(senseBuf)); mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(i, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i); i += _skip - blocksToRead; string[] senseLines = Sense.PrettifySense(senseBuf) .Split([Environment.NewLine], StringSplitOptions.RemoveEmptyEntries); - foreach(string senseLine in senseLines) _dumpLog.WriteLine(senseLine); + foreach(string senseLine in senseLines) AaruLogging.WriteLine(senseLine); newTrim = true; } @@ -816,7 +746,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -847,7 +776,6 @@ partial class Dump // Middle Zone D UpdateStatus?.Invoke(Localization.Core.Writing_Middle_Zone_D_empty); - _dumpLog.WriteLine(Localization.Core.Writing_Middle_Zone_D_empty); InitProgress?.Invoke(); for(ulong middle = currentSector - blocks - 1; middle < middleZone - 1; middle += blocksToRead) @@ -856,7 +784,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -889,12 +816,10 @@ partial class Dump blocksToRead = saveBlocksToRead; UpdateStatus?.Invoke(Localization.Core.Locking_drive); - _dumpLog.WriteLine(Localization.Core.Locking_drive); sense = _dev.KreonLock(out senseBuf, _dev.Timeout, out _); if(sense) { - _dumpLog.WriteLine(Localization.Core.Cannot_lock_drive_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_lock_drive_not_continuing); return; @@ -910,7 +835,6 @@ partial class Dump } // Video Layer 1 - _dumpLog.WriteLine(Localization.Core.Reading_Video_Layer_1); UpdateStatus?.Invoke(Localization.Core.Reading_Video_Layer_1); InitProgress?.Invoke(); @@ -920,7 +844,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -988,13 +911,13 @@ partial class Dump mhddLog.Write(l1, cmdDuration < 500 ? 65535 : cmdDuration, _skip); ibgLog.Write(l1, 0); - _dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, l1); + AaruLogging.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, l1); l1 += _skip - blocksToRead; string[] senseLines = Sense.PrettifySense(senseBuf) .Split([Environment.NewLine], StringSplitOptions.RemoveEmptyEntries); - foreach(string senseLine in senseLines) _dumpLog.WriteLine(senseLine); + foreach(string senseLine in senseLines) AaruLogging.WriteLine(senseLine); } _writeStopwatch.Stop(); @@ -1015,13 +938,11 @@ partial class Dump EndProgress?.Invoke(); UpdateStatus?.Invoke(Localization.Core.Unlocking_drive_Wxripper); - _dumpLog.WriteLine(Localization.Core.Unlocking_drive_Wxripper); sense = _dev.KreonUnlockWxripper(out senseBuf, _dev.Timeout, out _); if(sense) { _errorLog?.WriteLine("Kreon Wxripper unlock", _dev.Error, _dev.LastError, senseBuf); - _dumpLog.WriteLine(Localization.Core.Cannot_unlock_drive_not_continuing); StoppingErrorMessage?.Invoke(Localization.Core.Cannot_unlock_drive_not_continuing); return; @@ -1061,26 +982,12 @@ partial class Dump .Per(imageWriteDuration.Seconds()) .Humanize())); - _dumpLog.WriteLine(string.Format(Localization.Core.Dump_finished_in_0, - _dumpStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_dump_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(totalDuration.Milliseconds()) - .Humanize())); - - _dumpLog.WriteLine(string.Format(Localization.Core.Average_write_speed_0, - ByteSize.FromBytes(blockSize * (blocks + 1)) - .Per(imageWriteDuration.Seconds()) - .Humanize())); - #region Trimming if(_resume.BadBlocks.Count > 0 && !_aborted && _trim && newTrim) { _trimStopwatch.Restart(); UpdateStatus?.Invoke(Localization.Core.Trimming_skipped_sectors); - _dumpLog.WriteLine(Localization.Core.Trimming_skipped_sectors); ulong[] tmpArray = _resume.BadBlocks.ToArray(); InitProgress?.Invoke(); @@ -1090,7 +997,7 @@ partial class Dump if(_aborted) { currentTry.Extents = ExtentsConverter.ToMetadata(extents); - _dumpLog.WriteLine(Localization.Core.Aborted); + UpdateStatus?.Invoke(Localization.Core.Aborted); break; } @@ -1132,9 +1039,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Trimming_finished_in_0, _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - - _dumpLog.WriteLine(string.Format(Localization.Core.Trimming_finished_in_0, - _trimStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); } #endregion Trimming @@ -1146,9 +1050,8 @@ partial class Dump List tmpList = []; foreach(ulong ur in _resume.BadBlocks) - { - for(ulong i = ur; i < ur + blocksToRead; i++) tmpList.Add(i); - } + for(ulong i = ur; i < ur + blocksToRead; i++) + tmpList.Add(i); tmpList.Sort(); @@ -1251,7 +1154,6 @@ partial class Dump md10 = Modes.EncodeMode10(md, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_damaged_blocks); sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _); if(sense) sense = _dev.ModeSelect10(md10, out senseBuf, true, false, _dev.Timeout, out _); @@ -1262,9 +1164,6 @@ partial class Dump .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); AaruLogging.Debug(Localization.Core.Error_0, Sense.PrettifySense(senseBuf)); - - _dumpLog.WriteLine(Localization.Core - .Drive_did_not_accept_MODE_SELECT_command_for_persistent_error_reading); } else runningPersistent = true; @@ -1280,7 +1179,6 @@ partial class Dump { currentTry.Extents = ExtentsConverter.ToMetadata(extents); UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); break; } @@ -1337,8 +1235,6 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass)); - - _dumpLog.WriteLine(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector, pass); } else if(runningPersistent) outputFormat.WriteSector(readBuffer, badSector); } @@ -1366,7 +1262,6 @@ partial class Dump md10 = Modes.EncodeMode10(md, _dev.ScsiType); UpdateStatus?.Invoke(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); - _dumpLog.WriteLine(Localization.Core.Sending_MODE_SELECT_to_drive_return_device_to_previous_status); sense = _dev.ModeSelect(md6, out senseBuf, true, false, _dev.Timeout, out _); if(sense) _dev.ModeSelect10(md10, out senseBuf, true, false, _dev.Timeout, out _); @@ -1394,8 +1289,6 @@ partial class Dump if(ret || _force) continue; // Cannot write tag to image - _dumpLog.WriteLine(string.Format(Localization.Core.Cannot_write_tag_0, tag.Key)); - StoppingErrorMessage?.Invoke(string.Format(Localization.Core.Cannot_write_tag_0, tag.Key) + Environment.NewLine + outputFormat.ErrorMessage); @@ -1405,7 +1298,8 @@ partial class Dump _resume.BadBlocks.Sort(); - foreach(ulong bad in _resume.BadBlocks) _dumpLog.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); + foreach(ulong bad in _resume.BadBlocks) + AaruLogging.WriteLine(Localization.Core.Sector_0_could_not_be_read, bad); currentTry.Extents = ExtentsConverter.ToMetadata(extents); @@ -1426,7 +1320,6 @@ partial class Dump if(_preSidecar != null) outputFormat.SetMetadata(_preSidecar); - _dumpLog.WriteLine(Localization.Core.Closing_output_file); UpdateStatus?.Invoke(Localization.Core.Closing_output_file); _imageCloseStopwatch.Restart(); outputFormat.Close(); @@ -1435,13 +1328,10 @@ partial class Dump UpdateStatus?.Invoke(string.Format(Localization.Core.Closed_in_0, _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second))); - _dumpLog.WriteLine(Localization.Core.Closed_in_0, - _imageCloseStopwatch.Elapsed.Humanize(minUnit: TimeUnit.Second)); if(_aborted) { UpdateStatus?.Invoke(Localization.Core.Aborted); - _dumpLog.WriteLine(Localization.Core.Aborted); return; } diff --git a/Aaru.Core/Logging/DumpLog.cs b/Aaru.Core/Logging/DumpLog.cs index dff5b73f5..fa3f29e2d 100644 --- a/Aaru.Core/Logging/DumpLog.cs +++ b/Aaru.Core/Logging/DumpLog.cs @@ -36,27 +36,21 @@ using System.Reflection; using System.Runtime.InteropServices; using Aaru.CommonTypes.Interop; using Aaru.Devices; +using Aaru.Logging; using PlatformID = Aaru.CommonTypes.Interop.PlatformID; using Version = Aaru.CommonTypes.Interop.Version; namespace Aaru.Core.Logging; /// Creates a dump log -public sealed class DumpLog +public static class DumpLog { - readonly StreamWriter _logSw; - /// Initializes the dump log - /// Output log file /// Device /// Disable saving paths or serial numbers in log - public DumpLog(string outputFile, Device dev, bool @private) + public static void StartLog(Device dev, bool @private) { - if(string.IsNullOrEmpty(outputFile)) return; - - _logSw = new StreamWriter(outputFile, true); - - _logSw.WriteLine(Localization.Core.Start_logging_at_0, DateTime.Now); + AaruLogging.Information(Localization.Core.Start_logging_at_0, DateTime.Now); PlatformID platId = DetectOS.GetRealPlatformID(); string platVer = DetectOS.GetVersion(); @@ -65,37 +59,35 @@ public sealed class DumpLog Attribute.GetCustomAttribute(typeof(DumpLog).Assembly, typeof(AssemblyInformationalVersionAttribute)) as AssemblyInformationalVersionAttribute; - _logSw.WriteLine(Localization.Core.System_information); + AaruLogging.Information(Localization.Core.System_information); - _logSw.WriteLine("{0} {1} ({2}-bit)", - DetectOS.GetPlatformName(platId, platVer), - platVer, - Environment.Is64BitOperatingSystem ? 64 : 32); + AaruLogging.Information("{0} {1} ({2}-bit)", + DetectOS.GetPlatformName(platId, platVer), + platVer, + Environment.Is64BitOperatingSystem ? 64 : 32); if(DetectOS.IsMono) - _logSw.WriteLine("Mono {0}", Version.GetMonoVersion()); + AaruLogging.Information("Mono {0}", Version.GetMonoVersion()); else if(DetectOS.IsNetCore) - _logSw.WriteLine(".NET Core {0}", Version.GetNetCoreVersion()); + AaruLogging.Information(".NET Core {0}", Version.GetNetCoreVersion()); else - _logSw.WriteLine(RuntimeInformation.FrameworkDescription); + AaruLogging.Information(RuntimeInformation.FrameworkDescription); - _logSw.WriteLine(); + AaruLogging.Information(Localization.Core.Program_information); + AaruLogging.Information("Aaru {0}", assemblyVersion?.InformationalVersion); + AaruLogging.Information(Localization.Core.Running_in_0_bit, Environment.Is64BitProcess ? 64 : 32); - _logSw.WriteLine(Localization.Core.Program_information); - _logSw.WriteLine("Aaru {0}", assemblyVersion?.InformationalVersion); - _logSw.WriteLine(Localization.Core.Running_in_0_bit, Environment.Is64BitProcess ? 64 : 32); - - _logSw.WriteLine(DetectOS.IsAdmin - ? Localization.Core.Running_as_superuser_Yes - : Localization.Core.Running_as_superuser_No); + AaruLogging.Information(DetectOS.IsAdmin + ? Localization.Core.Running_as_superuser_Yes + : Localization.Core.Running_as_superuser_No); #if DEBUG - _logSw.WriteLine(Localization.Core.DEBUG_version); + AaruLogging.Information(Localization.Core.DEBUG_version); #endif if(@private) { string[] args = Environment.GetCommandLineArgs(); - for(var i = 0; i < args.Length; i++) + for(int i = 0; i < args.Length; i++) { if(args[i].StartsWith("/dev", StringComparison.OrdinalIgnoreCase) || args[i].StartsWith("aaru://", StringComparison.OrdinalIgnoreCase)) @@ -111,94 +103,71 @@ public sealed class DumpLog } } - _logSw.WriteLine(Localization.Core.Command_line_0, string.Join(" ", args)); + AaruLogging.Information(Localization.Core.Command_line_0, string.Join(" ", args)); } else - _logSw.WriteLine(Localization.Core.Command_line_0, Environment.CommandLine); + AaruLogging.Information(Localization.Core.Command_line_0, Environment.CommandLine); - _logSw.WriteLine(); if(dev is Aaru.Devices.Remote.Device remoteDev) { - _logSw.WriteLine(Localization.Core.Remote_information); - _logSw.WriteLine(Localization.Core.Server_0, remoteDev.RemoteApplication); - _logSw.WriteLine(Localization.Core.Version_0, remoteDev.RemoteVersion); + AaruLogging.Information(Localization.Core.Remote_information); + AaruLogging.Information(Localization.Core.Server_0, remoteDev.RemoteApplication); + AaruLogging.Information(Localization.Core.Version_0, remoteDev.RemoteVersion); - _logSw.WriteLine(Localization.Core.Operating_system_0_1, - remoteDev.RemoteOperatingSystem, - remoteDev.RemoteOperatingSystemVersion); + AaruLogging.Information(Localization.Core.Operating_system_0_1, + remoteDev.RemoteOperatingSystem, + remoteDev.RemoteOperatingSystemVersion); - _logSw.WriteLine(Localization.Core.Architecture_0, remoteDev.RemoteArchitecture); - _logSw.WriteLine(Localization.Core.Protocol_version_0, remoteDev.RemoteProtocolVersion); + AaruLogging.Information(Localization.Core.Architecture_0, remoteDev.RemoteArchitecture); + AaruLogging.Information(Localization.Core.Protocol_version_0, remoteDev.RemoteProtocolVersion); - _logSw.WriteLine(DetectOS.IsAdmin - ? Localization.Core.Running_as_superuser_Yes - : Localization.Core.Running_as_superuser_No); + AaruLogging.Information(DetectOS.IsAdmin + ? Localization.Core.Running_as_superuser_Yes + : Localization.Core.Running_as_superuser_No); - _logSw.WriteLine(Localization.Core.Log_section_separator); + AaruLogging.Information(Localization.Core.Log_section_separator); } - _logSw.WriteLine(Localization.Core.Device_information); - _logSw.WriteLine(Localization.Core.Manufacturer_0, dev.Manufacturer); - _logSw.WriteLine(Localization.Core.Model_0, dev.Model); - _logSw.WriteLine(Localization.Core.Firmware_revision_0, dev.FirmwareRevision); + AaruLogging.Information(Localization.Core.Device_information); + AaruLogging.Information(Localization.Core.Manufacturer_0, dev.Manufacturer); + AaruLogging.Information(Localization.Core.Model_0, dev.Model); + AaruLogging.Information(Localization.Core.Firmware_revision_0, dev.FirmwareRevision); - if(!@private) _logSw.WriteLine(Localization.Core.Serial_number_0, dev.Serial); + if(!@private) AaruLogging.Information(Localization.Core.Serial_number_0, dev.Serial); - _logSw.WriteLine(Localization.Core.Removable_device_0, dev.IsRemovable); - _logSw.WriteLine(Localization.Core.Device_type_0, dev.Type); - _logSw.WriteLine(Localization.Core.CompactFlash_device_0, dev.IsCompactFlash); - _logSw.WriteLine(Localization.Core.PCMCIA_device_0, dev.IsPcmcia); - _logSw.WriteLine(Localization.Core.USB_device_0, dev.IsUsb); + AaruLogging.Information(Localization.Core.Removable_device_0, dev.IsRemovable); + AaruLogging.Information(Localization.Core.Device_type_0, dev.Type); + AaruLogging.Information(Localization.Core.CompactFlash_device_0, dev.IsCompactFlash); + AaruLogging.Information(Localization.Core.PCMCIA_device_0, dev.IsPcmcia); + AaruLogging.Information(Localization.Core.USB_device_0, dev.IsUsb); if(dev.IsUsb) { - _logSw.WriteLine(Localization.Core.USB_manufacturer_0, dev.UsbManufacturerString); - _logSw.WriteLine(Localization.Core.USB_product_0, dev.UsbProductString); + AaruLogging.Information(Localization.Core.USB_manufacturer_0, dev.UsbManufacturerString); + AaruLogging.Information(Localization.Core.USB_product_0, dev.UsbProductString); - if(!@private) _logSw.WriteLine(Localization.Core.USB_serial_0, dev.UsbSerialString); + if(!@private) AaruLogging.Information(Localization.Core.USB_serial_0, dev.UsbSerialString); - _logSw.WriteLine(Localization.Core.USB_vendor_ID_0, dev.UsbVendorId); - _logSw.WriteLine(Localization.Core.USB_product_ID_0, dev.UsbProductId); + AaruLogging.Information(Localization.Core.USB_vendor_ID_0, dev.UsbVendorId); + AaruLogging.Information(Localization.Core.USB_product_ID_0, dev.UsbProductId); } - _logSw.WriteLine(Localization.Core.FireWire_device_0, dev.IsFireWire); + AaruLogging.Information(Localization.Core.FireWire_device_0, dev.IsFireWire); if(dev.IsFireWire) { - _logSw.WriteLine(Localization.Core.FireWire_vendor_0, dev.FireWireVendorName); - _logSw.WriteLine(Localization.Core.FireWire_model_0, dev.FireWireModelName); + AaruLogging.Information(Localization.Core.FireWire_vendor_0, dev.FireWireVendorName); + AaruLogging.Information(Localization.Core.FireWire_model_0, dev.FireWireModelName); - if(!@private) _logSw.WriteLine(Localization.Core.FireWire_GUID_0, dev.FireWireGuid); + if(!@private) AaruLogging.Information(Localization.Core.FireWire_GUID_0, dev.FireWireGuid); - _logSw.WriteLine(Localization.Core.FireWire_vendor_ID_0, dev.FireWireVendor); - _logSw.WriteLine(Localization.Core.FireWire_product_ID_0, dev.FireWireModel); + AaruLogging.Information(Localization.Core.FireWire_vendor_ID_0, dev.FireWireVendor); + AaruLogging.Information(Localization.Core.FireWire_product_ID_0, dev.FireWireModel); } - _logSw.WriteLine(Localization.Core.Log_section_separator); + AaruLogging.Information(Localization.Core.Log_section_separator); - _logSw.WriteLine(); - _logSw.WriteLine(Localization.Core.Dumping_progress_log); - _logSw.Flush(); - } - - /// Adds a new line to the dump log - /// Format string - /// Arguments - public void WriteLine(string format, params object[] args) - { - if(_logSw == null) return; - - var text = string.Format(format, args); - _logSw.WriteLine("{0:s} {1}", DateTime.Now, text); - _logSw.Flush(); - } - - /// Finishes and closes the dump log - public void Close() - { - _logSw?.WriteLine(Localization.Core.Log_section_separator); - _logSw?.WriteLine(Localization.Core.End_logging_on_0, DateTime.Now); - _logSw?.Close(); + AaruLogging.Information(Localization.Core.Dumping_progress_log); } } \ No newline at end of file diff --git a/Aaru.Core/Media/CompactDisc.cs b/Aaru.Core/Media/CompactDisc.cs index 2e6e39f4b..7cde73ed6 100644 --- a/Aaru.Core/Media/CompactDisc.cs +++ b/Aaru.Core/Media/CompactDisc.cs @@ -38,6 +38,7 @@ using Aaru.Core.Logging; using Aaru.Decoders.CD; using Aaru.Devices; using Aaru.Helpers; +using Aaru.Logging; namespace Aaru.Core.Media; @@ -60,7 +61,6 @@ public static class CompactDisc /// Output image /// If we want to fix subchannel contents /// If we want to fix Q subchannel CRC if the contents look sane - /// Dumping log /// Status update callback /// List of smallest known pregap per track /// Set if we are dumping, otherwise converting @@ -74,7 +74,7 @@ public static class CompactDisc Dictionary isrcs, byte currentTrack, ref string mcn, Track[] tracks, HashSet subchannelExtents, bool fixSubchannelPosition, IWritableOpticalImage outputPlugin, - bool fixSubchannel, bool fixSubchannelCrc, DumpLog dumpLog, + bool fixSubchannel, bool fixSubchannelCrc, UpdateStatusHandler updateStatus, Dictionary smallestPregapLbaPerTrack, bool dumping, out List newPregapSectors) @@ -95,7 +95,6 @@ public static class CompactDisc currentTrack, ref mcn, tracks, - dumpLog, updateStatus, smallestPregapLbaPerTrack, dumping, @@ -107,15 +106,15 @@ public static class CompactDisc int prePos = int.MinValue; // Check subchannel - for(var subPos = 0; subPos < deSub.Length; subPos += 96) + for(int subPos = 0; subPos < deSub.Length; subPos += 96) { // Expected LBA long lba = (long)sectorAddress + subPos / 96; // We fixed the subchannel - var @fixed = false; + bool @fixed = false; - var q = new byte[12]; + byte[] q = new byte[12]; Array.Copy(deSub, subPos + 12, q, 0, 12); // Check Q CRC @@ -123,17 +122,18 @@ public static class CompactDisc bool crcOk = crc[0] == q[10] && crc[1] == q[11]; // Start considering P to be OK - var pOk = true; - var pWeight = 0; + bool pOk = true; + int pWeight = 0; // Check P and weight for(int p = subPos; p < subPos + 12; p++) { if(deSub[p] != 0 && deSub[p] != 255) pOk = false; - for(var w = 0; w < 8; w++) - if((deSub[p] >> w & 1) > 0) - pWeight++; + for(int w = 0; w < 8; w++) + { + if((deSub[p] >> w & 1) > 0) pWeight++; + } } // This seems to be a somewhat common pattern @@ -156,13 +156,13 @@ public static class CompactDisc deSub.Skip(subPos + 84).Take(12).All(w => w == 0xFF); bool rwOk = rOk && sOk && tOk && uOk && vOk && wOk; - var rwPacket = false; - var cdtextPacket = false; + bool rwPacket = false; + bool cdtextPacket = false; // Check RW contents if(!rwOk) { - var sectorSub = new byte[96]; + byte[] sectorSub = new byte[96]; Array.Copy(sub, subPos, sectorSub, 0, 96); DetectRwPackets(sectorSub, out _, out rwPacket, out cdtextPacket); @@ -177,11 +177,13 @@ public static class CompactDisc if(!pOk && fixSubchannel) { if(pWeight >= 48) - for(int p = subPos; p < subPos + 12; p++) - deSub[p] = 255; + { + for(int p = subPos; p < subPos + 12; p++) deSub[p] = 255; + } else - for(int p = subPos; p < subPos + 12; p++) - deSub[p] = 0; + { + for(int p = subPos; p < subPos + 12; p++) deSub[p] = 0; + } pOk = true; @fixed = true; @@ -253,20 +255,20 @@ public static class CompactDisc if(!pOk || !crcOk || !rwOk) continue; - var aframe = (byte)(q[9] / 16 * 10 + (q[9] & 0x0F)); + byte aframe = (byte)(q[9] / 16 * 10 + (q[9] & 0x0F)); if((q[0] & 0x3) == 1) { - var amin = (byte)(q[7] / 16 * 10 + (q[7] & 0x0F)); - var asec = (byte)(q[8] / 16 * 10 + (q[8] & 0x0F)); + byte amin = (byte)(q[7] / 16 * 10 + (q[7] & 0x0F)); + byte asec = (byte)(q[8] / 16 * 10 + (q[8] & 0x0F)); aPos = amin * 60 * 75 + asec * 75 + aframe - 150; } else { ulong expectedSectorAddress = sectorAddress + (ulong)(subPos / 96) + 150; - var smin = (byte)(expectedSectorAddress / 60 / 75); + byte smin = (byte)(expectedSectorAddress / 60 / 75); expectedSectorAddress -= (ulong)(smin * 60 * 75); - var ssec = (byte)(expectedSectorAddress / 75); + byte ssec = (byte)(expectedSectorAddress / 75); aPos = smin * 60 * 75 + ssec * 75 + aframe - 150; @@ -279,7 +281,7 @@ public static class CompactDisc prePos = aPos; - var posSub = new byte[96]; + byte[] posSub = new byte[96]; Array.Copy(deSub, subPos, posSub, 0, 96); posSub = Subchannel.Interleave(posSub); outputPlugin.WriteSectorTag(posSub, (ulong)aPos, SectorTagType.CdSectorSubchannel); @@ -309,18 +311,17 @@ public static class CompactDisc /// Sector address the subchannel was read from /// true if indexes have changed, false otherwise static bool CheckIndexesFromSubchannel(byte[] deSub, Dictionary isrcs, byte currentTrackNumber, - ref string mcn, Track[] tracks, DumpLog dumpLog, - UpdateStatusHandler updateStatus, + ref string mcn, Track[] tracks, UpdateStatusHandler updateStatus, Dictionary smallestPregapLbaPerTrack, bool dumping, out List newPregapSectors, ulong sectorAddress) { - var status = false; + bool status = false; newPregapSectors = []; // Check subchannel - for(var subPos = 0; subPos < deSub.Length; subPos += 96) + for(int subPos = 0; subPos < deSub.Length; subPos += 96) { - var q = new byte[12]; + byte[] q = new byte[12]; Array.Copy(deSub, subPos + 12, q, 0, 12); CRC16CcittContext.Data(q, 10, out byte[] crc); @@ -339,10 +340,6 @@ public static class CompactDisc if(!isrcs.ContainsKey(currentTrackNumber)) { - dumpLog?.WriteLine(string.Format(Localization.Core.Found_new_ISRC_0_for_track_1, - isrc, - currentTrackNumber)); - updateStatus?.Invoke(string.Format(Localization.Core.Found_new_ISRC_0_for_track_1, isrc, currentTrackNumber)); @@ -356,11 +353,6 @@ public static class CompactDisc if(currentTrack?.Sequence == currentTrackNumber) { - dumpLog?.WriteLine(string.Format(Localization.Core.ISRC_for_track_0_changed_from_1_to_2, - currentTrackNumber, - isrcs[currentTrackNumber], - isrc)); - updateStatus?.Invoke(string.Format(Localization.Core.ISRC_for_track_0_changed_from_1_to_2, currentTrackNumber, isrcs[currentTrackNumber], @@ -383,15 +375,9 @@ public static class CompactDisc if(!crcOk) continue; if(mcn is null) - { - dumpLog?.WriteLine(string.Format(Localization.Core.Found_new_MCN_0, newMcn)); updateStatus?.Invoke(string.Format(Localization.Core.Found_new_MCN_0, newMcn)); - } else if(mcn != newMcn) - { - dumpLog?.WriteLine(string.Format(Localization.Core.MCN_changed_from_0_to_1, mcn, newMcn)); updateStatus?.Invoke(string.Format(Localization.Core.MCN_changed_from_0_to_1, mcn, newMcn)); - } mcn = newMcn; @@ -403,19 +389,19 @@ public static class CompactDisc continue; case 1: { - var trackNo = (byte)(q[1] / 16 * 10 + (q[1] & 0x0F)); + byte trackNo = (byte)(q[1] / 16 * 10 + (q[1] & 0x0F)); - for(var i = 0; i < tracks.Length; i++) + for(int i = 0; i < tracks.Length; i++) { if(tracks[i].Sequence != trackNo) continue; // Pregap if(q[2] == 0 && trackNo > 1) { - var pmin = (byte)(q[3] / 16 * 10 + (q[3] & 0x0F)); - var psec = (byte)(q[4] / 16 * 10 + (q[4] & 0x0F)); - var pframe = (byte)(q[5] / 16 * 10 + (q[5] & 0x0F)); - int qPos = pmin * 60 * 75 + psec * 75 + pframe; + byte pmin = (byte)(q[3] / 16 * 10 + (q[3] & 0x0F)); + byte psec = (byte)(q[4] / 16 * 10 + (q[4] & 0x0F)); + byte pframe = (byte)(q[5] / 16 * 10 + (q[5] & 0x0F)); + int qPos = pmin * 60 * 75 + psec * 75 + pframe; // When we are dumping we calculate the pregap in reverse from index 1 back. // When we are not, we go from index 0. @@ -436,16 +422,12 @@ public static class CompactDisc if(i > 0 && tracks[i - 1].EndSector >= tracks[i].StartSector) tracks[i - 1].EndSector = tracks[i].StartSector - 1; - dumpLog?.WriteLine(string.Format(Localization.Core.Pregap_for_track_0_set_to_1_sectors, - trackNo, - tracks[i].Pregap)); - updateStatus?.Invoke(string.Format(Localization.Core .Pregap_for_track_0_set_to_1_sectors, trackNo, tracks[i].Pregap)); - for(var p = 0; p < dif; p++) newPregapSectors.Add(tracks[i].StartSector + (ulong)p); + for(int p = 0; p < dif; p++) newPregapSectors.Add(tracks[i].StartSector + (ulong)p); status = true; } @@ -460,15 +442,11 @@ public static class CompactDisc if(i > 0 && tracks[i - 1].EndSector >= tracks[i].StartSector) tracks[i - 1].EndSector = tracks[i].StartSector - 1; - dumpLog?.WriteLine(string.Format(Localization.Core.Pregap_for_track_0_set_to_1_sectors, - trackNo, - tracks[i].Pregap)); - updateStatus?.Invoke(string.Format(Localization.Core.Pregap_for_track_0_set_to_1_sectors, trackNo, tracks[i].Pregap)); - for(var p = 0; p < (int)(tracks[i].Pregap - oldPregap); p++) + for(int p = 0; p < (int)(tracks[i].Pregap - oldPregap); p++) newPregapSectors.Add(tracks[i].StartSector + (ulong)p); status = true; @@ -478,21 +456,16 @@ public static class CompactDisc if(q[2] == 0) continue; - var amin = (byte)(q[7] / 16 * 10 + (q[7] & 0x0F)); - var asec = (byte)(q[8] / 16 * 10 + (q[8] & 0x0F)); - var aframe = (byte)(q[9] / 16 * 10 + (q[9] & 0x0F)); - int aPos = amin * 60 * 75 + asec * 75 + aframe - 150; + byte amin = (byte)(q[7] / 16 * 10 + (q[7] & 0x0F)); + byte asec = (byte)(q[8] / 16 * 10 + (q[8] & 0x0F)); + byte aframe = (byte)(q[9] / 16 * 10 + (q[9] & 0x0F)); + int aPos = amin * 60 * 75 + asec * 75 + aframe - 150; // Do not set INDEX 1 to a value higher than what the TOC already said. if(q[2] == 1 && aPos > (int)tracks[i].StartSector) continue; if(tracks[i].Indexes.ContainsKey(q[2]) && aPos >= tracks[i].Indexes[q[2]]) continue; - dumpLog?.WriteLine(string.Format(Localization.Core.Setting_index_0_for_track_1_to_LBA_2, - q[2], - trackNo, - aPos)); - updateStatus?.Invoke(string.Format(Localization.Core.Setting_index_0_for_track_1_to_LBA_2, q[2], trackNo, @@ -522,18 +495,18 @@ public static class CompactDisc rwPacket = false; cdtextPacket = false; - var cdTextPack1 = new byte[18]; - var cdTextPack2 = new byte[18]; - var cdTextPack3 = new byte[18]; - var cdTextPack4 = new byte[18]; - var cdSubRwPack1 = new byte[24]; - var cdSubRwPack2 = new byte[24]; - var cdSubRwPack3 = new byte[24]; - var cdSubRwPack4 = new byte[24]; + byte[] cdTextPack1 = new byte[18]; + byte[] cdTextPack2 = new byte[18]; + byte[] cdTextPack3 = new byte[18]; + byte[] cdTextPack4 = new byte[18]; + byte[] cdSubRwPack1 = new byte[24]; + byte[] cdSubRwPack2 = new byte[24]; + byte[] cdSubRwPack3 = new byte[24]; + byte[] cdSubRwPack4 = new byte[24]; - var i = 0; + int i = 0; - for(var j = 0; j < 18; j++) + for(int j = 0; j < 18; j++) { cdTextPack1[j] = (byte)(cdTextPack1[j] | (subchannel[i++] & 0x3F) << 2); @@ -548,7 +521,7 @@ public static class CompactDisc if(j < 18) cdTextPack1[j] = (byte)(cdTextPack1[j] | subchannel[i++] & 0x3F); } - for(var j = 0; j < 18; j++) + for(int j = 0; j < 18; j++) { cdTextPack2[j] = (byte)(cdTextPack2[j] | (subchannel[i++] & 0x3F) << 2); @@ -563,7 +536,7 @@ public static class CompactDisc if(j < 18) cdTextPack2[j] = (byte)(cdTextPack2[j] | subchannel[i++] & 0x3F); } - for(var j = 0; j < 18; j++) + for(int j = 0; j < 18; j++) { cdTextPack3[j] = (byte)(cdTextPack3[j] | (subchannel[i++] & 0x3F) << 2); @@ -578,7 +551,7 @@ public static class CompactDisc if(j < 18) cdTextPack3[j] = (byte)(cdTextPack3[j] | subchannel[i++] & 0x3F); } - for(var j = 0; j < 18; j++) + for(int j = 0; j < 18; j++) { cdTextPack4[j] = (byte)(cdTextPack4[j] | (subchannel[i++] & 0x3F) << 2); @@ -595,13 +568,13 @@ public static class CompactDisc i = 0; - for(var j = 0; j < 24; j++) cdSubRwPack1[j] = (byte)(subchannel[i++] & 0x3F); + for(int j = 0; j < 24; j++) cdSubRwPack1[j] = (byte)(subchannel[i++] & 0x3F); - for(var j = 0; j < 24; j++) cdSubRwPack2[j] = (byte)(subchannel[i++] & 0x3F); + for(int j = 0; j < 24; j++) cdSubRwPack2[j] = (byte)(subchannel[i++] & 0x3F); - for(var j = 0; j < 24; j++) cdSubRwPack3[j] = (byte)(subchannel[i++] & 0x3F); + for(int j = 0; j < 24; j++) cdSubRwPack3[j] = (byte)(subchannel[i++] & 0x3F); - for(var j = 0; j < 24; j++) cdSubRwPack4[j] = (byte)(subchannel[i++] & 0x3F); + for(int j = 0; j < 24; j++) cdSubRwPack4[j] = (byte)(subchannel[i++] & 0x3F); switch(cdSubRwPack1[0]) { @@ -697,14 +670,14 @@ public static class CompactDisc /// true if subchannel contains a TEXT packet, false otherwise static bool CheckCdTextPackets(byte[] subchannel) { - var cdTextPack1 = new byte[18]; - var cdTextPack2 = new byte[18]; - var cdTextPack3 = new byte[18]; - var cdTextPack4 = new byte[18]; + byte[] cdTextPack1 = new byte[18]; + byte[] cdTextPack2 = new byte[18]; + byte[] cdTextPack3 = new byte[18]; + byte[] cdTextPack4 = new byte[18]; - var i = 0; + int i = 0; - for(var j = 0; j < 18; j++) + for(int j = 0; j < 18; j++) { cdTextPack1[j] = (byte)(cdTextPack1[j] | (subchannel[i++] & 0x3F) << 2); @@ -719,7 +692,7 @@ public static class CompactDisc if(j < 18) cdTextPack1[j] = (byte)(cdTextPack1[j] | subchannel[i++] & 0x3F); } - for(var j = 0; j < 18; j++) + for(int j = 0; j < 18; j++) { cdTextPack2[j] = (byte)(cdTextPack2[j] | (subchannel[i++] & 0x3F) << 2); @@ -734,7 +707,7 @@ public static class CompactDisc if(j < 18) cdTextPack2[j] = (byte)(cdTextPack2[j] | subchannel[i++] & 0x3F); } - for(var j = 0; j < 18; j++) + for(int j = 0; j < 18; j++) { cdTextPack3[j] = (byte)(cdTextPack3[j] | (subchannel[i++] & 0x3F) << 2); @@ -749,7 +722,7 @@ public static class CompactDisc if(j < 18) cdTextPack3[j] = (byte)(cdTextPack3[j] | subchannel[i++] & 0x3F); } - for(var j = 0; j < 18; j++) + for(int j = 0; j < 18; j++) { cdTextPack4[j] = (byte)(cdTextPack4[j] | (subchannel[i++] & 0x3F) << 2); @@ -764,12 +737,12 @@ public static class CompactDisc if(j < 18) cdTextPack4[j] = (byte)(cdTextPack4[j] | subchannel[i++] & 0x3F); } - var status = true; + bool status = true; if((cdTextPack1[0] & 0x80) == 0x80) { - var cdTextPack1Crc = BigEndianBitConverter.ToUInt16(cdTextPack1, 16); - var cdTextPack1ForCrc = new byte[16]; + ushort cdTextPack1Crc = BigEndianBitConverter.ToUInt16(cdTextPack1, 16); + byte[] cdTextPack1ForCrc = new byte[16]; Array.Copy(cdTextPack1, 0, cdTextPack1ForCrc, 0, 16); ushort calculatedCdtp1Crc = CRC16CcittContext.Calculate(cdTextPack1ForCrc); @@ -778,8 +751,8 @@ public static class CompactDisc if((cdTextPack2[0] & 0x80) == 0x80) { - var cdTextPack2Crc = BigEndianBitConverter.ToUInt16(cdTextPack2, 16); - var cdTextPack2ForCrc = new byte[16]; + ushort cdTextPack2Crc = BigEndianBitConverter.ToUInt16(cdTextPack2, 16); + byte[] cdTextPack2ForCrc = new byte[16]; Array.Copy(cdTextPack2, 0, cdTextPack2ForCrc, 0, 16); ushort calculatedCdtp2Crc = CRC16CcittContext.Calculate(cdTextPack2ForCrc); @@ -788,8 +761,8 @@ public static class CompactDisc if((cdTextPack3[0] & 0x80) == 0x80) { - var cdTextPack3Crc = BigEndianBitConverter.ToUInt16(cdTextPack3, 16); - var cdTextPack3ForCrc = new byte[16]; + ushort cdTextPack3Crc = BigEndianBitConverter.ToUInt16(cdTextPack3, 16); + byte[] cdTextPack3ForCrc = new byte[16]; Array.Copy(cdTextPack3, 0, cdTextPack3ForCrc, 0, 16); ushort calculatedCdtp3Crc = CRC16CcittContext.Calculate(cdTextPack3ForCrc); @@ -798,8 +771,8 @@ public static class CompactDisc if((cdTextPack4[0] & 0x80) != 0x80) return status; - var cdTextPack4Crc = BigEndianBitConverter.ToUInt16(cdTextPack4, 16); - var cdTextPack4ForCrc = new byte[16]; + ushort cdTextPack4Crc = BigEndianBitConverter.ToUInt16(cdTextPack4, 16); + byte[] cdTextPack4ForCrc = new byte[16]; Array.Copy(cdTextPack4, 0, cdTextPack4ForCrc, 0, 16); ushort calculatedCdtp4Crc = CRC16CcittContext.Calculate(cdTextPack4ForCrc); @@ -843,8 +816,8 @@ public static class CompactDisc fixedMcn = false; fixedIsrc = false; - var preQ = new byte[12]; - var nextQ = new byte[12]; + byte[] preQ = new byte[12]; + byte[] nextQ = new byte[12]; Array.Copy(deSub, subPos + 12 - 96, preQ, 0, 12); Array.Copy(deSub, subPos + 12 + 96, nextQ, 0, 12); @@ -998,15 +971,15 @@ public static class CompactDisc } } - var amin = (byte)(q[7] / 16 * 10 + (q[7] & 0x0F)); - var asec = (byte)(q[8] / 16 * 10 + (q[8] & 0x0F)); + byte amin = (byte)(q[7] / 16 * 10 + (q[7] & 0x0F)); + byte asec = (byte)(q[8] / 16 * 10 + (q[8] & 0x0F)); aframe = (byte)(q[9] / 16 * 10 + (q[9] & 0x0F)); int aPos = amin * 60 * 75 + asec * 75 + aframe - 150; - var pmin = (byte)(q[3] / 16 * 10 + (q[3] & 0x0F)); - var psec = (byte)(q[4] / 16 * 10 + (q[4] & 0x0F)); - var pframe = (byte)(q[5] / 16 * 10 + (q[5] & 0x0F)); - int pPos = pmin * 60 * 75 + psec * 75 + pframe; + byte pmin = (byte)(q[3] / 16 * 10 + (q[3] & 0x0F)); + byte psec = (byte)(q[4] / 16 * 10 + (q[4] & 0x0F)); + byte pframe = (byte)(q[5] / 16 * 10 + (q[5] & 0x0F)); + int pPos = pmin * 60 * 75 + psec * 75 + pframe; // TODO: pregap // Not pregap @@ -1509,16 +1482,14 @@ public static class CompactDisc /// Flags of tracks /// Disc size /// Subchannel log - /// Dump log /// Progress initialization callback /// Progress update callback /// Progress finalization callback /// Output image public static void GenerateSubchannels(HashSet subchannelExtents, Track[] tracks, - Dictionary trackFlags, ulong blocks, SubchannelLog subLog, - DumpLog dumpLog, InitProgressHandler initProgress, - UpdateProgressHandler updateProgress, EndProgressHandler endProgress, - IWritableImage outputPlugin) + Dictionary trackFlags, ulong blocks, SubchannelLog subLog, + InitProgressHandler initProgress, UpdateProgressHandler updateProgress, + EndProgressHandler endProgress, IWritableImage outputPlugin) { initProgress?.Invoke(); @@ -1561,7 +1532,7 @@ public static class CompactDisc sector, (long)blocks); - dumpLog?.WriteLine($"Generating subchannel for sector {sector}."); + AaruLogging.WriteLine($"Generating subchannel for sector {sector}."); byte[] sub = Subchannel.Generate(sector, track?.Sequence ?? 0, (int)pregap, (int)trackStart, flags, index); diff --git a/Aaru.Core/Media/Info/CompactDisc.cs b/Aaru.Core/Media/Info/CompactDisc.cs index dd560da6e..34a6fd41b 100644 --- a/Aaru.Core/Media/Info/CompactDisc.cs +++ b/Aaru.Core/Media/Info/CompactDisc.cs @@ -36,7 +36,6 @@ using System.Linq; using Aaru.CommonTypes; using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Structs; -using Aaru.Core.Logging; using Aaru.Core.Media.Detection; using Aaru.Database.Models; using Aaru.Decoders.CD; @@ -62,8 +61,8 @@ public static class CompactDisc /// Set to true if drive supports PLEXTOR READ CD-DA vendor command /// true if offset could be found, false otherwise [SuppressMessage("ReSharper", "TooWideLocalVariableScope")] - public static void GetOffset(CdOffset cdOffset, Device dbDev, bool debug, Aaru.Devices.Device dev, - MediaType dskType, DumpLog dumpLog, Track[] tracks, UpdateStatusHandler updateStatus, + public static void GetOffset(CdOffset cdOffset, Device dbDev, bool debug, Aaru.Devices.Device dev, + MediaType dskType, Track[] tracks, UpdateStatusHandler updateStatus, out int? driveOffset, out int? combinedOffset, out bool supportsPlextorReadCdDa) { byte[] cmdBuf; @@ -77,7 +76,7 @@ public static class CompactDisc int diff; Track dataTrack = default; Track audioTrack = default; - var offsetFound = false; + bool offsetFound = false; const uint sectorSize = 2352; driveOffset = cdOffset?.Offset * 4; combinedOffset = null; @@ -97,7 +96,7 @@ public static class CompactDisc tmpBuf = new byte[sectorSync.Length]; // Ensure to be out of the pregap, or multi-session discs give funny values - var wantedLba = (uint)(dataTrack.StartSector + 151); + uint wantedLba = (uint)(dataTrack.StartSector + 151); // Plextor READ CDDA if(dbDev?.ATAPI?.RemovableMedias?.Any(d => d.SupportsPlextorReadCDDA == true) == true || @@ -117,7 +116,7 @@ public static class CompactDisc { supportsPlextorReadCdDa = true; - for(var i = 0; i < cmdBuf.Length - sectorSync.Length; i++) + for(int i = 0; i < cmdBuf.Length - sectorSync.Length; i++) { Array.Copy(cmdBuf, i, tmpBuf, 0, sectorSync.Length); @@ -174,7 +173,7 @@ public static class CompactDisc if(!sense && !dev.Error) { // Clear cache - for(var i = 0; i < 63; i++) + for(int i = 0; i < 63; i++) { sense = dev.ReadCd(out _, out _, @@ -213,7 +212,7 @@ public static class CompactDisc dev.Timeout, out _); - for(var i = 0; i < cmdBuf.Length - sectorSync.Length; i++) + for(int i = 0; i < cmdBuf.Length - sectorSync.Length; i++) { Array.Copy(cmdBuf, i, tmpBuf, 0, sectorSync.Length); @@ -249,7 +248,7 @@ public static class CompactDisc // Try to get another the offset some other way, we need an audio track just after a data track, same session - for(var i = 1; i < tracks.Length; i++) + for(int i = 1; i < tracks.Length; i++) { if(tracks[i - 1].Type == TrackType.Audio || tracks[i].Type != TrackType.Audio) continue; @@ -308,7 +307,7 @@ public static class CompactDisc tmpBuf = new byte[sectorSync.Length]; - for(var i = 0; i < cmdBuf.Length - sectorSync.Length; i++) + for(int i = 0; i < cmdBuf.Length - sectorSync.Length; i++) { Array.Copy(cmdBuf, i, tmpBuf, 0, sectorSync.Length); @@ -341,12 +340,12 @@ public static class CompactDisc if(sense || dev.Error) return; - for(var i = 0; i < dataBuf.Length; i++) dataBuf[i] ^= Sector.ScrambleTable[i]; + for(int i = 0; i < dataBuf.Length; i++) dataBuf[i] ^= Sector.ScrambleTable[i]; - for(var i = 0; i < 2352; i++) + for(int i = 0; i < 2352; i++) { - var dataSide = new byte[2352 - i]; - var audioSide = new byte[2352 - i]; + byte[] dataSide = new byte[2352 - i]; + byte[] audioSide = new byte[2352 - i]; Array.Copy(dataBuf, i, dataSide, 0, dataSide.Length); Array.Copy(cmdBuf, 0, audioSide, 0, audioSide.Length); @@ -360,7 +359,7 @@ public static class CompactDisc } else { - var videoNowColorFrame = new byte[9 * sectorSize]; + byte[] videoNowColorFrame = new byte[9 * sectorSize]; sense = dev.ReadCd(out cmdBuf, out _, @@ -402,18 +401,13 @@ public static class CompactDisc } if(videoNowColorFrame is null) - { - dumpLog?.WriteLine(Localization.Core.Could_not_find_VideoNow_Color_frame_offset); - updateStatus?.Invoke("Could not find VideoNow Color frame offset, dump may not be correct."); - } + updateStatus?.Invoke(Localization.Core.Could_not_find_VideoNow_Color_frame_offset); else { combinedOffset = MMC.GetVideoNowColorOffset(videoNowColorFrame); - dumpLog?.WriteLine(string.Format(Localization.Core.VideoNow_Color_frame_is_offset_0_bytes, - combinedOffset)); - - updateStatus?.Invoke($"VideoNow Color frame is offset {combinedOffset} bytes."); + updateStatus?.Invoke(string.Format(Localization.Core.VideoNow_Color_frame_is_offset_0_bytes, + combinedOffset)); } } } diff --git a/Aaru.Gui/ViewModels/Windows/ImageConvertViewModel.cs b/Aaru.Gui/ViewModels/Windows/ImageConvertViewModel.cs index eede66967..255f9b16b 100644 --- a/Aaru.Gui/ViewModels/Windows/ImageConvertViewModel.cs +++ b/Aaru.Gui/ViewModels/Windows/ImageConvertViewModel.cs @@ -979,7 +979,7 @@ public sealed class ImageConvertViewModel : ViewModelBase warning = true; AaruLogging.Error(UI.Error_0_setting_geometry_image_may_be_incorrect_continuing, - outputFormat.ErrorMessage); + outputFormat.ErrorMessage); } await Dispatcher.UIThread.InvokeAsync(() => @@ -1106,8 +1106,8 @@ public sealed class ImageConvertViewModel : ViewModelBase warning = true; AaruLogging.Error(UI.Error_0_writing_sector_1_continuing, - outputFormat.ErrorMessage, - doneSectors); + outputFormat.ErrorMessage, + doneSectors); } else { @@ -1123,8 +1123,8 @@ public sealed class ImageConvertViewModel : ViewModelBase .ShowWindowDialogAsync(_view)); AaruLogging.Error(UI.Error_0_writing_sector_1_not_continuing, - outputFormat.ErrorMessage, - doneSectors); + outputFormat.ErrorMessage, + doneSectors); return; } @@ -1266,7 +1266,6 @@ public sealed class ImageConvertViewModel : ViewModelBase false, false, null, - null, smallestPregapLbaPerTrack, false, out _); @@ -1300,9 +1299,7 @@ public sealed class ImageConvertViewModel : ViewModelBase icon: Icon.Error) .ShowWindowDialogAsync(_view)); - AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, - errno, - doneSectors); + AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, errno, doneSectors); return; } @@ -1335,7 +1332,6 @@ public sealed class ImageConvertViewModel : ViewModelBase false, false, null, - null, smallestPregapLbaPerTrack, false, out _); @@ -1369,9 +1365,7 @@ public sealed class ImageConvertViewModel : ViewModelBase icon: Icon.Error) .ShowWindowDialogAsync(_view)); - AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, - errno, - doneSectors); + AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, errno, doneSectors); return; } @@ -1385,8 +1379,8 @@ public sealed class ImageConvertViewModel : ViewModelBase warning = true; AaruLogging.Error(UI.Error_0_writing_sector_1_continuing, - outputFormat.ErrorMessage, - doneSectors); + outputFormat.ErrorMessage, + doneSectors); } else { @@ -1402,8 +1396,8 @@ public sealed class ImageConvertViewModel : ViewModelBase .ShowWindowDialogAsync(_view)); AaruLogging.Error(UI.Error_0_writing_sector_1_not_continuing, - outputFormat.ErrorMessage, - doneSectors); + outputFormat.ErrorMessage, + doneSectors); return; } @@ -1573,8 +1567,8 @@ public sealed class ImageConvertViewModel : ViewModelBase warning = true; AaruLogging.Error(UI.Error_0_writing_sector_1_continuing, - outputFormat.ErrorMessage, - doneSectors); + outputFormat.ErrorMessage, + doneSectors); } else { @@ -1683,8 +1677,7 @@ public sealed class ImageConvertViewModel : ViewModelBase { warning = true; - AaruLogging.Error(UI.Error_0_writing_tag_continuing, - outputFormat.ErrorMessage); + AaruLogging.Error(UI.Error_0_writing_tag_continuing, outputFormat.ErrorMessage); } else { @@ -1755,9 +1748,7 @@ public sealed class ImageConvertViewModel : ViewModelBase { warning = true; - AaruLogging.Error(UI.Error_0_reading_tag_for_sector_1_continuing, - errno, - doneSectors); + AaruLogging.Error(UI.Error_0_reading_tag_for_sector_1_continuing, errno, doneSectors); } else { @@ -1782,8 +1773,8 @@ public sealed class ImageConvertViewModel : ViewModelBase warning = true; AaruLogging.Error(UI.Error_0_writing_tag_for_sector_1_continuing, - outputFormat.ErrorMessage, - doneSectors); + outputFormat.ErrorMessage, + doneSectors); } else { diff --git a/Aaru.Gui/ViewModels/Windows/MediaDumpViewModel.cs b/Aaru.Gui/ViewModels/Windows/MediaDumpViewModel.cs index 7967e9f4e..17640c08b 100644 --- a/Aaru.Gui/ViewModels/Windows/MediaDumpViewModel.cs +++ b/Aaru.Gui/ViewModels/Windows/MediaDumpViewModel.cs @@ -54,6 +54,7 @@ using Aaru.Core.Media.Info; using Aaru.Devices; using Aaru.Gui.Models; using Aaru.Localization; +using Aaru.Logging; using Avalonia.Controls; using Avalonia.Platform.Storage; using Avalonia.Threading; @@ -499,7 +500,7 @@ public sealed class MediaDumpViewModel : ViewModelBase { this.RaiseAndSetIfChanged(ref _existingMetadata, value); - if(value == false) + if(!value) { _sidecar = null; @@ -857,9 +858,9 @@ public sealed class MediaDumpViewModel : ViewModelBase } */ - var dumpLog = new DumpLog(_outputPrefix + ".log", _dev, false); + DumpLog.StartLog(_dev, false); - dumpLog.WriteLine(UI.Output_image_format_0, SelectedPlugin.Name); + AaruLogging.WriteLine(UI.Output_image_format_0, SelectedPlugin.Name); var errorLog = new ErrorLog(_outputPrefix + ".error.log"); @@ -873,15 +874,14 @@ public sealed class MediaDumpViewModel : ViewModelBase Persistent, StopOnError, _resume, - dumpLog, encoding, _outputPrefix, Destination, parsedOptions, _sidecar, (uint)Skipped, - ExistingMetadata == false, - Trim == false, + !ExistingMetadata, + !Trim, Track1Pregap, true, false, diff --git a/Aaru.Localization/Core.resx b/Aaru.Localization/Core.resx index 3f06fc344..3d23ec445 100644 --- a/Aaru.Localization/Core.resx +++ b/Aaru.Localization/Core.resx @@ -429,8 +429,8 @@ [red]{0} sectors took more than 500 ms.[/] - [maroon]{0} sectors could not be read.[/] - + [maroon]{0} sectors could not be read.[/] + [slateblue1]Testing [teal]{0}[/] seeks, longest seek took [aqua]{1:F3}[/] ms, fastest one took [aqua]{2:F3}[/] ms. ([aqua]{3:F3}[/] ms average)[/] diff --git a/Aaru.Tests/Issues/OpticalImageConvertIssueTest.cs b/Aaru.Tests/Issues/OpticalImageConvertIssueTest.cs index 7835771e1..03f4b3842 100644 --- a/Aaru.Tests/Issues/OpticalImageConvertIssueTest.cs +++ b/Aaru.Tests/Issues/OpticalImageConvertIssueTest.cs @@ -335,7 +335,6 @@ public abstract class OpticalImageConvertIssueTest true, true, null, - null, smallestPregapLbaPerTrack, false, out _); @@ -376,7 +375,6 @@ public abstract class OpticalImageConvertIssueTest true, true, null, - null, smallestPregapLbaPerTrack, false, out _); diff --git a/Aaru.Tests/WritableImages/WritableOpticalMediaImageTest.cs b/Aaru.Tests/WritableImages/WritableOpticalMediaImageTest.cs index 27e812922..bf0918503 100644 --- a/Aaru.Tests/WritableImages/WritableOpticalMediaImageTest.cs +++ b/Aaru.Tests/WritableImages/WritableOpticalMediaImageTest.cs @@ -434,7 +434,6 @@ public abstract class WritableOpticalMediaImageTest : BaseWritableMediaImageTest true, true, null, - null, smallestPregapLbaPerTrack, false, out _); @@ -475,7 +474,6 @@ public abstract class WritableOpticalMediaImageTest : BaseWritableMediaImageTest true, true, null, - null, smallestPregapLbaPerTrack, false, out _); @@ -568,7 +566,6 @@ public abstract class WritableOpticalMediaImageTest : BaseWritableMediaImageTest null, null, null, - null, outputFormat); } diff --git a/Aaru/Commands/Image/Convert.cs b/Aaru/Commands/Image/Convert.cs index c8cb9a80f..5a5abf9a6 100644 --- a/Aaru/Commands/Image/Convert.cs +++ b/Aaru/Commands/Image/Convert.cs @@ -87,33 +87,25 @@ sealed class ConvertImageCommand : Command AaruLogging.Debug(MODULE_NAME, "--creator={0}", Markup.Escape(settings.Creator ?? "")); AaruLogging.Debug(MODULE_NAME, "--debug={0}", settings.Debug); - AaruLogging.Debug(MODULE_NAME, - "--drive-manufacturer={0}", - Markup.Escape(settings.DriveManufacturer ?? "")); + AaruLogging.Debug(MODULE_NAME, "--drive-manufacturer={0}", Markup.Escape(settings.DriveManufacturer ?? "")); AaruLogging.Debug(MODULE_NAME, "--drive-model={0}", Markup.Escape(settings.DriveModel ?? "")); - AaruLogging.Debug(MODULE_NAME, - "--drive-revision={0}", - Markup.Escape(settings.DriveFirmwareRevision ?? "")); + AaruLogging.Debug(MODULE_NAME, "--drive-revision={0}", Markup.Escape(settings.DriveFirmwareRevision ?? "")); - AaruLogging.Debug(MODULE_NAME, "--drive-serial={0}", Markup.Escape(settings.DriveSerialNumber ?? "")); - AaruLogging.Debug(MODULE_NAME, "--force={0}", settings.Force); - AaruLogging.Debug(MODULE_NAME, "--format={0}", Markup.Escape(settings.Format ?? "")); - AaruLogging.Debug(MODULE_NAME, "--geometry={0}", Markup.Escape(settings.Geometry ?? "")); - AaruLogging.Debug(MODULE_NAME, "--input={0}", Markup.Escape(settings.InputPath ?? "")); - AaruLogging.Debug(MODULE_NAME, "--media-barcode={0}", Markup.Escape(settings.MediaBarcode ?? "")); + AaruLogging.Debug(MODULE_NAME, "--drive-serial={0}", Markup.Escape(settings.DriveSerialNumber ?? "")); + AaruLogging.Debug(MODULE_NAME, "--force={0}", settings.Force); + AaruLogging.Debug(MODULE_NAME, "--format={0}", Markup.Escape(settings.Format ?? "")); + AaruLogging.Debug(MODULE_NAME, "--geometry={0}", Markup.Escape(settings.Geometry ?? "")); + AaruLogging.Debug(MODULE_NAME, "--input={0}", Markup.Escape(settings.InputPath ?? "")); + AaruLogging.Debug(MODULE_NAME, "--media-barcode={0}", Markup.Escape(settings.MediaBarcode ?? "")); AaruLogging.Debug(MODULE_NAME, "--media-lastsequence={0}", settings.LastMediaSequence); - AaruLogging.Debug(MODULE_NAME, - "--media-manufacturer={0}", - Markup.Escape(settings.MediaManufacturer ?? "")); + AaruLogging.Debug(MODULE_NAME, "--media-manufacturer={0}", Markup.Escape(settings.MediaManufacturer ?? "")); AaruLogging.Debug(MODULE_NAME, "--media-model={0}", Markup.Escape(settings.MediaModel ?? "")); - AaruLogging.Debug(MODULE_NAME, - "--media-partnumber={0}", - Markup.Escape(settings.MediaPartNumber ?? "")); + AaruLogging.Debug(MODULE_NAME, "--media-partnumber={0}", Markup.Escape(settings.MediaPartNumber ?? "")); AaruLogging.Debug(MODULE_NAME, "--media-sequence={0}", settings.MediaSequence); AaruLogging.Debug(MODULE_NAME, "--media-serial={0}", Markup.Escape(settings.MediaSerialNumber ?? "")); @@ -489,7 +481,7 @@ sealed class ConvertImageCommand : Command AaruLogging.Error(UI.Converting_image_will_lose_sector_tag_0, sectorTag); AaruLogging.Error(UI - .If_you_dont_care_use_force_option_This_will_skip_all_sector_tags_converting_only_user_data); + .If_you_dont_care_use_force_option_This_will_skip_all_sector_tags_converting_only_user_data); return (int)ErrorNumber.DataWillBeLost; } @@ -643,7 +635,7 @@ sealed class ConvertImageCommand : Command else { AaruLogging.Error(UI.Error_0_writing_media_tag_not_continuing, - outputFormat.ErrorMessage); + outputFormat.ErrorMessage); errorNumber = ErrorNumber.WriteError; } @@ -736,14 +728,14 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_reading_sector_1_continuing, - errno, - doneSectors + track.StartSector); + errno, + doneSectors + track.StartSector); } else { AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, - errno, - doneSectors + track.StartSector); + errno, + doneSectors + track.StartSector); errno = ErrorNumber.WriteError; @@ -755,9 +747,8 @@ sealed class ConvertImageCommand : Command { if(!settings.Force) { - AaruLogging - .Error(UI - .Input_image_is_not_returning_raw_sectors_use_force_if_you_want_to_continue); + AaruLogging.Error(UI + .Input_image_is_not_returning_raw_sectors_use_force_if_you_want_to_continue); errno = ErrorNumber.InOutError; @@ -924,14 +915,14 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_reading_sector_1_continuing, - errno, - doneSectors + track.StartSector); + errno, + doneSectors + track.StartSector); } else { AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, - errno, - doneSectors + track.StartSector); + errno, + doneSectors + track.StartSector); errno = ErrorNumber.WriteError; @@ -945,14 +936,14 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_writing_sector_1_continuing, - outputOptical.ErrorMessage, - doneSectors + track.StartSector); + outputOptical.ErrorMessage, + doneSectors + track.StartSector); } else { AaruLogging.Error(UI.Error_0_writing_sector_1_not_continuing, - outputOptical.ErrorMessage, - doneSectors + track.StartSector); + outputOptical.ErrorMessage, + doneSectors + track.StartSector); errno = ErrorNumber.WriteError; @@ -1101,13 +1092,13 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_writing_tag_continuing, - outputOptical.ErrorMessage); + outputOptical.ErrorMessage); continue; } AaruLogging.Error(UI.Error_0_writing_tag_not_continuing, - outputOptical.ErrorMessage); + outputOptical.ErrorMessage); errno = ErrorNumber.WriteError; @@ -1120,12 +1111,12 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_writing_tag_continuing, - outputOptical.ErrorMessage); + outputOptical.ErrorMessage); } else { AaruLogging.Error(UI.Error_0_writing_tag_not_continuing, - outputOptical.ErrorMessage); + outputOptical.ErrorMessage); errno = ErrorNumber.WriteError; @@ -1182,7 +1173,6 @@ sealed class ConvertImageCommand : Command fixSubchannel, fixSubchannelCrc, null, - null, smallestPregapLbaPerTrack, false, out _); @@ -1204,18 +1194,16 @@ sealed class ConvertImageCommand : Command if(settings.Force) { - AaruLogging - .Error(UI.Error_0_reading_tag_for_sector_1_continuing, - errno, - doneSectors + track.StartSector); + AaruLogging.Error(UI.Error_0_reading_tag_for_sector_1_continuing, + errno, + doneSectors + track.StartSector); } else { AaruLogging - .Error(UI - .Error_0_reading_tag_for_sector_1_not_continuing, - errno, - doneSectors + track.StartSector); + .Error(UI.Error_0_reading_tag_for_sector_1_not_continuing, + errno, + doneSectors + track.StartSector); return; } @@ -1249,7 +1237,6 @@ sealed class ConvertImageCommand : Command fixSubchannel, fixSubchannelCrc, null, - null, smallestPregapLbaPerTrack, false, out _); @@ -1272,18 +1259,16 @@ sealed class ConvertImageCommand : Command if(settings.Force) { - AaruLogging - .Error(UI.Error_0_reading_tag_for_sector_1_continuing, - errno, - doneSectors + track.StartSector); + AaruLogging.Error(UI.Error_0_reading_tag_for_sector_1_continuing, + errno, + doneSectors + track.StartSector); } else { AaruLogging - .Error(UI - .Error_0_reading_tag_for_sector_1_not_continuing, - errno, - doneSectors + track.StartSector); + .Error(UI.Error_0_reading_tag_for_sector_1_not_continuing, + errno, + doneSectors + track.StartSector); return; } @@ -1294,17 +1279,15 @@ sealed class ConvertImageCommand : Command { if(settings.Force) { - AaruLogging - .Error(UI.Error_0_writing_tag_for_sector_1_continuing, - outputOptical.ErrorMessage, - doneSectors + track.StartSector); + AaruLogging.Error(UI.Error_0_writing_tag_for_sector_1_continuing, + outputOptical.ErrorMessage, + doneSectors + track.StartSector); } else { - AaruLogging - .Error(UI.Error_0_writing_tag_for_sector_1_not_continuing, - outputOptical.ErrorMessage, - doneSectors + track.StartSector); + AaruLogging.Error(UI.Error_0_writing_tag_for_sector_1_not_continuing, + outputOptical.ErrorMessage, + doneSectors + track.StartSector); errno = ErrorNumber.WriteError; @@ -1390,7 +1373,6 @@ sealed class ConvertImageCommand : Command null, null, null, - null, outputOptical); }); } @@ -1414,7 +1396,7 @@ sealed class ConvertImageCommand : Command if(!outputMedia.SetGeometry(chs.cylinders, chs.heads, chs.sectors)) { AaruLogging.Error(UI.Error_0_setting_geometry_image_may_be_incorrect_continuing, - outputMedia.ErrorMessage); + outputMedia.ErrorMessage); } } @@ -1466,14 +1448,14 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_reading_sector_1_continuing, - errno, - doneSectors); + errno, + doneSectors); } else { AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, - errno, - doneSectors); + errno, + doneSectors); return; } @@ -1498,14 +1480,14 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_reading_sector_1_continuing, - errno, - doneSectors); + errno, + doneSectors); } else { AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, - errno, - doneSectors); + errno, + doneSectors); return; } @@ -1517,14 +1499,14 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_writing_sector_1_continuing, - outputMedia.ErrorMessage, - doneSectors); + outputMedia.ErrorMessage, + doneSectors); } else { AaruLogging.Error(UI.Error_0_writing_sector_1_not_continuing, - outputMedia.ErrorMessage, - doneSectors); + outputMedia.ErrorMessage, + doneSectors); errno = ErrorNumber.WriteError; @@ -1597,14 +1579,14 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_reading_sector_1_continuing, - errno, - doneSectors); + errno, + doneSectors); } else { AaruLogging.Error(UI.Error_0_reading_sector_1_not_continuing, - errno, - doneSectors); + errno, + doneSectors); return; } @@ -1615,14 +1597,14 @@ sealed class ConvertImageCommand : Command if(settings.Force) { AaruLogging.Error(UI.Error_0_writing_sector_1_continuing, - outputMedia.ErrorMessage, - doneSectors); + outputMedia.ErrorMessage, + doneSectors); } else { AaruLogging.Error(UI.Error_0_writing_sector_1_not_continuing, - outputMedia.ErrorMessage, - doneSectors); + outputMedia.ErrorMessage, + doneSectors); errno = ErrorNumber.WriteError; @@ -1756,8 +1738,7 @@ sealed class ConvertImageCommand : Command if(!closed) { - AaruLogging.Error(UI.Error_0_closing_output_image_Contents_are_not_correct, - outputFormat.ErrorMessage); + AaruLogging.Error(UI.Error_0_closing_output_image_Contents_are_not_correct, outputFormat.ErrorMessage); return (int)ErrorNumber.WriteError; } diff --git a/Aaru/Commands/Media/Dump.cs b/Aaru/Commands/Media/Dump.cs index 4cb3388e0..d374df5b9 100644 --- a/Aaru/Commands/Media/Dump.cs +++ b/Aaru/Commands/Media/Dump.cs @@ -474,18 +474,12 @@ sealed class DumpMediaCommand : Command IBaseWritableImage outputFormat = candidates[0]; - var dumpLog = new DumpLog(outputPrefix + ".log", dev, settings.Private); + DumpLog.StartLog(dev, settings.Private); if(settings.Verbose) - { - dumpLog.WriteLine(UI.Output_image_format_0_1, outputFormat.Name, outputFormat.Id); AaruLogging.Verbose(UI.Output_image_format_0_1, outputFormat.Name, outputFormat.Id); - } else - { - dumpLog.WriteLine(UI.Output_image_format_0, outputFormat.Name); AaruLogging.WriteLine(UI.Output_image_format_0, outputFormat.Name); - } var errorLog = new ErrorLog(outputPrefix + ".error.log"); @@ -499,7 +493,6 @@ sealed class DumpMediaCommand : Command settings.Persistent, settings.StopOnError, resumeClass, - dumpLog, encodingClass, outputPrefix, outputPrefix + extension, @@ -535,19 +528,16 @@ sealed class DumpMediaCommand : Command .Columns(new TaskDescriptionColumn(), new ProgressBarColumn(), new PercentageColumn()) .Start(ctx => { - dumper.UpdateStatus += text => { AaruLogging.WriteLine(Markup.Escape(text)); }; + dumper.UpdateStatus += text => { AaruLogging.WriteLine(text); }; - dumper.ErrorMessage += text => { AaruLogging.Error($"[red]{Markup.Escape(text)}[/]"); }; + dumper.ErrorMessage += text => { AaruLogging.Error(text); }; - dumper.StoppingErrorMessage += text => - { - AaruLogging.Error($"[red]{Markup.Escape(text)}[/]"); - }; + dumper.StoppingErrorMessage += text => { AaruLogging.Error(text); }; dumper.UpdateProgress += (text, current, maximum) => { _progressTask1 ??= ctx.AddTask("Progress"); - _progressTask1.Description = Markup.Escape(text); + _progressTask1.Description = text; _progressTask1.Value = current; _progressTask1.MaxValue = maximum; }; @@ -555,10 +545,10 @@ sealed class DumpMediaCommand : Command dumper.PulseProgress += text => { if(_progressTask1 is null) - ctx.AddTask(Markup.Escape(text)).IsIndeterminate(); + ctx.AddTask(text).IsIndeterminate(); else { - _progressTask1.Description = Markup.Escape(text); + _progressTask1.Description = text; _progressTask1.IsIndeterminate = true; } }; @@ -582,7 +572,7 @@ sealed class DumpMediaCommand : Command dumper.UpdateProgress2 += (text, current, maximum) => { _progressTask2 ??= ctx.AddTask("Progress"); - _progressTask2.Description = Markup.Escape(text); + _progressTask2.Description = text; _progressTask2.Value = current; _progressTask2.MaxValue = maximum; }; diff --git a/Aaru/Commands/Media/Info.cs b/Aaru/Commands/Media/Info.cs index fedc9ba49..ca8471324 100644 --- a/Aaru/Commands/Media/Info.cs +++ b/Aaru/Commands/Media/Info.cs @@ -798,15 +798,14 @@ sealed class MediaInfoCommand : Command if(scsiInfo.Toc != null || scsiInfo.RawToc != null) { - Track[] tracks = - Dump.GetCdTracks(dev, null, false, out long lastSector, null, null, null, out _, null, null); + Track[] tracks = Dump.GetCdTracks(dev, false, out long lastSector, null, null, null, out _, null, null); if(tracks != null) { uint firstLba = (uint)tracks.Min(t => t.StartSector); - bool supportsPqSubchannel = Dump.SupportsPqSubchannel(dev, null, null, firstLba); - bool supportsRwSubchannel = Dump.SupportsRwSubchannel(dev, null, null, firstLba); + bool supportsPqSubchannel = Dump.SupportsPqSubchannel(dev, null, firstLba); + bool supportsRwSubchannel = Dump.SupportsRwSubchannel(dev, null, firstLba); // Open main database var ctx = AaruContext.Create(Aaru.Settings.Settings.MainDbPath); @@ -818,7 +817,6 @@ sealed class MediaInfoCommand : Command d.Revision == dev.FirmwareRevision); Dump.SolveTrackPregaps(dev, - null, null, tracks, supportsPqSubchannel, @@ -867,7 +865,6 @@ sealed class MediaInfoCommand : Command debug, dev, scsiInfo.MediaType, - null, tracks, null, out int? driveOffset,