changes to level/gain properties in VbanRtPacket

level getters in strip, bus fetch from public packet if not in cache
This commit is contained in:
onyx-and-iris
2022-09-28 18:07:10 +01:00
parent 1169435104
commit db96872965
3 changed files with 41 additions and 45 deletions

View File

@@ -32,17 +32,12 @@ class Bus(IRemote):
def gain(self) -> float:
def fget():
val = self.public_packet.busgain[self.index]
if val < 10000:
return -val
elif val == ((1 << 16) - 1):
return 0
else:
return ((1 << 16) - 1) - val
if 0 <= val <= 1200:
return val * 0.01
return (((1 << 16) - 1) - val) * -0.01
val = self.getter("gain")
if val is None:
val = fget() * 0.01
return round(val, 1)
return round(val if val else fget(), 1)
@gain.setter
def gain(self, val: float):
@@ -79,9 +74,16 @@ class BusLevel(IRemote):
def getter(self):
"""Returns a tuple of level values for the channel."""
if self._remote.running and self._remote.event.ldirty:
return tuple(
round(i * -0.01, 1)
for i in self._remote.cache["bus_level"][self.range[0] : self.range[-1]]
)
return tuple(
round(-i * 0.01, 1)
for i in self._remote.cache["bus_level"][self.range[0] : self.range[-1]]
round(i * -0.01, 1)
for i in self._remote._get_levels(self.public_packet)[1][
self.range[0] : self.range[-1]
]
)
@property