From e26832c9e7be68fc16059f7a2d3c2478afbcfa91 Mon Sep 17 00:00:00 2001
From: pin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Date: Tue, 27 Jul 2010 13:49:43 +0000
Subject: [PATCH] =?utf8?q?Affichage=20des=20dur=C3=A9es=20bien=20comme=20i?=
 =?utf8?q?l=20faut.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@296 fe552daf-6dbe-4428-90eb-1537e0879342
---
 src/minwii/loganalyse.py | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/minwii/loganalyse.py b/src/minwii/loganalyse.py
index a5f8be7..d7e136f 100755
--- a/src/minwii/loganalyse.py
+++ b/src/minwii/loganalyse.py
@@ -10,6 +10,7 @@ from minwii.logfilereader import LogFileReader
 from pprint import pprint
 from minwii.musicxml import musicXml2Song
 from statlib import stats
+from datetime import timedelta
 
 DEFAULT_STATS = ('geometricmean',
                  'harmonicmean',
@@ -71,10 +72,15 @@ class LogFileAnalyser(LogFileReader) :
                 meth = getattr(self, name)
                 results.append((meth.__doc__, meth()))
         except :
-            pass
+            raise
         
         return results
     
+    def _toTimeDelta(self, milliseconds) :
+        duration = milliseconds / 1000.
+        duration = int(round(duration, 0))
+        return str(timedelta(seconds=duration))
+    
     def playingDuration(self) :
         'Temps de jeu'
         #retourne la durée écoulée entre le premier et de dernier message
@@ -82,10 +88,11 @@ class LogFileAnalyser(LogFileReader) :
         
         last = self.getLastEventTicks()
         first = self.getFirstEventTicks()
-        return last - first
+        return self._toTimeDelta(last - first)
+        
     
     def songDuration(self) :
-        'Durée de la chanson'
+        'Durée de référence de la chanson'
         #retourne la durée de référence de la chanson
         #en prenant en compte le tempo présent dans la transcription
         #et en effectuant toutes les répétitions des couplets / refrains.
@@ -95,7 +102,8 @@ class LogFileAnalyser(LogFileReader) :
         duration = 0
         for note, verseIndex in song.iterNotes() :
             duration = duration + note.duration
-        return duration * song.quarterNoteDuration
+        duration = duration * song.quarterNoteDuration # en milisecondes
+        return self._toTimeDelta(duration)
     
     @statsresults
     def noteEndNoteOnLatency(self) :
@@ -136,7 +144,7 @@ class LogFileAnalyser(LogFileReader) :
         for note, verseIndex in song.iterNotes() :
             songNoteCpt = songNoteCpt + 1
         
-        return int(round(self.noteOnCount() / float(songNoteCpt) * 100, 0))
+        return round(self.noteOnCount() / float(songNoteCpt) * 100, 1)
     
     def missCount(self) :
         "Nombre d'erreurs"
-- 
2.20.1