def __init__(self, callback, keyboard_system):
Gtk.DrawingArea.__init__(self)
CairoCommon.__init__(self)
self.m_callback = callback
def ff(first, count):
i = mpd.notename_to_int(first)
return [mpd.int_to_octave_notename(i + x * 3) for x in range(count)]
keyboard_def = {'norwegian':
(ff("g,", 19), ff("f,", 20), ff("fis,", 19),
ff("e,", 20), ff("f,", 19))}
keyboard_def['swedish'] = (
ff("e,", 19), ff("dis,", 20), ff("f,", 19),
ff("e,", 20), ff("fis,", 19))
keyboard_def['finnish'] = (
ff("dis,", 19), ff("d,", 20), ff("e,", 19),
ff("dis,", 20), ff("f,", 19))
keyboard_def['belgian'] = (
ff("fis,", 19), ff("e,", 20), ff("f,", 19),
ff("es,", 20), ff("e,", 19)
)
self.m_notenames = keyboard_def[keyboard_system]
self.m_lowest_tone = mpd.HIGHEST_NOTENAME
self.m_highest_tone = mpd.LOWEST_NOTENAME
for v in self.m_notenames:
if mpd.compare_notenames(self.m_lowest_tone, v[0]) > 0:
self.m_lowest_tone = v[0]
if mpd.compare_notenames(self.m_highest_tone, v[-1]) < 0:
self.m_highest_tone = v[-1]
self.m_button_radius = 9
self.m_button_xdist = 20
self.m_button_ydist = 18
self.connect('draw', self.draw)
self.connect('button-press-event', self._on_button_press)
self.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
评论列表
文章目录