diff light8/Lightboard.py @ 71:177e9ba0b4a7

simple DMX server
author dmcc
date Thu, 11 Jul 2002 09:33:02 +0000
parents ab0be21b549b
children 609cb9ae53b1
line wrap: on
line diff
--- a/light8/Lightboard.py	Thu Jul 11 08:36:45 2002 +0000
+++ b/light8/Lightboard.py	Thu Jul 11 09:33:02 2002 +0000
@@ -4,7 +4,6 @@
 from time import sleep
 from signal import signal, SIGINT
 import sys, cPickle
-# import shelve
 
 import io
 from uihelpers import *
@@ -35,8 +34,6 @@
         self.oldlevels = [None] * 68 # never replace this; just clear it
         self.subediting = Subediting(currentoutputlevels=self.oldlevels)
 
-        # self.shelf = shelve.open('/tmp/light9.newprefs')
-        # self.windowpos = self.shelf.get('window', {})
         self.windowpos = 0
         self.get_data()
         self.buildinterface()
@@ -150,11 +147,15 @@
                 levels[ch-1] = max(levels[ch-1], fadelev)
 
         levels = [int(l) for l in levels]
+        lenlevels = len(levels)
+        changed = [] # list of changed levels
 
-        for lev,lab,oldlev,numlab in zip(levels, self.channel_levels, 
+        for lev,lab,oldlev,numlab,idx in zip(levels, self.channel_levels, 
                                          self.oldlevels, 
-                                         self.leveldisplay.number_labels):
+                                         self.leveldisplay.number_labels,
+                                         xrange(1, lenlevels + 2)):
             if lev != oldlev:
+                changed.extend((idx, lev))
                 lab.config(text="%d" % lev) # update labels in lev display
                 colorlabel(lab)             # recolor labels
                 if lev < oldlev:
@@ -164,9 +165,12 @@
             else:
                 numlab['bg'] = 'lightPink'
 
-        self.oldlevels[:] = levels[:] # replace the elements in oldlevels - don't make a new list (Subediting is watching it)
+        # replace the elements in oldlevels - don't make a new list 
+        # (Subediting is watching it)
+        self.oldlevels[:] = levels[:] 
             
-        self.parportdmx.sendlevels(levels)
+        # self.parportdmx.sendlevels(levels)
+        self.parportdmx.sendupdates(changed)
 
     def updatestagelevels(self):
         self.master.after(100, self.updatestagelevels)