diff --git a/CHANGELIST.md b/CHANGELIST.md
index 51fd5871..3265d5ba 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -60,6 +60,7 @@
- Remove other reference to execution context
- Make processor private to DumpEnvironment
- Make context private to DumpEnvironment
+- Make media type private to DumpEnvironment
### 3.1.9a (2024-05-21)
diff --git a/MPF.Core/DumpEnvironment.cs b/MPF.Core/DumpEnvironment.cs
index 4da5e31a..93efb3d1 100644
--- a/MPF.Core/DumpEnvironment.cs
+++ b/MPF.Core/DumpEnvironment.cs
@@ -40,11 +40,6 @@ namespace MPF.Core
///
public RedumpSystem? System { get; }
- ///
- /// Currently selected media type
- ///
- public MediaType? Type { get; }
-
///
/// ExecutionContext object representing how to invoke the internal program
///
@@ -65,6 +60,11 @@ namespace MPF.Core
///
private BaseProcessor? _processor;
+ ///
+ /// Currently selected media type
+ ///
+ private readonly MediaType? _type;
+
#endregion
#region Passthrough Fields
@@ -139,7 +139,7 @@ namespace MPF.Core
// UI information
Drive = drive;
System = system ?? options.DefaultSystem;
- Type = type ?? MediaType.NONE;
+ _type = type ?? MediaType.NONE;
_internalProgram = internalProgram ?? options.InternalProgram;
// Dumping program
@@ -158,21 +158,21 @@ namespace MPF.Core
InternalProgram? programFound = null;
if (programFound == null && _internalProgram != InternalProgram.Aaru)
{
- var processor = new Processors.Aaru(System, Type);
+ var processor = new Processors.Aaru(System, _type);
(bool foundOtherFiles, _) = processor.FoundAllFiles(outputDirectory, outputFilename, true);
if (foundOtherFiles)
programFound = InternalProgram.Aaru;
}
if (programFound == null && _internalProgram != InternalProgram.DiscImageCreator)
{
- var processor = new Processors.DiscImageCreator(System, Type);
+ var processor = new Processors.DiscImageCreator(System, _type);
(bool foundOtherFiles, _) = processor.FoundAllFiles(outputDirectory, outputFilename, true);
if (foundOtherFiles)
programFound = InternalProgram.DiscImageCreator;
}
if (programFound == null && _internalProgram != InternalProgram.Redumper)
{
- var processor = new Processors.Redumper(System, Type);
+ var processor = new Processors.Redumper(System, _type);
(bool foundOtherFiles, _) = processor.FoundAllFiles(outputDirectory, outputFilename, true);
if (foundOtherFiles)
programFound = InternalProgram.Redumper;
@@ -202,7 +202,7 @@ namespace MPF.Core
if (_executionContext != null)
{
_executionContext.System = System;
- _executionContext.Type = Type;
+ _executionContext.Type = _type;
}
return _executionContext != null;
@@ -215,13 +215,13 @@ namespace MPF.Core
{
_processor = _internalProgram switch
{
- InternalProgram.Aaru => new Processors.Aaru(System, Type),
- InternalProgram.CleanRip => new CleanRip(System, Type),
- InternalProgram.DiscImageCreator => new DiscImageCreator(System, Type),
- InternalProgram.PS3CFW => new PS3CFW(System, Type),
- InternalProgram.Redumper => new Redumper(System, Type),
- InternalProgram.UmdImageCreator => new UmdImageCreator(System, Type),
- InternalProgram.XboxBackupCreator => new XboxBackupCreator(System, Type),
+ InternalProgram.Aaru => new Processors.Aaru(System, _type),
+ InternalProgram.CleanRip => new CleanRip(System, _type),
+ InternalProgram.DiscImageCreator => new DiscImageCreator(System, _type),
+ InternalProgram.PS3CFW => new PS3CFW(System, _type),
+ InternalProgram.Redumper => new Redumper(System, _type),
+ InternalProgram.UmdImageCreator => new UmdImageCreator(System, _type),
+ InternalProgram.XboxBackupCreator => new XboxBackupCreator(System, _type),
// If no dumping program found, set to null
InternalProgram.NONE => null,
@@ -239,7 +239,7 @@ namespace MPF.Core
public string? GetFullParameters(int? driveSpeed)
{
// Populate with the correct params for inputs (if we're not on the default option)
- if (System != null && Type != MediaType.NONE)
+ if (System != null && _type != MediaType.NONE)
{
// If drive letter is invalid, skip this
if (Drive == null)
@@ -248,9 +248,9 @@ namespace MPF.Core
// Set the proper parameters
_executionContext = _internalProgram switch
{
- InternalProgram.Aaru => new ExecutionContexts.Aaru.ExecutionContext(System, Type, Drive.Name, OutputPath, driveSpeed, _options),
- InternalProgram.DiscImageCreator => new ExecutionContexts.DiscImageCreator.ExecutionContext(System, Type, Drive.Name, OutputPath, driveSpeed, _options),
- InternalProgram.Redumper => new ExecutionContexts.Redumper.ExecutionContext(System, Type, Drive.Name, OutputPath, driveSpeed, _options),
+ InternalProgram.Aaru => new ExecutionContexts.Aaru.ExecutionContext(System, _type, Drive.Name, OutputPath, driveSpeed, _options),
+ InternalProgram.DiscImageCreator => new ExecutionContexts.DiscImageCreator.ExecutionContext(System, _type, Drive.Name, OutputPath, driveSpeed, _options),
+ InternalProgram.Redumper => new ExecutionContexts.Redumper.ExecutionContext(System, _type, Drive.Name, OutputPath, driveSpeed, _options),
// If no dumping program found, set to null
InternalProgram.NONE => null,
@@ -268,6 +268,9 @@ namespace MPF.Core
#region Passthrough Functionality
+ ///
+ public bool DoesSupportDriveSpeed() => _type.DoesSupportDriveSpeed();
+
///
public bool FoundAllFiles(string? outputDirectory, string outputFilename, bool preCheck)
{
@@ -295,6 +298,9 @@ namespace MPF.Core
return _executionContext.GetMediaType();
}
+ ///
+ public ResultEventArgs GetSupportStatus() => Tools.GetSupportStatus(System, _type);
+
///
public bool IsDumpingCommand()
{
@@ -414,7 +420,7 @@ namespace MPF.Core
OutputPath,
Drive,
System,
- Type,
+ _type,
_options,
_processor,
resultProgress,
@@ -529,7 +535,7 @@ namespace MPF.Core
}
// Create PS3 IRD, if required
- if (_options.CreateIRDAfterDumping && System == RedumpSystem.SonyPlayStation3 && Type == MediaType.BluRay)
+ if (_options.CreateIRDAfterDumping && System == RedumpSystem.SonyPlayStation3 && _type == MediaType.BluRay)
{
resultProgress?.Report(ResultEventArgs.Success("Creating IRD... please wait!"));
(bool deleteSuccess, string deleteResult) = await InfoTool.WriteIRD(OutputPath, submissionInfo?.Extras?.DiscKey, submissionInfo?.Extras?.DiscID, submissionInfo?.Extras?.PIC, submissionInfo?.SizeAndChecksums?.Layerbreak, submissionInfo?.SizeAndChecksums?.CRC32);
@@ -554,11 +560,11 @@ namespace MPF.Core
return false;
bool parametersValid = _executionContext?.IsValid() ?? false;
- bool floppyValid = !(Drive.InternalDriveType == InternalDriveType.Floppy ^ Type == MediaType.FloppyDisk);
+ bool floppyValid = !(Drive.InternalDriveType == InternalDriveType.Floppy ^ _type == MediaType.FloppyDisk);
// TODO: HardDisk being in the Removable category is a hack, fix this later
bool removableDiskValid = !((Drive.InternalDriveType == InternalDriveType.Removable || Drive.InternalDriveType == InternalDriveType.HardDisk)
- ^ (Type == MediaType.CompactFlash || Type == MediaType.SDCard || Type == MediaType.FlashDrive || Type == MediaType.HardDisk));
+ ^ (_type == MediaType.CompactFlash || _type == MediaType.SDCard || _type == MediaType.FlashDrive || _type == MediaType.HardDisk));
return parametersValid && floppyValid && removableDiskValid;
}
@@ -631,7 +637,7 @@ namespace MPF.Core
return ResultEventArgs.Failure("Error! Cannot dump same drive that executable resides on!");
// Validate that the current configuration is supported
- return Tools.GetSupportStatus(System, Type);
+ return Tools.GetSupportStatus(System, _type);
}
///
diff --git a/MPF.Core/UI/ViewModels/MainViewModel.cs b/MPF.Core/UI/ViewModels/MainViewModel.cs
index c1c29de5..0ef699de 100644
--- a/MPF.Core/UI/ViewModels/MainViewModel.cs
+++ b/MPF.Core/UI/ViewModels/MainViewModel.cs
@@ -1328,7 +1328,7 @@ namespace MPF.Core.UI.ViewModels
_environment = DetermineEnvironment();
// Get the status to write out
- ResultEventArgs result = Tools.GetSupportStatus(_environment.System, _environment.Type);
+ ResultEventArgs result = _environment.GetSupportStatus();
if (this.CurrentProgram == InternalProgram.NONE)
this.Status = "No dumping program found";
else
@@ -1338,7 +1338,7 @@ namespace MPF.Core.UI.ViewModels
this.StartStopButtonEnabled = result && ShouldEnableDumpingButton();
// If we're in a type that doesn't support drive speeds
- this.DriveSpeedComboBoxEnabled = _environment.Type.DoesSupportDriveSpeed();
+ this.DriveSpeedComboBoxEnabled = _environment.DoesSupportDriveSpeed();
// If input params are not enabled, generate the full parameters from the environment
if (!this.ParametersCheckBoxEnabled)