Skip to content

Commit cbeb32a

Browse files
authored
Merge pull request #41 from dhalbert/OnDiskBitmap-filename
use filename for OnDiskBitmap
2 parents d67feab + 9f4a5f8 commit cbeb32a

File tree

1 file changed

+17
-19
lines changed

1 file changed

+17
-19
lines changed

adafruit_slideshow.py

+17-19
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
====================================================
88
CircuitPython helper library for displaying a slideshow of images on a display.
99
10-
* Author(s): Kattni Rembor, Carter Nelson, Roy Hooper, Melissa LeBlanc-Williams
10+
* Author(s): Kattni Rembor, Carter Nelson, Rose Hooper, Melissa LeBlanc-Williams
1111
1212
Implementation Notes
1313
--------------------
@@ -244,7 +244,7 @@ def _check_json_file(file):
244244
self._v_align = v_align
245245

246246
self._current_slide_index = -1
247-
self._slide_file = None
247+
self._file_name = None
248248
self._brightness = 0.5
249249

250250
# Setup the display
@@ -330,13 +330,14 @@ def _fade_down(self):
330330
self._set_backlight(self.brightness * i / steps)
331331
time.sleep(0.01)
332332

333-
def _create_label(self, file):
333+
def _create_label(self, file_name):
334334
# pylint: disable=too-many-branches
335335
"""Creates and returns a label from a file object that contains
336336
valid valid json describing the text to use.
337337
See: examples/sample_text_slide.json
338338
"""
339-
json_data = json.loads(file.read())
339+
with open(file_name, "rb") as file:
340+
json_data = json.loads(file.read())
340341
_scale = 1
341342
if "scale" in json_data:
342343
_scale = int(json_data["scale"])
@@ -398,11 +399,10 @@ def update(self):
398399
# pylint: disable=too-many-branches, too-many-statements
399400
def advance(self):
400401
"""Displays the next image. Returns True when a new image was displayed, False otherwise."""
401-
if self._slide_file:
402+
if self._file_name:
402403
self._fade_down()
403404
self._group.pop()
404-
self._slide_file.close()
405-
self._slide_file = None
405+
self._file_name = None
406406

407407
self._current_slide_index += self.direction
408408

@@ -423,17 +423,15 @@ def advance(self):
423423
self._current_slide_index -= slide_count
424424
self._reorder_slides()
425425

426-
file_name = self._file_list[self._current_slide_index]
427-
with open(file_name, "rb") as self._slide_file:
428-
if file_name.endswith(".bmp"):
429-
try:
430-
odb = displayio.OnDiskBitmap(self._slide_file)
431-
except ValueError:
432-
self._slide_file.close()
433-
self._slide_file = None
434-
del self._file_list[self._current_slide_index]
435-
elif file_name.endswith(".json"):
436-
lbl = self._create_label(self._slide_file)
426+
self._file_name = self._file_list[self._current_slide_index]
427+
if self._file_name.endswith(".bmp"):
428+
try:
429+
odb = displayio.OnDiskBitmap(self._file_name)
430+
except ValueError:
431+
del self._file_list[self._current_slide_index]
432+
self._file_name = None
433+
elif self._file_name.endswith(".json"):
434+
lbl = self._create_label(self._file_name)
437435

438436
if not odb and not lbl:
439437
raise RuntimeError("No valid images or text json files")
@@ -464,9 +462,9 @@ def advance(self):
464462
if lbl:
465463
self._group.append(lbl)
466464

465+
self._fade_up()
467466
if hasattr(self._display, "refresh"):
468467
self._display.refresh()
469-
self._fade_up()
470468
self._img_start = time.monotonic()
471469

472470
return True

0 commit comments

Comments
 (0)