qmsk/dmx/heads.py
changeset 88 c923295ee520
parent 84 9ebf1a2cee3a
child 95 478b9d0485aa
--- a/qmsk/dmx/heads.py	Mon Jun 02 18:26:41 2014 +0300
+++ b/qmsk/dmx/heads.py	Mon Jun 02 18:27:08 2014 +0300
@@ -77,3 +77,30 @@
         'alpha',
     ]
 
+
+class Universe (object) :
+    """
+        An universe of Heads for DMX output.
+    """
+
+    def __init__ (self, dmx, heads) :
+        self.dmx = dmx
+        self.heads = heads
+
+    def __getitem__ (self, name) :
+        return self.heads[name]
+
+    def __iter__ (self) :
+        return self.heads.iteritems()
+
+    def update (self, head, attrs) :
+        """
+            Update per-head values..
+        """
+
+        for attr, value in attrs.iteritems():
+            head[attr] = value
+        
+        # output
+        self.dmx.set(head.channel, *head)
+