mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Call event for speed progress more smoothly.
This commit is contained in:
@@ -151,14 +151,12 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
else results.A += blocksToRead;
|
else results.A += blocksToRead;
|
||||||
|
|
||||||
ScanTime?.Invoke(i, duration);
|
ScanTime?.Invoke(i, duration);
|
||||||
ScanSpeed?.Invoke(i, currentSpeed * 1024);
|
|
||||||
mhddLog.Write(i, duration);
|
mhddLog.Write(i, duration);
|
||||||
ibgLog.Write(i, currentSpeed * 1024);
|
ibgLog.Write(i, currentSpeed * 1024);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ScanUnreadable?.Invoke(i);
|
ScanUnreadable?.Invoke(i);
|
||||||
ScanSpeed?.Invoke(i, 0);
|
|
||||||
results.Errored += blocksToRead;
|
results.Errored += blocksToRead;
|
||||||
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
||||||
|
|
||||||
@@ -172,7 +170,8 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
||||||
if(elapsed < 1) continue;
|
if(elapsed < 1) continue;
|
||||||
|
|
||||||
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
||||||
|
ScanSpeed?.Invoke(i, currentSpeed * 1024);
|
||||||
sectorSpeedStart = 0;
|
sectorSpeedStart = 0;
|
||||||
timeSpeedStart = DateTime.UtcNow;
|
timeSpeedStart = DateTime.UtcNow;
|
||||||
}
|
}
|
||||||
@@ -250,14 +249,12 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
else results.A += blocksToRead;
|
else results.A += blocksToRead;
|
||||||
|
|
||||||
ScanTime?.Invoke(currentBlock, duration);
|
ScanTime?.Invoke(currentBlock, duration);
|
||||||
ScanSpeed?.Invoke(currentBlock, currentSpeed * 1024);
|
|
||||||
mhddLog.Write(currentBlock, duration);
|
mhddLog.Write(currentBlock, duration);
|
||||||
ibgLog.Write(currentBlock, currentSpeed * 1024);
|
ibgLog.Write(currentBlock, currentSpeed * 1024);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ScanUnreadable?.Invoke(currentBlock);
|
ScanUnreadable?.Invoke(currentBlock);
|
||||||
ScanSpeed?.Invoke(currentBlock, 0);
|
|
||||||
results.Errored += blocksToRead;
|
results.Errored += blocksToRead;
|
||||||
results.UnreadableSectors.Add(currentBlock);
|
results.UnreadableSectors.Add(currentBlock);
|
||||||
mhddLog.Write(currentBlock, duration < 500 ? 65535 : duration);
|
mhddLog.Write(currentBlock, duration < 500 ? 65535 : duration);
|
||||||
@@ -271,7 +268,8 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
||||||
if(elapsed < 1) continue;
|
if(elapsed < 1) continue;
|
||||||
|
|
||||||
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
||||||
|
ScanSpeed?.Invoke(currentBlock, currentSpeed * 1024);
|
||||||
sectorSpeedStart = 0;
|
sectorSpeedStart = 0;
|
||||||
timeSpeedStart = DateTime.UtcNow;
|
timeSpeedStart = DateTime.UtcNow;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -319,7 +319,6 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
else results.A += blocksToRead;
|
else results.A += blocksToRead;
|
||||||
|
|
||||||
ScanTime?.Invoke(i, cmdDuration);
|
ScanTime?.Invoke(i, cmdDuration);
|
||||||
ScanSpeed?.Invoke(i, currentSpeed * 1024);
|
|
||||||
mhddLog.Write(i, cmdDuration);
|
mhddLog.Write(i, cmdDuration);
|
||||||
ibgLog.Write(i, currentSpeed * 1024);
|
ibgLog.Write(i, currentSpeed * 1024);
|
||||||
}
|
}
|
||||||
@@ -340,6 +339,7 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
results.Errored += blocksToRead;
|
results.Errored += blocksToRead;
|
||||||
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
||||||
|
|
||||||
|
ScanUnreadable?.Invoke(i);
|
||||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||||
|
|
||||||
ibgLog.Write(i, 0);
|
ibgLog.Write(i, 0);
|
||||||
@@ -348,7 +348,6 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ScanUnreadable?.Invoke(i);
|
ScanUnreadable?.Invoke(i);
|
||||||
ScanSpeed?.Invoke(i, 0);
|
|
||||||
results.Errored += blocksToRead;
|
results.Errored += blocksToRead;
|
||||||
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
||||||
|
|
||||||
@@ -363,7 +362,8 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
||||||
if(elapsed < 1) continue;
|
if(elapsed < 1) continue;
|
||||||
|
|
||||||
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
||||||
|
ScanSpeed?.Invoke(i, currentSpeed * 1024);
|
||||||
sectorSpeedStart = 0;
|
sectorSpeedStart = 0;
|
||||||
timeSpeedStart = DateTime.UtcNow;
|
timeSpeedStart = DateTime.UtcNow;
|
||||||
}
|
}
|
||||||
@@ -416,7 +416,6 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
else results.A += blocksToRead;
|
else results.A += blocksToRead;
|
||||||
|
|
||||||
ScanTime?.Invoke(i, cmdDuration);
|
ScanTime?.Invoke(i, cmdDuration);
|
||||||
ScanSpeed?.Invoke(i, currentSpeed * 1024);
|
|
||||||
mhddLog.Write(i, cmdDuration);
|
mhddLog.Write(i, cmdDuration);
|
||||||
ibgLog.Write(i, currentSpeed * 1024);
|
ibgLog.Write(i, currentSpeed * 1024);
|
||||||
}
|
}
|
||||||
@@ -424,7 +423,6 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ScanUnreadable?.Invoke(i);
|
ScanUnreadable?.Invoke(i);
|
||||||
ScanSpeed?.Invoke(i, 0);
|
|
||||||
results.Errored += blocksToRead;
|
results.Errored += blocksToRead;
|
||||||
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
||||||
|
|
||||||
@@ -437,7 +435,8 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
||||||
if(elapsed < 1) continue;
|
if(elapsed < 1) continue;
|
||||||
|
|
||||||
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
||||||
|
ScanSpeed?.Invoke(i, currentSpeed * 1024);
|
||||||
sectorSpeedStart = 0;
|
sectorSpeedStart = 0;
|
||||||
timeSpeedStart = DateTime.UtcNow;
|
timeSpeedStart = DateTime.UtcNow;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -182,14 +182,12 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
else results.A += blocksToRead;
|
else results.A += blocksToRead;
|
||||||
|
|
||||||
ScanTime?.Invoke(i, duration);
|
ScanTime?.Invoke(i, duration);
|
||||||
ScanSpeed?.Invoke(i, currentSpeed * 1024);
|
|
||||||
mhddLog.Write(i, duration);
|
mhddLog.Write(i, duration);
|
||||||
ibgLog.Write(i, currentSpeed * 1024);
|
ibgLog.Write(i, currentSpeed * 1024);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ScanUnreadable?.Invoke(i);
|
ScanUnreadable?.Invoke(i);
|
||||||
ScanSpeed?.Invoke(i, 0);
|
|
||||||
results.Errored += blocksToRead;
|
results.Errored += blocksToRead;
|
||||||
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
for(ulong b = i; b < i + blocksToRead; b++) results.UnreadableSectors.Add(b);
|
||||||
|
|
||||||
@@ -203,7 +201,8 @@ namespace DiscImageChef.Core.Devices.Scanning
|
|||||||
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
double elapsed = (DateTime.UtcNow - timeSpeedStart).TotalSeconds;
|
||||||
if(elapsed < 1) continue;
|
if(elapsed < 1) continue;
|
||||||
|
|
||||||
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
currentSpeed = sectorSpeedStart * blockSize / (1048576 * elapsed);
|
||||||
|
ScanSpeed?.Invoke(i, currentSpeed * 1024);
|
||||||
sectorSpeedStart = 0;
|
sectorSpeedStart = 0;
|
||||||
timeSpeedStart = DateTime.UtcNow;
|
timeSpeedStart = DateTime.UtcNow;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user