From a9a3798af63247500ce8e01cac419a78ebe4e596 Mon Sep 17 00:00:00 2001
From: MaZderMind <git@mazdermind.de>
Date: Mon, 5 Oct 2015 23:48:37 +0200
Subject: connect stream-blanker buttons so server

---
 voctogui/lib/toolbar/streamblank.py | 33 +++++++++++++++++++++++++++++----
 1 file changed, 29 insertions(+), 4 deletions(-)

diff --git a/voctogui/lib/toolbar/streamblank.py b/voctogui/lib/toolbar/streamblank.py
index 074fb80..e1963c2 100644
--- a/voctogui/lib/toolbar/streamblank.py
+++ b/voctogui/lib/toolbar/streamblank.py
@@ -1,6 +1,8 @@
 import logging
 from gi.repository import Gtk
 
+import lib.connection as Connection
+
 class StreamblankToolbarController(object):
 	""" Manages Accelerators and Clicks on the Composition Toolbar-Buttons """
 
@@ -10,7 +12,7 @@ class StreamblankToolbarController(object):
 		self.warning_overlay = warning_overlay
 
 		blank_sources = ['pause', 'nostream']
-
+		self.status_btns = {}
 
 		livebtn = uibuilder.find_widget_recursive(drawing_area, 'stream_live')
 		blankbtn = uibuilder.find_widget_recursive(drawing_area, 'stream_blank')
@@ -20,6 +22,9 @@ class StreamblankToolbarController(object):
 		livebtn.connect('toggled', self.on_btn_toggled)
 		livebtn.set_name('live')
 
+		self.livebtn = livebtn
+		self.blank_btns = {}
+
 		for idx, name in enumerate(blank_sources):
 			if idx == 0:
 				new_btn = blankbtn
@@ -33,13 +38,33 @@ class StreamblankToolbarController(object):
 			new_btn.connect('toggled', self.on_btn_toggled)
 			new_btn.set_name(name)
 
+			self.blank_btns[name] = new_btn
+
+		# connect event-handler and request initial state
+		Connection.on('stream_status', self.on_stream_status)
+		Connection.send('get_stream_status')
+
 	def on_btn_toggled(self, btn):
 		if not btn.get_active():
 			return
 
-		self.log.info("on_btn_toggled: %s", btn.get_name())
-		if btn.get_name() == 'live':
+		btn_name = btn.get_name()
+		self.log.info('stream-status activated: %s', btn_name)
+		if btn_name == 'live':
 			self.warning_overlay.disable()
 
 		else:
-			self.warning_overlay.enable(btn.get_name())
+			self.warning_overlay.enable(btn_name)
+
+		if btn_name == 'live':
+			Connection.send('set_stream_live')
+		else:
+			Connection.send('set_stream_blank', btn_name)
+
+	def on_stream_status(self, status, source = None):
+		self.log.info('on_stream_status callback w/ status %s and source %s', status, source)
+
+		if status == 'live':
+			self.livebtn.set_active(True)
+		else:
+			self.blank_btns[source].set_active(True)
-- 
cgit v1.2.3