def playSequencesForLight(ID): """ calculate the mean value for this lamp by averaging every sequence using it in this time interval. - ID is an int 0-7 """ # print("evaluating sequences for light :", ID) global lightTimestamps, lightStates # print("lightTimestamps", lightTimestamps) # print("current ID", ID) startTime = lightTimestamps[ID] # last time we checked this lamp stopTime = datetime.now() lightTimestamps[ID] = stopTime lightStates[ID]["sum"] = 0 lightStates[ID]["seqCount"] = 0 for sequence in [s for s in activeSequences.values() if ID in s.usedLights]: # if sequence.dampen >= 100 : activeSequences.remove(sequence) if sequence.dampen >= 100 : activeSequences.pop(sequence.ID) value = sequence.playByLight(ID, startTime, stopTime) if value is not None: lightStates[ID]["seqCount"] += 1 if value > 0 : lightStates[ID]["sum"] += value if lightStates[ID]["seqCount"] < 1 : return lightValue = int(lightStates[ID]["sum"] / lightStates[ID]["seqCount"]) if lightValue != lightStates[ID]["lastSent"] : lightStates[ID]["lastSent"] = lightValue OSC.setLight(ID,lightValue) # print("setting light %i to %i "%(ID, lightValue), "lightStates[%i] :"%ID, lightStates[ID]) for sequence in activeSequences.values() : sequence.nextPassDampening = lightStates[ID]["seqCount"] * config.dampeningPerUser + config.dampeningPerLoop
def remove(self): """ removes the sequence from activeSequences and turn off every light used""" global activeSequences for light in self.usedLights : OSC.setLight(light, 0) # set every used light to OFF activeSequences.pop(self.ID)
def blackoutThread(): print(" blacking out...") for i in config.activeWindows : OSC.setLight(i,0) time.sleep(.1)