Browse Source

Background color related to album

Ander 11 năm trước cách đây
mục cha
commit
e8b61e2392

+ 5 - 2
mopidy_touchscreen/dynamic_background.py

@@ -15,10 +15,13 @@ class DynamicBackground():
                 self.current[x] += 1
             if self.current != self.target:
                 same = False
-        if same:
-            self.target = get_valid_color()
+        #if same:
+        #    self.target = get_valid_color()
         surface.fill(self.current)
 
+    def set_target_color(self, color):
+        self.target = [color[0], color[1], color[2]]
+
 
 # Returns an array with 3 integers in range of 0-255
 # The sum of the three integers will be lower than 255*2

+ 6 - 3
mopidy_touchscreen/main_screen.py

@@ -20,13 +20,14 @@ logger = logging.getLogger(__name__)
 
 
 class MainScreen(BaseScreen):
-    def __init__(self, size, base_size, manager, fonts, cache, core):
+    def __init__(self, size, base_size, manager, fonts, cache, core, background):
         BaseScreen.__init__(self, size, base_size, manager, fonts)
         self.core = core
         self.track = None
         self.cache = cache
         self.image = None
         self.artists = None
+        self.background = background
         self.track_duration = "00:00"
         self.touch_text_manager = ScreenObjectsManager()
         current_track = self.core.playback.current_track.get()
@@ -273,11 +274,13 @@ class MainScreen(BaseScreen):
 
     def load_image(self):
         size = self.base_size * 4
-        self.image = pygame.transform.scale(
-            pygame.image.load(
+        image = pygame.transform.scale(pygame.image.load(
                 self.get_cover_folder() +
                 self.get_image_file_name()).convert(),
             (size, size))
+        self.background.set_target_color(pygame.transform.average_color(image))
+        self.image = image
+
 
     def touch_event(self, event):
         if event.type == InputManager.click:

+ 1 - 1
mopidy_touchscreen/screen_manager.py

@@ -41,7 +41,7 @@ class ScreenManager():
         try:
             self.screens = [
                 SearchScreen(size, self.base_size, self, self.fonts),
-                MainScreen(size, self.base_size, self, self.fonts, cache, core),
+                MainScreen(size, self.base_size, self, self.fonts, cache, core, self.background),
                 Tracklist(size, self.base_size, self, self.fonts),
                 LibraryScreen(size, self.base_size, self, self.fonts),
                 PlaylistScreen(size, self.base_size, self, self.fonts),