Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNat <natcl@hotmail.com>2007-07-06 20:19:09 (GMT)
committer Nat <natcl@hotmail.com>2007-07-06 20:19:09 (GMT)
commit1e35ae2bef344beb2a56e0cbdf4b8e694d9142c7 (patch)
tree290b41debc32e31113a834b694ec53355c38ed40
parent2c9dc116e5c070915ee08beb0341057abbc07540 (diff)
parent3104ff6682a4bda833eff8f3bb5d585a81008fb1 (diff)
Merge branch 'master' of git+ssh://natcl@dev.laptop.org/git/projects/tamtam
-rw-r--r--Edit/MainWindow.py9
-rw-r--r--Welcome.py93
2 files changed, 63 insertions, 39 deletions
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py
index 7b83992..70b8ea9 100644
--- a/Edit/MainWindow.py
+++ b/Edit/MainWindow.py
@@ -527,8 +527,8 @@ class MainWindow( SubActivity ):
self.pageAdd()
self.pageAdd()
self.pageAdd()
- self.tuneInterface.selectPages( [1,2,3,4] )
- self.displayPage(1)
+ self.tuneInterface.selectPages( self.noteDB.getTune() )
+ self.displayPage( self.noteDB.getTune()[0] )
self.generateMode = 'page'
self.generate( GenerationParameters() )
@@ -1445,10 +1445,9 @@ class MainWindow( SubActivity ):
self.GUI[string].set_value(self._data['track_volume'][i])
ifile.close()
- self.tuneInterface.selectPages( self.noteDB.tune )
- #self.displayPage(1)
-
self.noteDB.deletePages( oldPages )
+
+ self.tuneInterface.selectPages( self.noteDB.getTune() )
except OSError,e:
print 'ERROR: failed to open file %s for reading\n' % ofilename
diff --git a/Welcome.py b/Welcome.py
index f4e9fdc..d7ea635 100644
--- a/Welcome.py
+++ b/Welcome.py
@@ -3,6 +3,8 @@ import pygtk
pygtk.require( '2.0' )
import gtk
+import os, signal
+
import Config
from Util.ThemeWidgets import *
@@ -51,10 +53,11 @@ class Welcome(SubActivity):
buttonBox.pack_start(loadButton, False, False, 275)
self.tooltips.set_tip(loadButton,'Load TamTamEdit song')
- playStopButton = ImageToggleButton(Config.IMAGE_ROOT + 'miniplay.png', Config.IMAGE_ROOT + 'stop.png')
- self.tooltips.set_tip(playStopButton,"Play loaded song")
- playStopButton.connect('button-press-event' , self.handlePlayButton)
- buttonBox.pack_start(playStopButton, False, False, 275)
+ self.playMode = "TAM"
+ self.playStopButton = ImageToggleButton(Config.IMAGE_ROOT + 'miniplay.png', Config.IMAGE_ROOT + 'stop.png')
+ self.tooltips.set_tip(self.playStopButton,"Play loaded song")
+ self.playStopButton.connect('button-press-event' , self.handlePlayButton)
+ buttonBox.pack_start(self.playStopButton, False, False, 275)
actVBox.pack_start(actHBox,False,False, 200)
@@ -72,6 +75,7 @@ class Welcome(SubActivity):
filter = gtk.FileFilter()
filter.add_pattern('*.tam')
+ filter.add_pattern('*.ogg')
chooser.set_filter(filter)
chooser.set_current_folder(Config.TUNE_DIR)
@@ -79,41 +83,60 @@ class Welcome(SubActivity):
chooser.remove_shortcut_folder_uri(f)
if chooser.run() == gtk.RESPONSE_OK:
- self.noteDB.deletePages( self.noteDB.pages.keys() )
- ifile = open(chooser.get_filename(), 'r')
- tuneStream = ControlStream.TamTamTable ( self.noteDB )
- tuneStream.parseFile(ifile)
-
- self.noteDB.deletePages( self.noteDB.tune[0:1])
- numticks = 0
- page_onset = {}
- notes = []
- for pid in self.noteDB.getTune():
- page_onset[pid] = numticks
- numticks += self.noteDB.getPage(pid).ticks
- notes += self.noteDB.getNotesByPage( pid )
+ if self.playStopButton.get_active():
+ self.playStopButton.set_active( False )
+
+ filename = chooser.get_filename()
+ if filename[-4:] == ".ogg":
+ self.playMode = "OGG"
+ self.playFile = filename
+ else:
+ self.playMode = "TAM"
+ self.noteDB.deletePages( self.noteDB.pages.keys() )
+ ifile = open(chooser.get_filename(), 'r')
+ tuneStream = ControlStream.TamTamTable ( self.noteDB )
+ tuneStream.parseFile(ifile)
+
+ self.noteDB.deletePages( self.noteDB.tune[0:1])
+ numticks = 0
+ page_onset = {}
+ notes = []
+ for pid in self.noteDB.getTune():
+ page_onset[pid] = numticks
+ numticks += self.noteDB.getPage(pid).ticks
+ notes += self.noteDB.getNotesByPage( pid )
- self.csnd.connect(True)
- self.csnd.loopClear()
- for n in notes:
- self.csnd.loopPlay(n, 1)
- self.csnd.loopUpdate(n, NoteDB.PARAMETER.ONSET, n.cs.onset + page_onset[n.page] , 1)
- self.csnd.loopSetNumTicks( numticks )
- self.csnd.loopSetTick( 0 )
- self.csnd.setMasterVolume(float(tuneStream.masterVolume))
- self.csnd.loopSetTempo(float(tuneStream.tempo))
- for i in range(len(tuneStream.tracks_volume)):
- self.csnd.setTrackVolume(float(tuneStream.tracks_volume[i]), i)
- self.csnd.loopPause()
- ifile.close()
+ self.csnd.connect(True)
+ self.csnd.loopClear()
+ for n in notes:
+ self.csnd.loopPlay(n, 1)
+ self.csnd.loopUpdate(n, NoteDB.PARAMETER.ONSET, n.cs.onset + page_onset[n.page] , 1)
+ self.csnd.loopSetNumTicks( numticks )
+ self.csnd.loopSetTick( 0 )
+ self.csnd.setMasterVolume(float(tuneStream.masterVolume))
+ self.csnd.loopSetTempo(float(tuneStream.tempo))
+ for i in range(len(tuneStream.tracks_volume)):
+ self.csnd.setTrackVolume(float(tuneStream.tracks_volume[i]), i)
+ self.csnd.loopPause()
+ ifile.close()
chooser.destroy()
def handlePlayButton(self, widget, data):
- if widget.get_active() == True:
- self.csnd.loopPause()
+ if self.playMode == "OGG":
+ if widget.get_active() == True:
+ os.kill( self.playPID, signal.SIGKILL )
+ if self.csnd:
+ self.csnd.connect(True)
+ else:
+ if self.csnd:
+ self.csnd.connect(False)
+ self.playPID = os.spawnl( os.P_NOWAIT, "/usr/bin/gst-launch-0.10", "gst-launch-0.10", "filesrc", "location=/home/olpc/.sugar/default/tamtam/tunes/mysong.ogg", "!", "oggdemux", "!", "vorbisdec", "!", "audioconvert", "!", "osssink" )
else:
- self.csnd.loopSetTick( 0 )
- self.csnd.loopStart()
+ if widget.get_active() == True:
+ self.csnd.loopPause()
+ else:
+ self.csnd.loopSetTick( 0 )
+ self.csnd.loopStart()
def onActivityBtnClicked(self, widget, data):
widget.event( gtk.gdk.Event( gtk.gdk.LEAVE_NOTIFY ) ) # fake the leave event
@@ -143,6 +166,8 @@ class Welcome(SubActivity):
self.show_all()
def onDeactivate(self):
+ if self.playStopButton.get_active():
+ self.playStopButton.set_active(False)
if (self.activate_count == 1):
csnd = new_csound_client()
csnd.loopPause()