From e9126f0f59b4b140b78e4c4a7f8497f7ab586746 Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Wed, 7 Jan 2026 13:41:29 +0000 Subject: [PATCH] add more buttons for syncing --- duckypad_twitch/audio.py | 23 +++++++++++++++++++++++ duckypad_twitch/enums.py | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/duckypad_twitch/audio.py b/duckypad_twitch/audio.py index 42ef9f5..3e4414f 100644 --- a/duckypad_twitch/audio.py +++ b/duckypad_twitch/audio.py @@ -70,6 +70,25 @@ class Audio(ILayer): self.logger.info('Only Stream Enabled') else: self.logger.info('Only Stream Disabled') + case 'sound_test': + if current_value: + self.logger.info('Sound Test Enabled') + else: + self.logger.info('Sound Test Disabled') + case 'patch_onyx': + if current_value: + self.logger.info('Onyx mic has been patched') + else: + self.logger.info('Onyx mic has been unpatched') + if current_value: + self.logger.info('Iris mic has been patched') + else: + self.logger.info('Iris mic has been unpatched') + case 'mute_game_pcs': + if current_value: + self.logger.info('Game PCs Muted') + else: + self.logger.info('Game PCs Unmuted') setattr(self.state, button.name, current_value) @@ -162,6 +181,7 @@ class Audio(ILayer): self.vm.strip[VMStrips.onyx_mic].apply({'A1': False, 'B1': True, 'B3': True, 'mute': True}) self.vm.strip[VMStrips.iris_mic].apply({'A1': False, 'B2': True, 'B3': True, 'mute': True}) self.logger.info('Sound Test Disabled') + self.vm.button[Buttons.sound_test].stateonly = self.state.sound_test @ensure_mixer_fadeout def stage_onyx_mic(self): @@ -205,6 +225,7 @@ class Audio(ILayer): else: self.vm.patch.asio[0].set(0) self.logger.info('Onyx mic has been unpatched') + self.vm.button[Buttons.patch_onyx].stateonly = self.state.patch_onyx def patch_iris(self): self.state.patch_iris = not self.state.patch_iris @@ -214,6 +235,7 @@ class Audio(ILayer): else: self.vm.patch.asio[2].set(0) self.logger.info('Iris mic has been unpatched') + self.vm.button[Buttons.patch_iris].stateonly = self.state.patch_iris def mute_game_pcs(self): self.state.mute_game_pcs = not self.state.mute_game_pcs @@ -223,6 +245,7 @@ class Audio(ILayer): else: self.mixer.strip[XAirStrips.game_pcs].send[XAirBuses.stream_mix].level = -24 self.logger.info('Game PCs Unmuted') + self.vm.button[Buttons.mute_game_pcs].stateonly = self.state.mute_game_pcs ### Workstation and TV Audio Routing via VBAN ### diff --git a/duckypad_twitch/enums.py b/duckypad_twitch/enums.py index e5b55f2..1e47875 100644 --- a/duckypad_twitch/enums.py +++ b/duckypad_twitch/enums.py @@ -1,6 +1,8 @@ from enum import IntEnum -Buttons = IntEnum('Buttons', 'mute_mics only_discord only_stream', start=0) +Buttons = IntEnum( + 'Buttons', 'mute_mics only_discord only_stream sound_test patch_onyx patch_iris mute_game_pcs', start=0 +) # Voicemeeter Channels VMStrips = IntEnum('Strips', 'onyx_mic iris_mic onyx_pc iris_pc st_input_5 system comms pretzel', start=0)