diff options
author | Aleksey Lim <alsroot@activitycentral.org> | 2011-06-28 09:23:54 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@activitycentral.org> | 2011-06-28 09:24:48 (GMT) |
commit | 11003147ac4ea947ec5017921019d668cb4953d1 (patch) | |
tree | eaab12347c33cb62326f9eb53121eff594301638 /TamTamSynthLab.py | |
parent | 35278d261ace09d5ed20bdae0983730d88dd8037 (diff) |
Switch to the singular sources tree and releasing scheme
Diffstat (limited to 'TamTamSynthLab.py')
-rw-r--r-- | TamTamSynthLab.py | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/TamTamSynthLab.py b/TamTamSynthLab.py new file mode 100644 index 0000000..a2a65bd --- /dev/null +++ b/TamTamSynthLab.py @@ -0,0 +1,127 @@ +import locale +locale.setlocale(locale.LC_NUMERIC, 'C') +import signal +import time +import sys +import os +import shutil +import pygtk +pygtk.require('2.0') +import gtk +import logging + +import gobject +import time + +import common.Config as Config +from common.Util.CSoundClient import new_csound_client +from common.Util.Profiler import TP + +from SynthLab.SynthLabMain import SynthLabMain +from common.Util.Trackpad import Trackpad +from gettext import gettext as _ +import commands +from sugar.activity import activity + + +class TamTamSynthLab(activity.Activity): + def __init__(self, handle): + activity.Activity.__init__(self, handle) + + color = gtk.gdk.color_parse(Config.WS_BCK_COLOR) + self.modify_bg(gtk.STATE_NORMAL, color) + + self.set_title('TamTam SynthLab') + self.set_resizable(False) + + self.trackpad = Trackpad(self) + + self.preloadTimeout = None + + self.connect('notify::active', self.onActive) + self.connect('destroy', self.onDestroy) + + #load the sugar toolbar + toolbox = activity.ActivityToolbox(self) + self.set_toolbox(toolbox) + + self.activity_toolbar = toolbox.get_activity_toolbar() + self.activity_toolbar.share.hide() + self.activity_toolbar.keep.hide() + + toolbox.show() + + self.trackpad.setContext('synthLab') + self.synthLab = SynthLabMain(self) + self.connect('key-press-event', self.synthLab .onKeyPress) + self.connect('key-release-event', self.synthLab .onKeyRelease) + + self.connect("key-press-event", self.synthLab.onKeyPress) + self.connect("key-release-event", self.synthLab.onKeyRelease) + + self.set_canvas(self.synthLab) + + self.synthLab.onActivate(arg=None) + self.show() + + def onPreloadTimeout(self): + if Config.DEBUG > 4: + print "TamTam::onPreloadTimeout", self.preloadList + + t = time.time() + if self.preloadList[0].load(t + 0.100): # finished preloading this object + self.preloadList.pop(0) + if not len(self.preloadList): + if Config.DEBUG > 1: + print "TamTam::finished preloading", time.time() - t + self.preloadTimeout = False + return False # finished preloading everything + + if Config.DEBUG > 4: + print "TamTam::preload returned after", time.time() - t + + return True + + def onActive(self, widget=None, event=None): + if widget.props.active == False: + logging.debug('TamTamSynthLab.onActivate disconnecting csound') + csnd = new_csound_client() + csnd.connect(False) + else: + logging.debug('TamTamSynthLab.onActivate connecting csound') + csnd = new_csound_client() + csnd.connect(True) + + def onKeyPress(self, widget, event): + pass + + def onKeyRelease(self, widget, event): + pass + + def onDestroy(self, arg2): + if Config.DEBUG: + print 'DEBUG: TamTam::onDestroy()' + + self.synthLab.onDestroy() + + csnd = new_csound_client() + csnd.connect(False) + csnd.destroy() + + gtk.main_quit() + +# No more dir created by TamTam + def ensure_dir(self, dir, perms=0777, rw=os.R_OK | os.W_OK): + if not os.path.isdir(dir): + try: + os.makedirs(dir, perms) + except OSError, e: + print 'ERROR: failed to make dir %s: %i (%s)\n' % (dir, e.errno, e.strerror) + if not os.access(dir, rw): + print 'ERROR: directory %s is missing required r/w access\n' % dir + + def read_file(self, file_path): + self.synthLab.handleJournalLoad(file_path) + + def write_file(self, file_path): + self.synthLab.handleJournalSave(file_path) |