import obsws_python as obs import xair_api class Observer: def __init__(self, mixer): self._mixer = mixer self._client = obs.EventClient() self._client.callback.register(self.on_current_program_scene_changed) def __enter__(self): return self def __exit__(self, exc_type, exc_value, exc_traceback): self._client.disconnect() 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.config.mute_group[0].on = True print(f"Mute Group 1 is {self._mixer.config.mute_group[0].on}") def main(): with xair_api.connect("MR18", ip="mixer.local") as mixer: with Observer(mixer): while _ := input("Press to exit\n"): pass if __name__ == "__main__": main()