예제 #1
0
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
예제 #2
0
 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)
예제 #3
0
def blackoutThread():
    print("  blacking out...")
    for i in config.activeWindows :
        OSC.setLight(i,0)
        time.sleep(.1)