xair-api-python/xair_api/kinds.py

62 lines
1.1 KiB
Python
Raw Normal View History

2022-04-05 20:05:55 +01:00
from dataclasses import dataclass
2025-01-15 10:21:22 +00:00
@dataclass(frozen=True)
class KindMap:
2025-01-15 10:21:22 +00:00
id_: str
def __str__(self) -> str:
return self.id_
2025-01-15 10:21:22 +00:00
@dataclass(frozen=True)
class X32KindMap(KindMap):
num_dca: int = 8
num_strip: int = 32
num_bus: int = 16
num_fx: int = 8
num_auxrtn: int = 8
num_matrix: int = 6
2025-01-03 10:19:06 +00:00
num_headamp: int = 127
2025-01-15 10:21:22 +00:00
@dataclass(frozen=True)
class XR18KindMap(KindMap):
# note ch 17-18 defined as aux return
2022-04-05 20:05:55 +01:00
num_dca: int = 4
num_strip: int = 16
num_bus: int = 6
num_fx: int = 4
2025-01-15 10:21:22 +00:00
@dataclass(frozen=True)
class XR16KindMap(KindMap):
num_dca: int = 4
num_strip: int = 16
num_bus: int = 4
num_fx: int = 4
2025-01-15 10:21:22 +00:00
@dataclass(frozen=True)
class XR12KindMap(KindMap):
num_dca: int = 4
num_strip: int = 12
num_bus: int = 2
num_fx: int = 4
2022-04-05 20:05:55 +01:00
_kinds = {
2025-01-15 10:54:52 +00:00
'X32': X32KindMap(id_='X32'),
'MR18': XR18KindMap(id_='MR18'),
'XR18': XR18KindMap(id_='XR18'),
'XR16': XR16KindMap(id_='XR16'),
'XR12': XR12KindMap(id_='XR12'),
2022-04-05 20:05:55 +01:00
}
def get(kind_id):
return _kinds[kind_id]
2025-01-15 10:21:22 +00:00
all = list(_kinds.values())