Ajout d'une option pour désactiver le support des wiimotes au lancement de l'application.
[minwii.git] / src / app / minwii.py
index 06e33f7..1cf7daf 100755 (executable)
@@ -17,16 +17,37 @@ from synth import Synth
 from eventutils import EventDispatcher
 from musicxml import musicXml2Song
 from config import SONG_FILE_PATH
 from eventutils import EventDispatcher
 from musicxml import musicXml2Song
 from config import SONG_FILE_PATH
-from time import sleep
+from globals import PLAYING_MODES_DICT
+
 
 class MinWii(object):
     
 
 class MinWii(object):
     
-    def __init__(self) :
+    def __init__(self, wimoteSupport=True) :
         LaunchScreen()
         app = Desktop()
         synth = Synth()
 
         modeResolution = (1024,768)
         LaunchScreen()
         app = Desktop()
         synth = Synth()
 
         modeResolution = (1024,768)
+        
+        if wimoteSupport :
+            from pywiiuse import pygame_wiimouse
+            from pywiiuse.PyWiiUse import IR_BELOW
+            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)
+        else :
+            class _WTFacade :
+                def pause(self):
+                    pass
+                def resume(self):
+                    pass
+            WT = _WTFacade()
+
         pygame.display.set_mode(modeResolution)
         pygame.display.set_caption('MinWii')
 
         pygame.display.set_mode(modeResolution)
         pygame.display.set_caption('MinWii')
 
@@ -41,6 +62,7 @@ class MinWii(object):
                 break
             
             # sélection de l'instrument
                 break
             
             # sélection de l'instrument
+            WT.resume()
             selector = InstrumentSelector()
             selector.run()
             selector.stop()
             selector = InstrumentSelector()
             selector.run()
             selector.stop()
@@ -49,10 +71,16 @@ class MinWii(object):
             instrumentDescription = selector.selectedInstrument
             
             # lancement du lecteur / clavier
             instrumentDescription = selector.selectedInstrument
             
             # lancement du lecteur / clavier
-            song = musicXml2Song(home.songFile)
+            songFile = home.songFile
+            playMode = home.modeSelect.value
+            playMode = PLAYING_MODES_DICT[playMode]
+            song = musicXml2Song(songFile)
             bank, preset = instrumentDescription['bank'], instrumentDescription['preset']
             bank, preset = instrumentDescription['bank'], instrumentDescription['preset']
+            octave = instrumentDescription.get('octave', 0)
+            synth.adjust_octave(0, octave)
             synth.program_select(0, bank, preset)
             synth.program_select(0, bank, preset)
-            playingScreen = SongPlayingScreen(synth, song)
+            playingScreen = SongPlayingScreen(synth, song, mode=playMode)
             playingScreen.run()
             pygame.event.clear()
             EventDispatcher.reset()
             playingScreen.run()
             pygame.event.clear()
             EventDispatcher.reset()
+            WT.pause()