from musicxml import musicXml2Song
from config import SONG_FILE_PATH
from globals import PLAYING_MODES_DICT
-from log import console
+from log import console, LOG_FORMAT_VERSION, envLogger
class MinWii(object):
def __init__(self, wiimoteSupport=True) :
+ envLogger.info('winwii log format version : %s', LOG_FORMAT_VERSION)
self.wiimoteSupport = wiimoteSupport
LaunchScreen()
self.app = Desktop()
self.synth = Synth()
self.screenResolution = (1024,768)
+ envLogger.info('résolution écran : %s', self.screenResolution)
self.nwiimotes = 0
self.initWiimotes()
+ self.firstSong = True
def initWiimotes(self) :
if self.wiimoteSupport :
from pywiiuse import pygame_wiimouse
- pygame_wiimouse.init(4, 5, screenResolution) # look for 4, wait 5 seconds
+ pygame_wiimouse.init(4, 5, self.screenResolution) # look for 4, wait 5 seconds
self.nwiimotes = nwiimotes = pygame_wiimouse.get_count()
- console.debug('%d wiimotes found', nwiimotes)
+ console.debug('wiimotes found : %d', nwiimotes)
self.WT = WT = pygame_wiimouse.WT
WT.pause()
else :
self.WT = _WTFacade()
def run(self) :
- "manage the screen sequence display"
+ "séquençage de l'affichage des écrans"
pygame.display.set_mode(self.screenResolution)
pygame.display.set_caption('MinWii')
if exit : break
WT.selectWiimote(selectedWiimoteIndex)
- console.info('wiimote sélectionnée : %d', selectedWiimoteIndex)
WT.resume()
instrumentDescription = self.selectInstrument()
+ if not instrumentDescription :
+ WT.pause()
+ continue
+
self.runPlayingScreen(songFile, playMode, instrumentDescription)
WT.pause()
home.connect(QUIT, app.quit)
app.run(home)
app.close(home)
- #console.debug('wiimote selected: %d', home.selecctedWiimoteIndex)
+
+ #logging
+ if home.exitApp :
+ console.debug("sortie de l'application")
+ else :
+ actual_wiimotes = self.WT.get_count()
+ if self.firstSong :
+ self.firstSong = False
+ else :
+ envLogger.info('NEW_LOG_FILE')
+ console.info('chanson : %s', home.songFile)
+ console.info('mode : %s', home.modeSelect.value)
+ if actual_wiimotes is None :
+ console.info('HID : souris')
+ elif actual_wiimotes == 0 :
+ console.info('HID : souris (pas de wiimote trouvée)')
+ else :
+ console.info('HID : wiimote %d', home.selectedWiimote.value + 1)
+ #---
+
return (home.exitApp,
home.songFile,
home.modeSelect.value,
selector.stop()
pygame.event.clear()
EventDispatcher.reset()
- return selector.selectedInstrument
+ instru = selector.selectedInstrument
+ if instru :
+ console.info('instrument : %s', instru['name'])
+ console.info('preset : %d', instru['preset'])
+ console.info('bank : %d', instru['bank'])
+ console.info('ajustement octave : %d', instru['octave'])
+ return instru
def runPlayingScreen(self, songFile, playMode, instrumentDescription) :
""" Lance l'écran de jeu principal avec la chanson 'songFile' dans le mode 'playMode'
playMode = PLAYING_MODES_DICT[playMode]
song = musicXml2Song(songFile)
bank, preset = instrumentDescription['bank'], instrumentDescription['preset']
- octave = instrumentDescription.get('octave', 0)
+ octave = instrumentDescription['octave']
self.synth.adjust_octave(0, octave)
self.synth.program_select(0, bank, preset)
playingScreen = SongPlayingScreen(self.synth, song, mode=playMode)
class _WTFacade :
+ """ Classe utilitaire pour singer l'api
+ de pygame_wiimouse en cas d'abscence de wiimote.
+ """
selectWimoteIndex = 0
def pause(self):
pass
pass
def selectWiimote(self, i):
pass
+ def get_count(self) :
+ return None