mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Fix disc size calculation in BlindWrite images.
This commit is contained in:
@@ -411,42 +411,32 @@ namespace Aaru.DiscImages
|
|||||||
if(_dataFilter != null)
|
if(_dataFilter != null)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
_dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.
|
_dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.DataFile.
|
||||||
DataFile.Split(new[]
|
Split(new[]
|
||||||
{
|
{
|
||||||
'\\'
|
'\\'
|
||||||
},
|
}, StringSplitOptions.RemoveEmptyEntries).
|
||||||
StringSplitOptions.
|
|
||||||
RemoveEmptyEntries).
|
|
||||||
Last()));
|
Last()));
|
||||||
|
|
||||||
if(_dataFilter != null)
|
if(_dataFilter != null)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
_dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.
|
_dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.DataFile.
|
||||||
DataFile.Split(new[]
|
Split(new[]
|
||||||
{
|
{
|
||||||
'\\'
|
'\\'
|
||||||
},
|
}, StringSplitOptions.RemoveEmptyEntries).
|
||||||
StringSplitOptions.
|
Last().ToLower(CultureInfo.CurrentCulture)));
|
||||||
RemoveEmptyEntries).
|
|
||||||
Last().
|
|
||||||
ToLower(CultureInfo.
|
|
||||||
CurrentCulture)));
|
|
||||||
|
|
||||||
if(_dataFilter != null)
|
if(_dataFilter != null)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
_dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.
|
_dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.DataFile.
|
||||||
DataFile.Split(new[]
|
Split(new[]
|
||||||
{
|
{
|
||||||
'\\'
|
'\\'
|
||||||
},
|
}, StringSplitOptions.RemoveEmptyEntries).
|
||||||
StringSplitOptions.
|
Last().ToUpper(CultureInfo.CurrentCulture)));
|
||||||
RemoveEmptyEntries).
|
|
||||||
Last().
|
|
||||||
ToUpper(CultureInfo.
|
|
||||||
CurrentCulture)));
|
|
||||||
|
|
||||||
if(_dataFilter != null)
|
if(_dataFilter != null)
|
||||||
break;
|
break;
|
||||||
@@ -467,32 +457,21 @@ namespace Aaru.DiscImages
|
|||||||
) ?? filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
) ?? filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||||
_header.SubchannelFile.
|
_header.SubchannelFile.
|
||||||
ToUpper(CultureInfo.CurrentCulture)))) ??
|
ToUpper(CultureInfo.CurrentCulture)))) ??
|
||||||
filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.
|
filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.SubchannelFile.
|
||||||
SubchannelFile.Split(new[]
|
Split(new[]
|
||||||
{
|
{
|
||||||
'\\'
|
'\\'
|
||||||
},
|
}, StringSplitOptions.RemoveEmptyEntries).Last()))) ??
|
||||||
StringSplitOptions.
|
filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.SubchannelFile.
|
||||||
RemoveEmptyEntries).
|
Split(new[]
|
||||||
Last()))
|
|
||||||
) ?? filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.
|
|
||||||
SubchannelFile.Split(new[]
|
|
||||||
{
|
{
|
||||||
'\\'
|
'\\'
|
||||||
},
|
}, StringSplitOptions.RemoveEmptyEntries).Last().
|
||||||
StringSplitOptions.
|
ToLower(CultureInfo.CurrentCulture)))) ??
|
||||||
RemoveEmptyEntries).
|
filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.SubchannelFile.Split(new[]
|
||||||
Last().ToLower(CultureInfo.
|
|
||||||
CurrentCulture)))
|
|
||||||
) ?? filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), _header.
|
|
||||||
SubchannelFile.Split(new[]
|
|
||||||
{
|
{
|
||||||
'\\'
|
'\\'
|
||||||
},
|
}, StringSplitOptions.RemoveEmptyEntries).Last().ToUpper(CultureInfo.CurrentCulture)));
|
||||||
StringSplitOptions.
|
|
||||||
RemoveEmptyEntries).
|
|
||||||
Last().ToUpper(CultureInfo.
|
|
||||||
CurrentCulture)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Tracks = new List<Track>();
|
Tracks = new List<Track>();
|
||||||
@@ -555,8 +534,7 @@ namespace Aaru.DiscImages
|
|||||||
StringSplitOptions.
|
StringSplitOptions.
|
||||||
RemoveEmptyEntries).
|
RemoveEmptyEntries).
|
||||||
Last().
|
Last().
|
||||||
ToLower(CultureInfo.
|
ToLower(CultureInfo.CurrentCulture)));
|
||||||
CurrentCulture)));
|
|
||||||
|
|
||||||
if(track.TrackFilter != null)
|
if(track.TrackFilter != null)
|
||||||
break;
|
break;
|
||||||
@@ -569,8 +547,7 @@ namespace Aaru.DiscImages
|
|||||||
StringSplitOptions.
|
StringSplitOptions.
|
||||||
RemoveEmptyEntries).
|
RemoveEmptyEntries).
|
||||||
Last().
|
Last().
|
||||||
ToUpper(CultureInfo.
|
ToUpper(CultureInfo.CurrentCulture)));
|
||||||
CurrentCulture)));
|
|
||||||
|
|
||||||
track.TrackFilter = _dataFilter;
|
track.TrackFilter = _dataFilter;
|
||||||
} while(true);
|
} while(true);
|
||||||
@@ -703,7 +680,8 @@ namespace Aaru.DiscImages
|
|||||||
if(!_trackFlags.ContainsKey(track.TrackSequence))
|
if(!_trackFlags.ContainsKey(track.TrackSequence))
|
||||||
_trackFlags.Add(track.TrackSequence, (byte)(bwTrack.adrCtl & 0x0F));
|
_trackFlags.Add(track.TrackSequence, (byte)(bwTrack.adrCtl & 0x0F));
|
||||||
|
|
||||||
_imageInfo.Sectors += (ulong)((bwTrack.lastSector - bwTrack.startSector) + 1);
|
if(bwTrack.lastSector > _imageInfo.Sectors)
|
||||||
|
_imageInfo.Sectors = bwTrack.lastSector + 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -831,10 +831,12 @@ namespace Aaru.DiscImages
|
|||||||
if(track.TrackStartSector >= trk.pregap)
|
if(track.TrackStartSector >= trk.pregap)
|
||||||
track.TrackStartSector -= trk.pregap;
|
track.TrackStartSector -= trk.pregap;
|
||||||
|
|
||||||
|
if(track.TrackEndSector > _imageInfo.Sectors)
|
||||||
|
_imageInfo.Sectors = track.TrackEndSector + 1;
|
||||||
|
|
||||||
Tracks.Add(track);
|
Tracks.Add(track);
|
||||||
Partitions.Add(partition);
|
Partitions.Add(partition);
|
||||||
_offsetmap.Add(track.TrackSequence, track.TrackStartSector);
|
_offsetmap.Add(track.TrackSequence, track.TrackStartSector);
|
||||||
_imageInfo.Sectors += partition.Length;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user