Fix file header.

This commit is contained in:
2022-12-05 21:29:04 +00:00
parent 511b97ec22
commit c4b7e4f81d
11 changed files with 189 additions and 20 deletions

View File

@@ -40,6 +40,7 @@ using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.Core.Devices.Report;
using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.ATA;
using Aaru.Decoders.PCMCIA;
@@ -276,6 +277,22 @@ public partial class Dump
_dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
}
if(_createGraph)
{
Spiral.DiscParameters discSpiralParameters = Spiral.DiscParametersFromMediaType(mediaType);
if(discSpiralParameters is not null)
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
bool newTrim = false;
start = DateTime.UtcNow;
@@ -319,6 +336,7 @@ public partial class Dump
outputFormat.WriteSectors(cmdBuf, i, blocksToRead);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
extents.Add(i, blocksToRead, true);
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
}
else
{
@@ -416,6 +434,7 @@ public partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(cmdBuf, badSector);
_mediaGraph?.PaintSectorGood(badSector);
}
EndProgress?.Invoke();
@@ -479,6 +498,7 @@ public partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(cmdBuf, badSector);
_mediaGraph?.PaintSectorGood(badSector);
UpdateStatus?.
Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1,
@@ -518,6 +538,22 @@ public partial class Dump
ibgLog = new IbgLog(_outputPrefix + ".ibg", ataProfile);
if(_createGraph)
{
Spiral.DiscParameters discSpiralParameters = Spiral.DiscParametersFromMediaType(mediaType);
if(discSpiralParameters is not null)
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
ulong currentBlock = 0;
blocks = (ulong)(cylinders * heads * sectors);
start = DateTime.UtcNow;
@@ -568,6 +604,7 @@ public partial class Dump
imageWriteDuration += (DateTime.Now - writeStart).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);

View File

@@ -1120,14 +1120,15 @@ sealed partial class Dump
Spiral.DiscParameters discSpiralParameters = Spiral.DiscParametersFromMediaType(dskType);
if(discSpiralParameters is not null)
{
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
audioExtents = new ExtentsULong();

View File

@@ -35,6 +35,7 @@ using System.Linq;
using Aaru.CommonTypes;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.Core.Graphics;
using Version = Aaru.CommonTypes.Interop.Version;
namespace Aaru.Core.Devices.Dumping;
@@ -285,6 +286,9 @@ public partial class Dump
return;
}
if(_createGraph)
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, romSectors);
DateTime start = DateTime.UtcNow;
double imageWriteDuration = 0;
@@ -328,6 +332,7 @@ public partial class Dump
DateTime writeStart = DateTime.Now;
outputBai.WriteBytes(readBuffer, 0, readBuffer.Length, out _);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
_mediaGraph.PaintSectorsGood(i, blocksToRead);
}
else
{

View File

@@ -43,6 +43,7 @@ using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
using Aaru.Console;
using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
@@ -362,6 +363,22 @@ partial class Dump
_dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
}
if(_createGraph)
{
Spiral.DiscParameters discSpiralParameters = Spiral.DiscParametersFromMediaType(dskType);
if(discSpiralParameters is not null)
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
bool newTrim = false;
DateTime timeSpeedStart = DateTime.UtcNow;
ulong sectorSpeedStart = 0;
@@ -407,6 +424,7 @@ partial class Dump
outputFormat.WriteSectors(readBuffer, i, blocksToRead);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
extents.Add(i, blocksToRead, true);
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
}
else
{
@@ -505,6 +523,7 @@ partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(readBuffer, badSector);
_mediaGraph?.PaintSectorGood(badSector);
}
EndProgress?.Invoke();
@@ -659,6 +678,7 @@ partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(readBuffer, badSector);
_mediaGraph?.PaintSectorGood(badSector);
UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector,
pass));

View File

@@ -43,6 +43,7 @@ using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
using Aaru.Console;
using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
@@ -194,6 +195,22 @@ public partial class Dump
if(_resume.NextBlock > 0)
_dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
if(_createGraph)
{
Spiral.DiscParameters discSpiralParameters = Spiral.DiscParametersFromMediaType(dskType);
if(discSpiralParameters is not null)
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
bool newTrim = false;
DateTime timeSpeedStart = DateTime.UtcNow;
@@ -240,6 +257,7 @@ public partial class Dump
outputFormat.WriteSectors(readBuffer, i, blocksToRead);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
extents.Add(i, blocksToRead, true);
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
}
else
{
@@ -345,6 +363,7 @@ public partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(readBuffer, badSector);
_mediaGraph?.PaintSectorGood(badSector);
}
EndProgress?.Invoke();
@@ -512,6 +531,7 @@ public partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(readBuffer, badSector);
_mediaGraph?.PaintSectorGood(badSector);
UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector,
pass));

