aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--voctocore/README.md4
-rw-r--r--voctocore/lib/commands.py21
2 files changed, 25 insertions, 0 deletions
diff --git a/voctocore/README.md b/voctocore/README.md
index 2354f94..a15fead 100644
--- a/voctocore/README.md
+++ b/voctocore/README.md
@@ -91,6 +91,10 @@ When another Client issues a Command and the Server executed it successfully, th
< set_composite 0
> composite_mode fullscreen
+< set_videos_and_composite grabber * fullscreen
+> video_status grabber cam1
+> composite_mode fullscreen
+
< get_video
> video_status cam2 cam1
diff --git a/voctocore/lib/commands.py b/voctocore/lib/commands.py
index 10fb90c..21b8de8 100644
--- a/voctocore/lib/commands.py
+++ b/voctocore/lib/commands.py
@@ -119,6 +119,27 @@ class ControlServerCommands(object):
status = self._get_composite_status()
return NotifyResponse('composite_mode', status)
+ def set_videos_and_composite(self, src_a_name_or_id, src_b_name_or_id, mode_name_or_id):
+ if src_a_name_or_id != '*':
+ src_a_id = decodeName(self.sources, src_a_name_or_id)
+ self.pipeline.vmix.setVideoSourceA(src_a_id)
+
+ if src_b_name_or_id != '*':
+ src_b_id = decodeName(self.sources, src_b_name_or_id)
+ self.pipeline.vmix.setVideoSourceB(src_b_id)
+
+ if mode_name_or_id != '*':
+ mode = decodeEnumName(CompositeModes, mode_name_or_id)
+ self.pipeline.vmix.setCompositeMode(mode)
+
+ composite_status = self._get_composite_status()
+ video_status = self._get_video_status()
+
+ return [
+ NotifyResponse('composite_mode', composite_status),
+ NotifyResponse('video_status', *video_status)
+ ]
+
def _get_stream_status(self):
blankSource = self.pipeline.streamblanker.blankSource