Load config file, if found, on first use

Former-commit-id: e363440118
This commit is contained in:
Malte Rosenbjerg 2021-08-07 16:39:10 +02:00
parent 3516440ca1
commit d73d7fa30e
2 changed files with 18 additions and 13 deletions

View file

@ -8,18 +8,11 @@ namespace FFMpegCore
public static class GlobalFFOptions public static class GlobalFFOptions
{ {
private static readonly string ConfigFile = "ffmpeg.config.json"; private static readonly string ConfigFile = "ffmpeg.config.json";
private static FFOptions? _current;
public static FFOptions Current { get; private set; } public static FFOptions Current
static GlobalFFOptions()
{ {
if (File.Exists(ConfigFile)) get { return _current ??= LoadFFOptions(); }
{
Current = JsonSerializer.Deserialize<FFOptions>(File.ReadAllText(ConfigFile))!;
}
else
{
Current = new FFOptions();
}
} }
public static void Configure(Action<FFOptions> optionsAction) public static void Configure(Action<FFOptions> optionsAction)
@ -28,7 +21,7 @@ public static void Configure(Action<FFOptions> optionsAction)
} }
public static void Configure(FFOptions ffOptions) public static void Configure(FFOptions ffOptions)
{ {
Current = ffOptions ?? throw new ArgumentNullException(nameof(ffOptions)); _current = ffOptions ?? throw new ArgumentNullException(nameof(ffOptions));
} }
@ -48,5 +41,17 @@ private static string GetFFBinaryPath(string name, FFOptions ffOptions)
return Path.Combine(ffOptions.BinaryFolder, ffName); return Path.Combine(ffOptions.BinaryFolder, ffName);
} }
private static FFOptions LoadFFOptions()
{
if (File.Exists(ConfigFile))
{
return JsonSerializer.Deserialize<FFOptions>(File.ReadAllText(ConfigFile))!;
}
else
{
return new FFOptions();
}
}
} }
} }