Mercurial > code > home > repos > light9
comparison light8/Lightboard.py @ 78:0969d8a6729d
support for external sliders. fill in ExternalInput with real IO
author | dmcc |
---|---|
date | Fri, 12 Jul 2002 10:05:57 +0000 |
parents | 2dfae9ed1cda |
children | 233fe8cefa36 |
comparison
equal
deleted
inserted
replaced
77:5649f5d9c798 | 78:0969d8a6729d |
---|---|
1 from __future__ import nested_scopes | 1 from __future__ import nested_scopes |
2 | 2 |
3 from Tix import * | 3 from Tix import * |
4 import random | |
5 from signal import signal, SIGINT | 4 from signal import signal, SIGINT |
6 import sys, cPickle | 5 import sys, cPickle, random |
7 | 6 |
8 import io | |
9 from uihelpers import * | 7 from uihelpers import * |
10 from panels import * | 8 from panels import * |
11 from Xfader import * | 9 from Xfader import * |
12 from subediting import Subediting | 10 from subediting import Subediting |
13 from Fader import Fader | 11 from Fader import Fader |
14 import stage | 12 import io, stage, Subs, Patch, ExternalInput |
15 import Subs, Patch | |
16 | 13 |
17 class Pickles: | 14 class Pickles: |
18 def __init__(self, scalelevels, subs=None, windowpos=None): | 15 def __init__(self, scalelevels, subs=None, windowpos=None): |
19 self.scalelevels = dict([(name, lev.get()) | 16 self.scalelevels = dict([(name, lev.get()) |
20 for name, lev in scalelevels.items()]) | 17 for name, lev in scalelevels.items()]) |
29 self.DUMMY = DUMMY | 26 self.DUMMY = DUMMY |
30 self.jostle_mode = 0 | 27 self.jostle_mode = 0 |
31 | 28 |
32 self.channel_levels = [] | 29 self.channel_levels = [] |
33 self.scalelevels = {} | 30 self.scalelevels = {} |
34 self.xfader = Xfader(self.scalelevels) # doesn't draw any UI yet-- look for self.xfader.setupwidget() | 31 # doesn't draw any UI yet-- look for self.xfader.setupwidget() |
32 self.xfader = Xfader(self.scalelevels) | |
35 self.oldlevels = [None] * 68 # never replace this; just clear it | 33 self.oldlevels = [None] * 68 # never replace this; just clear it |
36 self.subediting = Subediting(currentoutputlevels=self.oldlevels) | 34 self.subediting = Subediting(currentoutputlevels=self.oldlevels) |
37 | 35 |
38 self.windowpos = 0 | 36 self.windowpos = 0 |
39 self.get_data() | 37 self.get_data() |
44 | 42 |
45 def buildinterface(self): | 43 def buildinterface(self): |
46 for w in self.master.winfo_children(): | 44 for w in self.master.winfo_children(): |
47 w.destroy() | 45 w.destroy() |
48 | 46 |
49 stage_tl = toplevelat('stage', self.windowpos) | 47 stage_tl = toplevelat('stage') |
50 s = stage.Stage(stage_tl) | 48 s = stage.Stage(stage_tl) |
51 stage.createlights(s) | 49 stage.createlights(s) |
52 s.setsubediting(self.subediting) | 50 s.setsubediting(self.subediting) |
53 s.pack() | 51 s.pack() |
54 self.stage = s # save it | 52 self.stage = s # save it |
55 | 53 |
56 sub_tl = toplevelat('sub', self.windowpos) | 54 sub_tl = toplevelat('sub') |
57 scene_tl = toplevelat('scenes',self.windowpos) | 55 scene_tl = toplevelat('scenes') |
58 effect_tl = toplevelat('effect', self.windowpos) | 56 effect_tl = toplevelat('effect') |
57 | |
58 mapping_tl = toplevelat('mapping') | |
59 self.slidermapper = ExtSliderMapper(mapping_tl, self.scalelevels, | |
60 ExternalInput.ExternalSliders()) | |
61 self.slidermapper.pack() | |
59 | 62 |
60 self.subpanels = Subpanels(sub_tl, effect_tl, scene_tl, self, self.scalelevels, | 63 self.subpanels = Subpanels(sub_tl, effect_tl, scene_tl, self, self.scalelevels, |
61 Subs, self.xfader, self.changelevel, | 64 Subs, self.xfader, self.changelevel, |
62 self.subediting, Subs.longestsubname()) | 65 self.subediting, Subs.longestsubname()) |
63 | 66 |
64 leveldisplay_tl = toplevelat('leveldisplay', self.windowpos) | 67 leveldisplay_tl = toplevelat('leveldisplay') |
65 leveldisplay_tl.bind('<Escape>', sys.exit) | 68 leveldisplay_tl.bind('<Escape>', sys.exit) |
66 | 69 |
67 self.leveldisplay = Leveldisplay(leveldisplay_tl, self.channel_levels) | 70 self.leveldisplay = Leveldisplay(leveldisplay_tl, self.channel_levels) |
68 for i in range(0,len(self.channel_levels)): | 71 for i in range(0,len(self.channel_levels)): |
69 self.channel_levels[i].config(text=self.oldlevels[i]) | 72 self.channel_levels[i].config(text=self.oldlevels[i]) |
84 leveldisplay_tl.bind('<r>', self.refresh) | 87 leveldisplay_tl.bind('<r>', self.refresh) |
85 | 88 |
86 self.xfader.setupwidget(xf) | 89 self.xfader.setupwidget(xf) |
87 controlpanel.pack() | 90 controlpanel.pack() |
88 | 91 |
89 cuefader_tl = toplevelat('cuefader', self.windowpos) | 92 cuefader_tl = toplevelat('cuefader') |
90 cuefader = Fader(cuefader_tl, Subs.cues, self.scalelevels) | 93 cuefader = Fader(cuefader_tl, Subs.cues, self.scalelevels) |
91 cuefader.pack() | 94 cuefader.pack() |
92 | 95 |
93 def get_data(self,*args): | 96 def get_data(self,*args): |
94 Subs.reload_data(self.DUMMY) | 97 Subs.reload_data(self.DUMMY) |
147 newlevels = s.get_levels(level=self.scalelevels[name].get()) | 150 newlevels = s.get_levels(level=self.scalelevels[name].get()) |
148 for (ch, fadelev) in newlevels.items(): | 151 for (ch, fadelev) in newlevels.items(): |
149 levels[ch-1] = max(levels[ch-1], fadelev) | 152 levels[ch-1] = max(levels[ch-1], fadelev) |
150 | 153 |
151 levels = [int(l) for l in levels] | 154 levels = [int(l) for l in levels] |
155 | |
156 # load levels from external sliders | |
157 extlevels = self.slidermapper.get_levels() | |
158 for name, val in extlevels.items(): | |
159 self.scalelevels[name].set(val) | |
152 | 160 |
153 for lev,lab,oldlev,numlab in zip(levels, self.channel_levels, | 161 for lev,lab,oldlev,numlab in zip(levels, self.channel_levels, |
154 self.oldlevels, | 162 self.oldlevels, |
155 self.leveldisplay.number_labels): | 163 self.leveldisplay.number_labels): |
156 if lev != oldlev: | 164 if lev != oldlev: |
200 print "IOError: Couldn't load prefs (%s): %s" % (filename,e) | 208 print "IOError: Couldn't load prefs (%s): %s" % (filename,e) |
201 except EOFError, e: | 209 except EOFError, e: |
202 print "EOFrror: Couldn't load prefs (%s): %s" % (filename,e) | 210 print "EOFrror: Couldn't load prefs (%s): %s" % (filename,e) |
203 except Exception,e: | 211 except Exception,e: |
204 print "Couldn't load prefs (%s): %s" % (filename,e) | 212 print "Couldn't load prefs (%s): %s" % (filename,e) |
213 self.slidermapper.setup() | |
205 | 214 |
206 def backgroundloop(self, *args): | 215 def backgroundloop(self, *args): |
207 self.master.after(50, self.backgroundloop, ()) | 216 self.master.after(50, self.backgroundloop, ()) |
208 self.changelevel() | 217 self.changelevel() |
209 def quit(self, *args): | 218 def quit(self, *args): |