hyperion.ng/effects/fade.py
redpanther e7c7e05f88 add fading effect like in a cinema. sped start and end color are selectable in json file
rename loop effects to more meaningfull names


Former-commit-id: bed033e19d7cb38b0d5f11313a9f927ac8121194
2016-01-24 08:10:36 +01:00

35 lines
837 B
Python

import hyperion, time
def setColor(rgb):
hyperion.setColor( bytearray( hyperion.ledCount * rgb))
# Get the parameters
fadeTime = float(hyperion.args.get('fade-time', 5.0))
colorStart = hyperion.args.get('color-start', (255,174,11))
colorEnd = hyperion.args.get('color-end', (100,100,100))
color_step = (
(colorEnd[0] - colorStart[0]) / 256.0,
(colorEnd[1] - colorStart[1]) / 256.0,
(colorEnd[2] - colorStart[2]) / 256.0
)
# fade color
for step in range(256):
if hyperion.abort():
break
setColor( (
int( min(max(0, colorStart[0] + color_step[0]*step), 255) ),
int( min(max(0, colorStart[1] + color_step[1]*step), 255) ),
int( min(max(0, colorStart[2] + color_step[2]*step), 255) )
) )
time.sleep( fadeTime / 256 )
# maintain color until effect end
setColor(colorEnd)
while not hyperion.abort():
time.sleep(1)