47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
namespace AmigaDB.VideoRenderer.Models;
|
|
|
|
public sealed record AppSettings(
|
|
string OutputFolder,
|
|
string EndCardPath,
|
|
string FfmpegPath,
|
|
string FfprobePath,
|
|
string PreviewPlayerPath,
|
|
string Theme,
|
|
string Encoder,
|
|
string TrimStart,
|
|
string FadeSeconds,
|
|
string EndCardHoldSeconds,
|
|
string ThumbnailInterval,
|
|
bool? MoveSourcesToOriginals)
|
|
{
|
|
public bool ShouldMoveSourcesToOriginals => MoveSourcesToOriginals != false;
|
|
|
|
public static AppSettings Default(string outputFolder) => new(
|
|
outputFolder,
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"Dark",
|
|
"Auto",
|
|
"4.414",
|
|
"3",
|
|
"4",
|
|
"10",
|
|
true);
|
|
|
|
public AppSettings Normalize(string fallbackOutputFolder) => new(
|
|
string.IsNullOrWhiteSpace(OutputFolder) ? fallbackOutputFolder : OutputFolder,
|
|
EndCardPath ?? "",
|
|
FfmpegPath ?? "",
|
|
FfprobePath ?? "",
|
|
PreviewPlayerPath ?? "",
|
|
string.IsNullOrWhiteSpace(Theme) ? "Dark" : Theme,
|
|
string.IsNullOrWhiteSpace(Encoder) ? "Auto" : Encoder,
|
|
string.IsNullOrWhiteSpace(TrimStart) ? "4.414" : TrimStart,
|
|
string.IsNullOrWhiteSpace(FadeSeconds) ? "3" : FadeSeconds,
|
|
string.IsNullOrWhiteSpace(EndCardHoldSeconds) ? "4" : EndCardHoldSeconds,
|
|
string.IsNullOrWhiteSpace(ThumbnailInterval) ? "10" : ThumbnailInterval,
|
|
MoveSourcesToOriginals ?? true);
|
|
}
|