misc module added.

fx added to potato remote class.

factory unit tests added.
This commit is contained in:
onyx-and-iris
2022-07-16 21:20:56 +01:00
parent be2b89e3fa
commit 1a6f3d6c73
3 changed files with 109 additions and 2 deletions

View File

@@ -3,6 +3,7 @@ from enum import IntEnum
from functools import cached_property
from typing import Iterable, NoReturn, Self
from . import misc
from .base import Remote
from .bus import request_bus_obj as bus
from .command import Command
@@ -24,7 +25,9 @@ class FactoryBuilder:
"""
BuilderProgress = IntEnum(
"BuilderProgress", "strip bus command macrobutton vban device recorder", start=0
"BuilderProgress",
"strip bus command macrobutton vban device recorder fx",
start=0,
)
def __init__(self, factory, kind: KindMapClass):
@@ -38,6 +41,7 @@ class FactoryBuilder:
f"Finished building vban in/out streams for {self._factory}",
f"Finished building device for {self._factory}",
f"Finished building recorder for {self._factory}",
f"Finished building fx for {self._factory}",
)
def _pinfo(self, name: str) -> NoReturn:
@@ -79,6 +83,10 @@ class FactoryBuilder:
self._factory.recorder = Recorder.make(self._factory)
return self
def make_fx(self) -> Self:
self._factory.fx = misc.FX(self._factory)
return self
class FactoryBase(Remote):
"""Base class for factories, subclasses Remote."""
@@ -176,7 +184,7 @@ class PotatoFactory(FactoryBase):
@property
def steps(self) -> Iterable:
"""steps required to build the interface for a kind"""
return self._steps + (self.builder.make_recorder,)
return self._steps + (self.builder.make_recorder, self.builder.make_fx)
def remote_factory(kind_id: str, **kwargs) -> Remote:

39
voicemeeterlib/misc.py Normal file
View File

@@ -0,0 +1,39 @@
from .iremote import IRemote
class FX(IRemote):
@property
def identifier(self) -> str:
return f"FX"
@property
def reverb(self) -> bool:
return self.getter("reverb.On") == 1
@reverb.setter
def reverb(self, val: bool):
self.setter("reverb.On", 1 if val else 0)
@property
def reverb_ab(self) -> bool:
return self.getter("reverb.ab") == 1
@reverb_ab.setter
def reverb_ab(self, val: bool):
self.setter("reverb.ab", 1 if val else 0)
@property
def delay(self) -> bool:
return self.getter("delay.On") == 1
@delay.setter
def delay(self, val: bool):
self.setter("delay.On", 1 if val else 0)
@property
def delay_ab(self) -> bool:
return self.getter("delay.ab") == 1
@delay_ab.setter
def delay_ab(self, val: bool):
self.setter("delay.ab", 1 if val else 0)