11
11
12
12
import ledcontrol .animationpatterns as animpatterns
13
13
import ledcontrol .colorpalettes as colorpalettes
14
- import ledcontrol .driver as rpi_ws281x
14
+ import ledcontrol .driver as driver
15
15
import ledcontrol .utils as utils
16
16
17
17
class RepeatedTimer :
@@ -157,17 +157,17 @@ def getiter(obj):
157
157
'hsv' : animpatterns .ColorMode .hsv ,
158
158
'rgb' : animpatterns .ColorMode .rgb ,
159
159
'clamp' : utils .clamp ,
160
- 'wave_pulse' : rpi_ws281x .wave_pulse ,
161
- 'wave_triangle' : rpi_ws281x .wave_triangle ,
162
- 'wave_sine' : rpi_ws281x .wave_sine ,
163
- 'wave_cubic' : rpi_ws281x .wave_cubic ,
164
- 'plasma_sines' : rpi_ws281x .plasma_sines ,
165
- 'plasma_sines_octave' : rpi_ws281x .plasma_sines_octave ,
166
- 'perlin_noise_3d' : rpi_ws281x .perlin_noise_3d ,
160
+ 'wave_pulse' : driver .wave_pulse ,
161
+ 'wave_triangle' : driver .wave_triangle ,
162
+ 'wave_sine' : driver .wave_sine ,
163
+ 'wave_cubic' : driver .wave_cubic ,
164
+ 'plasma_sines' : driver .plasma_sines ,
165
+ 'plasma_sines_octave' : driver .plasma_sines_octave ,
166
+ 'perlin_noise_3d' : driver .perlin_noise_3d ,
167
167
'impulse_exp' : utils .impulse_exp ,
168
168
'fract' : utils .fract ,
169
- 'blackbody_to_rgb' : rpi_ws281x .blackbody_to_rgb ,
170
- 'blackbody_correction_rgb' : rpi_ws281x .blackbody_correction_rgb ,
169
+ 'blackbody_to_rgb' : driver .blackbody_to_rgb ,
170
+ 'blackbody_correction_rgb' : driver .blackbody_correction_rgb ,
171
171
}
172
172
restricted_locals = {}
173
173
arg_names = ['t' , 'dt' , 'x' , 'y' , 'prev_state' ]
@@ -192,7 +192,7 @@ def reset_prev_states(self):
192
192
193
193
def calculate_color_correction (self ):
194
194
'Calculate and store color temperature correction'
195
- rgb = rpi_ws281x .blackbody_to_rgb (self .params ['master_color_temp' ])
195
+ rgb = driver .blackbody_to_rgb (self .params ['master_color_temp' ])
196
196
c = [self .correction_original [0 ] * int (rgb [0 ] * 255 ) // 255 ,
197
197
self .correction_original [1 ] * int (rgb [1 ] * 255 ) // 255 ,
198
198
self .correction_original [2 ] * int (rgb [2 ] * 255 ) // 255 ]
@@ -345,24 +345,32 @@ def update_leds(self):
345
345
346
346
# Write colors to LEDs
347
347
if mode == animpatterns .ColorMode .hsv :
348
- self .led_controller .leds . set_all_pixels_hsv_float (
348
+ self .led_controller .set_all_pixels_hsv_float (
349
349
[(c [0 ][0 ] % 1 , c [0 ][1 ], c [0 ][2 ] * c [1 ]) for c in s_2 ],
350
350
self .correction ,
351
351
self .params ['master_saturation' ],
352
352
self .params ['master_brightness' ],
353
- self .params ['master_gamma' ],
354
- self .led_controller .has_white
353
+ self .params ['master_gamma' ]
355
354
)
356
355
elif mode == animpatterns .ColorMode .rgb :
357
- self .led_controller .leds . set_all_pixels_rgb_float (
356
+ self .led_controller .set_all_pixels_rgb_float (
358
357
[(c [0 ][0 ] * c [1 ], c [0 ][1 ] * c [1 ], c [0 ][2 ] * c [1 ]) for c in s_2 ],
359
358
self .correction ,
360
359
self .params ['master_saturation' ],
361
360
self .params ['master_brightness' ],
362
- self .params ['master_gamma' ],
363
- self .led_controller .has_white
361
+ self .params ['master_gamma' ]
364
362
)
365
363
366
- def end_animation_thread (self ):
364
+ def clear_leds (self ):
365
+ 'Turn all LEDs off'
366
+ self .led_controller .set_all_pixels_rgb_float (
367
+ [(0 , 0 , 0 ) for i in range (self .led_count )],
368
+ self .correction ,
369
+ self .params ['master_saturation' ],
370
+ self .params ['master_brightness' ],
371
+ self .params ['master_gamma' ]
372
+ )
373
+
374
+ def end_animation (self ):
367
375
'Stop rendering in the animation thread'
368
376
self .timer .stop ()
0 commit comments