Skip to content

Commit

Permalink
Merge pull request #39 from rhooper/bugfixes
Browse files Browse the repository at this point in the history
Various bugfixes and simplifications
  • Loading branch information
kattni authored Jun 9, 2020
2 parents 4eefc34 + aa0eef2 commit fed9ec0
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 8 deletions.
10 changes: 7 additions & 3 deletions adafruit_led_animation/animation/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,13 @@ def __init__(self, pixel_object, speed, color, peers=None, paused=False, name=No
def __str__(self):
return "<%s: %s>" % (self.__class__.__name__, self.name)

def animate(self):
def animate(self, show=True):
"""
Call animate() from your code's main loop. It will draw the animation draw() at intervals
configured by the speed property (set from init).
:param bool show: Whether to automatically call show on the pixel object when an animation
fires. Default True.
:return: True if the animation draw cycle was triggered, otherwise False.
"""
if self._paused:
Expand All @@ -97,12 +99,14 @@ def animate(self):

# Draw related animations together
for anim in self._peers:
anim.draw_count += 1
anim.draw()
anim.after_draw()
anim.draw_count += 1

for anim in self._peers:
anim.show()
if show:
for anim in self._peers:
anim.show()

# Note that the main animation cycle_complete flag is used, not the peer flag.
for anim in self._peers:
Expand Down
9 changes: 6 additions & 3 deletions adafruit_led_animation/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,17 +148,20 @@ def add_cycle_complete_receiver(self, callback):
"""
self._also_notify.append(callback)

def animate(self):
def animate(self, show=True):
"""
Call animate() from your code's main loop. It will draw all of the animations
in the group.
:return: True if any animation draw cycle was triggered, otherwise False.
"""
if self._sync:
return self._members[0].animate()
result = self._members[0].animate(show=False)
if result and show:
self._members[0].show()
return result

return any([item.animate() for item in self._members])
return any([item.animate(show) for item in self._members])

@property
def color(self):
Expand Down
4 changes: 2 additions & 2 deletions adafruit_led_animation/sequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ def random(self):
"""
self.activate(random.randint(0, len(self._members) - 1))

def animate(self):
def animate(self, show=True):
"""
Call animate() from your code's main loop. It will draw the current animation
or go to the next animation based on the advance_interval if set.
Expand All @@ -213,7 +213,7 @@ def animate(self):
"""
if not self._paused and self._advance_interval:
self._auto_advance()
return self.current_animation.animate()
return self.current_animation.animate(show)

@property
def current_animation(self):
Expand Down

0 comments on commit fed9ec0

Please sign in to comment.