changeset 1149:ef29453b307f

EE song time fetcher now coasts forwards with local clock Ignore-this: 23dc3675c7ac6a877367979bff5ed12a
author drewp@bigasterisk.com
date Sat, 14 Jun 2014 22:30:15 +0000
parents 4e631b93fee4
children 0e0776d3bd74
files light9/effecteval/effectloop.py
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/light9/effecteval/effectloop.py	Sat Jun 14 22:27:07 2014 +0000
+++ b/light9/effecteval/effectloop.py	Sat Jun 14 22:30:15 2014 +0000
@@ -29,7 +29,7 @@
         self.graph.addHandler(self.setEffects)
         self.period = 1 / 30
         self.coastSecs = .3 # main reason to keep this low is to notice play/pause
-
+        self.songTimeFetch = 0
         self.songTimeFromRequest = 0
         self.requestTime = 0 # unix sec for when we fetched songTime
         self.initOutput()
@@ -78,7 +78,8 @@
     def updateTimeFromMusic(self):
         t1 = time.time()
         with self.stats.getMusic.time():
-            songTime, song = yield self.getSongTime()
+            self.songTime, song = yield self.getSongTime()
+            self.songTimeFetch = time.time()
 
         if song != self.currentSong:
             self.currentSong = song
@@ -89,7 +90,8 @@
         reactor.callLater(max(0, self.period - elapsed), self.updateTimeFromMusic)
 
     def estimatedSongTime(self):
-        return self.songTime
+        now = time.time()
+        return self.songTime + max(0, now - self.songTimeFetch)
         
     @inlineCallbacks
     def sendLevels(self):