diff bin/gyrocontroller @ 272:460bc5ebcaaf

gyrocontroller can use patch names, Submasters gets get_all_sub_names()
author David McClosky <dmcc@bigasterisk.com>
date Fri, 17 Jun 2005 07:00:51 +0000
parents 97c08a1c4351
children 3b73f0a58a54
line wrap: on
line diff
--- a/bin/gyrocontroller	Fri Jun 17 04:23:07 2005 +0000
+++ b/bin/gyrocontroller	Fri Jun 17 07:00:51 2005 +0000
@@ -4,6 +4,7 @@
 import run_local
 from light9.Submaster import Submasters, Submaster, combine_subdict
 from light9.subclient import SubClient
+import light9.Patch as Patch
 
 import Tix as Tk
 
@@ -48,12 +49,25 @@
         self.subnames = subnames
         self.refresh()
     def get_sub(self, name):
+        if name in self.submasters.get_all_sub_names():
+            return self.submasters.get_sub_by_name(name)
+
         try:
             val = int(name)
-            s = Submaster("Ch%d" % val, {val : 1.0}, temporary=True)
+            s = Submaster("#%d" % val, {val : 1.0}, temporary=True)
             return s
         except ValueError:
-            return self.submasters.get_sub_by_name(name)
+            pass
+
+        try:
+            subnum = Patch.get_dmx_channel(name)
+            s = Submaster("'%s'" % name, {subnum : 1.0}, temporary=True)
+            return s
+        except ValueError:
+            pass
+
+        # make an error sub
+        return Submaster('%s!?' % name)
     def refresh(self):
         # reload subs from disk
         self.submasters = Submasters()