xair-api-python/examples/xair-obs/__main__.py
2022-09-20 15:12:50 +01:00

39 lines
1.2 KiB
Python

import obsws_python as obs
import xair_api
class Observer:
def __init__(self, cl, mixer):
self._cl = cl
self._mixer = mixer
self._cl.callback.register(self.on_current_program_scene_changed)
print(f"Registered events: {self._cl.callback.get()}")
def on_current_program_scene_changed(self, data):
scene = data.scene_name
print(f"Switched to scene {scene}")
match scene:
case "START":
print("Toggling strip 01 on")
self._mixer.strip[0].mix.on = not self._mixer.strip[0].mix.on
case "BRB":
print("Setting strip 08 fader")
self._mixer.strip[7].mix.fader = -12.8
case "END":
print("Settings strip 02 color")
self._mixer.strip[1].config.color = 8
case "LIVE":
self._mixer.dca[0].on = True
print(f"DCA 1 is {self._mixer.dca[0].on}")
if __name__ == "__main__":
cl = obs.EventClient()
with xair_api.connect("MR18", ip="mixer.local") as mixer:
Observer(cl, mixer)
while cmd := input("<Enter> to exit\n"):
if not cmd:
break