Mercurial > code > home > repos > light9
comparison bin/keyboardcomposer @ 253:a92b6d1ac072
SubClient created, keyboardcomposer and gyrocontroller use it now
Plus some minor cleanups in keyboardcomposer and gyrocontroller
author | David McClosky <dmcc@bigasterisk.com> |
---|---|
date | Wed, 15 Jun 2005 04:28:16 +0000 |
parents | 89cd37c4314b |
children | 7f9d0f04bb2d |
comparison
equal
deleted
inserted
replaced
252:40e7d08e0123 | 253:a92b6d1ac072 |
---|---|
4 import sys, time | 4 import sys, time |
5 | 5 |
6 from twisted.internet import reactor,tksupport | 6 from twisted.internet import reactor,tksupport |
7 from twisted.web import xmlrpc, server | 7 from twisted.web import xmlrpc, server |
8 from Tix import * | 8 from Tix import * |
9 import math, atexit, pickle | 9 import pickle |
10 | 10 |
11 import run_local | 11 import run_local |
12 from light9.Fadable import Fadable | 12 from light9.Fadable import Fadable |
13 from light9.Submaster import Submasters, sub_maxes | 13 from light9.Submaster import Submasters, sub_maxes |
14 from light9 import dmxclient, showconfig | 14 from light9 import dmxclient, showconfig |
51 levellabel = Label(self, textvariable=self.slider_var, font="Arial 11", | 51 levellabel = Label(self, textvariable=self.slider_var, font="Arial 11", |
52 bg='black', fg='white') | 52 bg='black', fg='white') |
53 levellabel.pack(side=TOP) | 53 levellabel.pack(side=TOP) |
54 self.scale.pack(side=BOTTOM, expand=1, fill=BOTH) | 54 self.scale.pack(side=BOTTOM, expand=1, fill=BOTH) |
55 | 55 |
56 class KeyboardComposer(Frame): | 56 class KeyboardComposer(Frame, SubClient): |
57 def __init__(self, root, submasters, current_sub_levels=None, dmxdummy=0): | 57 def __init__(self, root, submasters, current_sub_levels=None): |
58 Frame.__init__(self, root, bg='black') | 58 Frame.__init__(self, root, bg='black') |
59 SubClient.__init__(self) | |
59 self.submasters = submasters | 60 self.submasters = submasters |
60 self.dmxdummy = dmxdummy | |
61 | 61 |
62 self.current_sub_levels = {} | 62 self.current_sub_levels = {} |
63 if current_sub_levels: | 63 if current_sub_levels: |
64 self.current_sub_levels = current_sub_levels | 64 self.current_sub_levels = current_sub_levels |
65 else: | 65 else: |
224 """called when we get a fade -- send events as quickly as possible""" | 224 """called when we get a fade -- send events as quickly as possible""" |
225 if time.time() <= self.stop_frequent_update_time: | 225 if time.time() <= self.stop_frequent_update_time: |
226 self.send_levels() | 226 self.send_levels() |
227 self.after(10, self.send_frequent_updates) | 227 self.after(10, self.send_frequent_updates) |
228 | 228 |
229 def get_dmx_list(self): | |
230 maxes = self.get_levels_as_sub() | |
231 return maxes.get_dmx_list() | |
232 def send_levels(self): | |
233 if not self.dmxdummy: | |
234 levels = self.get_dmx_list() | |
235 dmxclient.outputlevels(levels) | |
236 # print "sending levels", levels | |
237 def send_levels_loop(self): | |
238 self.send_levels() | |
239 self.after(1000, self.send_levels_loop) | |
240 def refresh(self): | 229 def refresh(self): |
241 self.save() | 230 self.save() |
242 self.submasters = Submasters() | 231 self.submasters = Submasters() |
243 self.current_sub_levels = \ | 232 self.current_sub_levels = \ |
244 pickle.load(file('.keyboardcomposer.savedlevels')) | 233 pickle.load(file('.keyboardcomposer.savedlevels')) |
265 if __name__ == "__main__": | 254 if __name__ == "__main__": |
266 s = Submasters() | 255 s = Submasters() |
267 | 256 |
268 root = Tk() | 257 root = Tk() |
269 tl = toplevelat("Keyboard Composer", existingtoplevel=root) | 258 tl = toplevelat("Keyboard Composer", existingtoplevel=root) |
270 kc = KeyboardComposer(tl, s, dmxdummy=0) | 259 kc = KeyboardComposer(tl, s) |
271 kc.pack(fill=BOTH, expand=1) | 260 kc.pack(fill=BOTH, expand=1) |
272 | 261 |
273 ls = LevelServer(kc.name_to_subtk) | 262 ls = LevelServer(kc.name_to_subtk) |
274 reactor.listenTCP(8050, server.Site(ls)) | 263 reactor.listenTCP(8050, server.Site(ls)) |
275 | 264 |