Changeset - 84306c05d229
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 7 years ago 2018-06-09 18:42:06
drewp@bigasterisk.com
sequencer http mode: send faster (this gets 13fps)
Ignore-this: 42794350c8f87faec4392591184e8065
1 file changed with 14 insertions and 2 deletions:
0 comments (0 inline, 0 general)
light9/effect/sequencer.py
Show inline comments
 
@@ -6,10 +6,12 @@ from __future__ import division
 
from louie import dispatcher
 
from rdflib import URIRef
 
from twisted.internet import reactor
 
from twisted.internet import defer
 
from twisted.internet.inotify import INotify
 
from twisted.python.filepath import FilePath
 
import cyclone.sse
 
import logging, bisect, time
 
import traceback
 

	
 
from light9.namespaces import L9, RDF
 
from light9.vidref.musictime import MusicTime
 
@@ -160,6 +162,7 @@ class Sequencer(object):
 

	
 

	
 
    def updateLoop(self):
 
        # print "updateLoop"
 
        now = time.time()
 
        self.recentUpdateTimes = self.recentUpdateTimes[-40:] + [now]
 
        stats.recentFps = len(self.recentUpdateTimes) / (self.recentUpdateTimes[-1] - self.recentUpdateTimes[0] + .0001)
 
@@ -172,7 +175,11 @@ class Sequencer(object):
 
            self.lastStatLog = now
 

	
 
        def done(sec):
 
            reactor.callLater(max(0, time.time() - (now + 1 / self.fps)), self.updateLoop)
 
            # print "sec", sec
 
            # delay = max(0, time.time() - (now + 1 / self.fps))
 
            # print 'cl', delay
 
            delay = 0.005
 
            reactor.callLater(delay, self.updateLoop)
 
        def err(e):
 
            log.warn('updateLoop: %r', e)
 
            reactor.callLater(2, self.updateLoop)
 
@@ -182,10 +189,12 @@ class Sequencer(object):
 
        
 
    @stats.update.time()
 
    def update(self):
 
        # print "update"
 
        try:
 
        musicState = self.music.getLatest()
 
        song = URIRef(musicState['song']) if musicState.get('song') else None
 
        if 't' not in musicState:
 
            return
 
                return defer.succeed(0)
 
        t = musicState['t']
 
        dispatcher.send('state', update={'song': str(song), 't': t})
 

	
 
@@ -198,6 +207,9 @@ class Sequencer(object):
 
            settings.append(s)
 
        dispatcher.send('state', update={'songNotes': noteReports})
 
        return self.sendToCollector(DeviceSettings.fromList(self.graph, settings))
 
        except Exception:
 
            traceback.print_exc()
 
            raise
 

	
 
class Updates(cyclone.sse.SSEHandler):
 
    def __init__(self, application, request, **kwargs):
0 comments (0 inline, 0 general)