comp, gate, denoiser, eq params updated in

TOMLStrBuilder

Path.home() / ".config" / "voicemeeter" / kind.name added to loader path
This commit is contained in:
onyx-and-iris 2023-06-23 01:19:55 +01:00
parent b5c8641c11
commit 92e04f1419

View File

@ -2,6 +2,8 @@ import itertools
import logging import logging
from pathlib import Path from pathlib import Path
from .error import VMError
try: try:
import tomllib import tomllib
except ModuleNotFoundError: except ModuleNotFoundError:
@ -9,6 +11,8 @@ except ModuleNotFoundError:
from .kinds import request_kind_map as kindmap from .kinds import request_kind_map as kindmap
logger = logging.getLogger(__name__)
class TOMLStrBuilder: class TOMLStrBuilder:
"""builds a config profile, as a string, for the toml parser""" """builds a config profile, as a string, for the toml parser"""
@ -32,10 +36,17 @@ class TOMLStrBuilder:
+ [f"B{i} = false" for i in range(1, self.kind.virt_out + 1)] + [f"B{i} = false" for i in range(1, self.kind.virt_out + 1)]
) )
self.phys_strip_params = self.virt_strip_params + [ self.phys_strip_params = self.virt_strip_params + [
"comp = 0.0", "comp.knob = 0.0",
"gate = 0.0", "gate.knob = 0.0",
"denoiser.knob = 0.0",
"eq.on = false",
]
self.bus_params = [
"mono = false",
"eq.on = false",
"mute = false",
"gain = 0.0",
] ]
self.bus_bool = ["mono = false", "eq = false", "mute = false"]
if profile == "reset": if profile == "reset":
self.reset_config() self.reset_config()
@ -66,7 +77,7 @@ class TOMLStrBuilder:
else self.virt_strip_params else self.virt_strip_params
) )
case "bus": case "bus":
toml_str += ("\n").join(self.bus_bool) toml_str += ("\n").join(self.bus_params)
case _: case _:
pass pass
return toml_str + "\n" return toml_str + "\n"
@ -119,10 +130,9 @@ class Loader(metaclass=SingletonType):
loads data into memory if not found loads data into memory if not found
""" """
logger = logging.getLogger("config.Loader")
def __init__(self, kind): def __init__(self, kind):
self._kind = kind self._kind = kind
self.logger = logger.getChild(self.__class__.__name__)
self._configs = dict() self._configs = dict()
self.defaults(kind) self.defaults(kind)
self.parser = None self.parser = None
@ -166,16 +176,16 @@ def loader(kind):
returns configs loaded into memory returns configs loaded into memory
""" """
logger = logging.getLogger("config.loader") logger_loader = logger.getChild("loader")
loader = Loader(kind) loader = Loader(kind)
for path in ( for path in (
Path.cwd() / "configs" / kind.name, Path.cwd() / "configs" / kind.name,
Path(__file__).parent / "configs" / kind.name, Path.home() / ".config" / "voicemeeter" / kind.name,
Path.home() / "Documents/Voicemeeter" / "configs" / kind.name, Path.home() / "Documents" / "Voicemeeter" / "configs" / kind.name,
): ):
if path.is_dir(): if path.is_dir():
logger.info(f"Checking [{path}] for TOML config files:") logger_loader.info(f"Checking [{path}] for TOML config files:")
for file in path.glob("*.toml"): for file in path.glob("*.toml"):
identifier = file.with_suffix("").stem identifier = file.with_suffix("").stem
if loader.parse(identifier, file): if loader.parse(identifier, file):
@ -192,5 +202,5 @@ def request_config(kind_id: str):
try: try:
configs = loader(kindmap(kind_id)) configs = loader(kindmap(kind_id))
except KeyError as e: except KeyError as e:
print(f"Unknown Voicemeeter kind '{kind_id}'") raise VMError(f"Unknown Voicemeeter kind {kind_id}") from e
return configs return configs