From 24d1702838229272901bf7c6f1a04cf9a0209bad Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 5 Oct 2023 16:00:59 +0100 Subject: [PATCH] [Plugin system] Move filters to dependency injection. --- Aaru.CommonTypes | 2 +- Aaru.Core/Devices/Dumping/ATA.cs | 3 +- Aaru.Core/Devices/Dumping/Metadata.cs | 3 +- Aaru.Core/Devices/Dumping/MiniDisc.cs | 3 +- .../PlayStationPortable/MemoryStick.cs | 3 +- Aaru.Core/Devices/Dumping/SSC.cs | 3 +- Aaru.Core/Devices/Dumping/Sbc/Dump.cs | 3 +- Aaru.Core/Devices/Dumping/SecureDigital.cs | 3 +- Aaru.Generators/PluginRegisterGenerator.cs | 10 +- .../ViewModels/Windows/MainWindowViewModel.cs | 10 +- Aaru.Images/Alcohol120/Read.cs | 11 +- Aaru.Images/BlindWrite4/Read.cs | 177 ++++++++++-------- Aaru.Images/BlindWrite5/Read.cs | 92 ++++----- Aaru.Images/CDRDAO/Read.cs | 15 +- Aaru.Images/CDRWin/Read.cs | 16 +- Aaru.Images/CloneCD/Read.cs | 6 +- Aaru.Images/GDI/Read.cs | 9 +- Aaru.Images/VHD/Read.cs | 4 +- Aaru.Images/VHDX/Read.cs | 9 +- Aaru.Images/VMware/Read.cs | 9 +- Aaru.Images/ZZZRawImage/Read.cs | 3 +- Aaru.Localization/UI.Designer.cs | 9 + Aaru.Localization/UI.es.resx | 3 + Aaru.Localization/UI.resx | 3 + Aaru/Commands/Filesystem/ExtractFiles.cs | 4 +- Aaru/Commands/Filesystem/Info.cs | 4 +- Aaru/Commands/Filesystem/Ls.cs | 4 +- Aaru/Commands/Formats.cs | 8 +- Aaru/Commands/Image/Checksum.cs | 3 +- Aaru/Commands/Image/Compare.cs | 7 +- Aaru/Commands/Image/Convert.cs | 4 +- Aaru/Commands/Image/CreateSidecar.cs | 3 +- Aaru/Commands/Image/Decode.cs | 3 +- Aaru/Commands/Image/Entropy.cs | 3 +- Aaru/Commands/Image/Info.cs | 3 +- Aaru/Commands/Image/Print.cs | 3 +- Aaru/Commands/Image/Verify.cs | 3 +- 37 files changed, 229 insertions(+), 232 deletions(-) diff --git a/Aaru.CommonTypes b/Aaru.CommonTypes index d62669794..87c824236 160000 --- a/Aaru.CommonTypes +++ b/Aaru.CommonTypes @@ -1 +1 @@ -Subproject commit d62669794225537cecd9b74221863c23adc50a74 +Subproject commit 87c824236324891001bd0d0f84698d430e3704b0 diff --git a/Aaru.Core/Devices/Dumping/ATA.cs b/Aaru.Core/Devices/Dumping/ATA.cs index b7f4e6ea0..e59bd89fd 100644 --- a/Aaru.Core/Devices/Dumping/ATA.cs +++ b/Aaru.Core/Devices/Dumping/ATA.cs @@ -744,8 +744,7 @@ public partial class Dump { _dumpLog.WriteLine(Localization.Core.Creating_sidecar); UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); - var filters = new FiltersList(); - IFilter filter = filters.GetFilter(_outputPath); + IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); diff --git a/Aaru.Core/Devices/Dumping/Metadata.cs b/Aaru.Core/Devices/Dumping/Metadata.cs index 5f297034d..55ad16a82 100644 --- a/Aaru.Core/Devices/Dumping/Metadata.cs +++ b/Aaru.Core/Devices/Dumping/Metadata.cs @@ -60,8 +60,7 @@ partial class Dump int? discOffset) { _dumpLog.WriteLine(Localization.Core.Creating_sidecar); - var filters = new FiltersList(); - IFilter filter = filters.GetFilter(_outputPath); + IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); totalChkDuration = 0; if(ImageFormat.Detect(filter) is not IMediaImage inputPlugin) diff --git a/Aaru.Core/Devices/Dumping/MiniDisc.cs b/Aaru.Core/Devices/Dumping/MiniDisc.cs index 1f99af5c1..2ed6d82ef 100644 --- a/Aaru.Core/Devices/Dumping/MiniDisc.cs +++ b/Aaru.Core/Devices/Dumping/MiniDisc.cs @@ -752,8 +752,7 @@ partial class Dump { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); _dumpLog.WriteLine(Localization.Core.Creating_sidecar); - var filters = new FiltersList(); - IFilter filter = filters.GetFilter(_outputPath); + IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs index 17004bee1..f34f0b9de 100644 --- a/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs +++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs @@ -611,8 +611,7 @@ public partial class Dump { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); _dumpLog.WriteLine(Localization.Core.Creating_sidecar); - var filters = new FiltersList(); - IFilter filter = filters.GetFilter(_outputPath); + IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); diff --git a/Aaru.Core/Devices/Dumping/SSC.cs b/Aaru.Core/Devices/Dumping/SSC.cs index e87d04aca..011dc72e8 100644 --- a/Aaru.Core/Devices/Dumping/SSC.cs +++ b/Aaru.Core/Devices/Dumping/SSC.cs @@ -1375,8 +1375,7 @@ partial class Dump { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); _dumpLog.WriteLine(Localization.Core.Creating_sidecar); - var filters = new FiltersList(); - IFilter filter = filters.GetFilter(_outputPath); + IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); diff --git a/Aaru.Core/Devices/Dumping/Sbc/Dump.cs b/Aaru.Core/Devices/Dumping/Sbc/Dump.cs index 067cdb004..f51dcb145 100644 --- a/Aaru.Core/Devices/Dumping/Sbc/Dump.cs +++ b/Aaru.Core/Devices/Dumping/Sbc/Dump.cs @@ -1072,8 +1072,7 @@ partial class Dump { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); _dumpLog.WriteLine(Localization.Core.Creating_sidecar); - var filters = new FiltersList(); - IFilter filter = filters.GetFilter(_outputPath); + IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); diff --git a/Aaru.Core/Devices/Dumping/SecureDigital.cs b/Aaru.Core/Devices/Dumping/SecureDigital.cs index 51e324551..5cd21b5aa 100644 --- a/Aaru.Core/Devices/Dumping/SecureDigital.cs +++ b/Aaru.Core/Devices/Dumping/SecureDigital.cs @@ -914,8 +914,7 @@ public partial class Dump { UpdateStatus?.Invoke(Localization.Core.Creating_sidecar); _dumpLog.WriteLine(Localization.Core.Creating_sidecar); - var filters = new FiltersList(); - IFilter filter = filters.GetFilter(_outputPath); + IFilter filter = PluginRegister.Singleton.GetFilter(_outputPath); var inputPlugin = ImageFormat.Detect(filter) as IMediaImage; ErrorNumber opened = inputPlugin.Open(filter); diff --git a/Aaru.Generators/PluginRegisterGenerator.cs b/Aaru.Generators/PluginRegisterGenerator.cs index 59d97eeea..f92173fa5 100644 --- a/Aaru.Generators/PluginRegisterGenerator.cs +++ b/Aaru.Generators/PluginRegisterGenerator.cs @@ -152,16 +152,14 @@ public class PluginRegisterGenerator : ISourceGenerator if(filters?.Count > 0) { - sb.AppendLine(" public List GetAllFilterPlugins() => new()"); + sb.AppendLine(" public void RegisterFilterPlugins(IServiceCollection services)"); sb.AppendLine(" {"); - foreach(string plugin in filters) - sb.AppendLine($" typeof({plugin}),"); - - sb.AppendLine(" };"); + sb.AppendLine($" services.AddTransient();"); + sb.AppendLine(" }"); } else - sb.AppendLine(" public List GetAllFilterPlugins() => null;"); + sb.AppendLine(" public void RegisterFilterPlugins(IServiceCollection services) {}"); sb.AppendLine(); diff --git a/Aaru.Gui/ViewModels/Windows/MainWindowViewModel.cs b/Aaru.Gui/ViewModels/Windows/MainWindowViewModel.cs index 2b0da802f..2f29b49ac 100644 --- a/Aaru.Gui/ViewModels/Windows/MainWindowViewModel.cs +++ b/Aaru.Gui/ViewModels/Windows/MainWindowViewModel.cs @@ -543,8 +543,7 @@ public sealed class MainWindowViewModel : ViewModelBase if(result?.Length != 1) return; - var filtersList = new FiltersList(); - IFilter inputFilter = filtersList.GetFilter(result[0]); + IFilter inputFilter = PluginRegister.Singleton.GetFilter(result[0]); if(inputFilter == null) { @@ -606,10 +605,9 @@ public sealed class MainWindowViewModel : ViewModelBase List partitions = Core.Partitions.GetAll(imageFormat); Core.Partitions.AddSchemesToStats(partitions); - var checkRaw = false; - List idPlugins; - Type pluginType; - PluginBase.Init(); + var checkRaw = false; + List idPlugins; + Type pluginType; PluginRegister plugins = PluginRegister.Singleton; if(partitions.Count == 0) diff --git a/Aaru.Images/Alcohol120/Read.cs b/Aaru.Images/Alcohol120/Read.cs index 3419356f5..df8d44064 100644 --- a/Aaru.Images/Alcohol120/Read.cs +++ b/Aaru.Images/Alcohol120/Read.cs @@ -72,30 +72,22 @@ public sealed partial class Alcohol120 AaruConsole.DebugWriteLine(MODULE_NAME, "header.sessions = {0}", _header.sessions); for(var i = 0; i < _header.unknown1.Length; i++) - { AaruConsole.DebugWriteLine(MODULE_NAME, "header.unknown1[{1}] = 0x{0:X4}", _header.unknown1[i], i); - } AaruConsole.DebugWriteLine(MODULE_NAME, "header.bcaLength = {0}", _header.bcaLength); for(var i = 0; i < _header.unknown2.Length; i++) - { AaruConsole.DebugWriteLine(MODULE_NAME, "header.unknown2[{1}] = 0x{0:X8}", _header.unknown2[i], i); - } AaruConsole.DebugWriteLine(MODULE_NAME, "header.bcaOffset = {0}", _header.bcaOffset); for(var i = 0; i < _header.unknown3.Length; i++) - { AaruConsole.DebugWriteLine(MODULE_NAME, "header.unknown3[{1}] = 0x{0:X8}", _header.unknown3[i], i); - } AaruConsole.DebugWriteLine(MODULE_NAME, "header.structuresOffset = {0}", _header.structuresOffset); for(var i = 0; i < _header.unknown4.Length; i++) - { AaruConsole.DebugWriteLine(MODULE_NAME, "header.unknown4[{1}] = 0x{0:X8}", _header.unknown4[i], i); - } AaruConsole.DebugWriteLine(MODULE_NAME, "header.sessionOffset = {0}", _header.sessionOffset); AaruConsole.DebugWriteLine(MODULE_NAME, "header.dpmOffset = {0}", _header.dpmOffset); @@ -625,8 +617,7 @@ public sealed partial class Alcohol120 AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Data_filename_0, alcFile); - var filtersList = new FiltersList(); - _alcImage = filtersList.GetFilter(alcFile); + _alcImage = PluginRegister.Singleton.GetFilter(alcFile); if(_alcImage == null) { diff --git a/Aaru.Images/BlindWrite4/Read.cs b/Aaru.Images/BlindWrite4/Read.cs index 8026a402e..73fb0129a 100644 --- a/Aaru.Images/BlindWrite4/Read.cs +++ b/Aaru.Images/BlindWrite4/Read.cs @@ -327,9 +327,7 @@ public sealed partial class BlindWrite4 AaruConsole.DebugWriteLine(MODULE_NAME, "track.subchannel = {0}", track.subchannel); for(var j = 0; j < track.unknown1.Length; j++) - { AaruConsole.DebugWriteLine(MODULE_NAME, "track.unknown1[{1}] = 0x{0:X8}", track.unknown1[j], j); - } AaruConsole.DebugWriteLine(MODULE_NAME, "track.unknown2 = {0}", track.unknown2); AaruConsole.DebugWriteLine(MODULE_NAME, "track.unknown3 = {0}", track.unknown3); @@ -351,9 +349,7 @@ public sealed partial class BlindWrite4 AaruConsole.DebugWriteLine(MODULE_NAME, "track.startSector = {0}", track.startSector); for(var j = 0; j < track.unknown13.Length; j++) - { AaruConsole.DebugWriteLine(MODULE_NAME, "track.unknown13[{1}] = 0x{0:X8}", track.unknown13[j], j); - } AaruConsole.DebugWriteLine(MODULE_NAME, "track.titleLen = {0}", track.titleLen); AaruConsole.DebugWriteLine(MODULE_NAME, "track.title = {0}", track.title); @@ -389,54 +385,65 @@ public sealed partial class BlindWrite4 _bwTracks.Add(track); } - var filtersList = new FiltersList(); if(!string.IsNullOrEmpty(_header.DataFile)) { while(true) { - _dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.DataFile)); + _dataFilter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.DataFile)); if(_dataFilter != null) break; - _dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - _header.DataFile.ToLower(CultureInfo.CurrentCulture))); + _dataFilter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + _header.DataFile.ToLower(CultureInfo. + CurrentCulture))); if(_dataFilter != null) break; - _dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - _header.DataFile.ToUpper(CultureInfo.CurrentCulture))); + _dataFilter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + _header.DataFile.ToUpper(CultureInfo. + CurrentCulture))); if(_dataFilter != null) break; - _dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.DataFile.Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last())); + _dataFilter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + _header.DataFile.Split(new[] + { + '\\' + }, + StringSplitOptions. + RemoveEmptyEntries). + Last())); if(_dataFilter != null) break; - _dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.DataFile.Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last(). - ToLower(CultureInfo.CurrentCulture))); + _dataFilter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + _header.DataFile.Split(new[] + { + '\\' + }, + StringSplitOptions. + RemoveEmptyEntries). + Last(). + ToLower(CultureInfo.CurrentCulture))); if(_dataFilter != null) break; - _dataFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.DataFile.Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last(). - ToUpper(CultureInfo.CurrentCulture))); + _dataFilter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + _header.DataFile.Split(new[] + { + '\\' + }, + StringSplitOptions. + RemoveEmptyEntries). + Last(). + ToUpper(CultureInfo.CurrentCulture))); if(_dataFilter != null) break; @@ -455,31 +462,35 @@ public sealed partial class BlindWrite4 if(!string.IsNullOrEmpty(_header.SubchannelFile)) { - filtersList = new FiltersList(); - _subFilter = - ((((filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.SubchannelFile)) ?? - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - _header.SubchannelFile.ToLower(CultureInfo.CurrentCulture)))) ?? - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - _header.SubchannelFile.ToUpper(CultureInfo.CurrentCulture)))) ?? - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.SubchannelFile.Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last()))) ?? - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.SubchannelFile.Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last(). - ToLower(CultureInfo.CurrentCulture)))) ?? - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.SubchannelFile.Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last(). - ToUpper(CultureInfo.CurrentCulture))); + ((((PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + _header.SubchannelFile)) ?? + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + _header.SubchannelFile.ToLower(CultureInfo. + CurrentCulture)))) ?? + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + _header.SubchannelFile.ToUpper(CultureInfo. + CurrentCulture)))) ?? + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.SubchannelFile. + Split(new[] + { + '\\' + }, StringSplitOptions.RemoveEmptyEntries). + Last()))) ?? + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.SubchannelFile. + Split(new[] + { + '\\' + }, StringSplitOptions.RemoveEmptyEntries). + Last(). + ToLower(CultureInfo.CurrentCulture)))) ?? + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, _header.SubchannelFile. + Split(new[] + { + '\\' + }, StringSplitOptions.RemoveEmptyEntries). + Last(). + ToUpper(CultureInfo.CurrentCulture))); } Tracks = new List(); @@ -504,53 +515,63 @@ public sealed partial class BlindWrite4 { do { - track.Filter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, bwTrack.filename)); + track.Filter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + bwTrack.filename)); if(track.Filter != null) break; - track.Filter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - bwTrack.filename.ToLower(CultureInfo. - CurrentCulture))); + track.Filter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + bwTrack.filename.ToLower(CultureInfo. + CurrentCulture))); if(track.Filter != null) break; - track.Filter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - bwTrack.filename.ToUpper(CultureInfo. - CurrentCulture))); + track.Filter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + bwTrack.filename.ToUpper(CultureInfo. + CurrentCulture))); if(track.Filter != null) break; - track.Filter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, bwTrack.filename. - Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last())); + track.Filter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + bwTrack.filename.Split(new[] + { + '\\' + }, + StringSplitOptions. + RemoveEmptyEntries). + Last())); if(track.Filter != null) break; - track.Filter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, bwTrack.filename. - Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last(). - ToLower(CultureInfo.CurrentCulture))); + track.Filter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + bwTrack.filename.Split(new[] + { + '\\' + }, + StringSplitOptions. + RemoveEmptyEntries). + Last(). + ToLower(CultureInfo. + CurrentCulture))); if(track.Filter != null) break; - track.Filter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, bwTrack.filename. - Split(new[] - { - '\\' - }, StringSplitOptions.RemoveEmptyEntries). - Last(). - ToUpper(CultureInfo.CurrentCulture))); + track.Filter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + bwTrack.filename.Split(new[] + { + '\\' + }, + StringSplitOptions. + RemoveEmptyEntries). + Last(). + ToUpper(CultureInfo. + CurrentCulture))); track.Filter = _dataFilter; } while(true); diff --git a/Aaru.Images/BlindWrite5/Read.cs b/Aaru.Images/BlindWrite5/Read.cs index 30e4f5712..3f399c5c8 100644 --- a/Aaru.Images/BlindWrite5/Read.cs +++ b/Aaru.Images/BlindWrite5/Read.cs @@ -295,16 +295,12 @@ public sealed partial class BlindWrite5 AaruConsole.DebugWriteLine(MODULE_NAME, "dataFile.length = {0}", dataFile.Length); for(var i = 0; i < dataFile.Unknown1.Length; i++) - { AaruConsole.DebugWriteLine(MODULE_NAME, "dataFile.unknown1[{1}] = {0}", dataFile.Unknown1[i], i); - } AaruConsole.DebugWriteLine(MODULE_NAME, "dataFile.offset = {0}", dataFile.Offset); for(var i = 0; i < dataFile.Unknown2.Length; i++) - { AaruConsole.DebugWriteLine(MODULE_NAME, "dataFile.unknown2[{1}] = {0}", dataFile.Unknown2[i], i); - } AaruConsole.DebugWriteLine(MODULE_NAME, "dataFile.startLba = {0}", dataFile.StartLba); AaruConsole.DebugWriteLine(MODULE_NAME, "dataFile.sectors = {0}", dataFile.Sectors); @@ -470,40 +466,41 @@ public sealed partial class BlindWrite5 foreach(DataFile dataFile in _dataFiles) { - var chars = new DataFileCharacteristics(); - string path = Path.Combine(_dataPath, dataFile.Filename); - var filtersList = new FiltersList(); + var chars = new DataFileCharacteristics(); + string path = Path.Combine(_dataPath, dataFile.Filename); - if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) + if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) { - chars.FileFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); + chars.FileFilter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); chars.FilePath = path; } else { path = Path.Combine(_dataPath, dataFile.Filename.ToLower(CultureInfo.CurrentCulture)); - if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) + if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) { - chars.FileFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); + chars.FileFilter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); chars.FilePath = path; } else { path = Path.Combine(_dataPath, dataFile.Filename.ToUpper(CultureInfo.CurrentCulture)); - if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) + if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) { - chars.FileFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); - chars.FilePath = path; + chars.FileFilter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); + chars.FilePath = path; } else { path = Path.Combine(_dataPath.ToLower(CultureInfo.CurrentCulture), dataFile.Filename); - if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) + if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) { - chars.FileFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); + chars.FileFilter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); chars.FilePath = path; } @@ -511,9 +508,10 @@ public sealed partial class BlindWrite5 { path = Path.Combine(_dataPath.ToUpper(CultureInfo.CurrentCulture), dataFile.Filename); - if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) + if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)) != null) { - chars.FileFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); + chars.FileFilter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, path)); chars.FilePath = path; } @@ -521,59 +519,67 @@ public sealed partial class BlindWrite5 { path = Path.Combine(_dataPath, dataFile.Filename); - if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - path.ToLower(CultureInfo.CurrentCulture))) != + if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + path.ToLower(CultureInfo. + CurrentCulture))) != null) { chars.FilePath = path.ToLower(CultureInfo.CurrentCulture); chars.FileFilter = - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - path.ToLower(CultureInfo.CurrentCulture))); + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + path.ToLower(CultureInfo. + CurrentCulture))); } - else if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - path.ToUpper(CultureInfo.CurrentCulture))) != + else if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + path.ToUpper(CultureInfo. + CurrentCulture))) != null) { chars.FilePath = path.ToUpper(CultureInfo.CurrentCulture); chars.FileFilter = - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - path.ToUpper(CultureInfo.CurrentCulture))); + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + path.ToUpper(CultureInfo. + CurrentCulture))); } - else if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - dataFile.Filename.ToLower(CultureInfo. - CurrentCulture))) != + else if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + dataFile.Filename. + ToLower(CultureInfo. + CurrentCulture))) != null) { chars.FilePath = dataFile.Filename.ToLower(CultureInfo.CurrentCulture); chars.FileFilter = - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - dataFile.Filename.ToLower(CultureInfo. - CurrentCulture))); + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + dataFile.Filename. + ToLower(CultureInfo. + CurrentCulture))); } - else if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - dataFile.Filename.ToUpper(CultureInfo. - CurrentCulture))) != + else if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + dataFile.Filename. + ToUpper(CultureInfo. + CurrentCulture))) != null) { chars.FilePath = dataFile.Filename.ToUpper(CultureInfo.CurrentCulture); chars.FileFilter = - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - dataFile.Filename.ToUpper(CultureInfo. - CurrentCulture))); + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + dataFile.Filename. + ToUpper(CultureInfo. + CurrentCulture))); } - else if(filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - dataFile.Filename)) != + else if(PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + dataFile.Filename)) != null) { chars.FilePath = dataFile.Filename; chars.FileFilter = - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - dataFile.Filename)); + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + dataFile.Filename)); } else { @@ -978,9 +984,7 @@ public sealed partial class BlindWrite5 track.File = $"{filename}.{extension}"; if(trk.startLba >= 0) - { track.FileOffset = (ulong)(trk.startLba * splitStartChars.SectorSize + splitStartChars.Offset); - } else track.FileOffset = (ulong)(trk.startLba * -1 * splitStartChars.SectorSize); diff --git a/Aaru.Images/CDRDAO/Read.cs b/Aaru.Images/CDRDAO/Read.cs index f80168500..4debb968b 100644 --- a/Aaru.Images/CDRDAO/Read.cs +++ b/Aaru.Images/CDRDAO/Read.cs @@ -390,20 +390,18 @@ public sealed partial class Cdrdao } else { - FiltersList filtersList; - if(matchAudioFile.Success) { AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Found_AUDIOFILE_1_at_line_0, lineNumber, matchAudioFile.Groups["filename"].Value); - filtersList = new FiltersList(); currentTrack.Trackfile = new CdrdaoTrackFile { Datafilter = - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - matchAudioFile.Groups["filename"].Value)), + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + matchAudioFile.Groups["filename"]. + Value)), Datafile = matchAudioFile.Groups["filename"].Value, Offset = matchAudioFile.Groups["base_offset"].Value != "" ? ulong.Parse(matchAudioFile.Groups["base_offset"].Value) @@ -446,13 +444,12 @@ public sealed partial class Cdrdao AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Found_DATAFILE_1_at_line_0, lineNumber, matchFile.Groups["filename"].Value); - filtersList = new FiltersList(); - currentTrack.Trackfile = new CdrdaoTrackFile { Datafilter = - filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - matchFile.Groups["filename"].Value)), + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + matchFile.Groups["filename"]. + Value)), Datafile = matchAudioFile.Groups["filename"].Value, Offset = matchFile.Groups["base_offset"].Value != "" ? ulong.Parse(matchFile.Groups["base_offset"].Value) diff --git a/Aaru.Images/CDRWin/Read.cs b/Aaru.Images/CDRWin/Read.cs index ea31435ec..52eb6faaa 100644 --- a/Aaru.Images/CDRWin/Read.cs +++ b/Aaru.Images/CDRWin/Read.cs @@ -170,7 +170,6 @@ public sealed partial class CdrWin imageFilter.GetDataForkStream().Seek(0, SeekOrigin.Begin); _cueStream = new StreamReader(imageFilter.GetDataForkStream()); - var filtersList = new FiltersList(); var inTruripDiscHash = false; var inTruripTrackHash = false; var firstTrackInSession = false; @@ -539,7 +538,6 @@ public sealed partial class CdrWin inTrack = false; currentTrack = new CdrWinTrack(); currentFile = new CdrWinTrackFile(); - filtersList = new FiltersList(); } string datafile = matchFile.Groups[1].Value; @@ -549,7 +547,7 @@ public sealed partial class CdrWin if(datafile[0] == '"' && datafile[^1] == '"') datafile = datafile.Substring(1, datafile.Length - 2); // Unquote it - currentFile.DataFilter = filtersList.GetFilter(datafile); + currentFile.DataFilter = PluginRegister.Singleton.GetFilter(datafile); // Check if file exists if(currentFile.DataFilter == null) @@ -561,7 +559,8 @@ public sealed partial class CdrWin if(unixPathMatch.Success) { - currentFile.DataFilter = filtersList.GetFilter(unixPathMatch.Groups[1].Value); + currentFile.DataFilter = + PluginRegister.Singleton.GetFilter(unixPathMatch.Groups[1].Value); if(currentFile.DataFilter == null) { @@ -569,7 +568,7 @@ public sealed partial class CdrWin Path.PathSeparator + unixPathMatch.Groups[1].Value; - currentFile.DataFilter = filtersList.GetFilter(path); + currentFile.DataFilter = PluginRegister.Singleton.GetFilter(path); if(currentFile.DataFilter == null) { @@ -600,7 +599,8 @@ public sealed partial class CdrWin if(winPathMatch.Success) { - currentFile.DataFilter = filtersList.GetFilter(winPathMatch.Groups[1].Value); + currentFile.DataFilter = + PluginRegister.Singleton.GetFilter(winPathMatch.Groups[1].Value); if(currentFile.DataFilter == null) { @@ -608,7 +608,7 @@ public sealed partial class CdrWin Path.PathSeparator + winPathMatch.Groups[1].Value; - currentFile.DataFilter = filtersList.GetFilter(path); + currentFile.DataFilter = PluginRegister.Singleton.GetFilter(path); if(currentFile.DataFilter == null) { @@ -630,7 +630,7 @@ public sealed partial class CdrWin else { string path = imageFilter.ParentFolder + Path.PathSeparator + datafile; - currentFile.DataFilter = filtersList.GetFilter(path); + currentFile.DataFilter = PluginRegister.Singleton.GetFilter(path); if(currentFile.DataFilter == null) { diff --git a/Aaru.Images/CloneCD/Read.cs b/Aaru.Images/CloneCD/Read.cs index 5003d6af6..da459247d 100644 --- a/Aaru.Images/CloneCD/Read.cs +++ b/Aaru.Images/CloneCD/Read.cs @@ -423,8 +423,7 @@ public sealed partial class CloneCd string dataFile = Path.GetFileNameWithoutExtension(imageFilter.BasePath) + ".img"; string subFile = Path.GetFileNameWithoutExtension(imageFilter.BasePath) + ".sub"; - var filtersList = new FiltersList(); - _dataFilter = filtersList.GetFilter(dataFile); + _dataFilter = PluginRegister.Singleton.GetFilter(dataFile); if(_dataFilter == null) { @@ -433,8 +432,7 @@ public sealed partial class CloneCd return ErrorNumber.NoSuchFile; } - filtersList = new FiltersList(); - _subFilter = filtersList.GetFilter(subFile); + _subFilter = PluginRegister.Singleton.GetFilter(subFile); var curSessionNo = 0; var currentTrack = new Track(); diff --git a/Aaru.Images/GDI/Read.cs b/Aaru.Images/GDI/Read.cs index e66eed9b3..4480133d8 100644 --- a/Aaru.Images/GDI/Read.cs +++ b/Aaru.Images/GDI/Read.cs @@ -112,7 +112,6 @@ public sealed partial class Gdi trackMatch.Groups["filename"].Value, trackMatch.Groups["offset"].Value, lineNumber); - var filtersList = new FiltersList(); var currentTrack = new GdiTrack { @@ -121,10 +120,10 @@ public sealed partial class Gdi Offset = long.Parse(trackMatch.Groups["offset"].Value), Sequence = uint.Parse(trackMatch.Groups["track"].Value), StartSector = ulong.Parse(trackMatch.Groups["start"].Value), - TrackFilter = filtersList.GetFilter(Path.Combine(imageFilter.ParentFolder, - trackMatch.Groups["filename"]. - Value.Replace("\\\"", "\""). - Trim('"'))) + TrackFilter = PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, + trackMatch.Groups["filename"]. + Value.Replace("\\\"", "\""). + Trim('"'))) }; currentTrack.TrackFile = currentTrack.TrackFilter.Filename; diff --git a/Aaru.Images/VHD/Read.cs b/Aaru.Images/VHD/Read.cs index 9d6d675b2..d59ef0a4f 100644 --- a/Aaru.Images/VHD/Read.cs +++ b/Aaru.Images/VHD/Read.cs @@ -602,7 +602,7 @@ public sealed partial class Vhd AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Possible_parent_path_0, parentPath); IFilter parentFilter = - new FiltersList().GetFilter(Path.Combine(imageFilter.ParentFolder, parentPath)); + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, parentPath)); if(parentFilter != null) locatorFound = true; @@ -626,7 +626,7 @@ public sealed partial class Vhd _parentImage = new Vhd(); IFilter parentFilter = - new FiltersList().GetFilter(Path.Combine(imageFilter.ParentFolder, parentPath)); + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, parentPath)); if(parentFilter == null) { diff --git a/Aaru.Images/VHDX/Read.cs b/Aaru.Images/VHDX/Read.cs index 3a9f66948..36b01977f 100644 --- a/Aaru.Images/VHDX/Read.cs +++ b/Aaru.Images/VHDX/Read.cs @@ -304,7 +304,8 @@ public sealed partial class Vhdx try { - parentFilter = new FiltersList().GetFilter(Path.Combine(imageFilter.ParentFolder, entryValue)); + parentFilter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, entryValue)); if(parentFilter != null && _parentImage.Open(parentFilter) == ErrorNumber.NoError) { @@ -322,7 +323,8 @@ public sealed partial class Vhdx try { - parentFilter = new FiltersList().GetFilter(Path.Combine(imageFilter.ParentFolder, relEntry)); + parentFilter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, relEntry)); if(parentFilter == null || _parentImage.Open(parentFilter) != ErrorNumber.NoError) continue; @@ -346,7 +348,8 @@ public sealed partial class Vhdx try { - parentFilter = new FiltersList().GetFilter(Path.Combine(imageFilter.ParentFolder, entryValue)); + parentFilter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, entryValue)); if(parentFilter == null || _parentImage.Open(parentFilter) != ErrorNumber.NoError) continue; diff --git a/Aaru.Images/VMware/Read.cs b/Aaru.Images/VMware/Read.cs index 0f3efbd63..08009a4ca 100644 --- a/Aaru.Images/VMware/Read.cs +++ b/Aaru.Images/VMware/Read.cs @@ -144,7 +144,7 @@ public sealed partial class VMware if(!File.Exists(curPath)) break; - IFilter extentFilter = new FiltersList().GetFilter(curPath); + IFilter extentFilter = PluginRegister.Singleton.GetFilter(curPath); Stream extentStream = extentFilter.GetDataForkStream(); if(stream.Length > Marshal.SizeOf()) @@ -241,8 +241,8 @@ public sealed partial class VMware if(!embedded) { newExtent.Filter = - new FiltersList().GetFilter(Path.Combine(Path.GetDirectoryName(imageFilter.BasePath), - matchExtent.Groups["filename"].Value)); + PluginRegister.Singleton.GetFilter(Path.Combine(Path.GetDirectoryName(imageFilter.BasePath), + matchExtent.Groups["filename"].Value)); } else newExtent.Filter = imageFilter; @@ -529,7 +529,8 @@ public sealed partial class VMware if(_hasParent) { - IFilter parentFilter = new FiltersList().GetFilter(Path.Combine(imageFilter.ParentFolder, _parentName)); + IFilter parentFilter = + PluginRegister.Singleton.GetFilter(Path.Combine(imageFilter.ParentFolder, _parentName)); if(parentFilter == null) { diff --git a/Aaru.Images/ZZZRawImage/Read.cs b/Aaru.Images/ZZZRawImage/Read.cs index 9a8ca7316..731c7b50c 100644 --- a/Aaru.Images/ZZZRawImage/Read.cs +++ b/Aaru.Images/ZZZRawImage/Read.cs @@ -410,8 +410,7 @@ public sealed partial class ZZZRawImage { try { - var filters = new FiltersList(); - IFilter filter = filters.GetFilter(basename + sidecar.name); + IFilter filter = PluginRegister.Singleton.GetFilter(basename + sidecar.name); if(filter is null) continue; diff --git a/Aaru.Localization/UI.Designer.cs b/Aaru.Localization/UI.Designer.cs index c99e88ac8..ecfecf032 100644 --- a/Aaru.Localization/UI.Designer.cs +++ b/Aaru.Localization/UI.Designer.cs @@ -5627,6 +5627,15 @@ namespace Aaru.Localization { } } + /// + /// Looks up a localized string similar to Registering plugins.... + /// + public static string Registering_plugins { + get { + return ResourceManager.GetString("Registering_plugins", resourceCulture); + } + } + /// /// Looks up a localized string similar to Tests connection to a Aaru Remote Server.. /// diff --git a/Aaru.Localization/UI.es.resx b/Aaru.Localization/UI.es.resx index fe1d80951..22a50e1ae 100644 --- a/Aaru.Localization/UI.es.resx +++ b/Aaru.Localization/UI.es.resx @@ -2936,4 +2936,7 @@ Probadores: <De la imagen> + + Registrando extensiones... + \ No newline at end of file diff --git a/Aaru.Localization/UI.resx b/Aaru.Localization/UI.resx index 79f270442..647c2f741 100644 --- a/Aaru.Localization/UI.resx +++ b/Aaru.Localization/UI.resx @@ -3011,4 +3011,7 @@ Do you want to continue? Decryption keys not found. Trying to generate keys. + + Registering plugins... + \ No newline at end of file diff --git a/Aaru/Commands/Filesystem/ExtractFiles.cs b/Aaru/Commands/Filesystem/ExtractFiles.cs index fcc0ad676..8d2376286 100644 --- a/Aaru/Commands/Filesystem/ExtractFiles.cs +++ b/Aaru/Commands/Filesystem/ExtractFiles.cs @@ -136,13 +136,12 @@ sealed class ExtractFilesCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); AaruConsole.DebugWriteLine(MODULE_NAME, "--xattrs={0}", xattrs); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); Dictionary parsedOptions = Core.Options.Parse(options); @@ -179,7 +178,6 @@ sealed class ExtractFilesCommand : Command } } - PluginBase.Init(); PluginRegister plugins = PluginRegister.Singleton; try diff --git a/Aaru/Commands/Filesystem/Info.cs b/Aaru/Commands/Filesystem/Info.cs index 11e43b5bc..d949d4e0f 100644 --- a/Aaru/Commands/Filesystem/Info.cs +++ b/Aaru/Commands/Filesystem/Info.cs @@ -119,13 +119,12 @@ sealed class FilesystemInfoCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--partitions={0}", partitions); AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); if(inputFilter == null) @@ -154,7 +153,6 @@ sealed class FilesystemInfoCommand : Command } } - PluginBase.Init(); PluginRegister plugins = PluginRegister.Singleton; var checkRaw = false; diff --git a/Aaru/Commands/Filesystem/Ls.cs b/Aaru/Commands/Filesystem/Ls.cs index f5a38d3d4..3db7da4b0 100644 --- a/Aaru/Commands/Filesystem/Ls.cs +++ b/Aaru/Commands/Filesystem/Ls.cs @@ -125,13 +125,12 @@ sealed class LsCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); Statistics.AddCommand("ls"); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); Dictionary parsedOptions = Core.Options.Parse(options); @@ -168,7 +167,6 @@ sealed class LsCommand : Command } } - PluginBase.Init(); PluginRegister plugins = PluginRegister.Singleton; try diff --git a/Aaru/Commands/Formats.cs b/Aaru/Commands/Formats.cs index d36d8991b..68e421ab7 100644 --- a/Aaru/Commands/Formats.cs +++ b/Aaru/Commands/Formats.cs @@ -88,13 +88,11 @@ sealed class FormatsCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--debug={0}", debug); AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); - PluginBase.Init(); - PluginRegister plugins = PluginRegister.Singleton; - var filtersList = new FiltersList(); + PluginRegister plugins = PluginRegister.Singleton; Table table = new() { - Title = new TableTitle(string.Format(UI.Supported_filters_0, filtersList.Filters.Count)) + Title = new TableTitle(string.Format(UI.Supported_filters_0, PluginRegister.Singleton.Filters.Count)) }; if(verbose) @@ -102,7 +100,7 @@ sealed class FormatsCommand : Command table.AddColumn(UI.Title_Filter); - foreach(KeyValuePair kvp in filtersList.Filters) + foreach(KeyValuePair kvp in PluginRegister.Singleton.Filters) { if(verbose) table.AddRow(kvp.Value.Id.ToString(), Markup.Escape(kvp.Value.Name)); diff --git a/Aaru/Commands/Image/Checksum.cs b/Aaru/Commands/Image/Checksum.cs index 682990865..9a032d782 100644 --- a/Aaru/Commands/Image/Checksum.cs +++ b/Aaru/Commands/Image/Checksum.cs @@ -166,13 +166,12 @@ sealed class ChecksumCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); AaruConsole.DebugWriteLine(MODULE_NAME, "--whole-disc={0}", wholeDisc); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); if(inputFilter == null) diff --git a/Aaru/Commands/Image/Compare.cs b/Aaru/Commands/Image/Compare.cs index b773a2173..0742df68e 100644 --- a/Aaru/Commands/Image/Compare.cs +++ b/Aaru/Commands/Image/Compare.cs @@ -112,22 +112,19 @@ sealed class CompareCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--input2={0}", imagePath2); AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); - var filtersList = new FiltersList(); IFilter inputFilter1 = null; IFilter inputFilter2 = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_first_file_filter).IsIndeterminate(); - inputFilter1 = filtersList.GetFilter(imagePath1); + inputFilter1 = PluginRegister.Singleton.GetFilter(imagePath1); }); - filtersList = new FiltersList(); - Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_second_file_filter).IsIndeterminate(); - inputFilter2 = filtersList.GetFilter(imagePath2); + inputFilter2 = PluginRegister.Singleton.GetFilter(imagePath2); }); if(inputFilter1 == null) diff --git a/Aaru/Commands/Image/Convert.cs b/Aaru/Commands/Image/Convert.cs index af29d08ed..4957dc268 100644 --- a/Aaru/Commands/Image/Convert.cs +++ b/Aaru/Commands/Image/Convert.cs @@ -426,13 +426,12 @@ sealed class ConvertImageCommand : Command } } - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(inputPath); + inputFilter = PluginRegister.Singleton.GetFilter(inputPath); }); if(inputFilter == null) @@ -449,7 +448,6 @@ sealed class ConvertImageCommand : Command return (int)ErrorNumber.FileExists; } - PluginBase.Init(); PluginRegister plugins = PluginRegister.Singleton; IMediaImage inputFormat = null; IBaseImage baseImage = null; diff --git a/Aaru/Commands/Image/CreateSidecar.cs b/Aaru/Commands/Image/CreateSidecar.cs index 2804f9907..571247cd8 100644 --- a/Aaru/Commands/Image/CreateSidecar.cs +++ b/Aaru/Commands/Image/CreateSidecar.cs @@ -153,13 +153,12 @@ sealed class CreateSidecarCommand : Command return (int)ErrorNumber.NotDirectory; } - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); if(inputFilter == null) diff --git a/Aaru/Commands/Image/Decode.cs b/Aaru/Commands/Image/Decode.cs index 3a4695382..0b2e127ec 100644 --- a/Aaru/Commands/Image/Decode.cs +++ b/Aaru/Commands/Image/Decode.cs @@ -125,13 +125,12 @@ sealed class DecodeCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--start={0}", startSector); AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); if(inputFilter == null) diff --git a/Aaru/Commands/Image/Entropy.cs b/Aaru/Commands/Image/Entropy.cs index dc8331425..af2d8925d 100644 --- a/Aaru/Commands/Image/Entropy.cs +++ b/Aaru/Commands/Image/Entropy.cs @@ -117,13 +117,12 @@ sealed class EntropyCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); AaruConsole.DebugWriteLine(MODULE_NAME, "--whole-disc={0}", wholeDisc); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); if(inputFilter == null) diff --git a/Aaru/Commands/Image/Info.cs b/Aaru/Commands/Image/Info.cs index b77d557f3..e327cd82b 100644 --- a/Aaru/Commands/Image/Info.cs +++ b/Aaru/Commands/Image/Info.cs @@ -96,13 +96,12 @@ sealed class ImageInfoCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--input={0}", imagePath); AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); if(inputFilter == null) diff --git a/Aaru/Commands/Image/Print.cs b/Aaru/Commands/Image/Print.cs index 0c33de883..23202e10f 100644 --- a/Aaru/Commands/Image/Print.cs +++ b/Aaru/Commands/Image/Print.cs @@ -122,13 +122,12 @@ sealed class PrintHexCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--verbose={0}", verbose); AaruConsole.DebugWriteLine(MODULE_NAME, "--width={0}", width); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); if(inputFilter == null) diff --git a/Aaru/Commands/Image/Verify.cs b/Aaru/Commands/Image/Verify.cs index 9d98e8335..84e11304c 100644 --- a/Aaru/Commands/Image/Verify.cs +++ b/Aaru/Commands/Image/Verify.cs @@ -128,13 +128,12 @@ sealed class VerifyCommand : Command AaruConsole.DebugWriteLine(MODULE_NAME, "--create-graph={0}", createGraph); AaruConsole.DebugWriteLine(MODULE_NAME, "--dimensions={0}", dimensions); - var filtersList = new FiltersList(); IFilter inputFilter = null; Core.Spectre.ProgressSingleSpinner(ctx => { ctx.AddTask(UI.Identifying_file_filter).IsIndeterminate(); - inputFilter = filtersList.GetFilter(imagePath); + inputFilter = PluginRegister.Singleton.GetFilter(imagePath); }); if(inputFilter == null)