utilisation de la flûte traversière.
[minwii.git] / src / app / minwii.py
index b52657d..dbf1b23 100755 (executable)
@@ -6,10 +6,12 @@ $Id$
 $URL$
 """
 
 $URL$
 """
 
+import pygame
 from pgu.gui import Desktop
 from pgu.gui import QUIT
 from widgets.home import Home
 from widgets.playingscreen import SongPlayingScreen, PlayingScreen
 from pgu.gui import Desktop
 from pgu.gui import QUIT
 from widgets.home import Home
 from widgets.playingscreen import SongPlayingScreen, PlayingScreen
+from widgets.instrumentselector import InstrumentSelector
 from synth import Synth
 from eventutils import EventDispatcher
 from musicxml import musicXml2Song
 from synth import Synth
 from eventutils import EventDispatcher
 from musicxml import musicXml2Song
@@ -20,16 +22,30 @@ class MinWii(object):
     def __init__(self) :
         app = Desktop()
         synth = Synth()
     def __init__(self) :
         app = Desktop()
         synth = Synth()
-        synth.program_select(0, 0, 0)
 
 
-        if True :
+        while True :
+            # sélection de la chanson
             home = Home(songPath=SONG_FILE_PATH)
             home.connect(QUIT, app.quit)
             app.run(home)
             app.close(home)
             home = Home(songPath=SONG_FILE_PATH)
             home.connect(QUIT, app.quit)
             app.run(home)
             app.close(home)
+            returnValue = home.returnValue
+            if not returnValue :
+                break
             
             
-            song = musicXml2Song('/Users/pinbe/dev/minwii/src/songs/chansons/etoile_neige.xml', printNotes=True)
+            # sélection de l'instrument
+            selector = InstrumentSelector()
+            selector.run()
+            selector.stop()
+            pygame.event.clear()
+            EventDispatcher.reset()
+            instrumentDescription = selector.selectedInstrument
+            
+            # lancement du lecteur / clavier
+            song = musicXml2Song(home.songFile, printNotes=True)
+            bank, preset = instrumentDescription['bank'], instrumentDescription['preset']
+            synth.program_select(0, bank, preset)
             playingScreen = SongPlayingScreen(synth, song)
             playingScreen = SongPlayingScreen(synth, song)
-            #playingScreen = PlayingScreen(synth)
             playingScreen.run()
             playingScreen.run()
+            pygame.event.clear()
             EventDispatcher.reset()
             EventDispatcher.reset()