xair-api-python/xair_api/kinds.py

67 lines
1.1 KiB
Python
Raw Normal View History

2022-04-05 20:05:55 +01:00
from dataclasses import dataclass
"""
# osc slightly different, interface would need adjusting to support this mixer.
@dataclass
class X32KindMap:
id_: str = "X32"
num_dca: int = 8
num_strip: int = 32
num_bus: int = 16
num_fx: int = 8
num_rtn: int = 6
"""
2022-04-05 20:05:55 +01:00
@dataclass
class KindMap:
def __str__(self) -> str:
return self.id_.capitalize()
@dataclass
class MR18KindMap(KindMap):
# note ch 17-18 defined as aux rtn
id_: str
2022-04-05 20:05:55 +01:00
num_dca: int = 4
num_strip: int = 16
num_bus: int = 6
num_fx: int = 4
num_rtn: int = 4
@dataclass
class XR16KindMap(KindMap):
id_: str
num_dca: int = 4
num_strip: int = 16
num_bus: int = 4
num_fx: int = 4
num_rtn: int = 4
@dataclass
class XR12KindMap(KindMap):
id_: str
num_dca: int = 4
num_strip: int = 12
num_bus: int = 2
num_fx: int = 4
num_rtn: int = 4
2022-04-05 20:05:55 +01:00
_kinds = {
"XR18": MR18KindMap(id_="XR18"),
"MR18": MR18KindMap(id_="MR18"),
"XR16": XR16KindMap(id_="XR16"),
"XR12": XR12KindMap(id_="XR12"),
2022-04-05 20:05:55 +01:00
}
def get(kind_id):
return _kinds[kind_id]
2022-04-05 20:05:55 +01:00
all = list(kind for kind in _kinds.values())