From 2fea25d3d1233e56f92b0d0ca6eee51eee749270 Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Fri, 27 Jul 2007 16:06:03 +0000 Subject: Free the audio device when not in focus We free the audio device and stop the csound performance when not visible and start it again when in focus. This allows to have several instances on one machine. Commented out to printouts in the svgcard. --- (limited to 'activity.py') diff --git a/activity.py b/activity.py index bb8c101..849f87a 100755 --- a/activity.py +++ b/activity.py @@ -95,9 +95,13 @@ class MemorizeActivity(Activity): self.show_all() + # connect to the in/out events of the memorize activity + self.connect('focus_in_event', self._focus_in) + self.connect('focus_out_event', self._focus_out) + self.connect('destroy', self._cleanup_cb) + # Get the Presence Service self.pservice = presenceservice.get_instance() - bus = dbus.Bus() name, path = self.pservice.get_preferred_connection() self.tp_conn_name = name self.tp_conn_path = path @@ -270,3 +274,18 @@ class MemorizeActivity(Activity): else: _logger.debug("buddy left - _buddy_left_cb: %s", buddy.props.nick) self.game.rem_buddy(buddy) + + def _focus_in(self, event, data=None): + if self.game.sound == 1: + self.game.cs.start() + _logger.debug(" Memorize is visible: start csound server. ") + + def _focus_out(self, event, data=None): + if self.game.sound == 1: + self.game.cs.pause() + _logger.debug(" Memorize is invisible: pause csound server. ") + + def _cleanup_cb(self, data=None): + if self.game.sound == 1: + self.game.cs.quit() + _logger.debug(" Memorize closes: close csound server. ") -- cgit v0.9.1