annotate light8/Patch.py @ 0:45b12307c695

Initial revision
author drewp
date Wed, 03 Jul 2002 09:37:57 +0000
parents
children f974a462133f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
1 def resolve_name(channelname):
45b12307c695 Initial revision
drewp
parents:
diff changeset
2 "Ensure that we're talking about the primary name of the light."
45b12307c695 Initial revision
drewp
parents:
diff changeset
3 return get_channel_name(get_dmx_channel(channelname))
45b12307c695 Initial revision
drewp
parents:
diff changeset
4
45b12307c695 Initial revision
drewp
parents:
diff changeset
5 def get_all_channels():
45b12307c695 Initial revision
drewp
parents:
diff changeset
6 """returns primary names for all channels (sorted)"""
45b12307c695 Initial revision
drewp
parents:
diff changeset
7 prinames = reverse_patch.values()[:]
45b12307c695 Initial revision
drewp
parents:
diff changeset
8 prinames.sort()
45b12307c695 Initial revision
drewp
parents:
diff changeset
9 return prinames
45b12307c695 Initial revision
drewp
parents:
diff changeset
10
45b12307c695 Initial revision
drewp
parents:
diff changeset
11 def get_dmx_channel(name):
45b12307c695 Initial revision
drewp
parents:
diff changeset
12 if name in patch:
45b12307c695 Initial revision
drewp
parents:
diff changeset
13 return patch[name]
45b12307c695 Initial revision
drewp
parents:
diff changeset
14
45b12307c695 Initial revision
drewp
parents:
diff changeset
15 try:
45b12307c695 Initial revision
drewp
parents:
diff changeset
16 i = int(name)
45b12307c695 Initial revision
drewp
parents:
diff changeset
17 return i
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 except ValueError:
45b12307c695 Initial revision
drewp
parents:
diff changeset
19 raise ValueError("Invalid channel name: %s" % name)
45b12307c695 Initial revision
drewp
parents:
diff changeset
20
45b12307c695 Initial revision
drewp
parents:
diff changeset
21 def get_channel_name(dmxnum):
45b12307c695 Initial revision
drewp
parents:
diff changeset
22 try:
45b12307c695 Initial revision
drewp
parents:
diff changeset
23 return reverse_patch[dmxnum]
45b12307c695 Initial revision
drewp
parents:
diff changeset
24 except KeyError:
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 return str(dmxnum)
45b12307c695 Initial revision
drewp
parents:
diff changeset
26
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 def reload_data():
45b12307c695 Initial revision
drewp
parents:
diff changeset
28 global patch, reverse_patch
45b12307c695 Initial revision
drewp
parents:
diff changeset
29 import patchdata
45b12307c695 Initial revision
drewp
parents:
diff changeset
30
45b12307c695 Initial revision
drewp
parents:
diff changeset
31 reload(patchdata)
45b12307c695 Initial revision
drewp
parents:
diff changeset
32 loadedpatch = patchdata.patch
45b12307c695 Initial revision
drewp
parents:
diff changeset
33 patch = {}
45b12307c695 Initial revision
drewp
parents:
diff changeset
34 reverse_patch = {}
45b12307c695 Initial revision
drewp
parents:
diff changeset
35 for k, v in loadedpatch.items():
45b12307c695 Initial revision
drewp
parents:
diff changeset
36 if type(k) is tuple:
45b12307c695 Initial revision
drewp
parents:
diff changeset
37 for name in k:
45b12307c695 Initial revision
drewp
parents:
diff changeset
38 patch[name] = v
45b12307c695 Initial revision
drewp
parents:
diff changeset
39 reverse_patch[v] = k[0]
45b12307c695 Initial revision
drewp
parents:
diff changeset
40 else:
45b12307c695 Initial revision
drewp
parents:
diff changeset
41 patch[k] = v
45b12307c695 Initial revision
drewp
parents:
diff changeset
42 reverse_patch[v] = k
45b12307c695 Initial revision
drewp
parents:
diff changeset
43
45b12307c695 Initial revision
drewp
parents:
diff changeset
44 # importing patch will load initial data
45b12307c695 Initial revision
drewp
parents:
diff changeset
45 reload_data()
45b12307c695 Initial revision
drewp
parents:
diff changeset
46