diff options
Diffstat (limited to 'solo-tool-project/src/solo_tool/external_volume.py')
| -rw-r--r-- | solo-tool-project/src/solo_tool/external_volume.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/solo-tool-project/src/solo_tool/external_volume.py b/solo-tool-project/src/solo_tool/external_volume.py new file mode 100644 index 0000000..425351a --- /dev/null +++ b/solo-tool-project/src/solo_tool/external_volume.py @@ -0,0 +1,31 @@ +from pythonosc import udp_client + +class VolumeControllerXR18(): + def __init__(self, ip: str): + port = 10024 + self._client = udp_client.SimpleUDPClient(ip, port, timeout=1) + self._headphoneVolume = 0.0 + self._speakerVolume = 0.0 + + def __del__(self): + self._client.close() + + @property + def headphoneVolume(self) -> float: + return self._headphoneVolume + + @headphoneVolume.setter + def headphoneVolume(self, new: float) -> None: + if new is not None: + self._headphoneVolume = min(max(new, 0.0), 1.0) + self._client.send_message("/config/solo/level", self._headphoneVolume) + + @property + def speakerVolume(self) -> float: + return self._speakerVolume + + @speakerVolume.setter + def speakerVolume(self, new: float) -> None: + if new is not None: + self._speakerVolume = min(max(new, 0.0), 1.0) + self._client.send_message("/lr/mix/fader", self._speakerVolume) |
