replace v6 with experimental v7 code

This commit is contained in:
stax76
2023-10-24 11:17:45 +02:00
parent fb27bb8727
commit 5706d7b66d
212 changed files with 15014 additions and 12173 deletions

74
src/MpvNet/InputConf.cs Normal file
View File

@@ -0,0 +1,74 @@

using MpvNet.Help;
namespace MpvNet;
public class InputConf
{
string? _content;
bool? _hasMenu;
public InputConf(string path) { Path = path; }
public string Path { get; }
public string Content
{
get => _content ??= FileHelp.ReadTextFile(Path);
set => _content = value;
}
public bool HasMenu => _hasMenu ??= Content.Contains("#menu:");
public List<Binding> GetMenuBindings()
{
var confbindings = InputHelp.Parse(Content);
if (HasMenu)
return confbindings;
var defaultBindings = InputHelp.GetDefaults();
foreach (Binding defaultBinding in defaultBindings)
foreach (Binding confBinding in confbindings)
if (defaultBinding.Input == confBinding.Input &&
defaultBinding.Command != confBinding.Command)
{
defaultBinding.Input = "";
}
foreach (Binding defaultBinding in defaultBindings)
foreach (Binding confBinding in confbindings)
if (defaultBinding.Command == confBinding.Command)
defaultBinding.Input = confBinding.Input;
return defaultBindings;
}
public string GetContent()
{
if (HasMenu)
return Content;
else
{
var defaults = InputHelp.GetDefaults();
var removed = new List<Binding>();
var conf = InputHelp.Parse(Content);
foreach (Binding defaultBinding in defaults)
foreach (Binding confBinding in conf)
if (defaultBinding.Command == confBinding.Command &&
defaultBinding.Comment == confBinding.Comment)
{
defaultBinding.Input = confBinding.Input;
removed.Add(confBinding);
}
foreach (Binding binding in removed)
conf.Remove(binding);
defaults.AddRange(conf);
return InputHelp.ConvertToString(defaults);
}
}
}