Bah, c'n'était pas si compliqué tout compte fait :-).
[minwii.git] / src / app / minwii.py
index 6e29cd9..fc45bdf 100755 (executable)
@@ -6,13 +6,73 @@ $Id$
 $URL$
 """
 
 $URL$
 """
 
-#from pgu.gui import Desktop
-#from pgu.gui import QUIT
+import pygame
+from pgu.gui import Desktop
+from pgu.gui import QUIT
+from widgets.launch import LaunchScreen
 from widgets.home import Home
 from widgets.home import Home
-from widgets.playingscreen import _PlayingScreenBase, SongPlayingScreenTest
+from widgets.playingscreen import SongPlayingScreen, PlayingScreen
+from widgets.instrumentselector import InstrumentSelector
+from synth import Synth
+from eventutils import EventDispatcher
+from musicxml import musicXml2Song
+from config import SONG_FILE_PATH
+from globals import PLAYING_MODES_DICT
+from pywiiuse import pygame_wiimouse
+from pywiiuse.PyWiiUse import IR_BELOW
+
 
 class MinWii(object):
     
     def __init__(self) :
 
 class MinWii(object):
     
     def __init__(self) :
-        playingScreen = SongPlayingScreenTest()
-        playingScreen.run()
+        LaunchScreen()
+        app = Desktop()
+        synth = Synth()
+
+        modeResolution = (1024,768)
+
+        pygame_wiimouse.init(1, 5) # look for 1, wait 5 seconds
+        n = pygame_wiimouse.get_count()
+        print '%d wiimotes' % n
+        WT = pygame_wiimouse.WT
+        WT.pause()
+        wm = pygame_wiimouse.Wiimote(0) # access the wiimote object
+        wm.enable_accels(0) # turn on acceleration reporting
+        wm.enable_ir(1, vres = modeResolution, position=IR_BELOW)
+
+        pygame.display.set_mode(modeResolution)
+        pygame.display.set_caption('MinWii')
+
+        while True :
+            # sélection de la chanson
+            home = Home(songPath=SONG_FILE_PATH)
+            home.connect(QUIT, app.quit)
+            app.run(home)
+            app.close(home)
+            returnValue = home.returnValue
+            if not returnValue :
+                break
+            
+            # sélection de l'instrument
+            WT.resume()
+            selector = InstrumentSelector()
+            selector.run()
+            selector.stop()
+            pygame.event.clear()
+            EventDispatcher.reset()
+            instrumentDescription = selector.selectedInstrument
+            
+            # lancement du lecteur / clavier
+            songFile = home.songFile
+            playMode = home.modeSelect.value
+            playMode = PLAYING_MODES_DICT[playMode]
+            song = musicXml2Song(songFile)
+            bank, preset = instrumentDescription['bank'], instrumentDescription['preset']
+            octave = instrumentDescription.get('octave', 0)
+            synth.adjust_octave(0, octave)
+            synth.program_select(0, bank, preset)
+            playingScreen = SongPlayingScreen(synth, song, mode=playMode)
+            playingScreen.run()
+            pygame.event.clear()
+            EventDispatcher.reset()
+            WT.pause()