Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TamTamJam.activity/Jam/JamMain.py
diff options
context:
space:
mode:
authoramartin <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)
commit32a03b1c90a0df81f97104a671dddaa137b634af (patch)
tree1a205f59fe85f9073e4ceecc657b23540815fb9d /TamTamJam.activity/Jam/JamMain.py
parent0547c68b55579fca5eb1e87753bc1dc019aefb05 (diff)
network
Diffstat (limited to 'TamTamJam.activity/Jam/JamMain.py')
-rw-r--r--TamTamJam.activity/Jam/JamMain.py28
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)