X-Git-Url: https://scm.cri.ensmp.fr/git/minwii.git/blobdiff_plain/8835f31006dd12de37f0b4bb48f999e32c8848c9..0509328e5d3a7760b00b99cd2176d9089279f458:/src/logging/LogPGUPlayer.py diff --git a/src/logging/LogPGUPlayer.py b/src/logging/LogPGUPlayer.py deleted file mode 100644 index cf1a670..0000000 --- a/src/logging/LogPGUPlayer.py +++ /dev/null @@ -1,237 +0,0 @@ -''' -Created on 25 janv. 2010 - -@author: Samuel Benveniste -''' - -import pygame -import pickle - -from pgu import gui as pguGui - -from gui import constants - -from instruments.Instrument import Instrument -from songs.Song import Song -from cursor.WarpingCursor import * -from gui.StaticFamiliarizer import StaticFamiliarizer -from gui.SongFamiliarizer import SongFamiliarizer -from gui.SongPlayingScreen import SongPlayingScreen -from gui.DummyInstrumentChoice import DummyInstrumentChoice -from controllers.Wiimote import Wiimote - -class LogPGUPlayer(pguGui.Desktop): - ''' - classdocs - ''' - - - def __init__(self,rate): - ''' - Constructor - ''' - self.firstStepDurations = [] - self.firstStepClicks = [] - self.firstStepClicksIn = [] - - self.secondStepDurations = [] - self.secondStepClicks = [] - self.secondStepClicksIn = [] - - self.thirdStepDurations = [] - self.thirdStepClicks = [] - self.thirdStepClicksIn = [] - - self.songDurations = [] - self.songClicks = [] - self.songClicksIn = [] - self.songClicksPerMinute = [] - self.songClicksInPerMinute = [] - self.songTotalDurations = [] - - self.meanTimeBetweenNotes = [] - - pguGui.Desktop.__init__(self) - - self.replayRate = rate - #pguGui.theme.load('../data/themes/default') - - self.connect(pguGui.QUIT,self.quit,None) - - main = pguGui.Container(width=500, height=400) #, background=(220, 220, 220) ) - - - main.add(pguGui.Label("File Dialog Example", cls="h1"), 20, 20) - - - td_style = {'padding_right': 10} - t = pguGui.Table() - t.tr() - t.td( pguGui.Label('File Name:') , style=td_style ) - self.input_file = pguGui.Input() - t.td( self.input_file, style=td_style ) - self.browseButton = pguGui.Button("Browse...") - t.td( self.browseButton, style=td_style ) - self.browseButton.connect(pguGui.CLICK, self.open_file_browser, None) - - self.goButton = pguGui.Button("Go") - - self.goButton.connect(pguGui.CLICK, self.goButtonClicked,None) - - self.quitButton = pguGui.Button("Fin") - self.quitButton.connect(pguGui.CLICK,self.quit,None) - - t.td( self.browseButton, style=td_style ) - t.td( self.goButton, style=td_style ) - t.td( self.quitButton, style=td_style ) - - main.add(t, 20, 100) - - self.run(main) - #import profile - #profile.run('app.run(main)') - - def open_file_browser(self,data=None): - d = pguGui.FileDialog(path = "../../../saves") - d.connect(pguGui.CHANGE, self.handle_file_browser_closed, d) - d.open() - - - def handle_file_browser_closed(self,dlg): - if dlg.value: self.input_file.value = dlg.value - - def goButtonClicked(self,data=None): - if self.input_file.value.endswith(".fmwi"): - f = file(self.input_file.value, 'r') - unpickler = pickle.Unpickler(f) - log = unpickler.load() - f.close() - - log.eventLog.setReplayRate(self.replayRate) - - pygame.midi.init() - instruments = [Instrument(log.scale, i + 1, "".join(["../instruments/instrumentImages/", constants.instrumentImagePathList[i], ".jpg"]), constants.octaves[i]) for i in range(9)] - - joys = [[id,pygame.joystick.Joystick(id).get_name()] for id in range(pygame.joystick.get_count())] - for joy in joys: - if joy[1] in constants.joyNames: - pygame.joystick.Joystick(joy[0]).init() - - ports = [pygame.midi.get_device_info(id)[1] for id in range(pygame.midi.get_count())] - portOffset = ports.index(constants.portNames[0]) - print(portOffset) - - screen = pygame.display.get_surface() - clock = pygame.time.Clock() - cursorImages=[['../cursor/cursorImages/black/10.png'],['../cursor/cursorImages/red/10.png'],['../cursor/cursorImages/blue/10.png'],['../cursor/cursorImages/green/10.png']] - durations = [75 for i in range(len(cursorImages))] - - extsc = True - casc = False - easyMode = True - - song = Song(constants.scaleDict["majorScale"],[3,9,6,4,1,8,5,7,2,10],True) - - wiimoteCount = 4 - - cursors = [WarpingCursor(None, cursorImages[i], durations, (300 * i, 300 * i),'../cursor/cursorImages/black/flash.png') for i in range(wiimoteCount)] - wiimotes = [Wiimote(i, i + portOffset, None, instruments[0], cursors[i]) for i in range(wiimoteCount)] - dummyInstrumentChoice = DummyInstrumentChoice(wiimotes, window, screen, clock, joys, portOffset, log.activeWiimotes) - if log.level < 2 : - familiarize = StaticFamiliarizer(wiimotes, window, screen, clock, joys, portOffset,log.activeWiimotes,level = log.level,eventLog = log.eventLog,replay = True) - self.fillStaticFamiliarizerStats(familiarize) - elif log.level == 2 : - familiarize = SongFamiliarizer(wiimotes, window, screen, clock, joys, portOffset,song,log.activeWiimotes,casc,extsc,easyMode,eventLog = log.eventLog,replay = True) - self.fillSongFamiliarizerStats(familiarize) - else : - familiarize = SongPlayingScreen(dummyInstrumentChoice,constants.songDict["clairdelalune"],easyMode = True,eventLog = log.eventLog,replay = True) - self.fillSongStats(familiarize) - - while familiarize.nextLevel != None : - if familiarize.nextLevel < 2 : - familiarize = StaticFamiliarizer(wiimotes, window, screen, clock, joys, portOffset,log.activeWiimotes,level = familiarize.nextLevel,eventLog = familiarize.eventLog,replay = True) - self.fillStaticFamiliarizerStats(familiarize) - elif familiarize.nextLevel == 2 : - familiarize = SongFamiliarizer(wiimotes, window, screen, clock, joys, portOffset,song,log.activeWiimotes,casc,extsc,easyMode,eventLog = familiarize.eventLog,replay = True) - self.fillSongFamiliarizerStats(familiarize) - else : - familiarize = SongPlayingScreen(dummyInstrumentChoice,constants.songDict["clairdelalune"],easyMode = True,eventLog = familiarize.eventLog,replay = True) - self.fillSongStats(familiarize) - - for wiimote in wiimotes: - del wiimote.port - - pygame.midi.quit() - self.printStatsToFile() - - def fillStaticFamiliarizerStats(self,familiarizer): - if familiarizer.level == 0 : - self.firstStepClicks.append(familiarizer.clicks) - self.firstStepClicksIn.append(familiarizer.clicksIn) - self.firstStepDurations.append(familiarizer.duration) - - if familiarizer.level == 1 : - self.secondStepClicks.append(familiarizer.clicks) - self.secondStepClicksIn.append(familiarizer.clicksIn) - self.secondStepDurations.append(familiarizer.duration) - - def fillSongFamiliarizerStats(self,familiarizer): - self.thirdStepClicks.append(familiarizer.clicks) - self.thirdStepClicksIn.append(familiarizer.clicksIn) - self.thirdStepDurations.append(familiarizer.duration) - - def fillSongStats(self,familiarizer): - self.songClicks.append(familiarizer.clicks) - self.songClicksIn.append(familiarizer.clicksIn) - self.songClicksPerMinute.append(familiarizer.clicksPerMinute) - self.songClicksInPerMinute.append(familiarizer.clicksInPerMinute) - self.songDurations.append(familiarizer.songDurations) - self.songTotalDurations.append(familiarizer.totalDuration) - - def statsToFormattedString(self): - return("First step durations :\n"+"\n"+ - str(self.firstStepDurations)+"\n"+"\n"+ - "First step clicks :\n"+"\n"+ - str(self.firstStepClicks)+"\n"+"\n"+ - "First step clicksIn :\n"+"\n"+ - str(self.firstStepClicksIn)+"\n"+"\n"+ - "Second step durations :\n"+"\n"+ - str(self.secondStepDurations)+"\n"+"\n"+ - "Second step clicks :\n"+"\n"+ - str(self.secondStepClicks)+"\n"+"\n"+ - "Second step clicksIn :\n"+"\n"+ - str(self.secondStepClicksIn)+"\n"+"\n"+ - "Third step durations :\n"+"\n"+ - str(self.thirdStepDurations)+"\n"+"\n"+ - "Third step clicks :\n"+"\n"+ - str(self.thirdStepClicks)+"\n"+"\n"+ - "Third step clicksIn :\n"+"\n"+ - str(self.thirdStepClicksIn)+"\n"+"\n"+ - "song durations :\n"+"\n"+ - str(self.songDurations)+"\n"+"\n"+ - "song clicks :\n"+"\n"+ - str(self.songClicks)+"\n"+"\n"+ - "song clicksIn :\n"+"\n"+ - str(self.songClicksIn)+"\n"+"\n"+ - "song clicks per minute:\n"+"\n"+ - str(self.songClicksPerMinute)+"\n"+"\n"+ - "song clicksIn per minute :\n"+"\n"+ - str(self.songClicksInPerMinute)+"\n"+"\n"+ - "song total durations :\n"+"\n"+ - str(self.songTotalDurations)+"\n"+"\n") - - def printStatsToFile(self,path=None): - if path == None : - path = self.input_file.value.replace(".fmwi",".txt") - file = open(path,"w") - file.write("Log ID : "+self.input_file.value+"\n"+"\n") - file.write(self.statsToFormattedString()) - file.close() - -if __name__ == "__main__": - pygame.init() - modeResolution = (1024,768) - window = pygame.display.set_mode(modeResolution,pygame.FULLSCREEN) - logConfig = LogPGUPlayer(10000) - pygame.quit() - \ No newline at end of file