Slideshow extended and reacts to 'q' now
This commit is contained in:
32
gui.py
32
gui.py
@@ -137,7 +137,7 @@ class GUI_PyGame:
|
|||||||
|
|
||||||
# Store screen and size
|
# Store screen and size
|
||||||
self.size = size
|
self.size = size
|
||||||
self.screen = pygame.display.set_mode(size, pygame.FULLSCREEN)
|
self.screen = pygame.display.set_mode(size) #, pygame.FULLSCREEN)
|
||||||
|
|
||||||
# Clear screen
|
# Clear screen
|
||||||
self.clear()
|
self.clear()
|
||||||
@@ -188,6 +188,25 @@ class GUI_PyGame:
|
|||||||
text.set_colorkey(bg)
|
text.set_colorkey(bg)
|
||||||
self.surface_list.append((text, rect.topleft))
|
self.surface_list.append((text, rect.topleft))
|
||||||
|
|
||||||
|
def convert_event(self, event):
|
||||||
|
if event.type == pygame.QUIT:
|
||||||
|
return True, Event(0, 0)
|
||||||
|
elif event.type == pygame.KEYDOWN:
|
||||||
|
return True, Event(1, event.key)
|
||||||
|
elif event.type == pygame.MOUSEBUTTONUP:
|
||||||
|
return True, Event(2, (event.button, event.pos))
|
||||||
|
elif event.type >= pygame.USEREVENT:
|
||||||
|
return True, Event(3, event.channel)
|
||||||
|
else:
|
||||||
|
return False, ''
|
||||||
|
|
||||||
|
def check_for_event(self):
|
||||||
|
for event in EventModule.get():
|
||||||
|
r, e = self.convert_event(event)
|
||||||
|
if r:
|
||||||
|
return r, e
|
||||||
|
return False, ''
|
||||||
|
|
||||||
def wait_for_event(self):
|
def wait_for_event(self):
|
||||||
# Repeat until a relevant event happened
|
# Repeat until a relevant event happened
|
||||||
while True:
|
while True:
|
||||||
@@ -198,14 +217,9 @@ class GUI_PyGame:
|
|||||||
event = EventModule.wait()
|
event = EventModule.wait()
|
||||||
|
|
||||||
# Return Event-Object
|
# Return Event-Object
|
||||||
if event.type == pygame.QUIT:
|
r, e = self.convert_event(event)
|
||||||
return Event(0, 0)
|
if r:
|
||||||
elif event.type == pygame.KEYDOWN:
|
return e
|
||||||
return Event(1, event.key)
|
|
||||||
elif event.type == pygame.MOUSEBUTTONUP:
|
|
||||||
return Event(2, (event.button, event.pos))
|
|
||||||
elif event.type >= pygame.USEREVENT:
|
|
||||||
return Event(3, event.channel)
|
|
||||||
|
|
||||||
|
|
||||||
def mainloop(self, filename, handle_keypress, handle_mousebutton, handle_gpio_event):
|
def mainloop(self, filename, handle_keypress, handle_mousebutton, handle_gpio_event):
|
||||||
|
|||||||
19
slideshow.py
19
slideshow.py
@@ -48,6 +48,17 @@ class Slideshow:
|
|||||||
|
|
||||||
self.filelist = filelist
|
self.filelist = filelist
|
||||||
|
|
||||||
|
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):
|
def run(self):
|
||||||
while True:
|
while True:
|
||||||
for filename in self.filelist:
|
for filename in self.filelist:
|
||||||
@@ -55,7 +66,13 @@ class Slideshow:
|
|||||||
self.display.show_picture(filename)
|
self.display.show_picture(filename)
|
||||||
self.display.apply()
|
self.display.apply()
|
||||||
sleep(self.display_time)
|
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():
|
def main():
|
||||||
slideshow = Slideshow(display_size, display_time, directory, False)
|
slideshow = Slideshow(display_size, display_time, directory, True)
|
||||||
slideshow.scan()
|
slideshow.scan()
|
||||||
slideshow.run()
|
slideshow.run()
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
Reference in New Issue
Block a user