add modevals to Modes class.

add modevals to Modes class.
This commit is contained in:
onyx-and-iris 2022-03-19 09:51:48 +00:00
parent 6aeef19d38
commit 919c967023
2 changed files with 21 additions and 18 deletions

View File

@ -54,6 +54,14 @@ class Modes:
_sel: hex=0x10000000
_monitor: hex=0x20000000
@property
def modevals(self):
return (val for val in [
self._normal, self._amix, self._repeat, self._bmix, self._composite,
self._tvmix, self._upmix21, self._upmix41, self._upmix61, self._centeronly,
self._lfeonly, self._rearonly,
])
class Channel(abc.ABC):
""" Base class for InputStrip and OutputBus. """

View File

@ -16,28 +16,23 @@ def bus_mode_prop(param):
def fget(self):
data = self.public_packet
modes = {
'normal': (False,False,False,False,False,False,False,False,False,False,False,False),
'amix': (False,True,True,False,False,True,False,True,False,True,False,True),
'bmix': (False,True,True,True,False,True,True,True,False,True,True,True),
'repeat': (False,False,True,True,False,False,True,True,False,False,True,True),
'composite': (False,False,False,False,True,True,True,True,False,False,False,False),
'tvmix': (False,True,True,False,True,True,True,True,False,True,False,True),
'upmix21': (False,False,True,True,True,True,True,True,False,False,True,True),
'upmix41': (False,True,True,True,True,True,True,True,False,True,True,True),
'upmix61': (False,False,False,False,False,False,False,False,True,True,True,True),
'centeronly': (False,True,True,False,False,True,False,True,True,True,True,True),
'lfeonly': (False,False,True,True,False,False,True,True,True,True,True,True),
'rearonly': (False,True,True,True,False,True,True,True,True,True,True,True),
'normal': (False, False, False, False, False, False, False, False, False, False, False, False),
'amix': (False, True, False, True, False, True, False, True, False, True, False, True),
'repeat': (False, False, True, True, False, False, True, True, False, False, True, True),
'bmix': (False, True, True, True, False, True, True, True, False, True, True, True),
'composite': (False, False, False, False, True, True, True, True, False, False, False, False),
'tvmix': (False, True, False, True, True, True, True, True, False, True, False, True),
'upmix21': (False, False, True, True, True, True, True, True, False, False, True, True),
'upmix41': (False, True, True, True, True, True, True, True, False, True, True, True),
'upmix61': (False, False, False, False, False, False, False, False, True, True, True, True),
'centeronly': (False, True, False, True, False, True, False, True, True, True, True, True),
'lfeonly': (False, False, True, True, False, False, True, True, True, True, True, True),
'rearonly': (False, True, True, True, False, True, True, True, True, True, True, True),
}
vals = tuple(
not int.from_bytes(data.busstate[self.index], 'little') & getattr(self._modes, f'_{param.lower()}') == 0
for param in ['normal', 'Amix', 'Bmix', 'Repeat', 'Composite', 'TVMix', 'UpMix21',
'UpMix41', 'UpMix61', 'CenterOnly', 'LFEOnly', 'RearOnly']
)
vals = tuple(not int.from_bytes(data.busstate[self.index], 'little') & val == 0 for val in self._modes.modevals)
return vals == modes[param.lower()]
def fset(self, val):
if not isinstance(val, bool) and val not in (0, 1):
raise VMCMDErrors(f'mode.{param} is a boolean parameter')
self.setter(f'mode.{param}', 1 if val else 0)
return property(fget, fset)