Skip to content

Commit e9ac189

Browse files
Merge pull request #6 from adafruit/philb-clip-fix
Fix clipping in pixel() function
2 parents 6ccbd95 + 91cc70c commit e9ac189

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

adafruit_is31fl3741/__init__.py

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -204,26 +204,19 @@ def pixel(self, x, y, color=None):
204204
205205
:param x: horizontal pixel position
206206
:param y: vertical pixel position
207-
:param color: hex color value 0x000000 to 0xFFFFFF
207+
:param color: hex color value 0x000000 to 0xFFFFFF to set,
208+
or None to return current pixel value
208209
"""
209-
if not 0 <= x <= self.width:
210-
return None
211-
if not 0 <= y <= self.height:
212-
return None
213-
addrs = self.pixel_addrs(x, y)
214-
# print(addrs)
215-
if color is not None: # set the color
210+
211+
if 0 <= x < self.width and 0 <= y < self.height: # Clip
212+
addrs = self.pixel_addrs(x, y) # LED indices
213+
# print(addrs)
214+
if color is None: # Return current pixel color if unspecified
215+
return (self[addrs[0]] << 16) | (self[addrs[1]] << 8) | self[addrs[2]]
216216
self[addrs[0]] = (color >> 16) & 0xFF
217217
self[addrs[1]] = (color >> 8) & 0xFF
218218
self[addrs[2]] = color & 0xFF
219-
return None
220-
# we want to fetch the color
221-
color = self[addrs[0]]
222-
color <<= 8
223-
color |= self[addrs[1]]
224-
color <<= 8
225-
color |= self[addrs[2]]
226-
return color
219+
return None
227220

228221
# pylint: enable-msg=too-many-arguments
229222

0 commit comments

Comments
 (0)