From 9e80530a74aed82e1dbf93e9efd40e5c8baa5eee Mon Sep 17 00:00:00 2001 From: Tom Mount Date: Fri, 6 Oct 2023 11:26:39 -0400 Subject: [PATCH] drivers/led/neopixel: Refactor brightness() for speed. Signed-off-by: Tom Mount --- micropython/drivers/led/neopixel/neopixel.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/micropython/drivers/led/neopixel/neopixel.py b/micropython/drivers/led/neopixel/neopixel.py index ab030a15..99becb38 100644 --- a/micropython/drivers/led/neopixel/neopixel.py +++ b/micropython/drivers/led/neopixel/neopixel.py @@ -53,14 +53,12 @@ class NeoPixel: b[j] = c j += bpp - def brightness(self, b: float): + def brightness(self, b=None): if b is None: return self.b self.b = min(max(b, 0), 1) - # This may look odd but because __getitem__ and __setitem__ handle all the - # brightness logic already, we can offload the work to those methods. - for i in range(self.n): - self[i] = self[i] + for i in range(self.n * self.bpp): + self.buf[i] = round(self.buf[i] * self.b) def write(self): # BITSTREAM_TYPE_HIGH_LOW = 0