Slideshow extended and reacts to 'q' now
This commit is contained in:
73
slideshow.py
73
slideshow.py
@@ -24,38 +24,55 @@ display_time = 3
|
||||
###############
|
||||
|
||||
class Slideshow:
|
||||
def __init__(self, display_size, display_time, directory, recursive=True):
|
||||
self.directory = directory
|
||||
self.recursive = recursive
|
||||
self.filelist = []
|
||||
self.display = GuiModule("Slideshow", display_size)
|
||||
self.display_time = display_time
|
||||
def __init__(self, display_size, display_time, directory, recursive=True):
|
||||
self.directory = directory
|
||||
self.recursive = recursive
|
||||
self.filelist = []
|
||||
self.display = GuiModule("Slideshow", display_size)
|
||||
self.display_time = display_time
|
||||
|
||||
def scan(self):
|
||||
filelist = []
|
||||
def scan(self):
|
||||
filelist = []
|
||||
|
||||
if self.recursive:
|
||||
# Recursively walk all entries in the directory
|
||||
for root, dirnames, filenames in os.walk(self.directory):
|
||||
for filename in filenames:
|
||||
filelist.append(os.path.join(root, filename))
|
||||
else:
|
||||
# Add all entries in the directory
|
||||
for item in os.listdir(self.directory):
|
||||
filename = os.path.join(self.directory, item)
|
||||
if os.path.isfile(filename):
|
||||
filelist.append(filename)
|
||||
if self.recursive:
|
||||
# Recursively walk all entries in the directory
|
||||
for root, dirnames, filenames in os.walk(self.directory):
|
||||
for filename in filenames:
|
||||
filelist.append(os.path.join(root, filename))
|
||||
else:
|
||||
# Add all entries in the directory
|
||||
for item in os.listdir(self.directory):
|
||||
filename = os.path.join(self.directory, item)
|
||||
if os.path.isfile(filename):
|
||||
filelist.append(filename)
|
||||
|
||||
self.filelist = filelist
|
||||
self.filelist = filelist
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
for filename in self.filelist:
|
||||
self.display.clear()
|
||||
self.display.show_picture(filename)
|
||||
self.display.apply()
|
||||
sleep(self.display_time)
|
||||
def handle_event(self, event):
|
||||
if event.type == 0:
|
||||
self.teardown()
|
||||
elif event.type == 1:
|
||||
self.handle_keypress(event.value)
|
||||
|
||||
def handle_keypress(self, key):
|
||||
# Exit the application
|
||||
if key == ord('q'):
|
||||
self.teardown()
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
for filename in self.filelist:
|
||||
self.display.clear()
|
||||
self.display.show_picture(filename)
|
||||
self.display.apply()
|
||||
sleep(self.display_time)
|
||||
r, e = self.display.check_for_event()
|
||||
if r:
|
||||
self.handle_event(e)
|
||||
|
||||
def teardown(self):
|
||||
self.display.teardown()
|
||||
exit(0)
|
||||
|
||||
|
||||
#################
|
||||
@@ -63,7 +80,7 @@ class Slideshow:
|
||||
#################
|
||||
|
||||
def main():
|
||||
slideshow = Slideshow(display_size, display_time, directory, False)
|
||||
slideshow = Slideshow(display_size, display_time, directory, True)
|
||||
slideshow.scan()
|
||||
slideshow.run()
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user