diff light8/Subs.py @ 4:f974a462133f

added light8 from the posted light8-1.0.tgz
author drewp
date Sun, 07 Jul 2002 01:16:10 +0000
parents 45b12307c695
children dea1e1d6d439
line wrap: on
line diff
--- a/light8/Subs.py	Thu Jul 04 10:04:18 2002 +0000
+++ b/light8/Subs.py	Sun Jul 07 01:16:10 2002 +0000
@@ -1,6 +1,6 @@
 from Patch import *
 from time import time
-from Tix import *
+from Tkinter import *
 from types import TupleType
 
 stdfont = ('Arial', 8)
@@ -8,15 +8,10 @@
 class Param: # abstract
     def get_value(self):
         pass
-    def set_value(self, v):
+    def set_value(self):
         pass
     def draw_tk(self, frame):
         pass
-    def __getstate__(self):
-        return {'value' : self.get_value()}
-    def __setstate__(self, dict):
-        self.value = StringVar()
-        self.set_value(dict['value'])
 
 class CheckboxParam(Param):
     def __init__(self, initial=0):
@@ -77,7 +72,7 @@
     def draw_tk(self, frame):
         self.l = Listbox(frame, selectmode=self.selectmode, font=stdfont,
                          width=max([len(o) for o in self.options]),
-                         height=len(self.options), exportselection=0)
+                         height=len(self.options))
         for o in self.options:
             self.l.insert(END, o)
         self.l.pack()
@@ -89,8 +84,6 @@
     def get_value(self):
         return self.value.get()
     def set_value(self, v):
-        if 'value' not in self.__dict__:
-            self.value = StringVar()
         self.value.set(v)
     def draw_tk(self, frame):
         l = Label(frame, textvariable=self.value, font=stdfont)
@@ -150,39 +143,22 @@
     def get(self, level):
         if self.var is not None:
             return self.var.get()
+
         return None
     def justturnedon(self):
         return self.atzero
-    def __getstate__(self):
-        state = self.__dict__.copy()
-        # remove var (non-pickleable)
-        try:
-            del state['var']
-        except KeyError:
-            pass
-        return state
-    # no setstate needed
 
 class Sub:
-    def __init__(self, name, levels, dimmers=68, color=None):
-        self.name = name # keep this consistent please
+    def __init__(self, levels, dimmers=68, color=None):
         self.levels = levels
-        self.dimmers = dimmers # needed?
+        self.dimmers = dimmers
         self.is_effect = callable(self.levels)
         self.slideradjuster = SliderAdjuster()
-        self.namecache = {}
         if self.is_effect:
             self.params = Params()
             self.generator = self.levels(self.params, self.slideradjuster)
             self.generator.next()
         self.color = color
-    def resolve_name(self, ch_name):
-        if ch_name in self.namecache:
-            return self.namecache[ch_name]
-        else:
-            resolved = get_dmx_channel(ch_name)
-            self.namecache[ch_name] = resolved
-            return resolved
     def set_slider_var(self, slidervar):
         if self.is_effect:
             self.slideradjuster.var = slidervar
@@ -190,44 +166,22 @@
         if self.is_effect:
             self.params.draw_tk(frame)
     def get_state(self):
-        state = self.__dict__.copy()
-        if self.is_effect:
-            del state['levels']
-            del state['generator']
-
-        return state
-    def set_state(self, statedict):
-        self.__dict__.update(statedict)
+        pass
     def get_levels(self, level):
-        """returns a scaled version of the levels in the sub; channel names 
-        are resolved to numbers"""
         d = {}
         if level == 0: 
             self.slideradjuster.atzero = 1
             return d
-        if self.is_effect: # effect
+        if self.is_effect:
             d = self.generator.next()
             self.slideradjuster.atzero = 0
-            return dict([(get_dmx_channel(ch), float(lev) * float(level)) 
-                for ch, lev in d.items()])
         else: # dictionary (standard)
             d = self.levels
-            return dict([(self.resolve_name(ch), float(lev) * float(level)) 
-                for ch, lev in d.items()])
-
-    #
-    # methods for Subediting to use
-    #
-    def getlevels(self):
-        return self.levels.copy()
-    def reviselevels(self,levels):
-        # we can accept these new levels; subediting has done all the work
-        self.levels.update(levels)
-                
-    
+        return dict([(get_dmx_channel(ch), float(lev) * float(level)) 
+            for ch, lev in d.items()])
 
 def reload_data(dummy):
-    global subs, cues
+    global subs
     if dummy:
         import ConfigDummy as Config
     else:
@@ -240,13 +194,8 @@
         if type(name) == TupleType:
             name, color = name
         else:
-            color = None
+            color=None
 
-        subs[name] = Sub(name, levels, color=color)
+        subs[name] = Sub(levels, color=color)
 
     # subs = dict([(name, Sub(levels)) for name, levels in Config.subs.items()])
-
-    cues = Config.cues
-
-def longestsubname():
-    return max([len(x) for x in subs.keys()])