From b76575ef8a40ae5a59efa84399e45acfcec9948e Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 10 Dec 2009 17:15:11 +0000 Subject: added mute button --- diff --git a/ErikosActivity.py b/ErikosActivity.py index 7d53cff..fd3df40 100644 --- a/ErikosActivity.py +++ b/ErikosActivity.py @@ -74,6 +74,14 @@ class ErikosActivity(activity.Activity): toolbar_box.toolbar.insert(self.play, -1) self.play.show() + # Sound Toggle Button + self.sound = ToolButton( "speaker-muted-100" ) + self.sound.set_tooltip(_('Mute')) + self.sound.props.sensitive = True + self.sound.connect('clicked', self._sound_cb) + toolbar_box.toolbar.insert(self.sound, -1) + self.sound.show() + separator = gtk.SeparatorToolItem() separator.show() toolbar_box.toolbar.insert(separator, -1) @@ -119,28 +127,39 @@ class ErikosActivity(activity.Activity): self.show_all() # Initialize the canvas - self.tw = window.new_window(canvas, \ + self.sw = window.new_window(canvas, \ os.path.join(activity.get_bundle_path(), \ 'images/'), \ self) - self.tw.activity = self + self.sw.activity = self # Read the level from the Journal try: - tw,level = int(self.metadata['level']) + sw.level = int(self.metadata['level']) except: pass def _play_cb(self, button): - window.play_the_game(self.tw) + window.play_the_game(self.sw) + return True + + def _sound_cb(self, button): + if self.sw.sound is True: + self.sound.set_icon("speaker-muted-000") + self.sound.set_tooltip(_('Unmute')) + self.sw.sound = False + else: + self.sound.set_icon("speaker-muted-100") + self.sound.set_tooltip(_('Mute')) + self.sw.sound = True return True """ Write the slider positions to the Journal """ def write_file(self, file_path): - _logger.debug("Write level: " + str(self.tw.level)) - self.metadata['level'] = self.tw.level + _logger.debug("Write level: " + str(self.sw.level)) + self.metadata['level'] = self.sw.level # # Project toolbar for pre-0.86 toolbars @@ -159,6 +178,14 @@ class ProjectToolbar(gtk.Toolbar): self.insert(self.activity.play, -1) self.activity.play.show() + # Sound toggle button + self.activity.sound = ToolButton( "speaker-muted-100" ) + self.activity.sound.set_tooltip(_('Mute')) + self.activity.sound.props.sensitive = True + self.activity.sound.connect('clicked', self.activity._sound_cb) + self.insert(self.activity.sound, -1) + self.activity.sound.show() + separator = gtk.SeparatorToolItem() separator.set_draw(True) self.insert(separator, -1) diff --git a/window.py b/window.py index de7f787..d203d09 100644 --- a/window.py +++ b/window.py @@ -74,6 +74,7 @@ def new_window(canvas, path, parent=None): sw.gc = sw.area.new_gc() sw.cm = sw.gc.get_colormap() sw.msgcolor = sw.cm.alloc_color('black') + sw.sound = True sw.sprites = [] sw.scale = 2 sw.level = 1 @@ -130,7 +131,7 @@ def _stepper(sw,i,j): sw.buttons_on[sw.seq[i]].draw_sprite(1500) inval(sw.buttons_on[sw.seq[i]].spr) gobject.idle_add(__play_sound_cb, - sw.sound_files[sw.seq[i]]) + sw.sound_files[sw.seq[i]], sw.sound) sw.timeout_id = gobject.timeout_add(1000,_stepper,sw,i+1,False) else: _dance(sw,[0,1,2,3],1,0) @@ -167,9 +168,10 @@ def _mouse_move_cb(win, event, sw): # # Play the csound associated with the button # -def __play_sound_cb(sound): -# os.system('csound ' + sound + '/temp.csd >/dev/null 2>/dev/null') - os.system('csound ' + sound) +def __play_sound_cb(sound, flag): + if flag is True: + # os.system('csound ' + sound + '/temp.csd >/dev/null 2>/dev/null') + os.system('csound ' + sound) # # Button release -- where the work happens @@ -181,7 +183,7 @@ def _button_release_cb(win, event, sw): if sw.press == sw.buttons_off[i].spr: sw.buttons_on[i].draw_sprite(1500) inval(sw.buttons_on[i].spr) - gobject.idle_add(__play_sound_cb, sw.sound_files[i]) + gobject.idle_add(__play_sound_cb, sw.sound_files[i], sw.sound) gobject.timeout_add(500,hide,sw.buttons_on[i].spr) if sw.playpushed is False: sw.press = None -- cgit v0.9.1