Changeset - c6aabf5bd3bc
[Not reviewed]
default
0 3 0
Drew Perttula - 18 years ago 2007-06-11 02:26:49
drewp@bigasterisk.com
big KC speedup from not reloading config.n3 constantly
3 files changed with 32 insertions and 20 deletions:
0 comments (0 inline, 0 general)
bin/keyboardcomposer
Show inline comments
 
@@ -11,13 +11,13 @@ import Tix as tk
 
import pickle
 

	
 
import run_local
 
from light9.Fadable import Fadable
 
from light9.Submaster import Submasters, sub_maxes
 
from light9.subclient import SubClient
 
from light9 import dmxclient, showconfig, networking
 
from light9 import dmxclient, showconfig, networking, prof
 
from light9.uihelpers import toplevelat, bindkeys
 
from bcf2000 import BCF2000
 

	
 
nudge_keys = {
 
    'up' : list('qwertyuiop'),
 
    'down' : list('asdfghjkl')
 
@@ -108,16 +108,16 @@ class KeyboardComposer(Frame, SubClient)
 
        self.sub_name.pack(side=LEFT)
 
        self.stop_frequent_update_time = 0
 

	
 
        try:
 
            self.sliders = Sliders(self.hw_slider_moved)
 
        except IOError:
 
            class _:
 
            class dummy:
 
                def valueOut(self, name, value):
 
                    pass
 
            self.sliders = _()
 
            self.sliders = dummy()
 
            print "no hw sliders found"
 

	
 
    def make_key_hints(self):
 
        keyhintrow = Frame(self)
 

	
 
        col = 0
 
@@ -291,12 +291,16 @@ class Sliders(BCF2000):
 
    def valueIn(self, name, value):
 
        print "in", name, value
 
        if name.startswith("slider"):
 
            self.cb(int(name[6:]) - 1, value / 127)
 

	
 
if __name__ == "__main__":
 

	
 
    #prof.watchPoint("/usr/lib/python2.4/site-packages/rdflib-2.3.3-py2.4-linux-i686.egg/rdflib/syntax/parsers/n3p/n3p.py", 67)
 

	
 

	
 
    parser = OptionParser()
 
    parser.add_option('--nonpersistent', action="store_true",
 
                      help="don't load or save levels")
 
    opts, args = parser.parse_args()
 
    
 
    s = Submasters()
 
@@ -324,12 +328,10 @@ if __name__ == "__main__":
 

	
 
    root.protocol('WM_DELETE_WINDOW', reactor.stop)
 
    if not opts.nonpersistent:
 
        reactor.addSystemEventTrigger('after', 'shutdown', kc.save)
 
    
 
    tksupport.install(root,ms=10)
 
    if 0:
 
        sys.path.append("/home/drewp/projects/cuisine/pour")
 
        from utils import runstats
 
        runstats("reactor.run()")
 
    else:
 
        reactor.run()
 

	
 

	
 
    
 
    prof.run(reactor.run, profile=False)
bin/lightsim
Show inline comments
 
@@ -9,13 +9,13 @@ from twisted.internet.task import Loopin
 
from twisted.web.xmlrpc import Proxy
 
import xmlrpclib, sys, logging
 
log = logging.getLogger()
 
logging.basicConfig(format="%(asctime)s %(levelname)-5s %(name)s %(filename)s:%(lineno)d: %(message)s")
 
log.setLevel(logging.DEBUG)
 
import Tkinter as tk
 
from light9 import networking, Patch, showconfig, dmxclient, updatefreq
 
from light9 import networking, Patch, showconfig, dmxclient, updatefreq, prof
 
from light9.namespaces import L9
 
from louie import dispatcher
 

	
 
try:
 
    from OpenGL import Tk as Togl
 
    from OpenGL.GL import *
 
@@ -93,14 +93,7 @@ top = root.winfo_toplevel()
 
top.wm_title(dmxclient._id)
 
top.bind("<Control-Key-q>",lambda ev: reactor.stop)
 
top.bind("<Destroy>",lambda ev: reactor.stop)
 
top.protocol('WM_DELETE_WINDOW', reactor.stop)
 
tksupport.install(ogl, ms=20)
 

	
 
if 0:
 
    import hotshot, hotshot.stats
 
    p = hotshot.Profile("/tmp/pro")
 
    p.runcall(reactor.run)
 
    p.close()
 
    hotshot.stats.load("/tmp/pro").sort_stats('time').print_stats()
 
else:
 
    reactor.run()
 
prof.run(reactor.run, profile=False)
light9/showconfig.py
Show inline comments
 
from os import path,getenv
 
import time
 
from os import path, getenv
 
from rdflib.Graph import Graph
 
from rdflib import URIRef
 
from namespaces import MUS, L9
 

	
 
_config = (None, None, None) # graph, mtime, len
 
def getGraph():
 
    global _config
 
    configPath = path.join(root(), 'config.n3')
 
    
 
    now = time.time()
 
    diskMtime = path.getmtime(configPath)
 
    if diskMtime <= _config[1]:
 
        graph = _config[0]
 
        # i'm scared of some program modifying the graph, and then i
 
        # return that from a new getGraph call. Maybe I should be
 
        # copying it right here, or doing something clever with
 
        # contexts
 
        assert len(graph) == _config[2]
 
        return _config[0]
 

	
 
    graph = Graph()
 
    graph.parse(path.join(root(), 'config.n3'), format='n3')
 
    graph.parse(configPath, format='n3')
 
    _config = (graph, diskMtime, len(graph))
 
    return graph
 

	
 
def root():
 
    r = getenv("LIGHT9_SHOW")
 
    if r is None:
 
        raise OSError(
0 comments (0 inline, 0 general)