Mercurial > code > home > repos > light9
annotate light8/rsn.py @ 16:7dbe8067acea
fixed bug with channel levels not displaying
fixed bug with channel levels not displaying
moved an import from rsn to io
author | drewp |
---|---|
date | Sun, 07 Jul 2002 06:33:29 +0000 |
parents | 7adc65771676 |
children | 43aa1ee8b3a9 |
rev | line source |
---|---|
4 | 1 #!/usr/bin/env python |
0 | 2 from __future__ import nested_scopes |
3 | |
4 | 4 from Tkinter import * |
5 from time import sleep | |
6 from signal import * | |
7 import sys, thread, cPickle | |
8 | |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
9 import io |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
10 from uihelpers import * |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
11 from panels import * |
4 | 12 from Xfader import * |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
13 import stage |
0 | 14 |
15 if len(sys.argv) >= 2: | |
16 DUMMY = 0 | |
4 | 17 print "This is the real thing, baby" |
0 | 18 window_title = "Light 8.8 (On Air)" |
19 else: | |
20 DUMMY = 1 | |
4 | 21 print "Dummy mode" |
0 | 22 window_title = "Light 8.8 (Bogus)" |
23 | |
24 root = Tk() | |
25 root.wm_title(window_title) | |
4 | 26 root.wm_geometry('+447+373') |
27 | |
28 import Subs, Patch | |
0 | 29 |
4 | 30 def get_data(*args): |
31 Subs.reload_data(DUMMY) | |
32 Patch.reload_data(DUMMY) | |
33 print "Patch:", Patch.patch | |
34 print "Subs:", ', '.join(Subs.subs.keys()) | |
35 | |
36 get_data() | |
0 | 37 |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
38 io.init(DUMMY) |
4 | 39 |
40 channel_levels = [] | |
41 scalelevels = {} | |
42 fades = {} | |
43 | |
44 _oldlevels=[None] * 68 | |
0 | 45 |
4 | 46 def changelevel(*args): |
47 'Amp trims slider' | |
48 global _oldlevels | |
49 | |
50 levels = [0] * 68 | |
51 for name, s in Subs.subs.items(): | |
52 newlevels = s.get_levels(level=scalelevels[name].get()) | |
53 for (ch, fadelev) in newlevels.items(): | |
54 levels[ch-1] = max(levels[ch-1], fadelev) | |
55 | |
56 levels = [int(l) for l in levels] | |
16 | 57 |
4 | 58 for lev,lab,oldlev in zip(levels, channel_levels, _oldlevels): |
59 if lev != oldlev: | |
60 lab.config(text="%d" % lev) | |
61 colorlabel(lab) | |
62 | |
63 _oldlevels = levels[:] | |
64 | |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
65 io.sendlevels(levels) |
4 | 66 |
67 def backgroundloop(*args): | |
68 root.after(50, backgroundloop, ()) | |
69 changelevel() | |
70 | |
71 buildinterface = None # temporary | |
72 def refresh(*args): | |
73 get_data() | |
74 buildinterface() | |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
75 bindkeys(root,'<Escape>', quit) |
4 | 76 |
77 def quit(*args): | |
78 filename = '/tmp/light9.prefs' | |
79 if DUMMY: | |
80 filename += '.dummy' | |
81 print "Saving to", filename | |
82 file = open(filename, 'w') | |
83 cPickle.dump(Pickles(scalelevels), file) | |
84 root.destroy() | |
85 sys.exit() | |
0 | 86 |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
87 |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
88 xfader=Xfader(scalelevels) |
4 | 89 |
90 | |
91 | |
92 def buildinterface(*args): | |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
93 global channel_levels, _oldlevels, leveldisplay, xfader |
4 | 94 for w in root.winfo_children(): |
95 w.destroy() | |
96 | |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
97 stage_tl=toplevelat(165,90) |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
98 s=stage.Stage(stage_tl) |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
99 stage.createlights(s) |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
100 s.pack() |
0 | 101 |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
102 sub_tl = toplevelat(0,0) |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
103 effect_tl = toplevelat(0,352) |
4 | 104 |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
105 Subpanels(sub_tl,effect_tl,scalelevels,Subs,xfader,changelevel) |
4 | 106 |
107 # def event_printer(evt): | |
108 # print dir(evt) | |
0 | 109 |
4 | 110 # sub_tl.bind('<b>', event_printer) |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
111 leveldisplay=toplevelat(873,400) |
4 | 112 leveldisplay.bind('<Escape>', sys.exit) |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
113 |
16 | 114 Leveldisplay(leveldisplay,_oldlevels,channel_levels) |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
115 |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
116 Console() |
0 | 117 |
4 | 118 # root frame |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
119 controlpanel = Controlpanel(root,xfader,refresh,quit) |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
120 |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
121 xf=Frame(root) |
4 | 122 xf.pack(side='right') |
0 | 123 |
4 | 124 root.bind('<q>', quit) |
125 root.bind('<r>', refresh) | |
126 leveldisplay.bind('<q>', quit) | |
127 leveldisplay.bind('<r>', refresh) | |
128 | |
129 xfader.setupwidget(xf) | |
130 controlpanel.pack() | |
131 | |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
132 |
4 | 133 buildinterface() |
134 | |
135 class Pickles: | |
136 def __init__(self, scalelevels): | |
137 self.scalelevels = dict([(name, lev.get()) | |
138 for name,lev in scalelevels.items()]) | |
139 | |
140 def load(): | |
141 try: | |
142 filename = '/tmp/light9.prefs' | |
143 if DUMMY: | |
144 filename += '.dummy' | |
145 print "Loading from", filename | |
146 file = open(filename, 'r') | |
147 p = cPickle.load(file) | |
148 for s, v in p.scalelevels.items(): | |
149 try: | |
150 scalelevels[s].set(v) | |
151 except: | |
152 print "Couldn't set %s -> %s" % (s, v) | |
153 except: | |
154 print "Couldn't load prefs (%s)" % filename | |
0 | 155 |
4 | 156 def make_sub(name): |
157 global _oldlevels | |
158 i = 1 | |
159 # name = console_entry.get() # read from console | |
160 if not name: | |
161 print "Enter sub name in console." | |
162 return | |
163 | |
164 st = '' | |
165 linebuf = 'subs["%s"] = {' % name | |
166 for l in _oldlevels: | |
167 if l: | |
168 if len(linebuf) > 60: | |
169 st += linebuf + '\n ' | |
170 linebuf = '' | |
171 | |
172 linebuf += ' "%s" : %d,' % (Patch.get_channel_name(i), l) | |
173 i += 1 | |
174 st += linebuf + '}\n' | |
175 if DUMMY: | |
176 filename = 'ConfigDummy.py' | |
177 else: | |
178 filename = 'Config.py' | |
179 f = open(filename, 'a') | |
180 f.write(st) | |
181 f.close() | |
182 print 'Added sub:', st | |
183 refresh() | |
184 | |
185 load() | |
186 signal(SIGINT, quit) | |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
187 bindkeys(root,'<Escape>', quit) |
4 | 188 |
12
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
189 # bindkeys(root,'<q>', quit) |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
190 # bindkeys(root,'<r>', refresh) |
7adc65771676
big restructuring - moved lots of things (including most panels) to other files
drewp
parents:
4
diff
changeset
|
191 # bindkeys(root,'<s>', make_sub) |
4 | 192 backgroundloop() |
193 root.mainloop() # Receiver switches main | |
194 | |
195 while 1: | |
196 for lev in range(0,255,25)+range(255,0,-25): | |
197 sleep(.2) |