mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Add InitProgress and EndProgress events to ATA dumper.
This commit is contained in:
1
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
1
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
@@ -5,6 +5,7 @@
|
|||||||
<e p="$APPLICATION_CONFIG_DIR$/extensions" t="IncludeRecursive" />
|
<e p="$APPLICATION_CONFIG_DIR$/extensions" t="IncludeRecursive" />
|
||||||
<e p="$USER_HOME$/.Rider2019.1/system/extResources" t="IncludeRecursive" />
|
<e p="$USER_HOME$/.Rider2019.1/system/extResources" t="IncludeRecursive" />
|
||||||
<e p="$USER_HOME$/.Rider2019.1/system/resharper-host/local/Transient/ReSharperHost/v191/SolutionCaches/_DiscImageChef.-1491758497.00" t="ExcludeRecursive" />
|
<e p="$USER_HOME$/.Rider2019.1/system/resharper-host/local/Transient/ReSharperHost/v191/SolutionCaches/_DiscImageChef.-1491758497.00" t="ExcludeRecursive" />
|
||||||
|
<e p="$USER_HOME$/.Rider2019.1/system/rust_expanded_macros/vfwZLTAc/expansions" t="IncludeRecursive" />
|
||||||
<e p="$USER_HOME$/.nuget/packages/sqlitepclraw.lib.e_sqlite3.linux/1.1.11/runtimes/linux-x64/native/libe_sqlite3.so" t="Include" />
|
<e p="$USER_HOME$/.nuget/packages/sqlitepclraw.lib.e_sqlite3.linux/1.1.11/runtimes/linux-x64/native/libe_sqlite3.so" t="Include" />
|
||||||
<e p="$PROJECT_DIR$" t="IncludeFlat">
|
<e p="$PROJECT_DIR$" t="IncludeFlat">
|
||||||
<e p=".git/info/exclude" t="IncludeRecursive" />
|
<e p=".git/info/exclude" t="IncludeRecursive" />
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ using DiscImageChef.CommonTypes.Enums;
|
|||||||
using DiscImageChef.CommonTypes.Extents;
|
using DiscImageChef.CommonTypes.Extents;
|
||||||
using DiscImageChef.CommonTypes.Interfaces;
|
using DiscImageChef.CommonTypes.Interfaces;
|
||||||
using DiscImageChef.CommonTypes.Metadata;
|
using DiscImageChef.CommonTypes.Metadata;
|
||||||
using DiscImageChef.Console;
|
|
||||||
using DiscImageChef.Core.Logging;
|
using DiscImageChef.Core.Logging;
|
||||||
using DiscImageChef.Decoders.ATA;
|
using DiscImageChef.Decoders.ATA;
|
||||||
using DiscImageChef.Decoders.PCMCIA;
|
using DiscImageChef.Decoders.PCMCIA;
|
||||||
@@ -257,6 +256,7 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
start = DateTime.UtcNow;
|
start = DateTime.UtcNow;
|
||||||
DateTime timeSpeedStart = DateTime.UtcNow;
|
DateTime timeSpeedStart = DateTime.UtcNow;
|
||||||
ulong sectorSpeedStart = 0;
|
ulong sectorSpeedStart = 0;
|
||||||
|
InitProgress?.Invoke();
|
||||||
for(ulong i = resume.NextBlock; i < blocks; i += blocksToRead)
|
for(ulong i = resume.NextBlock; i < blocks; i += blocksToRead)
|
||||||
{
|
{
|
||||||
if(aborted)
|
if(aborted)
|
||||||
@@ -317,7 +317,7 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
}
|
}
|
||||||
|
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
DicConsole.WriteLine();
|
EndProgress?.Invoke();
|
||||||
mhddLog.Close();
|
mhddLog.Close();
|
||||||
ibgLog.Close(dev, blocks, blockSize, (end - start).TotalSeconds, currentSpeed * 1024,
|
ibgLog.Close(dev, blocks, blockSize, (end - start).TotalSeconds, currentSpeed * 1024,
|
||||||
blockSize * (double)(blocks + 1) / 1024 /
|
blockSize * (double)(blocks + 1) / 1024 /
|
||||||
@@ -342,6 +342,7 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
dumpLog.WriteLine("Trimming bad sectors");
|
dumpLog.WriteLine("Trimming bad sectors");
|
||||||
|
|
||||||
ulong[] tmpArray = resume.BadBlocks.ToArray();
|
ulong[] tmpArray = resume.BadBlocks.ToArray();
|
||||||
|
InitProgress?.Invoke();
|
||||||
foreach(ulong badSector in tmpArray)
|
foreach(ulong badSector in tmpArray)
|
||||||
{
|
{
|
||||||
if(aborted)
|
if(aborted)
|
||||||
@@ -365,7 +366,7 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
outputPlugin.WriteSector(cmdBuf, badSector);
|
outputPlugin.WriteSector(cmdBuf, badSector);
|
||||||
}
|
}
|
||||||
|
|
||||||
DicConsole.WriteLine();
|
EndProgress?.Invoke();
|
||||||
end = DateTime.UtcNow;
|
end = DateTime.UtcNow;
|
||||||
UpdateStatus?.Invoke($"Trimmming finished in {(end - start).TotalSeconds} seconds.");
|
UpdateStatus?.Invoke($"Trimmming finished in {(end - start).TotalSeconds} seconds.");
|
||||||
dumpLog.WriteLine("Trimmming finished in {0} seconds.", (end - start).TotalSeconds);
|
dumpLog.WriteLine("Trimmming finished in {0} seconds.", (end - start).TotalSeconds);
|
||||||
@@ -380,6 +381,7 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
|
|
||||||
repeatRetryLba:
|
repeatRetryLba:
|
||||||
ulong[] tmpArray = resume.BadBlocks.ToArray();
|
ulong[] tmpArray = resume.BadBlocks.ToArray();
|
||||||
|
InitProgress?.Invoke();
|
||||||
foreach(ulong badSector in tmpArray)
|
foreach(ulong badSector in tmpArray)
|
||||||
{
|
{
|
||||||
if(aborted)
|
if(aborted)
|
||||||
@@ -417,7 +419,7 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
goto repeatRetryLba;
|
goto repeatRetryLba;
|
||||||
}
|
}
|
||||||
|
|
||||||
DicConsole.WriteLine();
|
EndProgress?.Invoke();
|
||||||
}
|
}
|
||||||
#endregion Error handling LBA
|
#endregion Error handling LBA
|
||||||
|
|
||||||
@@ -433,6 +435,7 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
start = DateTime.UtcNow;
|
start = DateTime.UtcNow;
|
||||||
DateTime timeSpeedStart = DateTime.UtcNow;
|
DateTime timeSpeedStart = DateTime.UtcNow;
|
||||||
ulong sectorSpeedStart = 0;
|
ulong sectorSpeedStart = 0;
|
||||||
|
InitProgress?.Invoke();
|
||||||
for(ushort cy = 0; cy < cylinders; cy++)
|
for(ushort cy = 0; cy < cylinders; cy++)
|
||||||
{
|
{
|
||||||
for(byte hd = 0; hd < heads; hd++)
|
for(byte hd = 0; hd < heads; hd++)
|
||||||
@@ -497,7 +500,7 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
}
|
}
|
||||||
|
|
||||||
end = DateTime.Now;
|
end = DateTime.Now;
|
||||||
DicConsole.WriteLine();
|
EndProgress?.Invoke();
|
||||||
mhddLog.Close();
|
mhddLog.Close();
|
||||||
ibgLog.Close(dev, blocks, blockSize, (end - start).TotalSeconds, currentSpeed * 1024,
|
ibgLog.Close(dev, blocks, blockSize, (end - start).TotalSeconds, currentSpeed * 1024,
|
||||||
blockSize * (double)(blocks + 1) / 1024 /
|
blockSize * (double)(blocks + 1) / 1024 /
|
||||||
@@ -665,7 +668,6 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
filesystem.start);
|
filesystem.start);
|
||||||
}
|
}
|
||||||
|
|
||||||
DicConsole.WriteLine();
|
|
||||||
string xmlDskTyp, xmlDskSubTyp;
|
string xmlDskTyp, xmlDskSubTyp;
|
||||||
if(dev.IsCompactFlash)
|
if(dev.IsCompactFlash)
|
||||||
CommonTypes.Metadata.MediaType.MediaTypeToString(MediaType.CompactFlash, out xmlDskTyp,
|
CommonTypes.Metadata.MediaType.MediaTypeToString(MediaType.CompactFlash, out xmlDskTyp,
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
{
|
{
|
||||||
public partial class Dump
|
public partial class Dump
|
||||||
{
|
{
|
||||||
|
public event EndProgressHandler EndProgress;
|
||||||
|
public event InitProgressHandler InitProgress;
|
||||||
public event UpdateStatusHandler UpdateStatus;
|
public event UpdateStatusHandler UpdateStatus;
|
||||||
public event ErrorMessageHandler ErrorMessage;
|
public event ErrorMessageHandler ErrorMessage;
|
||||||
public event ErrorMessageHandler StoppingErrorMessage;
|
public event ErrorMessageHandler StoppingErrorMessage;
|
||||||
|
|||||||
@@ -301,6 +301,8 @@ namespace DiscImageChef.Commands
|
|||||||
dumper.StoppingErrorMessage += Progress.ErrorMessage;
|
dumper.StoppingErrorMessage += Progress.ErrorMessage;
|
||||||
dumper.UpdateProgress += Progress.UpdateProgress;
|
dumper.UpdateProgress += Progress.UpdateProgress;
|
||||||
dumper.PulseProgress += Progress.PulseProgress;
|
dumper.PulseProgress += Progress.PulseProgress;
|
||||||
|
dumper.InitProgress += Progress.InitProgress;
|
||||||
|
dumper.EndProgress += Progress.EndProgress;
|
||||||
|
|
||||||
if(dev.IsUsb && dev.UsbVendorId == 0x054C &&
|
if(dev.IsUsb && dev.UsbVendorId == 0x054C &&
|
||||||
(dev.UsbProductId == 0x01C8 || dev.UsbProductId == 0x01C9 || dev.UsbProductId == 0x02D2))
|
(dev.UsbProductId == 0x01C8 || dev.UsbProductId == 0x01C9 || dev.UsbProductId == 0x02D2))
|
||||||
|
|||||||
Reference in New Issue
Block a user