mirror of
https://github.com/aaru-dps/Aaru.git
synced 2026-07-08 17:56:18 +00:00
Do not allow dumping or converting to image formats that do not properly support hidden tracks when there is a hidden track in the media. Fixes #719
This commit is contained in:
Submodule Aaru.CommonTypes updated: 36fdad4f3e...0aa8267f97
@@ -565,6 +565,14 @@ namespace Aaru.Core.Devices.Dumping
|
||||
_dumpLog.WriteLine("Disc contains a hidden track...");
|
||||
UpdateStatus?.Invoke("Disc contains a hidden track...");
|
||||
|
||||
if(!(_outputPlugin as IWritableOpticalImage).OpticalCapabilities.HasFlag(OpticalImageCapabilities.CanStoreHiddenTracks))
|
||||
{
|
||||
StoppingErrorMessage?.Invoke("Output format does not properly support storing hidden tracks, this will end in a loss of data, not continuing...");
|
||||
_dumpLog.WriteLine("Output format does not properly support storing hidden tracks, this will end in a loss of data, not continuing...");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
List<Track> trkList = new List<Track>
|
||||
{
|
||||
new Track
|
||||
|
||||
@@ -56,7 +56,8 @@ namespace Aaru.DiscImages
|
||||
OpticalImageCapabilities.CanStoreMultipleTracks |
|
||||
OpticalImageCapabilities.CanStoreNotCdSessions |
|
||||
OpticalImageCapabilities.CanStoreNotCdTracks |
|
||||
OpticalImageCapabilities.CanStoreIndexes;
|
||||
OpticalImageCapabilities.CanStoreIndexes |
|
||||
OpticalImageCapabilities.CanStoreHiddenTracks;
|
||||
/// <inheritdoc />
|
||||
public ImageInfo Info => _imageInfo;
|
||||
/// <inheritdoc />
|
||||
|
||||
@@ -633,6 +633,21 @@ namespace Aaru.Commands.Image
|
||||
AaruConsole.ErrorWriteLine("Output format does not support sessions, this will end in a loss of data, continuing...");*/
|
||||
}
|
||||
|
||||
if((outputFormat as IWritableOpticalImage)?.OpticalCapabilities.HasFlag(OpticalImageCapabilities.
|
||||
CanStoreHiddenTracks) != true &&
|
||||
(inputFormat as IOpticalMediaImage)?.Tracks?.Any(t => t.TrackSequence == 0) == true)
|
||||
{
|
||||
// TODO: Disabled until 6.0
|
||||
/*if(!_force)
|
||||
{*/
|
||||
AaruConsole.ErrorWriteLine("Output format does not support hidden tracks, this will end in a loss of data, not continuing...");
|
||||
|
||||
return (int)ErrorNumber.UnsupportedMedia;
|
||||
/*}
|
||||
|
||||
AaruConsole.ErrorWriteLine("Output format does not support hidden tracks, this will end in a loss of data, continuing...");*/
|
||||
}
|
||||
|
||||
if(!outputFormat.Create(outputPath, mediaType, parsedOptions, inputFormat.Info.Sectors,
|
||||
inputFormat.Info.SectorSize))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user