diff --git a/Aaru.Gui/ViewModels/Windows/ImageVerifyViewModel.cs b/Aaru.Gui/ViewModels/Windows/ImageVerifyViewModel.cs
index 633adaade..cc8a61556 100644
--- a/Aaru.Gui/ViewModels/Windows/ImageVerifyViewModel.cs
+++ b/Aaru.Gui/ViewModels/Windows/ImageVerifyViewModel.cs
@@ -38,6 +38,7 @@ using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading;
using System.Windows.Input;
+using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Structs;
using Aaru.Core;
@@ -125,6 +126,8 @@ public sealed partial class ImageVerifyViewModel : ViewModelBase
[ObservableProperty]
bool _verifyImageEnabled;
[ObservableProperty]
+ bool _VerifyOnlyDataChecked;
+ [ObservableProperty]
bool _verifySectorsChecked;
[ObservableProperty]
bool _verifySectorsEnabled;
@@ -133,19 +136,20 @@ public sealed partial class ImageVerifyViewModel : ViewModelBase
public ImageVerifyViewModel(IMediaImage inputFormat, Window view)
{
- _view = view;
- StartCommand = new RelayCommand(Start);
- CloseCommand = new RelayCommand(Close);
- StopCommand = new RelayCommand(Stop);
- _inputFormat = inputFormat;
- _cancel = false;
- ErrorList = [];
- UnknownList = [];
- VerifyImageEnabled = true;
- VerifySectorsEnabled = true;
- CloseVisible = true;
- StartVisible = true;
- OptionsVisible = true;
+ _view = view;
+ StartCommand = new RelayCommand(Start);
+ CloseCommand = new RelayCommand(Close);
+ StopCommand = new RelayCommand(Stop);
+ _inputFormat = inputFormat;
+ _cancel = false;
+ ErrorList = [];
+ UnknownList = [];
+ VerifyImageEnabled = true;
+ VerifySectorsEnabled = true;
+ VerifyOnlyDataChecked = true;
+ CloseVisible = true;
+ StartVisible = true;
+ OptionsVisible = true;
VerifySectorsVisible = _inputFormat is IOpticalMediaImage or IVerifiableSectorsImage;
}
@@ -285,6 +289,8 @@ public sealed partial class ImageVerifyViewModel : ViewModelBase
foreach(Track currentTrack in inputOptical.Tracks)
{
+ if(VerifyOnlyDataChecked && currentTrack.Type == TrackType.Audio) continue;
+
await Dispatcher.UIThread.InvokeAsync(() =>
{
ProgressText = string.Format(UI.Verifying_track_0_of_1,
diff --git a/Aaru.Gui/Views/Windows/ImageVerify.xaml b/Aaru.Gui/Views/Windows/ImageVerify.xaml
index 44cf725b3..69a1e2fc6 100644
--- a/Aaru.Gui/Views/Windows/ImageVerify.xaml
+++ b/Aaru.Gui/Views/Windows/ImageVerify.xaml
@@ -54,7 +54,7 @@
RowSpacing="8"
Margin="12">
+
+
+
Encriptación
+
+ Verificar sólo pistas de datos.
+
\ No newline at end of file
diff --git a/Aaru.Localization/UI.resx b/Aaru.Localization/UI.resx
index 5bdf06d8e..fa017cf6b 100644
--- a/Aaru.Localization/UI.resx
+++ b/Aaru.Localization/UI.resx
@@ -3413,4 +3413,7 @@ Do you want to continue?
Encryption
+
+ Verify only data tracks.
+
\ No newline at end of file
diff --git a/Aaru/Commands/Image/Verify.cs b/Aaru/Commands/Image/Verify.cs
index 5f9126744..dae56cba0 100644
--- a/Aaru/Commands/Image/Verify.cs
+++ b/Aaru/Commands/Image/Verify.cs
@@ -66,6 +66,7 @@ sealed class VerifyCommand : Command
AaruLogging.Debug(MODULE_NAME, "--verify-sectors={0}", settings.VerifySectors);
AaruLogging.Debug(MODULE_NAME, "--create-graph={0}", settings.CreateGraph);
AaruLogging.Debug(MODULE_NAME, "--dimensions={0}", settings.Dimensions);
+ AaruLogging.Debug(MODULE_NAME, " --data-only={0}", settings.DataOnly);
IFilter inputFilter = null;
@@ -215,6 +216,8 @@ sealed class VerifyCommand : Command
foreach(Track currentTrack in inputTracks)
{
+ if(settings.DataOnly && currentTrack.Type == TrackType.Audio) continue;
+
discTask.Description =
string.Format(UI.Checking_track_0_of_1, discTask.Value + 1, inputTracks.Count);
@@ -395,16 +398,18 @@ sealed class VerifyCommand : Command
if(failingLbas.Count == (int)inputFormat.Info.Sectors)
AaruLogging.Verbose($"\t[red]{UI.all_sectors}[/]");
else
- foreach(ulong t in failingLbas)
- AaruLogging.Verbose("\t{0}", t);
+ {
+ foreach(ulong t in failingLbas) AaruLogging.Verbose("\t{0}", t);
+ }
AaruLogging.WriteLine($"[yellow3_1]{UI.LBAs_without_checksum}[/]");
if(unknownLbas.Count == (int)inputFormat.Info.Sectors)
AaruLogging.Verbose($"\t[yellow3_1]{UI.all_sectors}[/]");
else
- foreach(ulong t in unknownLbas)
- AaruLogging.Verbose("\t{0}", t);
+ {
+ foreach(ulong t in unknownLbas) AaruLogging.Verbose("\t{0}", t);
+ }
}
var table = new Table();
@@ -467,6 +472,10 @@ sealed class VerifyCommand : Command
[DefaultValue(1080)]
[CommandOption("-d|--dimensions")]
public int Dimensions { get; init; }
+ [LocalizedDescription(nameof(UI.Verify_only_data_help))]
+ [DefaultValue(true)]
+ [CommandOption("-t|--data-only")]
+ public bool DataOnly { get; init; }
[LocalizedDescription(nameof(UI.Media_image_path))]
[CommandArgument(0, "")]
public string ImagePath { get; init; }