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(" to exit\n"): if not cmd: break