From a4026ac6cb2afe5804ca826f7e8fa04254d36d46 Mon Sep 17 00:00:00 2001 From: pin Date: Tue, 23 Mar 2010 15:03:02 +0000 Subject: [PATCH 1/1] Prise en charge du mode. git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@113 fe552daf-6dbe-4428-90eb-1537e0879342 --- src/app/globals.py | 12 ++++++++---- src/app/minwii.py | 9 ++++++--- src/app/widgets/data/accueil.png | Bin 13842 -> 11907 bytes src/app/widgets/home.py | 11 ++++++----- src/app/widgets/playingscreen.py | 8 ++++---- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/app/globals.py b/src/app/globals.py index ef51d78..0dde5f3 100755 --- a/src/app/globals.py +++ b/src/app/globals.py @@ -11,10 +11,14 @@ from math import floor BACKGROUND_LAYER = 0 FOREGROUND_LAYER = 1 CURSOR_LAYER = 2 -PLAYING_MODES = {'EASY':0 - ,'NORMAL':1 - ,'ADVANCED':2 - ,'EXPERT':3} +PLAYING_MODES = (('EASY' , u'Facile'), + ('NORMAL' , u'Normal'), + ('ADVANCED', u'Avancé'), + ('EXPERT' , u'Expert')) + + + +PLAYING_MODES_DICT = dict([(v[0], i) for i, v in enumerate(PLAYING_MODES)]) def hls_to_rgba_8bits(h, l, s, a=1) : #convert to rgb ranging from 0 to 255 diff --git a/src/app/minwii.py b/src/app/minwii.py index 06e33f7..2e65952 100755 --- a/src/app/minwii.py +++ b/src/app/minwii.py @@ -17,7 +17,7 @@ from synth import Synth 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): @@ -49,10 +49,13 @@ class MinWii(object): 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'] synth.program_select(0, bank, preset) - playingScreen = SongPlayingScreen(synth, song) + playingScreen = SongPlayingScreen(synth, song, mode=playMode) playingScreen.run() pygame.event.clear() EventDispatcher.reset() diff --git a/src/app/widgets/data/accueil.png b/src/app/widgets/data/accueil.png index cd3224b5172098f5ff49567df1dc27e46ae4b9d3..9be4901d8207a038fe66707593d5717ef48bb6d6 100644 GIT binary patch literal 11907 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 diff --git a/src/app/widgets/home.py b/src/app/widgets/home.py index 6d9d7d5..1aa74d3 100755 --- a/src/app/widgets/home.py +++ b/src/app/widgets/home.py @@ -15,7 +15,7 @@ from pgu.gui import CLICK from pgu.gui import QUIT from pgu.gui import CHANGE import pygame -from gui.constants import reversedReadabilityDict, modeDict +from globals import PLAYING_MODES from songfilebrowser import FileOpenDialog import os.path @@ -53,9 +53,9 @@ class Home(Table) : # choix du niveau self.tr() self.td(self.createLabel("Niveau :")) - self.modeSelect = Select('easy') - for key in modeDict.keys() : - self.modeSelect.add(self.createLabel(reversedReadabilityDict[key]),key) + self.modeSelect = Select('EASY') + for k, caption in PLAYING_MODES : + self.modeSelect.add(self.createLabel(caption), k) self.td(self.modeSelect,colspan=3) self.tr() @@ -80,7 +80,7 @@ class Home(Table) : self.tr() self.quitButton = Button(self.createLabel("Quitter")) self.td(self.quitButton) - self.playButton = Button(self.createLabel("Jouer")) + self.playButton = Button(self.createLabel("Jouer"), disabled=True) self.td(self.playButton,colspan=3) self.tr() @@ -114,6 +114,7 @@ class Home(Table) : def handle_file_browser_closed(self, dlg) : if dlg.value and os.path.isfile(dlg.value): self.songFile = dlg.value + self.playButton.disabled = False \ No newline at end of file diff --git a/src/app/widgets/playingscreen.py b/src/app/widgets/playingscreen.py index f5cbdb6..2fad9c2 100755 --- a/src/app/widgets/playingscreen.py +++ b/src/app/widgets/playingscreen.py @@ -21,7 +21,7 @@ from config import DEFAULT_MIDI_VELOCITY from globals import BACKGROUND_LAYER from globals import CURSOR_LAYER -from globals import PLAYING_MODES +from globals import PLAYING_MODES_DICT class _PlayingScreenBase(pygame.sprite.LayeredDirty, EventHandlerMixin) : @@ -169,17 +169,17 @@ class PlayingScreen(_PlayingScreenBase) : class SongPlayingScreen(_PlayingScreenBase) : - def __init__(self, synth, song, mode=PLAYING_MODES['EASY']) : + def __init__(self, synth, song, mode=PLAYING_MODES_DICT['EASY']) : super(SongPlayingScreen, self).__init__(synth, song.distinctNotes) self.song = song self.quarterNoteDuration = song.quarterNoteDuration self.currentColumn = None self.noteIterator = self.song.iterNotes() self.displayNext() - if mode == PLAYING_MODES['NORMAL'] : + if mode == PLAYING_MODES_DICT['NORMAL'] : EventDispatcher.addEventListener(events.COLDOWN, self.handleColumnDown) EventDispatcher.addEventListener(events.COLUP, self.handleColumnUp) - elif mode == PLAYING_MODES['EASY'] : + elif mode == PLAYING_MODES_DICT['EASY'] : EventDispatcher.addEventListener(events.COLOVER, self.handleColumnOver) -- 2.20.1