mirror of
https://github.com/SabreTools/MPF.git
synced 2026-02-04 05:35:52 +00:00
Use dated default output filenames
This commit is contained in:
@@ -63,6 +63,7 @@
|
||||
- Pre-compress all skeletons for multi-track CDs
|
||||
- Add DVD-Video to list of copy protection scanning systems
|
||||
- Update Redumper to build 660
|
||||
- Use dated default output filenames
|
||||
|
||||
### 3.5.0 (2025-10-10)
|
||||
|
||||
|
||||
@@ -146,9 +146,9 @@ namespace MPF.CLI.Features
|
||||
}
|
||||
|
||||
// Ensure we have the values we need
|
||||
if (CustomParams == null && (DevicePath == null || FilePath == null))
|
||||
if (CustomParams == null && DevicePath == null)
|
||||
{
|
||||
Console.Error.WriteLine("Both a device path and file path need to be supplied, exiting...");
|
||||
Console.Error.WriteLine("Either custom parameters or a device path need to be provided, exiting...");
|
||||
return false;
|
||||
}
|
||||
if (Options.InternalProgram == InternalProgram.DiscImageCreator
|
||||
@@ -160,6 +160,12 @@ namespace MPF.CLI.Features
|
||||
}
|
||||
|
||||
// Normalize the file path
|
||||
if (DevicePath != null && FilePath == null)
|
||||
{
|
||||
FilePath = $"track_{DateTime.Now:yyyyMMdd-HHmm}.bin";
|
||||
if (Options.DefaultOutputPath != null)
|
||||
FilePath = Path.Combine(Options.DefaultOutputPath, FilePath);
|
||||
}
|
||||
if (FilePath != null)
|
||||
FilePath = FrontendTool.NormalizeOutputPaths(FilePath, getFullPath: true);
|
||||
|
||||
@@ -247,7 +253,7 @@ namespace MPF.CLI.Features
|
||||
Console.WriteLine("-t, --mediatype <mediatype> Set media type for dumping (Required for DIC)");
|
||||
Console.WriteLine("-d, --device <devicepath> Physical drive path (Required if no custom parameters set)");
|
||||
Console.WriteLine("-m, --mounted <dirpath> Mounted filesystem path for additional checks");
|
||||
Console.WriteLine("-f, --file \"<filepath>\" Output file path (Required if no custom parameters set)");
|
||||
Console.WriteLine("-f, --file \"<filepath>\" Output file path (Recommended, uses defaults otherwise)");
|
||||
Console.WriteLine("-s, --speed <speed> Override default dumping speed");
|
||||
Console.WriteLine("-c, --custom \"<params>\" Custom parameters to use");
|
||||
Console.WriteLine();
|
||||
@@ -259,7 +265,7 @@ namespace MPF.CLI.Features
|
||||
|
||||
Console.WriteLine("Custom dumping parameters, if used, will fully replace the default parameters.");
|
||||
Console.WriteLine("All dumping parameters need to be supplied if doing this.");
|
||||
Console.WriteLine("Otherwise, both a drive path and output file path are required.");
|
||||
Console.WriteLine("Otherwise, a drive path is required.");
|
||||
Console.WriteLine();
|
||||
|
||||
Console.WriteLine("Mounted filesystem path is only recommended on OSes that require block");
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace MPF.CLI.Features
|
||||
|
||||
// Create return values
|
||||
MediaType = SabreTools.RedumpLib.Data.MediaType.NONE;
|
||||
FilePath = Path.Combine(Options.DefaultOutputPath ?? "ISO", "track.bin");
|
||||
FilePath = Path.Combine(Options.DefaultOutputPath ?? "ISO", $"track_{DateTime.Now:yyyyMMdd-HHmm}.bin");
|
||||
System = Options.DefaultSystem;
|
||||
|
||||
// Create state values
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
@@ -502,7 +503,7 @@ namespace MPF.ExecutionContexts.Redumper
|
||||
|
||||
// If the image name was not set, set it with a default value
|
||||
if (string.IsNullOrEmpty((_inputs[FlagStrings.ImageName] as StringInput)?.Value))
|
||||
(_inputs[FlagStrings.ImageName] as StringInput)?.SetValue("track");
|
||||
(_inputs[FlagStrings.ImageName] as StringInput)?.SetValue($"track_{DateTime.Now:yyyyMMdd-HHmm}");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1392,9 +1392,9 @@ namespace MPF.Frontend.ViewModels
|
||||
string programShort = program == "DiscImageCreator" ? "DIC" : program;
|
||||
if (string.IsNullOrEmpty(programShort))
|
||||
programShort = "Unknown Program";
|
||||
string label = GetFormattedVolumeLabel(_currentDrive) ?? "track";
|
||||
string label = GetFormattedVolumeLabel(_currentDrive) ?? $"track_{DateTime.Now:yyyyMMdd-HHmm}";
|
||||
if (string.IsNullOrEmpty(label))
|
||||
label = "track";
|
||||
label = $"track_{DateTime.Now:yyyyMMdd-HHmm}";
|
||||
string date = DateTime.Today.ToString("yyyyMMdd");
|
||||
if (string.IsNullOrEmpty(date))
|
||||
date = "UNKNOWN";
|
||||
@@ -1429,7 +1429,7 @@ namespace MPF.Frontend.ViewModels
|
||||
// Get path pieces that are used in all branches
|
||||
string defaultOutputPath = Options.DefaultOutputPath ?? "ISO";
|
||||
string extension = _environment?.GetDefaultExtension(CurrentMediaType) ?? ".bin";
|
||||
string label = GetFormattedVolumeLabel(CurrentDrive) ?? CurrentSystem.LongName() ?? "track";
|
||||
string label = GetFormattedVolumeLabel(CurrentDrive) ?? CurrentSystem.LongName() ?? $"track_{DateTime.Now:yyyyMMdd-HHmm}";
|
||||
string defaultFilename = $"{label}{extension}";
|
||||
|
||||
// If no path exists, set one using default values
|
||||
@@ -1997,7 +1997,7 @@ namespace MPF.Frontend.ViewModels
|
||||
/// <summary>
|
||||
/// Media label as read by Windows, formatted to avoid odd outputs
|
||||
/// If no volume label present, use PSX or PS2 serial if valid
|
||||
/// Otherwise, use "track" as volume label
|
||||
/// Otherwise, use "track" with current datetime as volume label
|
||||
/// </summary>
|
||||
private static string? GetFormattedVolumeLabel(Drive? drive)
|
||||
{
|
||||
@@ -2016,7 +2016,7 @@ namespace MPF.Frontend.ViewModels
|
||||
case RedumpSystem.SonyPlayStation:
|
||||
case RedumpSystem.SonyPlayStation2:
|
||||
string? ps12Serial = PhysicalTool.GetPlayStationSerial(drive);
|
||||
volumeLabel ??= ps12Serial ?? "track";
|
||||
volumeLabel ??= ps12Serial ?? $"track_{DateTime.Now:yyyyMMdd-HHmm}";
|
||||
break;
|
||||
|
||||
case RedumpSystem.SonyPlayStation3:
|
||||
@@ -2024,7 +2024,7 @@ namespace MPF.Frontend.ViewModels
|
||||
if (volumeLabel == "PS3VOLUME")
|
||||
volumeLabel = ps3Serial ?? volumeLabel;
|
||||
else
|
||||
volumeLabel ??= ps3Serial ?? "track";
|
||||
volumeLabel ??= ps3Serial ?? $"track_{DateTime.Now:yyyyMMdd-HHmm}";
|
||||
break;
|
||||
|
||||
case RedumpSystem.SonyPlayStation4:
|
||||
@@ -2032,7 +2032,7 @@ namespace MPF.Frontend.ViewModels
|
||||
if (volumeLabel == "PS4VOLUME")
|
||||
volumeLabel = ps4Serial ?? volumeLabel;
|
||||
else
|
||||
volumeLabel ??= ps4Serial ?? "track";
|
||||
volumeLabel ??= ps4Serial ?? $"track_{DateTime.Now:yyyyMMdd-HHmm}";
|
||||
break;
|
||||
|
||||
case RedumpSystem.SonyPlayStation5:
|
||||
@@ -2040,11 +2040,11 @@ namespace MPF.Frontend.ViewModels
|
||||
if (volumeLabel == "PS5VOLUME")
|
||||
volumeLabel = ps5Serial ?? volumeLabel;
|
||||
else
|
||||
volumeLabel ??= ps5Serial ?? "track";
|
||||
volumeLabel ??= ps5Serial ?? $"track_{DateTime.Now:yyyyMMdd-HHmm}";
|
||||
break;
|
||||
|
||||
default:
|
||||
volumeLabel ??= "track";
|
||||
volumeLabel ??= $"track_{DateTime.Now:yyyyMMdd-HHmm}";
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -312,11 +312,11 @@ namespace MPF.UI.Windows
|
||||
// Get the current path, if possible
|
||||
string currentPath = MainViewModel.OutputPath;
|
||||
if (string.IsNullOrEmpty(currentPath) && !string.IsNullOrEmpty(MainViewModel.Options.DefaultOutputPath))
|
||||
currentPath = Path.Combine(MainViewModel.Options.DefaultOutputPath, "track.bin");
|
||||
currentPath = Path.Combine(MainViewModel.Options.DefaultOutputPath, $"track_{DateTime.Now:yyyyMMdd-HHmm}.bin");
|
||||
else if (string.IsNullOrEmpty(currentPath))
|
||||
currentPath = "track.bin";
|
||||
currentPath = $"track_{DateTime.Now:yyyyMMdd-HHmm}.bin";
|
||||
if (string.IsNullOrEmpty(currentPath))
|
||||
currentPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory!, "track.bin");
|
||||
currentPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory!, $"track_{DateTime.Now:yyyyMMdd-HHmm}.bin");
|
||||
|
||||
// Get the full path
|
||||
currentPath = Path.GetFullPath(currentPath);
|
||||
@@ -588,7 +588,7 @@ namespace MPF.UI.Windows
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Build the about text
|
||||
/// Build the about text
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string CreateAboutText()
|
||||
|
||||
Reference in New Issue
Block a user