height:10;
}
"""
-
recording: reactive[bool] = reactive(False)
paused: reactive[bool] = reactive(False)
streaming: reactive[bool] = reactive(False)
+ obsws_connected: reactive[bool] = reactive(False)
class RecordStarted(MSGBase): ...
class RecordStopped(MSGBase): ...
class RecordUnpaused(MSGBase): ...
class StreamStarted(MSGBase): ...
class StreamStopped(MSGBase): ...
+ class OBSWSConnected(MSGBase): ...
+ class OBSWSDisconnected(MSGBase): ...
+
def compose(self):
with Grid():
+ yield BoolControl(
+ False,
+ label="OBS WS",
+ true_label="Connect",
+ false_label="Disconnect",
+ id="obsws_control",
+ )
yield BoolControl(False, label="Record", id="record_control")
+ yield BoolControl(False, label="Stream", id="stream_control")
yield BoolControl(
False,
label="Pause",
swap_red=True,
id="pause_control"
)
- yield BoolControl(False, label="Stream", id="stream_control")
-
+
+
def on_bool_control_set_true(self, message: BoolControl.SetTrue):
match message.control.id:
case "record_control":
self.post_message(RecordControls.RecordPaused(self))
case "stream_control":
self.post_message(RecordControls.StreamStarted(self))
+ case "obsws_control":
+ self.post_message(RecordControls.OBSWSConnected(self))
def on_bool_control_set_false(self, message: BoolControl.SetFalse):
self.post_message(RecordControls.RecordUnpaused(self))
case "stream_control":
self.post_message(RecordControls.StreamStopped(self))
-
+ case "obsws_control":
+ self.post_message(RecordControls.OBSWSDisconnected(self))
+
+
def watch_recording(self, value):
- control: BoolControl = self.query_exactly_one("#record_control")
- control.value = value
-
+ self._set_control_value("#record_control", value)
+
+
def watch_paused(self, value):
- control: BoolControl = self.query_exactly_one("#pause_control")
- control.value = value
+ self._set_control_value("#pause_control", value)
+
def watch_streaming(self, value):
- control: BoolControl = self.query_exactly_one("#stream_control")
+ self._set_control_value("#stream_control", value)
+
+
+ def watch_obsws_connected(self, value):
+ self._set_control_value("#obsws_control", value)
+
+
+ def _set_control_value(self, control_id: str, value):
+ control: BoolControl = self.query_exactly_one(control_id)
control.value = value
\ No newline at end of file