View File

@@ -41,6 +41,7 @@ using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Structs;
using Aaru.Console;
using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
@@ -208,6 +209,22 @@ public partial class Dump
if(_resume.NextBlock > 0)
_dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
if(_createGraph)
{
Spiral.DiscParameters discSpiralParameters = Spiral.DiscParametersFromMediaType(dskType);
if(discSpiralParameters is not null)
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
bool newTrim = false;
DateTime timeSpeedStart = DateTime.UtcNow;
@@ -254,6 +271,7 @@ public partial class Dump
outputOptical.WriteSectors(readBuffer, i, blocksToRead);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
extents.Add(i, blocksToRead, true);
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
}
else
{
@@ -357,6 +375,7 @@ public partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputOptical.WriteSector(readBuffer, badSector);
_mediaGraph?.PaintSectorGood(badSector);
}
EndProgress?.Invoke();
@@ -509,6 +528,7 @@ public partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputOptical.WriteSector(readBuffer, badSector);
_mediaGraph?.PaintSectorGood(badSector);
UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector,
pass));

View File

@@ -715,14 +715,15 @@ partial class Dump
Spiral.DiscParameters discSpiralParameters = Spiral.DiscParametersFromMediaType(dskType, discIs80Mm);
if(discSpiralParameters is not null)
{
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 1));
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
if(currentTry == null ||

View File

@@ -42,6 +42,7 @@ using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.MMC;
using Aaru.Decoders.SecureDigital;
@@ -598,6 +599,24 @@ public partial class Dump
_dumpLog.WriteLine(Localization.Core.Resuming_from_block_0, _resume.NextBlock);
}
if(_createGraph)
{
Spiral.DiscParameters discSpiralParameters =
Spiral.DiscParametersFromMediaType(_dev.Type == DeviceType.SecureDigital ? MediaType.SecureDigital
: MediaType.MMC);
if(discSpiralParameters is not null)
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
start = DateTime.UtcNow;
double imageWriteDuration = 0;
bool newTrim = false;
@@ -652,6 +671,7 @@ public partial class Dump
outputFormat.WriteSectors(cmdBuf, i, blocksToRead);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
extents.Add(i, blocksToRead, true);
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
}
else
{
@@ -753,6 +773,7 @@ public partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(cmdBuf, badSector);
_mediaGraph?.PaintSectorGood(badSector);
}
EndProgress?.Invoke();
@@ -809,6 +830,7 @@ public partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(cmdBuf, badSector);
_mediaGraph?.PaintSectorGood(badSector);
UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector,
pass));

View File

@@ -43,6 +43,7 @@ using Aaru.CommonTypes.Interop;
using Aaru.CommonTypes.Structs;
using Aaru.CommonTypes.Structs.Devices.SCSI;
using Aaru.Console;
using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.DVD;
using Aaru.Decoders.SCSI;
@@ -528,6 +529,22 @@ partial class Dump
extents == null)
StoppingErrorMessage?.Invoke(Localization.Core.Could_not_process_resume_file_not_continuing);
if(_createGraph)
{
Spiral.DiscParameters discSpiralParameters = Spiral.DiscParametersFromMediaType(dskType);
if(discSpiralParameters is not null)
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
else
_mediaGraph = new BlockMap((int)_dimensions, (int)_dimensions, blocks);
if(_mediaGraph is not null)
foreach(Tuple<ulong, ulong> e in extents.ToArray())
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
(outputFormat as IWritableOpticalImage).SetTracks(new List<Track>
{
new()
@@ -643,6 +660,7 @@ partial class Dump
outputFormat.WriteSectors(readBuffer, i, blocksToRead);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
extents.Add(i, blocksToRead, true);
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
}
else
{
@@ -726,6 +744,7 @@ partial class Dump
extents.Add(i, blocksToRead, true);
currentSector = i + 1;
_resume.NextBlock = currentSector;
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
}
if(!_aborted)
@@ -842,6 +861,7 @@ partial class Dump
outputFormat.WriteSectors(readBuffer, currentSector, blocksToRead);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
extents.Add(currentSector, blocksToRead, true);
_mediaGraph?.PaintSectorsGood(currentSector, blocksToRead);
}
else
{
@@ -976,6 +996,7 @@ partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(readBuffer, badSector);
_mediaGraph?.PaintSectorGood(badSector);
}
EndProgress?.Invoke();
@@ -1149,6 +1170,7 @@ partial class Dump
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
outputFormat.WriteSector(readBuffer, badSector);
_mediaGraph?.PaintSectorGood(badSector);
UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_block_0_in_pass_1, badSector,
pass));