Implement IMediaGraph in Spiral.

This commit is contained in:
2022-12-05 20:11:59 +00:00
parent 14ab866e4a
commit 27a5165871
13 changed files with 136 additions and 92 deletions

View File

@@ -285,7 +285,7 @@ partial class Dump
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
_opticalDiscSpiral?.PaintSectorGood(i + r);
_mediaGraph?.PaintSectorGood(i + r);
}
else
{
@@ -398,9 +398,7 @@ partial class Dump
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
if(_opticalDiscSpiral is not null)
for(ulong p = 0; p < blocksToRead; p++)
_opticalDiscSpiral?.PaintSectorGood(i + p);
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
}
else
{

View File

@@ -555,7 +555,7 @@ partial class Dump
}
}
_opticalDiscSpiral?.PaintSectorGood(i + r);
_mediaGraph?.PaintSectorGood(i + r);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
}
@@ -589,7 +589,7 @@ partial class Dump
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
_opticalDiscSpiral?.PaintSectorBad(i + r);
_mediaGraph?.PaintSectorBad(i + r);
_resume.BadBlocks.Add(i + r);
@@ -718,9 +718,7 @@ partial class Dump
}
}
if(_opticalDiscSpiral is not null)
for(int p = 0; p < blocksToRead; p++)
_opticalDiscSpiral?.PaintSectorGood(i + (ulong)p);
_mediaGraph?.PaintSectorsGood(i, blocksToRead);
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
}

View File

@@ -1121,14 +1121,12 @@ sealed partial class Dump
if(discSpiralParameters is not null)
{
_opticalDiscSpiral = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
_mediaGraph = new Spiral((int)_dimensions, (int)_dimensions, discSpiralParameters, blocks);
foreach(Tuple<ulong, ulong> e in extents.ToArray())
for(ulong b = e.Item1; b <= e.Item2; b++)
_opticalDiscSpiral?.PaintSectorGood(b);
_mediaGraph?.PaintSectorsGood(e.Item1, (uint)(e.Item2 - e.Item1 + 2));
foreach(ulong b in _resume.BadBlocks)
_opticalDiscSpiral?.PaintSectorBad(b);
_mediaGraph?.PaintSectorsBad(_resume.BadBlocks);
}
}

View File

@@ -339,7 +339,7 @@ partial class Dump
{
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
_opticalDiscSpiral?.PaintSectorGood(badSector);
_mediaGraph?.PaintSectorGood(badSector);
UpdateStatus?.Invoke(string.Format(Localization.Core.Correctly_retried_sector_0_in_pass_1, badSector,
pass));

View File

@@ -77,7 +77,7 @@ partial class Dump
tmpBuf = new byte[cmdBuf.Length - 4];
Array.Copy(cmdBuf, 4, tmpBuf, 0, cmdBuf.Length - 4);
mediaTags.Add(MediaTagType.CD_ATIP, tmpBuf);
_opticalDiscSpiral?.PaintRecordableInformationGood();
_mediaGraph?.PaintRecordableInformationGood();
}
}
@@ -111,7 +111,7 @@ partial class Dump
tmpBuf = new byte[cmdBuf.Length - 4];
Array.Copy(cmdBuf, 4, tmpBuf, 0, cmdBuf.Length - 4);
mediaTags.Add(MediaTagType.CD_PMA, tmpBuf);
_opticalDiscSpiral?.PaintRecordableInformationGood();
_mediaGraph?.PaintRecordableInformationGood();
}
_dumpLog.WriteLine(Localization.Core.Reading_Session_Information);

View File

@@ -223,7 +223,7 @@ partial class Dump
{
_resume.BadBlocks.Remove(badSector);
extents.Add(badSector);
_opticalDiscSpiral?.PaintSectorGood(badSector);
_mediaGraph?.PaintSectorGood(badSector);
}
// Because one block has been partially used to fix the offset