diff --git a/Aaru.Core/Devices/Dumping/ATA.cs b/Aaru.Core/Devices/Dumping/ATA.cs index 708d9f91d..a7927856b 100644 --- a/Aaru.Core/Devices/Dumping/ATA.cs +++ b/Aaru.Core/Devices/Dumping/ATA.cs @@ -333,6 +333,8 @@ namespace Aaru.Core.Devices.Dumping timeSpeedStart = DateTime.UtcNow; } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + end = DateTime.Now; EndProgress?.Invoke(); mhddLog.Close(); @@ -555,6 +557,8 @@ namespace Aaru.Core.Devices.Dumping } } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + end = DateTime.Now; EndProgress?.Invoke(); mhddLog.Close(); diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs index e96a77e8c..088aa3478 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs @@ -671,6 +671,8 @@ namespace Aaru.Core.Devices.Dumping EndProgress?.Invoke(); + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + if(!failedCrossingLeadOut) return; diff --git a/Aaru.Core/Devices/Dumping/MiniDisc.cs b/Aaru.Core/Devices/Dumping/MiniDisc.cs index 1936929a3..dfc4db404 100644 --- a/Aaru.Core/Devices/Dumping/MiniDisc.cs +++ b/Aaru.Core/Devices/Dumping/MiniDisc.cs @@ -404,6 +404,8 @@ namespace Aaru.Core.Devices.Dumping timeSpeedStart = DateTime.UtcNow; } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + end = DateTime.UtcNow; EndProgress?.Invoke(); mhddLog.Close(); @@ -496,8 +498,7 @@ namespace Aaru.Core.Devices.Dumping if(dcMode6?.Pages != null) foreach(Modes.ModePage modePage in dcMode6.Value.Pages.Where(modePage => - modePage.Page == 0x01 && - modePage.Subpage == 0x00)) + modePage.Page == 0x01 && modePage.Subpage == 0x00)) currentModePage = modePage; } diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs index b1074b5c9..eb3847c91 100644 --- a/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs +++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs @@ -251,6 +251,8 @@ namespace Aaru.Core.Devices.Dumping timeSpeedStart = DateTime.UtcNow; } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + end = DateTime.UtcNow; EndProgress?.Invoke(); mhddLog.Close(); @@ -351,9 +353,7 @@ namespace Aaru.Core.Devices.Dumping if(dcMode10.HasValue) foreach(Modes.ModePage modePage in dcMode10.Value.Pages.Where(modePage => - modePage.Page == - 0x01 && modePage. - Subpage == 0x00)) + modePage.Page == 0x01 && modePage.Subpage == 0x00)) currentModePage = modePage; } } @@ -363,8 +363,7 @@ namespace Aaru.Core.Devices.Dumping if(dcMode6.HasValue) foreach(Modes.ModePage modePage in dcMode6.Value.Pages.Where(modePage => - modePage.Page == 0x01 && - modePage.Subpage == 0x00)) + modePage.Page == 0x01 && modePage.Subpage == 0x00)) currentModePage = modePage; } diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs index 59ebe1d4a..e44674657 100644 --- a/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs +++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs @@ -274,6 +274,8 @@ namespace Aaru.Core.Devices.Dumping timeSpeedStart = DateTime.UtcNow; } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + end = DateTime.UtcNow; EndProgress?.Invoke(); mhddLog.Close(); @@ -368,8 +370,7 @@ namespace Aaru.Core.Devices.Dumping if(dcMode6.HasValue) foreach(Modes.ModePage modePage in dcMode6.Value.Pages.Where(modePage => - modePage.Page == 0x01 && - modePage.Subpage == 0x00)) + modePage.Page == 0x01 && modePage.Subpage == 0x00)) currentModePage = modePage; } diff --git a/Aaru.Core/Devices/Dumping/SSC.cs b/Aaru.Core/Devices/Dumping/SSC.cs index 994d0f70c..f9219f9e5 100644 --- a/Aaru.Core/Devices/Dumping/SSC.cs +++ b/Aaru.Core/Devices/Dumping/SSC.cs @@ -1019,8 +1019,9 @@ namespace Aaru.Core.Devices.Dumping timeSpeedStart = DateTime.UtcNow; } - blocks = currentBlock + 1; - end = DateTime.UtcNow; + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + blocks = currentBlock + 1; + end = DateTime.UtcNow; // If not aborted this is added at the end of medium if(_aborted) diff --git a/Aaru.Core/Devices/Dumping/Sbc/Data.cs b/Aaru.Core/Devices/Dumping/Sbc/Data.cs index 890586d57..8728aaff6 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Data.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Data.cs @@ -25,6 +25,7 @@ // ****************************************************************************/ using System; +using System.Linq; using Aaru.CommonTypes.Extents; using Aaru.Core.Logging; using Schemas; @@ -93,6 +94,7 @@ namespace Aaru.Core.Devices.Dumping if(_dev.Manufacturer.ToLowerInvariant() == "insite") { _resume.BadBlocks.Add(i); + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); _resume.NextBlock++; _aborted = true; @@ -141,6 +143,8 @@ namespace Aaru.Core.Devices.Dumping timeSpeedStart = DateTime.UtcNow; } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + EndProgress?.Invoke(); } } diff --git a/Aaru.Core/Devices/Dumping/Sbc/Optical.cs b/Aaru.Core/Devices/Dumping/Sbc/Optical.cs index 0b439703f..86e30514f 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Optical.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Optical.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using Aaru.CommonTypes.Extents; using Aaru.Console; using Aaru.Core.Logging; @@ -240,6 +241,8 @@ namespace Aaru.Core.Devices.Dumping } } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + EndProgress?.Invoke(); } } diff --git a/Aaru.Core/Devices/Dumping/SecureDigital.cs b/Aaru.Core/Devices/Dumping/SecureDigital.cs index 64f79c3c2..5dc24aa9a 100644 --- a/Aaru.Core/Devices/Dumping/SecureDigital.cs +++ b/Aaru.Core/Devices/Dumping/SecureDigital.cs @@ -409,6 +409,8 @@ namespace Aaru.Core.Devices.Dumping timeSpeedStart = DateTime.UtcNow; } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + end = DateTime.Now; EndProgress?.Invoke(); mhddLog.Close(); diff --git a/Aaru.Core/Devices/Dumping/XGD.cs b/Aaru.Core/Devices/Dumping/XGD.cs index 79fe865ab..4d9a34148 100644 --- a/Aaru.Core/Devices/Dumping/XGD.cs +++ b/Aaru.Core/Devices/Dumping/XGD.cs @@ -686,6 +686,8 @@ namespace Aaru.Core.Devices.Dumping currentSector = extentEnd + 1; } + _resume.BadBlocks = _resume.BadBlocks.Distinct().ToList(); + EndProgress?.Invoke(); // Middle Zone D @@ -976,8 +978,8 @@ namespace Aaru.Core.Devices.Dumping Modes.DecodeMode10(readBuffer, PeripheralDeviceTypes.MultiMediaDevice); if(dcMode10.HasValue) - foreach(var modePage in dcMode10.Value.Pages.Where(modePage => modePage.Page == 0x01 && - modePage.Subpage == 0x00)) + foreach(Modes.ModePage modePage in dcMode10.Value.Pages.Where(modePage => + modePage.Page == 0x01 && modePage.Subpage == 0x00)) currentModePage = modePage; } } @@ -988,8 +990,7 @@ namespace Aaru.Core.Devices.Dumping if(dcMode6.HasValue) foreach(Modes.ModePage modePage in dcMode6.Value.Pages.Where(modePage => - modePage.Page == 0x01 && - modePage.Subpage == 0x00)) + modePage.Page == 0x01 && modePage.Subpage == 0x00)) currentModePage = modePage; }