Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2012-06-18 22:51:44 (GMT)
committer Walter Bender <walter.bender@gmail.com>2012-06-18 22:51:44 (GMT)
commit69ca855d0ee359bff4b60d603067d21178c52f2d (patch)
treed774a0b44735417ada5b2680d5890cb9c438a355
parent2148fb14862a2e926ad413fd75b3d4e9a4b3a5b3 (diff)
add entry field for individual frequencies
-rw-r--r--drawwaveform.py16
-rw-r--r--tuning_toolbar.py31
2 files changed, 44 insertions, 3 deletions
diff --git a/drawwaveform.py b/drawwaveform.py
index b49070c..af44025 100644
--- a/drawwaveform.py
+++ b/drawwaveform.py
@@ -133,6 +133,7 @@ class DrawWaveform(gtk.DrawingArea):
self.debug_str = 'start'
self.instrument = None
+ self.tuning_line = 0.0
self.context = True
@@ -279,6 +280,12 @@ class DrawWaveform(gtk.DrawingArea):
self._TUNING_LINE_THICKNESS, gtk.gdk.LINE_SOLID,
gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_BEVEL)
self._tuning_line_gc.set_foreground(clr)
+ clr = colormap.alloc_color(self.color[0])
+ self._tuning_line_2_gc = self.window.new_gc(foreground=clr)
+ self._tuning_line_2_gc.set_line_attributes(
+ self._TUNING_LINE_THICKNESS, gtk.gdk.LINE_SOLID,
+ gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_BEVEL)
+ self._tuning_line_2_gc.set_foreground(clr)
self._create_background_pixmap()
return
@@ -378,9 +385,12 @@ class DrawWaveform(gtk.DrawingArea):
scale = 10. * self.freq_div / 500.
if self.fft_show and self.instrument in TUNING_DICT:
for note in TUNING_DICT[self.instrument]:
- x = int(note / scale) # need to check scale factor
- self.window.draw_line(self._tuning_line_gc,
- x, 0, x, height)
+ x = int(note / scale)
+ self.window.draw_line(
+ self._tuning_line_gc, x, 0, x, height)
+ if self.fft_show and self.tuning_line > 0.0:
+ x = int(self.tuning_line / scale)
+ self.window.draw_line(self._tuning_line_2_gc, x, 0, x, height)
#Iterate for each graph
for graph_id in self.graph_id:
diff --git a/tuning_toolbar.py b/tuning_toolbar.py
index 148aa0f..e8e1321 100644
--- a/tuning_toolbar.py
+++ b/tuning_toolbar.py
@@ -50,9 +50,40 @@ class TuningToolbar(gtk.Toolbar):
self._tuning_tool = ToolComboBox(self._tuning_combo)
self.insert(self._tuning_tool, -1)
+ if self.activity.has_toolbarbox:
+ separator = gtk.SeparatorToolItem()
+ separator.props.draw = True
+ self.insert(separator, -1)
+
+ self._freq_entry = gtk.Entry()
+ self._freq_entry.set_text('0')
+ if hasattr(self._freq_entry, 'set_tooltip_text'):
+ self._freq_entry.set_tooltip_text(_('enter a frequency to display'))
+ self._freq_entry.set_width_chars(8)
+ self._freq_entry.show()
+ toolitem = gtk.ToolItem()
+ toolitem.add(self._freq_entry)
+ self.insert(toolitem, -1)
+ toolitem.show()
+
+ self._new_tuning_line = ToolButton('tuning-tools')
+ self._new_tuning_line.show()
+ self.insert(self._new_tuning_line, -1)
+ self._new_tuning_line.set_tooltip(_('Add tuning line'))
+ self._new_tuning_line.connect('clicked', self.tuning_line_cb)
+
self.show_all()
def update_tuning_control(self, *args):
''' Callback for tuning control '''
self.activity.wave.instrument = \
self.tuning[self._tuning_combo.get_active()]
+
+ def tuning_line_cb(self, *args):
+ ''' Callback for tuning insert '''
+ freq = self._freq_entry.get_text()
+ try:
+ self.activity.wave.tuning_line = float(freq)
+ except ValueError:
+ self.activity.wave.tuning_line = 0.0
+ self._freq_entry.set_text('0')