diff options
author | Walter Bender <walter.bender@gmail.com> | 2012-12-26 16:40:45 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2012-12-26 16:40:45 (GMT) |
commit | 37263ade0d7cc7a5e8eefc011358bf55276e4de7 (patch) | |
tree | 3a60e116332c79a6a208fb9762afbc5dd22ac1da | |
parent | 21480ad85f05194efbf8267fa2acd7f041cf5ca3 (diff) |
first pass at fix for #4353
-rw-r--r-- | tuning_toolbar.py | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/tuning_toolbar.py b/tuning_toolbar.py index fc32cf8..0891dbf 100644 --- a/tuning_toolbar.py +++ b/tuning_toolbar.py @@ -17,8 +17,8 @@ import gobject import subprocess from gettext import gettext as _ -from config import ICONS_DIR, CAPTURE_GAIN, MIC_BOOST, XO1, XO15, XO175, XO30,\ - INSTRUMENT_DICT +from config import XO175, INSTRUMENT_DICT +from audiograb import check_output from sugar.graphics.toolbutton import ToolButton from sugar.graphics.combobox import ComboBox @@ -293,23 +293,19 @@ class TuningToolbar(gtk.Toolbar): wave_status = self.activity.wave.get_active() self.activity.wave.set_context_off() self.activity.wave.set_active(False) + if self.activity.hw in [XO4, XO175]: + self.activity.audiograb.stop_grabbing() gobject.timeout_add(200, self.play_sound, freq, channels, wave_status) def play_sound(self, freq, channels, wave_status): ''' Play the sound and then restore wave settings ''' - if hasattr(subprocess, 'check_output'): - try: - output = subprocess.check_output( - ['speaker-test', '-t', 'sine', '-l', '1', '-f', '%f' % ( - freq)]) - except subprocess.CalledProcessError: - log.warning('call to speaker-test failed?') - else: - import commands - (status, output) = commands.getstatusoutput( - 'speaker-test -t sine -l 1 -f %f' % (freq)) - if status != 0: - log.warning('call to speaker-test failed?') + output = check_output( + ['speaker-test', '-t', 'sine', '-l', '1', '-f', '%f' % (freq)], + 'call to speaker-test failed?') + if self.activity.hw in [XO4, XO175]: + self.activity.sensor_toolbar.set_mode('sound') + self.activity.sensor_toolbar.set_sound_context() + self.activity.audiograb.start_grabbing() for c in range(self.activity.audiograb.channels): self.activity.wave.set_visibility(channels[c], channel=c) self.activity.wave.set_context_on() |