Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2012-11-24 04:38:41 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2012-11-24 04:38:41 (GMT)
commit023903668e454940b7591be2c71ea53d30f4a91d (patch)
treeccda1b07f0857fa91c6fd89e4a568954edb5c24a
parent80b97788d13dcbc61b041ca151f6d6c493b84d15 (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-xdraw_piano.py15
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)