comparison bin/keyboardcomposer @ 801:caeaa88430b8

KC sends real levels Ignore-this: 2c6dae9c9c706c7db02e361d1ff46035
author drewp@bigasterisk.com
date Mon, 16 Jul 2012 22:28:08 +0000
parents fcf95ff23cc5
children a631e075a5bf
comparison
equal deleted inserted replaced
800:1274e041b579 801:caeaa88430b8
138 bg='black', fg='white') 138 bg='black', fg='white')
139 self.save_stage_button.pack(side=LEFT) 139 self.save_stage_button.pack(side=LEFT)
140 self.sub_name = Entry(self.buttonframe, bg='black', fg='white') 140 self.sub_name = Entry(self.buttonframe, bg='black', fg='white')
141 self.sub_name.pack(side=LEFT) 141 self.sub_name.pack(side=LEFT)
142 142
143
144 def redraw_sliders(self): 143 def redraw_sliders(self):
145 self.slider_vars = {} # this holds subname:sub Tk vars 144 self.slider_vars = {} # this holds suburi : sub Tk vars
146 self.slider_table = {} # this holds coords:sub Tk vars 145 self.slider_table = {} # this holds coords:sub Tk vars
147 self.name_to_subtk.clear() # subname : SubmasterTk instance 146 self.name_to_subtk.clear() # subname : SubmasterTk instance
148 147
149 self.graph.addHandler(self.draw_sliders) 148 self.graph.addHandler(self.draw_sliders)
150 if len(self.rows): 149 if len(self.rows):
217 def draw_sub_slider(self, row, col, sub, current_level): 216 def draw_sub_slider(self, row, col, sub, current_level):
218 subtk = SubmasterTk(row, sub, current_level) 217 subtk = SubmasterTk(row, sub, current_level)
219 subtk.place(relx=col / 8, rely=0, relwidth=1 / 8, relheight=1) 218 subtk.place(relx=col / 8, rely=0, relwidth=1 / 8, relheight=1)
220 self.setup_key_nudgers(subtk.scale) 219 self.setup_key_nudgers(subtk.scale)
221 220
222 self.slider_vars[sub.name] = subtk.slider_var 221 self.slider_vars[sub.uri] = subtk.slider_var
223 return subtk 222 return subtk
224 223
225 def toggle_slider_connectedness(self): 224 def toggle_slider_connectedness(self):
226 self.use_hw_sliders = not self.use_hw_sliders 225 self.use_hw_sliders = not self.use_hw_sliders
227 if self.use_hw_sliders: 226 if self.use_hw_sliders:
335 subtk = self.slider_table[(self.current_row, col)] 334 subtk = self.slider_table[(self.current_row, col)]
336 except KeyError: 335 except KeyError:
337 return # no slider assigned at that column 336 return # no slider assigned at that column
338 subtk.scale.set(value) 337 subtk.scale.set(value)
339 338
340 def send_to_hw(self, subName, hwNum): 339 def send_to_hw(self, subUri, hwNum):
341 if isinstance(self.sliders, DummySliders): 340 if isinstance(self.sliders, DummySliders):
342 return 341 return
343 342
344 v = round(127 * self.slider_vars[subName].get()) 343 v = round(127 * self.slider_vars[subUri].get())
345 chan = "slider%s" % hwNum 344 chan = "slider%s" % hwNum
346 345
347 # workaround for some rounding issue, where we receive one 346 # workaround for some rounding issue, where we receive one
348 # value and then decide to send back a value that's one step 347 # value and then decide to send back a value that's one step
349 # lower. -5 is a fallback for having no last value. hopefully 348 # lower. -5 is a fallback for having no last value. hopefully
366 def unhighlight_row(self, row): 365 def unhighlight_row(self, row):
367 row = self.rows[row] 366 row = self.rows[row]
368 row['bg'] = 'black' 367 row['bg'] = 'black'
369 368
370 def get_levels(self): 369 def get_levels(self):
371 return dict([(name, slidervar.get()) 370 return dict([(uri, slidervar.get())
372 for name, slidervar in self.slider_vars.items()]) 371 for uri, slidervar in self.slider_vars.items()])
373 372
374 def get_levels_as_sub(self): 373 def get_levels_as_sub(self):
375 scaledsubs = [self.submasters.get_sub_by_name(sub) * level \ 374 scaledsubs = [self.submasters.get_sub_by_uri(sub) * level
376 for sub, level in self.get_levels().items() if level > 0.0] 375 for sub, level in self.get_levels().items() if level > 0.0]
377
378 maxes = sub_maxes(*scaledsubs) 376 maxes = sub_maxes(*scaledsubs)
379 return maxes 377 return maxes
380 378
381 def save_current_stage(self, subname): 379 def save_current_stage(self, subname):
382 log.info("saving current levels as %s", subname) 380 log.info("saving current levels as %s", subname)