From b6af43ef9087696d2da41444a2932d9f5313836b Mon Sep 17 00:00:00 2001 From: Kyle Brown Date: Sat, 13 Jul 2019 18:07:37 -0700 Subject: [PATCH] rgb animations perf --- kmk/firmware.py | 6 +++++- kmk/rgb.py | 35 ++++++++++++++++------------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/kmk/firmware.py b/kmk/firmware.py index 568feca..6ec2311 100644 --- a/kmk/firmware.py +++ b/kmk/firmware.py @@ -289,6 +289,7 @@ class Firmware: if self.rgb_pixel_pin: self.pixels = rgb.RGB(self.rgb_config, self.rgb_pixel_pin) self.rgb_config = None # No longer needed + self.pixels.loopcounter = 0 else: self.pixels = None @@ -351,7 +352,10 @@ class Firmware: self._send_hid() if self.pixels and self.pixels.enabled and self.pixels.animation_mode: - self.pixels = self.pixels.animate() + self.pixels.loopcounter +=1 + if self.pixels.loopcounter >= 7: + self.pixels = self.pixels.animate() + self.pixels.loopcounter = 0 if self.led and self.led.enabled and self.led.animation_mode: self.led = self.led.animate() diff --git a/kmk/rgb.py b/kmk/rgb.py index b6afbb1..d227a6f 100644 --- a/kmk/rgb.py +++ b/kmk/rgb.py @@ -432,33 +432,30 @@ class RGB: return self def effect_breathing_rainbow(self): - if self._animation_step(): - self.increase_hue(self.animation_speed) + self.increase_hue(self.animation_speed) self.effect_breathing() return self def effect_rainbow(self): - if self._animation_step(): - self.increase_hue(self.animation_speed) - self.set_hsv_fill(self.hue, self.sat, self.val) + self.increase_hue(self.animation_speed) + self.set_hsv_fill(self.hue, self.sat, self.val) return self def effect_swirl(self): - if self._animation_step(): - self.increase_hue(self.animation_speed) - self.disable_auto_write = True # Turn off instantly showing - for i in range(0, self.num_pixels): - self.set_hsv( - (self.hue - (i * self.num_pixels)) % 360, - self.sat, - self.val, - i) + self.increase_hue(self.animation_speed * 2) + self.disable_auto_write = True # Turn off instantly showing + for i in range(0, self.num_pixels): + self.set_hsv( + (self.hue - (i * self.num_pixels)) % 360, + self.sat, + self.val, + i) - # Show final results - self.disable_auto_write = False # Resume showing changes - self.show() + # Show final results + self.disable_auto_write = False # Resume showing changes + self.show() return self def effect_knight(self): @@ -476,9 +473,9 @@ class RGB: self.reverse_animation = not self.reverse_animation if self.reverse_animation: - self.pos -= self.animation_speed / 5 + self.pos -= self.animation_speed / 2 else: - self.pos += self.animation_speed / 5 + self.pos += self.animation_speed / 2 # Show final results self.disable_auto_write = False # Resume showing changes