Call event for speed progress more smoothly.

This commit is contained in:
2019-04-22 02:06:30 +01:00
parent b3ed9537af
commit 01c675ed55
3 changed files with 11 additions and 15 deletions

View File

@@ -151,14 +151,12 @@ namespace DiscImageChef.Core.Devices.Scanning
else results.A += blocksToRead;
ScanTime?.Invoke(i, duration);
ScanSpeed?.Invoke(i, currentSpeed * 1024);
mhddLog.Write(i, duration);
ibgLog.Write(i, currentSpeed * 1024);
}
else
{
ScanUnreadable?.Invoke(i);
ScanSpeed?.Invoke(i, 0);
results.Errored += blocksToRead;
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
@@ -173,6 +171,7 @@ namespace DiscImageChef.Core.Devices.Scanning
if(elapsed < 1) continue;
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
ScanSpeed?.Invoke(i, currentSpeed * 1024);
sectorSpeedStart = 0;
timeSpeedStart = DateTime.UtcNow;
}
@@ -250,14 +249,12 @@ namespace DiscImageChef.Core.Devices.Scanning
else results.A += blocksToRead;
ScanTime?.Invoke(currentBlock, duration);
ScanSpeed?.Invoke(currentBlock, currentSpeed * 1024);
mhddLog.Write(currentBlock, duration);
ibgLog.Write(currentBlock, currentSpeed * 1024);
}
else
{
ScanUnreadable?.Invoke(currentBlock);
ScanSpeed?.Invoke(currentBlock, 0);
results.Errored += blocksToRead;
results.UnreadableSectors.Add(currentBlock);
mhddLog.Write(currentBlock, duration < 500 ? 65535 : duration);
@@ -272,6 +269,7 @@ namespace DiscImageChef.Core.Devices.Scanning
if(elapsed < 1) continue;
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
ScanSpeed?.Invoke(currentBlock, currentSpeed * 1024);
sectorSpeedStart = 0;
timeSpeedStart = DateTime.UtcNow;
}

View File

@@ -319,7 +319,6 @@ namespace DiscImageChef.Core.Devices.Scanning
else results.A += blocksToRead;
ScanTime?.Invoke(i, cmdDuration);
ScanSpeed?.Invoke(i, currentSpeed * 1024);
mhddLog.Write(i, cmdDuration);
ibgLog.Write(i, currentSpeed * 1024);
}
@@ -340,6 +339,7 @@ namespace DiscImageChef.Core.Devices.Scanning
results.Errored += blocksToRead;
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
ScanUnreadable?.Invoke(i);
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
ibgLog.Write(i, 0);
@@ -348,7 +348,6 @@ namespace DiscImageChef.Core.Devices.Scanning
else
{
ScanUnreadable?.Invoke(i);
ScanSpeed?.Invoke(i, 0);
results.Errored += blocksToRead;
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
@@ -364,6 +363,7 @@ namespace DiscImageChef.Core.Devices.Scanning
if(elapsed < 1) continue;
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
ScanSpeed?.Invoke(i, currentSpeed * 1024);
sectorSpeedStart = 0;
timeSpeedStart = DateTime.UtcNow;
}
@@ -416,7 +416,6 @@ namespace DiscImageChef.Core.Devices.Scanning
else results.A += blocksToRead;
ScanTime?.Invoke(i, cmdDuration);
ScanSpeed?.Invoke(i, currentSpeed * 1024);
mhddLog.Write(i, cmdDuration);
ibgLog.Write(i, currentSpeed * 1024);
}
@@ -424,7 +423,6 @@ namespace DiscImageChef.Core.Devices.Scanning
else
{
ScanUnreadable?.Invoke(i);
ScanSpeed?.Invoke(i, 0);
results.Errored += blocksToRead;
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
@@ -438,6 +436,7 @@ namespace DiscImageChef.Core.Devices.Scanning
if(elapsed < 1) continue;
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
ScanSpeed?.Invoke(i, currentSpeed * 1024);
sectorSpeedStart = 0;
timeSpeedStart = DateTime.UtcNow;
}

View File

@@ -182,14 +182,12 @@ namespace DiscImageChef.Core.Devices.Scanning
else results.A += blocksToRead;
ScanTime?.Invoke(i, duration);
ScanSpeed?.Invoke(i, currentSpeed * 1024);
mhddLog.Write(i, duration);
ibgLog.Write(i, currentSpeed * 1024);
}
else
{
ScanUnreadable?.Invoke(i);
ScanSpeed?.Invoke(i, 0);
results.Errored += blocksToRead;
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
@@ -204,6 +202,7 @@ namespace DiscImageChef.Core.Devices.Scanning
if(elapsed < 1) continue;
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
ScanSpeed?.Invoke(i, currentSpeed * 1024);
sectorSpeedStart = 0;
timeSpeedStart = DateTime.UtcNow;
}