diff options
author | amartin <olpc@xo-05-28-21.localdomain> | 2007-12-27 10:13:17 (GMT) |
---|---|---|
committer | amartin <olpc@xo-05-28-21.localdomain> | 2007-12-27 10:13:17 (GMT) |
commit | 32a03b1c90a0df81f97104a671dddaa137b634af (patch) | |
tree | 1a205f59fe85f9073e4ceecc657b23540815fb9d /TamTamJam.activity/Jam/JamMain.py | |
parent | 0547c68b55579fca5eb1e87753bc1dc019aefb05 (diff) |
network
Diffstat (limited to 'TamTamJam.activity/Jam/JamMain.py')
-rw-r--r-- | TamTamJam.activity/Jam/JamMain.py | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/TamTamJam.activity/Jam/JamMain.py b/TamTamJam.activity/Jam/JamMain.py index e75b8e3..a8aad03 100644 --- a/TamTamJam.activity/Jam/JamMain.py +++ b/TamTamJam.activity/Jam/JamMain.py @@ -15,7 +15,7 @@ import sugar.graphics.style as style from Jam.Desktop import Desktop import Jam.Picker as Picker import Jam.Block as Block -from Jam.Toolbars import JamToolbar, DesktopToolbar, recordToolbar +from Jam.Toolbars import JamToolbar, PlaybackToolbar, DesktopToolbar, RecordToolbar from common.Util.CSoundNote import CSoundNote @@ -196,10 +196,11 @@ class JamMain(gtk.EventBox): #-- Toolbars ------------------------------------------ self.jamToolbar = JamToolbar( self ) self.activity.toolbox.add_toolbar( _("Jam"), self.jamToolbar ) - + self.playbackToolbar = PlaybackToolbar( self ) + self.activity.toolbox.add_toolbar( _("Playback"), self.playbackToolbar ) self.desktopToolbar = DesktopToolbar( self ) - self.recordToolbar = recordToolbar( self ) self.activity.toolbox.add_toolbar( _("Desktop"), self.desktopToolbar ) + self.recordToolbar = RecordToolbar( self ) self.activity.toolbox.add_toolbar( _("Record"), self.recordToolbar ) #-- GUI ----------------------------------------------- @@ -300,6 +301,8 @@ class JamMain(gtk.EventBox): self.csnd.loopSetNumTicks( self.syncBeats*Config.TICKS_PER_BEAT, self.heartbeatLoop ) self.heartbeatStart = time.time() self.csnd.loopStart( self.heartbeatLoop ) + self.curBeat = 0 + self.beatWheelTimeout = gobject.timeout_add( 100, self.updateBeatWheel ) # data packing classes self.packer = xdrlib.Packer() @@ -1132,7 +1135,7 @@ class JamMain(gtk.EventBox): # Sync def setSyncBeats( self, beats ): - self.jamToolbar.setSyncBeats( beats ) + self.playbackToolbar.setSyncBeats( beats ) def _setSyncBeats( self, beats ): if beats == self.syncBeats: @@ -1148,10 +1151,25 @@ class JamMain(gtk.EventBox): while curTick > ticks: curTick -= ticks - self.csnd.loopSetTick( self.heartbeatLoop ) + self.csnd.loopSetTick( curTick, self.heartbeatLoop ) self.updateSync() + + def _setBeat( self, beat ): + curTick = self.csnd.loopGetTick( self.heartbeatLoop ) + beatTick = curTick % Config.TICKS_PER_BEAT + + newTick = beat*Config.TICKS_PER_BEAT + beatTick + + self.csnd.adjustTick( newTick - curTick ) + + def updateBeatWheel( self ): + curTick = self.csnd.loopGetTick( self.heartbeatLoop ) + self.curBeat = int( curTick ) // Config.TICKS_PER_BEAT + self.playbackToolbar.updateBeatWheel( self.curBeat ) + return True + def nextHeartbeat( self ): delta = time.time() - self.heartbeatStart return self.beatDuration - (delta % self.beatDuration) |