@@ -24,9 +24,11 @@ def __getitem__(self, a):
24
24
return super (colorArray , self ).__getitem__ (
25
25
slice (a * 3 , a * 3 + 3 ))
26
26
if isinstance (a , slice ):
27
- return colorArray (
27
+ start = a .start * 3 if a .start != None else None
28
+ stop = a .stop * 3 if a .stop != None else None
29
+ return colorArray (
28
30
super (colorArray , self ).__getitem__ (
29
- slice (a . start * 3 , a . stop * 3 , a .step )))
31
+ slice (start , stop , a .step )))
30
32
def __getslice__ (self , a , b ):
31
33
return self .__getitem__ (slice (a ,b ))
32
34
def __setitem__ (self , a , v ):
@@ -37,19 +39,19 @@ def __setitem__(self, a, v):
37
39
def __len__ (self ):
38
40
return super (colorArray , self ).__len__ () // 3
39
41
def reverse (self ):
40
- self [:] = [c for cl in range (len (self )- 1 ,- 1 , - 1 )
41
- for c in self [cl ]]
42
+ self . __init__ ( [c for cl in range (len (self )- 1 ,- 1 , - 1 )
43
+ for c in self [cl ]])
42
44
def shift (self , shift = 1 , direction = True ):
43
45
if direction :
44
46
#shift array to the right
45
- self [:] = self [- shift :] + self [:- shift ]
47
+ self . __init__ ( self [- shift :] + self [:- shift ])
46
48
else :
47
49
#shift array to the left
48
- self [:] = self [shift :] + self [:shift ]
50
+ self . __init__ ( self [shift :] + self [:shift ])
49
51
def padLeft (self , v , a ):
50
- self [:] = v * a + self [:]
52
+ self . __init__ ( v * a + self )
51
53
def padRight (self , v , a ):
52
- self [:] = self [:] + v * a
54
+ self += v * a
53
55
54
56
######################################################################
55
57
# LED Effect handler
@@ -222,9 +224,11 @@ def _getFrames(self, eventtime):
222
224
chain .prev_data = None # workaround to force update of dotstars
223
225
if not self .shutdown :
224
226
chain .led_helper .update_func (chain .led_helper .led_state , None )
225
-
226
- next_eventtime = min (self .effects , key = lambda x : x .nextEventTime )\
227
- .nextEventTime
227
+ if self .effects :
228
+ next_eventtime = min (self .effects , key = lambda x : x .nextEventTime )\
229
+ .nextEventTime
230
+ else :
231
+ next_eventtime = eventtime
228
232
# run at least with 10Hz
229
233
next_eventtime = min (next_eventtime , eventtime + 0.1 )
230
234
return next_eventtime
@@ -687,7 +691,7 @@ def __init__(self, **kwargs):
687
691
688
692
comet = colorArray ([a * b for a , b in zip (gradient ,decayTable )])
689
693
690
- comet .padRight ([0.0 ,0.0 ,0.0 ], self .ledCount )
694
+ comet .padRight ([0.0 ,0.0 ,0.0 ], self .ledCount - len ( comet ) )
691
695
692
696
if self .direction : comet .reverse ()
693
697
0 commit comments