diff --git a/src/Parameters.cs b/src/Parameters.cs index 7fa8b4b..612c13c 100644 --- a/src/Parameters.cs +++ b/src/Parameters.cs @@ -22,32 +22,18 @@ internal sealed class DemuxOptions public string? audioLang; } - internal sealed class DemuxOptionsBinder : BinderBase + internal sealed class DemuxOptionsBinder(Option key1Option, Option key2Option, Option outputFolderOption, Option mkvEngineOption, Option mergeOption, Option subsOption, Option noCleanupOption, Option audioFormatOption, Option videoFormatOption, Option audioLangOption) : BinderBase { - private Option Key1Option { get; } - private Option Key2Option { get; } - private Option OutputFolderOption { get; } - private Option MkvEngineOption { get; } - private Option MergeOption { get; } - private Option SubsOption { get; } - private Option NoCleanupOption { get; } - private Option AudioFormatOption { get; } - private Option VideoFormatOption { get; } - private Option AudioLangOption { get; } - - public DemuxOptionsBinder(Option key1Option, Option key2Option, Option outputFolderOption, Option mkvEngineOption, Option mergeOption, Option subsOption, Option noCleanupOption, Option audioFormatOption, Option videoFormatOption, Option audioLangOption) - { - Key1Option = key1Option; - Key2Option = key2Option; - OutputFolderOption = outputFolderOption; - MkvEngineOption = mkvEngineOption; - MergeOption = mergeOption; - SubsOption = subsOption; - NoCleanupOption = noCleanupOption; - AudioFormatOption = audioFormatOption; - VideoFormatOption = videoFormatOption; - AudioLangOption = audioLangOption; - } + private Option Key1Option { get; } = key1Option; + private Option Key2Option { get; } = key2Option; + private Option OutputFolderOption { get; } = outputFolderOption; + private Option MkvEngineOption { get; } = mkvEngineOption; + private Option MergeOption { get; } = mergeOption; + private Option SubsOption { get; } = subsOption; + private Option NoCleanupOption { get; } = noCleanupOption; + private Option AudioFormatOption { get; } = audioFormatOption; + private Option VideoFormatOption { get; } = videoFormatOption; + private Option AudioLangOption { get; } = audioLangOption; protected override DemuxOptions GetBoundValue(BindingContext bindingContext) => new DemuxOptions @@ -65,16 +51,39 @@ protected override DemuxOptions GetBoundValue(BindingContext bindingContext) => }; } - //internal sealed class BatchDemuxOptions - //{ - // usmFolderArg, - // subsOption, - // mergeOption, - // mkvEngineOption, - // audioFormatOption, - // videoFormatOption, - // outputFolderOption, - // noCleanupOption, - // audioLangOption - //} + internal sealed class BatchDemuxOptions + { + public DirectoryInfo? output; + public bool? subs; + public bool? merge; + public string? engine; + public string? audioFormat; + public string? videoFormat; + public bool? noCleanup; + public string? audioLang; + } + + internal sealed class BatchDemuxOptionsBinder(Option outputFolderOption, Option mkvEngineOption, Option mergeOption, Option subsOption, Option noCleanupOption, Option audioFormatOption, Option videoFormatOption, Option audioLangOption) : BinderBase { + private Option OutputFolderOption { get; } = outputFolderOption; + private Option SubsOption { get; } = subsOption; + private Option MergeOption { get; } = mergeOption; + private Option MkvEngineOption { get; } = mkvEngineOption; + private Option AudioFormatOption { get; } = audioFormatOption; + private Option VideoFormatOption { get; } = videoFormatOption; + private Option NoCleanupOption { get; } = noCleanupOption; + private Option AudioLangOption { get; } = audioLangOption; + + protected override BatchDemuxOptions GetBoundValue(BindingContext bindingContext) => + new BatchDemuxOptions + { + output = bindingContext.ParseResult.GetValueForOption(OutputFolderOption), + engine = bindingContext.ParseResult.GetValueForOption(MkvEngineOption), + merge = bindingContext.ParseResult.GetValueForOption(MergeOption), + subs = bindingContext.ParseResult.GetValueForOption(SubsOption), + noCleanup = bindingContext.ParseResult.GetValueForOption(NoCleanupOption), + audioFormat = bindingContext.ParseResult.GetValueForOption(AudioFormatOption), + videoFormat = bindingContext.ParseResult.GetValueForOption(VideoFormatOption), + audioLang = bindingContext.ParseResult.GetValueForOption(AudioLangOption) + }; + } }