diff --git a/CHANGELIST.md b/CHANGELIST.md index 5fc773fc..9c553914 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -29,6 +29,7 @@ - Custom theme colors - Use speed for CLI from configuration - Fix minimum number of args checks +- Move GetDefaultSpeedForMediaType to common location ### 3.2.0 (2024-06-20) diff --git a/MPF.CLI/Program.cs b/MPF.CLI/Program.cs index ac841c28..67aad996 100644 --- a/MPF.CLI/Program.cs +++ b/MPF.CLI/Program.cs @@ -104,26 +104,7 @@ namespace MPF.CLI string filepath = args[3].Trim('"'); // Get the speed from the options - int speed = mediaType switch - { - // CD dump speed - MediaType.CDROM => options.PreferredDumpSpeedCD, - MediaType.GDROM => options.PreferredDumpSpeedCD, - - // DVD dump speed - MediaType.DVD => options.PreferredDumpSpeedDVD, - MediaType.NintendoGameCubeGameDisc => options.PreferredDumpSpeedDVD, - MediaType.NintendoWiiOpticalDisc => options.PreferredDumpSpeedDVD, - - // HD-DVD dump speed - MediaType.HDDVD => options.PreferredDumpSpeedHDDVD, - - // BD dump speed - MediaType.BluRay => options.PreferredDumpSpeedBD, - - // Default - _ => options.PreferredDumpSpeedCD, - }; + int speed = FrontendTool.GetDefaultSpeedForMediaType(mediaType, options); // Now populate an environment var drive = Drive.Create(null, path); diff --git a/MPF.Frontend/Tools/FrontendTool.cs b/MPF.Frontend/Tools/FrontendTool.cs index fa43de9e..e6837a73 100644 --- a/MPF.Frontend/Tools/FrontendTool.cs +++ b/MPF.Frontend/Tools/FrontendTool.cs @@ -11,6 +11,33 @@ namespace MPF.Frontend.Tools { #region Information Extraction + /// + /// Get the default speed for a given media type from the supplied options + /// + public static int GetDefaultSpeedForMediaType(MediaType? mediaType, Options options) + { + return mediaType switch + { + // CD dump speed + MediaType.CDROM => options.PreferredDumpSpeedCD, + MediaType.GDROM => options.PreferredDumpSpeedCD, + + // DVD dump speed + MediaType.DVD => options.PreferredDumpSpeedDVD, + MediaType.NintendoGameCubeGameDisc => options.PreferredDumpSpeedDVD, + MediaType.NintendoWiiOpticalDisc => options.PreferredDumpSpeedDVD, + + // HD-DVD dump speed + MediaType.HDDVD => options.PreferredDumpSpeedHDDVD, + + // BD dump speed + MediaType.BluRay => options.PreferredDumpSpeedBD, + + // Default + _ => options.PreferredDumpSpeedCD, + }; + } + /// /// Get the current system from the drive volume label /// diff --git a/MPF.Frontend/ViewModels/MainViewModel.cs b/MPF.Frontend/ViewModels/MainViewModel.cs index 65b36fb4..56de8869 100644 --- a/MPF.Frontend/ViewModels/MainViewModel.cs +++ b/MPF.Frontend/ViewModels/MainViewModel.cs @@ -1969,26 +1969,7 @@ namespace MPF.Frontend.ViewModels VerboseLogLn($"Supported media speeds: {string.Join(", ", this.DriveSpeeds.Select(ds => ds.ToString()).ToArray())}"); // Set the selected speed - int speed = (CurrentMediaType) switch - { - // CD dump speed - MediaType.CDROM => Options.PreferredDumpSpeedCD, - MediaType.GDROM => Options.PreferredDumpSpeedCD, - - // DVD dump speed - MediaType.DVD => Options.PreferredDumpSpeedDVD, - MediaType.NintendoGameCubeGameDisc => Options.PreferredDumpSpeedDVD, - MediaType.NintendoWiiOpticalDisc => Options.PreferredDumpSpeedDVD, - - // HD-DVD dump speed - MediaType.HDDVD => Options.PreferredDumpSpeedHDDVD, - - // BD dump speed - MediaType.BluRay => Options.PreferredDumpSpeedBD, - - // Default - _ => Options.PreferredDumpSpeedCD, - }; + int speed = FrontendTool.GetDefaultSpeedForMediaType(CurrentMediaType, Options); VerboseLogLn($"Setting drive speed to: {speed}"); this.DriveSpeed = speed;