From c468dfa67262115358eb35f6dfdb619f070d7ed8 Mon Sep 17 00:00:00 2001 From: Ander <9and3r@gmail.com> Date: Sat, 18 Apr 2015 14:54:56 +0200 Subject: [PATCH] Check if display is created correctly Fixed click on time bar --- mopidy_touchscreen/screens/main_screen.py | 13 +++++++------ mopidy_touchscreen/touch_screen.py | 17 ++++++++++------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/mopidy_touchscreen/screens/main_screen.py b/mopidy_touchscreen/screens/main_screen.py index b8a4681..074bc15 100644 --- a/mopidy_touchscreen/screens/main_screen.py +++ b/mopidy_touchscreen/screens/main_screen.py @@ -92,12 +92,13 @@ class MainScreen(BaseScreen): def update(self, screen): screen.blit(self.top_bar, (0, 0)) if self.track is not None: - new_track_pos = self.core.playback.time_position.get() / 1000 + track_pos_millis = self.core.playback.time_position.get() + new_track_pos = track_pos_millis / 1000 + self.touch_text_manager.get_touch_object( + "time_progress").set_value( + track_pos_millis) if new_track_pos != self.current_track_pos: self.current_track_pos = new_track_pos - self.touch_text_manager.get_touch_object( - "time_progress").set_value( - self.current_track_pos) self.touch_text_manager.get_touch_object( "time_progress").set_text( time.strftime('%M:%S', time.gmtime( @@ -165,7 +166,7 @@ class MainScreen(BaseScreen): ( self.size[0] - size_1 - size_2, self.base_size), - track.length / 1000, False) + track.length, False) self.touch_text_manager.set_touch_object("time_progress", progress) @@ -341,7 +342,7 @@ class MainScreen(BaseScreen): if key == "time_progress": value = self.touch_text_manager.get_touch_object( key).get_pos_value( - event.current_pos) * 1000 + event.current_pos) self.core.playback.seek(value) elif key == "previous": diff --git a/mopidy_touchscreen/touch_screen.py b/mopidy_touchscreen/touch_screen.py index c3d61fe..a7d2621 100644 --- a/mopidy_touchscreen/touch_screen.py +++ b/mopidy_touchscreen/touch_screen.py @@ -3,7 +3,7 @@ import os import traceback from threading import Thread -from mopidy import core, utils +from mopidy import core, exceptions, utils import pygame @@ -63,16 +63,19 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener): self.gpio_manager = GPIOManager(pins) def get_display_surface(self, size): - if self.fullscreen: - self.screen = pygame.display.set_mode( - size, pygame.FULLSCREEN) - else: - self.screen = pygame.display.set_mode(size, pygame.RESIZABLE) + try: + if self.fullscreen: + self.screen = pygame.display.set_mode( + size, pygame.FULLSCREEN) + else: + self.screen = pygame.display.set_mode(size, pygame.RESIZABLE) + except Exception: + raise exceptions.FrontendError("Error on display init:\n" + traceback.format_exc()) def start_thread(self): clock = pygame.time.Clock() while self.running: - clock.tick(10) + clock.tick(20) self.screen.blit(self.screen_manager.update(), (0, 0)) pygame.display.flip() for event in pygame.event.get():