diff --git a/CHANGELIST.md b/CHANGELIST.md
index 953661f7..bdd61ff0 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -15,6 +15,7 @@
- Add deleteable file lists for Redumper and DIC
- Add optional file deletion
- Rearrange OptionsWindow to be easier to navigate
+- Fix up DumpEnvironment a bit
### 2.7.2 (2023-10-17)
diff --git a/MPF.Core/DumpEnvironment.cs b/MPF.Core/DumpEnvironment.cs
index e650b2e5..ab78e17e 100644
--- a/MPF.Core/DumpEnvironment.cs
+++ b/MPF.Core/DumpEnvironment.cs
@@ -147,53 +147,6 @@ namespace MPF.Core
#region Public Functionality
- ///
- /// Adjust output paths if we're using DiscImageCreator
- ///
- public void AdjustPathsForDiscImageCreator()
- {
- // Only DiscImageCreator has issues with paths
- if (Parameters?.InternalProgram != InternalProgram.DiscImageCreator)
- return;
-
- try
- {
- // Normalize the output path
- string outputPath = InfoTool.NormalizeOutputPaths(OutputPath, true);
-
- // Replace all instances in the output directory
- var outputDirectory = Path.GetDirectoryName(outputPath);
- outputDirectory = outputDirectory?.Replace(".", "_");
-
- // Replace all instances in the output filename
- string outputFilename = Path.GetFileNameWithoutExtension(outputPath);
- outputFilename = outputFilename.Replace(".", "_");
-
- // Get the extension for recreating the path
- string outputExtension = Path.GetExtension(outputPath).TrimStart('.');
-
- // Rebuild the output path
- if (string.IsNullOrWhiteSpace(outputDirectory))
- {
- if (string.IsNullOrWhiteSpace(outputExtension))
- OutputPath = outputFilename;
- else
- OutputPath = $"{outputFilename}.{outputExtension}";
- }
- else
- {
- if (string.IsNullOrWhiteSpace(outputExtension))
- OutputPath = Path.Combine(outputDirectory, outputFilename);
- else
- OutputPath = Path.Combine(outputDirectory, $"{outputFilename}.{outputExtension}");
- }
-
- // Assign the path to the filename as well for dumping
- ((Modules.DiscImageCreator.Parameters)Parameters).Filename = OutputPath;
- }
- catch { }
- }
-
///
/// Set the parameters object based on the internal program and parameters string
///
@@ -322,7 +275,7 @@ namespace MPF.Core
return null;
}
-#endregion
+ #endregion
#region Dumping
@@ -339,7 +292,7 @@ namespace MPF.Core
#else
public async Task EjectDisc() =>
#endif
- await RunStandaloneDiscImageCreatorCommand(Modules.DiscImageCreator.CommandStrings.Eject);
+ await RunStandaloneDiscImageCreatorCommand(Modules.DiscImageCreator.CommandStrings.Eject);
///
/// Reset the current drive using DiscImageCreator
@@ -450,7 +403,7 @@ namespace MPF.Core
if (seedInfo != null)
{
resultProgress?.Report(Result.Success("Injecting user-supplied information..."));
- InjectSubmissionInformation(submissionInfo, seedInfo);
+ SubmissionInfoTool.InjectSubmissionInformation(submissionInfo, seedInfo);
resultProgress?.Report(Result.Success("Information injection complete!"));
}
@@ -608,79 +561,6 @@ namespace MPF.Core
return output;
}
- ///
- /// Inject information from a seed SubmissionInfo into the existing one
- ///
- /// Existing submission information
- /// User-supplied submission information
-#if NET48
- private static void InjectSubmissionInformation(SubmissionInfo info, SubmissionInfo seed)
-#else
- private static void InjectSubmissionInformation(SubmissionInfo? info, SubmissionInfo? seed)
-#endif
- {
- // If we have any invalid info
- if (seed == null)
- return;
-
- // Ensure that required sections exist
- info = SubmissionInfoTool.EnsureAllSections(info);
-
- // Otherwise, inject information as necessary
- if (info.CommonDiscInfo != null && seed.CommonDiscInfo != null)
- {
- // Info that only overwrites if supplied
- if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Title)) info.CommonDiscInfo.Title = seed.CommonDiscInfo.Title;
- if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.ForeignTitleNonLatin)) info.CommonDiscInfo.ForeignTitleNonLatin = seed.CommonDiscInfo.ForeignTitleNonLatin;
- if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.DiscNumberLetter)) info.CommonDiscInfo.DiscNumberLetter = seed.CommonDiscInfo.DiscNumberLetter;
- if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.DiscTitle)) info.CommonDiscInfo.DiscTitle = seed.CommonDiscInfo.DiscTitle;
- if (seed.CommonDiscInfo.Category != null) info.CommonDiscInfo.Category = seed.CommonDiscInfo.Category;
- if (seed.CommonDiscInfo.Region != null) info.CommonDiscInfo.Region = seed.CommonDiscInfo.Region;
- if (seed.CommonDiscInfo.Languages != null) info.CommonDiscInfo.Languages = seed.CommonDiscInfo.Languages;
- if (seed.CommonDiscInfo.LanguageSelection != null) info.CommonDiscInfo.LanguageSelection = seed.CommonDiscInfo.LanguageSelection;
- if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Serial)) info.CommonDiscInfo.Serial = seed.CommonDiscInfo.Serial;
- if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Barcode)) info.CommonDiscInfo.Barcode = seed.CommonDiscInfo.Barcode;
- if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Comments)) info.CommonDiscInfo.Comments = seed.CommonDiscInfo.Comments;
- if (seed.CommonDiscInfo.CommentsSpecialFields != null) info.CommonDiscInfo.CommentsSpecialFields = seed.CommonDiscInfo.CommentsSpecialFields;
- if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Contents)) info.CommonDiscInfo.Contents = seed.CommonDiscInfo.Contents;
- if (seed.CommonDiscInfo.ContentsSpecialFields != null) info.CommonDiscInfo.ContentsSpecialFields = seed.CommonDiscInfo.ContentsSpecialFields;
-
- // Info that always overwrites
- info.CommonDiscInfo.Layer0MasteringRing = seed.CommonDiscInfo.Layer0MasteringRing;
- info.CommonDiscInfo.Layer0MasteringSID = seed.CommonDiscInfo.Layer0MasteringSID;
- info.CommonDiscInfo.Layer0ToolstampMasteringCode = seed.CommonDiscInfo.Layer0ToolstampMasteringCode;
- info.CommonDiscInfo.Layer0MouldSID = seed.CommonDiscInfo.Layer0MouldSID;
- info.CommonDiscInfo.Layer0AdditionalMould = seed.CommonDiscInfo.Layer0AdditionalMould;
-
- info.CommonDiscInfo.Layer1MasteringRing = seed.CommonDiscInfo.Layer1MasteringRing;
- info.CommonDiscInfo.Layer1MasteringSID = seed.CommonDiscInfo.Layer1MasteringSID;
- info.CommonDiscInfo.Layer1ToolstampMasteringCode = seed.CommonDiscInfo.Layer1ToolstampMasteringCode;
- info.CommonDiscInfo.Layer1MouldSID = seed.CommonDiscInfo.Layer1MouldSID;
- info.CommonDiscInfo.Layer1AdditionalMould = seed.CommonDiscInfo.Layer1AdditionalMould;
-
- info.CommonDiscInfo.Layer2MasteringRing = seed.CommonDiscInfo.Layer2MasteringRing;
- info.CommonDiscInfo.Layer2MasteringSID = seed.CommonDiscInfo.Layer2MasteringSID;
- info.CommonDiscInfo.Layer2ToolstampMasteringCode = seed.CommonDiscInfo.Layer2ToolstampMasteringCode;
-
- info.CommonDiscInfo.Layer3MasteringRing = seed.CommonDiscInfo.Layer3MasteringRing;
- info.CommonDiscInfo.Layer3MasteringSID = seed.CommonDiscInfo.Layer3MasteringSID;
- info.CommonDiscInfo.Layer3ToolstampMasteringCode = seed.CommonDiscInfo.Layer3ToolstampMasteringCode;
- }
-
- if (info.VersionAndEditions != null && seed.VersionAndEditions != null)
- {
- // Info that only overwrites if supplied
- if (!string.IsNullOrWhiteSpace(seed.VersionAndEditions.Version)) info.VersionAndEditions.Version = seed.VersionAndEditions.Version;
- if (!string.IsNullOrWhiteSpace(seed.VersionAndEditions.OtherEditions)) info.VersionAndEditions.OtherEditions = seed.VersionAndEditions.OtherEditions;
- }
-
- if (info.CopyProtection != null && seed.CopyProtection != null)
- {
- // Info that only overwrites if supplied
- if (!string.IsNullOrWhiteSpace(seed.CopyProtection.Protection)) info.CopyProtection.Protection = seed.CopyProtection.Protection;
- }
- }
-
///
/// Validate the current environment is ready for a dump
///
diff --git a/MPF.Core/SubmissionInfoTool.cs b/MPF.Core/SubmissionInfoTool.cs
index f9f70d5d..ee50261f 100644
--- a/MPF.Core/SubmissionInfoTool.cs
+++ b/MPF.Core/SubmissionInfoTool.cs
@@ -1555,6 +1555,79 @@ namespace MPF.Core
return true;
}
+ ///
+ /// Inject information from a seed SubmissionInfo into the existing one
+ ///
+ /// Existing submission information
+ /// User-supplied submission information
+#if NET48
+ public static void InjectSubmissionInformation(SubmissionInfo info, SubmissionInfo seed)
+#else
+ public static void InjectSubmissionInformation(SubmissionInfo? info, SubmissionInfo? seed)
+#endif
+ {
+ // If we have any invalid info
+ if (seed == null)
+ return;
+
+ // Ensure that required sections exist
+ info = SubmissionInfoTool.EnsureAllSections(info);
+
+ // Otherwise, inject information as necessary
+ if (info.CommonDiscInfo != null && seed.CommonDiscInfo != null)
+ {
+ // Info that only overwrites if supplied
+ if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Title)) info.CommonDiscInfo.Title = seed.CommonDiscInfo.Title;
+ if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.ForeignTitleNonLatin)) info.CommonDiscInfo.ForeignTitleNonLatin = seed.CommonDiscInfo.ForeignTitleNonLatin;
+ if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.DiscNumberLetter)) info.CommonDiscInfo.DiscNumberLetter = seed.CommonDiscInfo.DiscNumberLetter;
+ if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.DiscTitle)) info.CommonDiscInfo.DiscTitle = seed.CommonDiscInfo.DiscTitle;
+ if (seed.CommonDiscInfo.Category != null) info.CommonDiscInfo.Category = seed.CommonDiscInfo.Category;
+ if (seed.CommonDiscInfo.Region != null) info.CommonDiscInfo.Region = seed.CommonDiscInfo.Region;
+ if (seed.CommonDiscInfo.Languages != null) info.CommonDiscInfo.Languages = seed.CommonDiscInfo.Languages;
+ if (seed.CommonDiscInfo.LanguageSelection != null) info.CommonDiscInfo.LanguageSelection = seed.CommonDiscInfo.LanguageSelection;
+ if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Serial)) info.CommonDiscInfo.Serial = seed.CommonDiscInfo.Serial;
+ if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Barcode)) info.CommonDiscInfo.Barcode = seed.CommonDiscInfo.Barcode;
+ if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Comments)) info.CommonDiscInfo.Comments = seed.CommonDiscInfo.Comments;
+ if (seed.CommonDiscInfo.CommentsSpecialFields != null) info.CommonDiscInfo.CommentsSpecialFields = seed.CommonDiscInfo.CommentsSpecialFields;
+ if (!string.IsNullOrWhiteSpace(seed.CommonDiscInfo.Contents)) info.CommonDiscInfo.Contents = seed.CommonDiscInfo.Contents;
+ if (seed.CommonDiscInfo.ContentsSpecialFields != null) info.CommonDiscInfo.ContentsSpecialFields = seed.CommonDiscInfo.ContentsSpecialFields;
+
+ // Info that always overwrites
+ info.CommonDiscInfo.Layer0MasteringRing = seed.CommonDiscInfo.Layer0MasteringRing;
+ info.CommonDiscInfo.Layer0MasteringSID = seed.CommonDiscInfo.Layer0MasteringSID;
+ info.CommonDiscInfo.Layer0ToolstampMasteringCode = seed.CommonDiscInfo.Layer0ToolstampMasteringCode;
+ info.CommonDiscInfo.Layer0MouldSID = seed.CommonDiscInfo.Layer0MouldSID;
+ info.CommonDiscInfo.Layer0AdditionalMould = seed.CommonDiscInfo.Layer0AdditionalMould;
+
+ info.CommonDiscInfo.Layer1MasteringRing = seed.CommonDiscInfo.Layer1MasteringRing;
+ info.CommonDiscInfo.Layer1MasteringSID = seed.CommonDiscInfo.Layer1MasteringSID;
+ info.CommonDiscInfo.Layer1ToolstampMasteringCode = seed.CommonDiscInfo.Layer1ToolstampMasteringCode;
+ info.CommonDiscInfo.Layer1MouldSID = seed.CommonDiscInfo.Layer1MouldSID;
+ info.CommonDiscInfo.Layer1AdditionalMould = seed.CommonDiscInfo.Layer1AdditionalMould;
+
+ info.CommonDiscInfo.Layer2MasteringRing = seed.CommonDiscInfo.Layer2MasteringRing;
+ info.CommonDiscInfo.Layer2MasteringSID = seed.CommonDiscInfo.Layer2MasteringSID;
+ info.CommonDiscInfo.Layer2ToolstampMasteringCode = seed.CommonDiscInfo.Layer2ToolstampMasteringCode;
+
+ info.CommonDiscInfo.Layer3MasteringRing = seed.CommonDiscInfo.Layer3MasteringRing;
+ info.CommonDiscInfo.Layer3MasteringSID = seed.CommonDiscInfo.Layer3MasteringSID;
+ info.CommonDiscInfo.Layer3ToolstampMasteringCode = seed.CommonDiscInfo.Layer3ToolstampMasteringCode;
+ }
+
+ if (info.VersionAndEditions != null && seed.VersionAndEditions != null)
+ {
+ // Info that only overwrites if supplied
+ if (!string.IsNullOrWhiteSpace(seed.VersionAndEditions.Version)) info.VersionAndEditions.Version = seed.VersionAndEditions.Version;
+ if (!string.IsNullOrWhiteSpace(seed.VersionAndEditions.OtherEditions)) info.VersionAndEditions.OtherEditions = seed.VersionAndEditions.OtherEditions;
+ }
+
+ if (info.CopyProtection != null && seed.CopyProtection != null)
+ {
+ // Info that only overwrites if supplied
+ if (!string.IsNullOrWhiteSpace(seed.CopyProtection.Protection)) info.CopyProtection.Protection = seed.CopyProtection.Protection;
+ }
+ }
+
#endregion
#region Helpers