Skip to content

Commit 1b877e1

Browse files
committed
start header doesn't need to be instance val
1 parent a8d4010 commit 1b877e1

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

adafruit_dotstar.py

+11-10
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
__version__ = "0.0.0-auto.0"
3737
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_DotStar.git"
3838

39+
START_HEADER_SIZE = 4
40+
3941
# Pixel color order constants
4042
RGB = (0, 1, 2)
4143
RBG = (0, 2, 1)
@@ -89,19 +91,18 @@ def __init__(self, clock, data, n, *, brightness=1.0, auto_write=True, pixel_ord
8991
self.cpin.direction = digitalio.Direction.OUTPUT
9092
self.cpin.value = False
9193
self._n = n
92-
self.start_header_size = 4
9394
# Supply one extra clock cycle for each two pixels in the strip.
9495
self.end_header_size = n // 16
9596
if n % 16 != 0:
9697
self.end_header_size += 1
97-
self._buf = bytearray(n * 4 + self.start_header_size + self.end_header_size)
98+
self._buf = bytearray(n * 4 + START_HEADER_SIZE + self.end_header_size)
9899
self.end_header_index = len(self._buf) - self.end_header_size
99100
self.pixel_order = pixel_order
100101
# Four empty bytes to start.
101-
for i in range(self.start_header_size):
102+
for i in range(START_HEADER_SIZE):
102103
self._buf[i] = 0x00
103104
# Mark the beginnings of each pixel.
104-
for i in range(self.start_header_size, self.end_header_index, 4):
105+
for i in range(START_HEADER_SIZE, self.end_header_index, 4):
105106
self._buf[i] = 0xff
106107
# 0xff bytes at the end.
107108
for i in range(self.end_header_index, len(self._buf)):
@@ -116,7 +117,7 @@ def __init__(self, clock, data, n, *, brightness=1.0, auto_write=True, pixel_ord
116117
def deinit(self):
117118
"""Blank out the DotStars and release the resources."""
118119
self.auto_write = False
119-
for i in range(self.start_header_size, self.end_header_index):
120+
for i in range(START_HEADER_SIZE, self.end_header_index):
120121
if i % 4 != 0:
121122
self._buf[i] = 0
122123
self.show()
@@ -136,7 +137,7 @@ def __repr__(self):
136137
return "[" + ", ".join([str(x) for x in self]) + "]"
137138

138139
def _set_item(self, index, value):
139-
offset = index * 4 + self.start_header_size
140+
offset = index * 4 + START_HEADER_SIZE
140141
rgb = value
141142
if isinstance(value, int):
142143
rgb = (value >> 16, (value >> 8) & 0xff, value & 0xff)
@@ -171,14 +172,14 @@ def __getitem__(self, index):
171172
out = []
172173
for in_i in range(*index.indices(len(self._buf) // 4)):
173174
out.append(
174-
tuple(self._buf[in_i * 4 + (3 - i) + self.start_header_size] for i in range(3)))
175+
tuple(self._buf[in_i * 4 + (3 - i) + START_HEADER_SIZE] for i in range(3)))
175176
return out
176177
if index < 0:
177178
index += len(self)
178179
if index >= self._n or index < 0:
179180
raise IndexError
180181
offset = index * 4
181-
return tuple(self._buf[offset + (3 - i) + self.start_header_size]
182+
return tuple(self._buf[offset + (3 - i) + START_HEADER_SIZE]
182183
for i in range(3))
183184

184185
def __len__(self):
@@ -224,9 +225,9 @@ def show(self):
224225
if self.brightness < 1.0:
225226
buf = bytearray(self._buf)
226227
# Four empty bytes to start.
227-
for i in range(self.start_header_size):
228+
for i in range(START_HEADER_SIZE):
228229
buf[i] = 0x00
229-
for i in range(self.start_header_size, self.end_header_index):
230+
for i in range(START_HEADER_SIZE, self.end_header_index):
230231
buf[i] = self._buf[i] if i % 4 == 0 else int(self._buf[i] * self._brightness)
231232
# Four 0xff bytes at the end.
232233
for i in range(self.end_header_index, len(buf)):

0 commit comments

Comments
 (0)