def __init__(self, rig): self.rig = rig self.states = [] self.sequences = [] self.programmer = State() self.programming_mode = False #Programming Mode: Don't update the outputs
class Show: def __init__(self, rig): self.rig = rig self.states = [] self.sequences = [] self.programmer = State() self.programming_mode = False #Programming Mode: Don't update the outputs def saveState(self): self.states.append(self.programmer) self.clearProgrammer() def restoreState(self, state): self.programmer = state def clearProgrammer(self): self.programmer = State() self.rig.reset() def refresh(self): if not self.programming_mode: self.programmer.apply(self.rig.heads) self.rig.refresh() def run(self): self._refresh_thread = Thread(target = self._refresh_target) self._refresh_thread.daemon = True self._refresh_thread.start() def _refresh_target(self): while True: self.programmer.apply(self.rig.heads) self.rig.refresh() time.sleep(0.01)
def testSavedState(self): for i in range(1,11): self.rig.heads[i].attributes["MasterIntensity"].value = i * 10 s = State() s.save(self.rig.heads) for i in range(1,11): self.rig.heads[i].attributes["MasterIntensity"].value = 0 s.restore(self.rig.heads) for i in range(1,11): self.assertEqual(self.rig.heads[i].attributes["MasterIntensity"].value, i * 10, "State not restored")
def testSavedState(self): for i in range(1, 11): self.rig.heads[i].attributes["MasterIntensity"].value = i * 10 s = State() s.save(self.rig.heads) for i in range(1, 11): self.rig.heads[i].attributes["MasterIntensity"].value = 0 s.restore(self.rig.heads) for i in range(1, 11): self.assertEqual( self.rig.heads[i].attributes["MasterIntensity"].value, i * 10, "State not restored")
def clearProgrammer(self): self.programmer = State() self.rig.reset()