2022-09-20 15:12:50 +01:00
|
|
|
import obsws_python as obs
|
|
|
|
import xair_api
|
|
|
|
|
|
|
|
|
|
|
|
class Observer:
|
2022-09-21 10:05:31 +01:00
|
|
|
def __init__(self, mixer):
|
2022-09-20 15:12:50 +01:00
|
|
|
self._mixer = mixer
|
2022-09-21 10:05:31 +01:00
|
|
|
self._cl = obs.EventClient()
|
2022-09-20 15:12:50 +01:00
|
|
|
self._cl.callback.register(self.on_current_program_scene_changed)
|
|
|
|
|
|
|
|
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":
|
2022-09-30 19:30:42 +01:00
|
|
|
self._mixer.config.mute_group[0].on = True
|
2022-09-21 10:05:31 +01:00
|
|
|
print(f"Mute Group 1 is {self._mixer.config.mute_group[0].on}")
|
2022-09-20 15:12:50 +01:00
|
|
|
|
|
|
|
|
2022-10-28 21:07:14 +01:00
|
|
|
def main():
|
2022-09-20 15:12:50 +01:00
|
|
|
with xair_api.connect("MR18", ip="mixer.local") as mixer:
|
2022-09-21 10:05:31 +01:00
|
|
|
Observer(mixer)
|
2022-09-20 15:12:50 +01:00
|
|
|
|
|
|
|
while cmd := input("<Enter> to exit\n"):
|
|
|
|
if not cmd:
|
|
|
|
break
|
2022-10-28 21:07:14 +01:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|