changeset 888:cad8207933d7

KC fix logging, startup after graph sync, display uri tails when there's no label Ignore-this: 55d0cac2cd05d07ac6e7691b25b6b117
author Drew Perttula <drewp@bigasterisk.com>
date Sat, 08 Jun 2013 08:21:24 +0000
parents 4fe5612db2ed
children 3b1a435a29b8
files bin/keyboardcomposer light9/Submaster.py
diffstat 2 files changed, 26 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/bin/keyboardcomposer	Sat Jun 08 08:20:48 2013 +0000
+++ b/bin/keyboardcomposer	Sat Jun 08 08:21:24 2013 +0000
@@ -1,6 +1,7 @@
 #!bin/python
 
 from __future__ import division, nested_scopes
+from run_local import log
 import cgi, os, sys, time, subprocess, logging, random
 from optparse import OptionParser
 import webcolors, colorsys
@@ -12,7 +13,6 @@
 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
@@ -142,7 +142,9 @@
                     self.pauseTrace = False
 
     def updateName(self):
-        self.namelabel.config(text=self.sub.graph.label(self.sub.uri))
+        def shortUri(u):
+            return '.../' + u.split('/')[-1]
+        self.namelabel.config(text=self.sub.graph.label(self.sub.uri) or shortUri(self.sub.uri))
 
     def launch_subcomposer(self, *args):
         subprocess.Popen(["bin/subcomposer", "--no-geometry", self.name])
@@ -232,8 +234,8 @@
                              self.graph.value(sub.uri, L9['order']),
                              sub)
             for sub in self.submasters.get_all_subs())
-        dispatcher.connect(self.onNewSub, "new submaster")
-        dispatcher.connect(self.onLostSub, "lost submaster")
+        #dispatcher.connect(self.onNewSub, "new submaster")
+        #dispatcher.connect(self.onLostSub, "lost submaster")
         log.info("withgroups %s", withgroups)
 
         for group, order, sub in withgroups:
@@ -520,6 +522,18 @@
             kc.change_row(kc.current_row + diff)
             self.valueOut(name, 0)
 
+def launch(opts, root, graph, session):
+    tl = toplevelat("Keyboard Composer - %s" % opts.session,
+                    existingtoplevel=root, graph=graph, session=session)
+
+    kc = KeyboardComposer(tl, graph, session,
+                          hw_sliders=not opts.no_sliders)
+    kc.pack(fill=BOTH, expand=1)
+
+    for helpline in ["Bindings: B3 mute; C-l edit levels in subcomposer"]:
+        tk.Label(root,text=helpline, font="Helvetica -12 italic",
+                 anchor='w').pack(side='top',fill='x')
+            
 if __name__ == "__main__":
     parser = OptionParser()
     parser.add_option('--no-sliders', action='store_true',
@@ -528,8 +542,7 @@
     parser.add_option('-v', action='store_true', help="log info level")
     opts, args = parser.parse_args()
 
-    logging.basicConfig(level=logging.INFO if opts.v else logging.WARN)
-    log = logging.getLogger('keyboardcomposer')
+    log.setLevel(logging.INFO if opts.v else logging.WARN)
 
     graph = SyncedGraph("keyboardcomposer")
 
@@ -541,16 +554,8 @@
 
     session = clientsession.getUri('keyboardcomposer', opts)
 
-    tl = toplevelat("Keyboard Composer - %s" % opts.session,
-                    existingtoplevel=root, graph=graph, session=session)
-
-    kc = KeyboardComposer(tl, graph, session,
-                          hw_sliders=not opts.no_sliders)
-    kc.pack(fill=BOTH, expand=1)
-
-    for helpline in ["Bindings: B3 mute; C-l edit levels in subcomposer"]:
-        tk.Label(root,text=helpline, font="Helvetica -12 italic",
-                 anchor='w').pack(side='top',fill='x')
+    graph.initiallySynced.addCallback(
+        lambda _: launch(opts, root, graph, session))
 
     if 0: # needs fixing, or maybe it's obsolete because other progs can just patch the rdf graph
         import twisted.internet
--- a/light9/Submaster.py	Sat Jun 08 08:20:48 2013 +0000
+++ b/light9/Submaster.py	Sat Jun 08 08:21:24 2013 +0000
@@ -27,7 +27,7 @@
             # obsolete
             dispatcher.connect(log.error, 'reload all subs')
 
-        log.debug("%s initial levels %s", self.name, self.levels)
+        #log.debug("%s initial levels %s", self.name, self.levels)
 
     def _editedLevels(self):
         pass
@@ -271,7 +271,7 @@
 class Submasters:
     "Collection o' Submaster objects"
     def __init__(self, graph):
-        self.submasters = {}
+        self.submasters = {} # uri : Submaster
         self.graph = graph
 
         graph.addHandler(self.findSubs)
@@ -280,11 +280,13 @@
         current = set()
 
         for s in self.graph.subjects(RDF.type, L9['Submaster']):
+            if self.graph.contains((s, RDF.type, L9['LocalSubmaster'])):
+                continue
             log.info("found sub %s", s)
             if s not in self.submasters:
                 sub = self.submasters[s] = PersistentSubmaster(self.graph, s)
                 dispatcher.send("new submaster", sub=sub)
-                current.add(s)
+            current.add(s)
         for s in set(self.submasters.keys()) - current:
             del self.submasters[s]
             dispatcher.send("lost submaster", subUri=s)