diff options
author | Gonzalo Odiard <godiard@gmail.com> | 2012-11-24 04:38:41 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@gmail.com> | 2012-11-24 04:38:41 (GMT) |
commit | 023903668e454940b7591be2c71ea53d30f4a91d (patch) | |
tree | ccda1b07f0857fa91c6fd89e4a568954edb5c24a | |
parent | 80b97788d13dcbc61b041ca151f6d6c493b84d15 (diff) |
Add a array with the values the iano will return independent of the labels
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
-rwxr-xr-x | draw_piano.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/draw_piano.py b/draw_piano.py index c097c02..260a042 100755 --- a/draw_piano.py +++ b/draw_piano.py @@ -34,10 +34,13 @@ class PianoKeyboard(Gtk.DrawingArea): ([GObject.TYPE_INT, GObject.TYPE_INT, GObject.TYPE_STRING]))} - def __init__(self, octaves=1, add_c=False, labels=None): + def __init__(self, octaves=1, add_c=False, labels=None, values=None): self._octaves = octaves self._add_c = add_c self._labels = labels + self._values = ['ZSXDCVGBHNJM', 'Q2W3ER5T6Y7U', 'I'] + if values is not None: + self._values = values self._pressed_keys = [] self.font_size = 20 self._touches = {} @@ -121,7 +124,7 @@ class PianoKeyboard(Gtk.DrawingArea): octave_pressed = int(pressed_key[:pressed_key.find('_')]) key_pressed = int(pressed_key[pressed_key.find('_') + 1:]) self.emit('key_pressed', octave_pressed, key_pressed, - self.get_label(octave_pressed, key_pressed)) + self.get_value(octave_pressed, key_pressed)) else: del self._pressed_keys[self._pressed_keys.index(pressed_key)] @@ -130,7 +133,7 @@ class PianoKeyboard(Gtk.DrawingArea): octave_released = int(key[:key.find('_')]) key_released = int(key[key.find('_') + 1:]) self.emit('key_released', octave_released, key_released, - self.get_label(octave_released, key_released)) + self.get_value(octave_released, key_released)) self._pressed_keys = new_pressed_keys self.queue_draw() @@ -169,6 +172,12 @@ class PianoKeyboard(Gtk.DrawingArea): except: return "" + def get_value(self, octave, key): + try: + return self._values[octave][key] + except: + return "" + def __allocate_cb(self, widget, rect): self.calculate_sizes(rect.width) |