diff light8/Patch.py @ 0:45b12307c695

Initial revision
author drewp
date Wed, 03 Jul 2002 09:37:57 +0000
parents
children f974a462133f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/light8/Patch.py	Wed Jul 03 09:37:57 2002 +0000
@@ -0,0 +1,46 @@
+def resolve_name(channelname):
+    "Ensure that we're talking about the primary name of the light."
+    return get_channel_name(get_dmx_channel(channelname))
+
+def get_all_channels():
+    """returns primary names for all channels (sorted)"""
+    prinames = reverse_patch.values()[:]
+    prinames.sort()
+    return prinames
+
+def get_dmx_channel(name):
+    if name in patch:
+        return patch[name]
+
+    try:
+        i = int(name)
+        return i
+    except ValueError:
+        raise ValueError("Invalid channel name: %s" % name)
+
+def get_channel_name(dmxnum):
+    try:
+        return reverse_patch[dmxnum]
+    except KeyError:
+        return str(dmxnum)
+
+def reload_data():
+    global patch, reverse_patch
+    import patchdata
+
+    reload(patchdata)
+    loadedpatch = patchdata.patch
+    patch = {}
+    reverse_patch = {}
+    for k, v in loadedpatch.items():
+        if type(k) is tuple:
+            for name in k:
+                patch[name] = v
+            reverse_patch[v] = k[0]
+        else:
+            patch[k] = v
+            reverse_patch[v] = k
+
+# importing patch will load initial data
+reload_data()
+