Files
@ 24352fe6f5ae
Branch filter:
Location: light9/bin/lightsim - annotation
24352fe6f5ae
3.0 KiB
text/plain
smaller font on KC labels
9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 c6aabf5bd3bc 9d1f323fb3d3 941cfe1e1691 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 9d1f323fb3d3 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 9d1f323fb3d3 941cfe1e1691 941cfe1e1691 941cfe1e1691 9d1f323fb3d3 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 9d1f323fb3d3 9d1f323fb3d3 9d1f323fb3d3 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 9d1f323fb3d3 941cfe1e1691 9d1f323fb3d3 9d1f323fb3d3 941cfe1e1691 941cfe1e1691 941cfe1e1691 9d1f323fb3d3 9d1f323fb3d3 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 941cfe1e1691 9d1f323fb3d3 941cfe1e1691 c6aabf5bd3bc | #!/usr/bin/python
from __future__ import division
import run_local
from rdflib import Literal, URIRef
from twisted.internet import reactor, tksupport
from twisted.internet.task import LoopingCall
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, prof
from light9.namespaces import L9
from louie import dispatcher
try:
from OpenGL import Tk as Togl
from OpenGL.GL import *
except ImportError:
sys.path.append("/usr/lib/python2.4/site-packages/OpenGL/Tk/linux2-tk8.4")
from OpenGL.GL import *
import Togl
from lightsim.openglsim import Surface
def poll(graph, serv, pollFreq):
pollFreq.update()
dispatcher.send("status", key="pollFreq", value=str(pollFreq))
d = serv.callRemote("currentlevels", dmxclient._id)
def received(dmxLevels):
level = {} # filename : level
for i, lev in enumerate(dmxLevels):
if lev == 0:
continue
try:
chan = Patch.get_channel_uri(Patch.get_channel_name(i + 1))
except KeyError:
continue
for lyr in graph.objects(chan, L9['previewLayer']):
for imgPath in graph.objects(lyr, L9['path']):
level[str(imgPath)] = lev
ogl.newLevels(levels=level)
d.addCallback(received)
return d
class StatusKeys(tk.Frame):
# watch out- this might be an accidental redo of what curvecalc
# has. Or, maybe CC should use this obj
def __init__(self, master):
tk.Frame.__init__(self, master)
dispatcher.connect(self.status, "status")
self.row = {} # key name : (Frame, value Label)
def status(self, key, value):
if key not in self.row:
f = tk.Frame(self)
f.pack(side='top')
tk.Label(f, text=key, font="arial 8").pack(side='left')
l = tk.Label(f, text=value, font="arial 8")
l.pack(side='left')
self.row[key] = (f, l)
else:
row, lab = self.row[key]
lab.config(text=value)
root = tk.Frame()
root.pack(expand=True, fill='both')
pollFreq = updatefreq.Updatefreq(samples=5)
graph = showconfig.getGraph()
filenames = []
for lyr in graph.objects(None, L9['previewLayer']):
for p in graph.objects(lyr, L9['path']):
filenames.append(str(p))
ogl = Surface(root, filenames, width=120, height=80, imgRescaleTo=128)
ogl.pack(side='top', expand=True, fill='both')
sk = StatusKeys(root)
sk.pack(side='top', fill='x')
serv = Proxy(networking.dmxServerUrl())
LoopingCall(poll, graph, serv, pollFreq).start(.1)
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)
prof.run(reactor.run, profile=False)
|