7
7
====================================================
8
8
CircuitPython helper library for displaying a slideshow of images on a display.
9
9
10
- * Author(s): Kattni Rembor, Carter Nelson, Roy Hooper, Melissa LeBlanc-Williams
10
+ * Author(s): Kattni Rembor, Carter Nelson, Rose Hooper, Melissa LeBlanc-Williams
11
11
12
12
Implementation Notes
13
13
--------------------
@@ -244,7 +244,7 @@ def _check_json_file(file):
244
244
self ._v_align = v_align
245
245
246
246
self ._current_slide_index = - 1
247
- self ._slide_file = None
247
+ self ._file_name = None
248
248
self ._brightness = 0.5
249
249
250
250
# Setup the display
@@ -330,13 +330,14 @@ def _fade_down(self):
330
330
self ._set_backlight (self .brightness * i / steps )
331
331
time .sleep (0.01 )
332
332
333
- def _create_label (self , file ):
333
+ def _create_label (self , file_name ):
334
334
# pylint: disable=too-many-branches
335
335
"""Creates and returns a label from a file object that contains
336
336
valid valid json describing the text to use.
337
337
See: examples/sample_text_slide.json
338
338
"""
339
- json_data = json .loads (file .read ())
339
+ with open (file_name , "rb" ) as file :
340
+ json_data = json .loads (file .read ())
340
341
_scale = 1
341
342
if "scale" in json_data :
342
343
_scale = int (json_data ["scale" ])
@@ -398,11 +399,10 @@ def update(self):
398
399
# pylint: disable=too-many-branches, too-many-statements
399
400
def advance (self ):
400
401
"""Displays the next image. Returns True when a new image was displayed, False otherwise."""
401
- if self ._slide_file :
402
+ if self ._file_name :
402
403
self ._fade_down ()
403
404
self ._group .pop ()
404
- self ._slide_file .close ()
405
- self ._slide_file = None
405
+ self ._file_name = None
406
406
407
407
self ._current_slide_index += self .direction
408
408
@@ -423,17 +423,15 @@ def advance(self):
423
423
self ._current_slide_index -= slide_count
424
424
self ._reorder_slides ()
425
425
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 )
437
435
438
436
if not odb and not lbl :
439
437
raise RuntimeError ("No valid images or text json files" )
@@ -464,9 +462,9 @@ def advance(self):
464
462
if lbl :
465
463
self ._group .append (lbl )
466
464
465
+ self ._fade_up ()
467
466
if hasattr (self ._display , "refresh" ):
468
467
self ._display .refresh ()
469
- self ._fade_up ()
470
468
self ._img_start = time .monotonic ()
471
469
472
470
return True
0 commit comments