Onyx and Iris 227a973949 remove streamlabs code, only communicate with OBS
added methods to Audio class for:
stage gaining microphones
toggling audio to/from ws
toggling audio to/from tv
2026-01-01 23:00:27 +00:00

68 lines
2.4 KiB
Python

import logging
import keyboard
import voicemeeterlib
import xair_api
import duckypad_twitch
from duckypad_twitch import configuration
logging.basicConfig(level=logging.INFO)
def register_hotkeys(duckypad):
def audio_hotkeys():
keyboard.add_hotkey('F13', duckypad.audio.mute_mics)
keyboard.add_hotkey('F14', duckypad.audio.only_discord)
keyboard.add_hotkey('F15', duckypad.audio.only_stream)
keyboard.add_hotkey('F16', duckypad.audio.sound_test)
keyboard.add_hotkey('F17', duckypad.audio.stage_onyx_mic)
keyboard.add_hotkey('F18', duckypad.audio.stage_iris_mic)
keyboard.add_hotkey('shift+F17', duckypad.audio.unstage_onyx_mic)
keyboard.add_hotkey('shift+F18', duckypad.audio.unstage_iris_mic)
keyboard.add_hotkey('F19', duckypad.audio.solo_onyx)
keyboard.add_hotkey('F20', duckypad.audio.solo_iris)
keyboard.add_hotkey('F21', duckypad.audio.toggle_workstation_to_onyx)
keyboard.add_hotkey('F22', duckypad.audio.toggle_workstation_to_iris)
keyboard.add_hotkey('F23', duckypad.audio.toggle_tv_audio_to_onyx)
keyboard.add_hotkey('F24', duckypad.audio.toggle_tv_audio_to_iris)
def scene_hotkeys():
keyboard.add_hotkey('ctrl+F13', duckypad.scene.start)
keyboard.add_hotkey('ctrl+F14', duckypad.scene.dual_stream)
keyboard.add_hotkey('ctrl+F15', duckypad.scene.brb)
keyboard.add_hotkey('ctrl+F16', duckypad.scene.end)
keyboard.add_hotkey('ctrl+F17', duckypad.scene.onyx_solo)
keyboard.add_hotkey('ctrl+F18', duckypad.scene.iris_solo)
def obsws_hotkeys():
keyboard.add_hotkey('ctrl+alt+F13', duckypad.obsws.start_stream)
keyboard.add_hotkey('ctrl+alt+F14', duckypad.obsws.stop_stream)
def duckypad_hotkeys():
keyboard.add_hotkey('ctrl+F21', duckypad.reset)
for step in (
audio_hotkeys,
scene_hotkeys,
obsws_hotkeys,
duckypad_hotkeys,
):
step()
def run():
xair_config = configuration.get('xair')
with (
voicemeeterlib.api('potato') as vm,
xair_api.connect('MR18', **xair_config) as mixer,
duckypad_twitch.connect(vm=vm, mixer=mixer) as duckypad,
):
vm.apply_config('streaming_extender') # extends the streaming config
register_hotkeys(duckypad)
print('press ctrl+shift+F24 to quit')
keyboard.wait('ctrl+shift+F24')