Forráskód Böngészése

Check if display is created correctly
Fixed click on time bar

Ander 10 éve
szülő
commit
c468dfa672

+ 7 - 6
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":

+ 10 - 7
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():