Mercurial > code > home > repos > light9
comparison flax/Submaster.py @ 138:304152488ed7
Timeline: new methods to make editing easier
Timeline: new methods to make editing easier
Submaster: fix level-clobbering bug, skip CVS files, better __repr__
KeyboardClient: tiny cleanups
author | dmcc |
---|---|
date | Sat, 14 Jun 2003 16:01:31 +0000 |
parents | 5670f66845ce |
children | 1fe54442db38 |
comparison
equal
deleted
inserted
replaced
137:7d768d04b9f0 | 138:304152488ed7 |
---|---|
55 dict_scale(self.levels, scalar)) | 55 dict_scale(self.levels, scalar)) |
56 __rmul__ = __mul__ | 56 __rmul__ = __mul__ |
57 def max(self, *othersubs): | 57 def max(self, *othersubs): |
58 return sub_maxes(self, *othersubs) | 58 return sub_maxes(self, *othersubs) |
59 def __repr__(self): | 59 def __repr__(self): |
60 return "<%s: %r>" % (self.name, self.levels) | 60 levels = ' '.join(["%s:%.2f" % item for item in self.levels.items()]) |
61 return "<'%s': [%s]>" % (self.name, levels) | |
61 def get_dmx_list(self): | 62 def get_dmx_list(self): |
62 leveldict = self.get_levels() # gets levels of sub contents | 63 leveldict = self.get_levels() # gets levels of sub contents |
63 | 64 |
64 levels = [0] * 68 | 65 levels = [0] * 68 |
65 for k, v in leveldict.items(): | 66 for k, v in leveldict.items(): |
66 levels[Patch.get_dmx_channel(k) - 1] = v | 67 dmxchan = Patch.get_dmx_channel(k) - 1 |
68 levels[dmxchan] = max(v, levels[dmxchan]) | |
67 | 69 |
68 return levels | 70 return levels |
71 def normalize_patch_names(self): | |
72 # possibly busted -- don't use unless you know what you're doing | |
73 self.set_all_levels(self.levels.copy()) | |
69 | 74 |
70 def sub_maxes(*subs): | 75 def sub_maxes(*subs): |
71 return Submaster("max(%r)" % (subs,), | 76 return Submaster("max(%r)" % (subs,), |
72 dict_max(*[sub.levels for sub in subs])) | 77 dict_max(*[sub.levels for sub in subs])) |
73 | 78 |
78 | 83 |
79 import os | 84 import os |
80 files = os.listdir('subs') | 85 files = os.listdir('subs') |
81 | 86 |
82 for filename in files: | 87 for filename in files: |
83 if filename.startswith('.') or filename.endswith('~'): | 88 # we don't want these files |
89 if filename.startswith('.') or filename.endswith('~') or \ | |
90 filename.startswith('CVS'): | |
84 continue | 91 continue |
85 self.submasters[filename] = Submaster(filename) | 92 self.submasters[filename] = Submaster(filename) |
86 def get_all_subs(self): | 93 def get_all_subs(self): |
87 "All Submaster objects" | 94 "All Submaster objects" |
88 return self.submasters.values() | 95 return self.submasters.values() |
92 __getitem__ = get_sub_by_name | 99 __getitem__ = get_sub_by_name |
93 | 100 |
94 if __name__ == "__main__": | 101 if __name__ == "__main__": |
95 Patch.reload_data() | 102 Patch.reload_data() |
96 s = Submasters() | 103 s = Submasters() |
97 newsub = s['newsub'] | |
98 newsub.set_all_levels({'5' : 1, '7': 0.2}) | |
99 print s.get_all_subs() | 104 print s.get_all_subs() |
105 if 0: # turn this on to normalize all subs | |
106 for sub in s.get_all_subs(): | |
107 print "before", sub | |
108 sub.normalize_patch_names() | |
109 sub.save() | |
110 print "after", sub |