mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 14:15:41 +00:00
Background blur
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import pygame
|
||||
|
||||
|
||||
change_speed = 2
|
||||
|
||||
|
||||
@@ -30,12 +31,12 @@ class DynamicBackground:
|
||||
if image is not None:
|
||||
image_size = get_aspect_scale_size(image, self.size)
|
||||
target = pygame.transform.smoothscale(image, image_size)
|
||||
target.set_alpha(150)
|
||||
self.image_loaded = True
|
||||
self.surface_image.fill((0, 0, 0))
|
||||
pos = ((self.size[0] - image_size[0])/2,
|
||||
(self.size[1] - image_size[1])/2)
|
||||
self.surface_image.blit(target, pos)
|
||||
pos = (int((self.size[0] - image_size[0])/2),
|
||||
(int(self.size[1] - image_size[1])/2))
|
||||
self.surface_image.blit(blur_surf_times(
|
||||
target, self.size[0]/40, 10), pos)
|
||||
self.image_loaded = True
|
||||
else:
|
||||
self.image_loaded = False
|
||||
self.update = True
|
||||
@@ -51,3 +52,24 @@ def get_aspect_scale_size(img, new_size):
|
||||
aspect = aspect_y
|
||||
new_size = (int(aspect*size[0]), int(aspect*size[1]))
|
||||
return new_size
|
||||
|
||||
|
||||
def blur_surf_times(surface, amt, times):
|
||||
for i in range(times):
|
||||
surface = blur_surf(surface, amt)
|
||||
return surface
|
||||
|
||||
|
||||
# http://www.akeric.com/blog/?p=720
|
||||
def blur_surf(surface, amt):
|
||||
"""
|
||||
Blur the given surface by the given 'amount'. Only values 1 and greater
|
||||
are valid. Value 1 = no blur.
|
||||
"""
|
||||
|
||||
scale = 1.0/float(amt)
|
||||
surf_size = surface.get_size()
|
||||
scale_size = (int(surf_size[0]*scale), int(surf_size[1]*scale))
|
||||
surf = pygame.transform.smoothscale(surface, scale_size)
|
||||
surf = pygame.transform.smoothscale(surf, surf_size)
|
||||
return surf
|
||||
|
||||
@@ -49,9 +49,9 @@ class ScreenManager():
|
||||
|
||||
def init_manager(self, size):
|
||||
self.size = size
|
||||
self.base_size = self.size[1] / self.resolution_factor
|
||||
|
||||
self.background = DynamicBackground(self.size)
|
||||
self.base_size = self.size[1] / self.resolution_factor
|
||||
font = resource_filename(
|
||||
Requirement.parse("mopidy-touchscreen"),
|
||||
"mopidy_touchscreen/icomoon.ttf")
|
||||
|
||||
@@ -103,7 +103,7 @@ class MainScreen(BaseScreen):
|
||||
progress.set_value(track_pos_millis)
|
||||
self.current_track_pos = new_track_pos
|
||||
progress.set_text(
|
||||
time.strftime('%M:%S', time.gmtime(
|
||||
time.strftime('%M:%S', time.gmtime(
|
||||
self.current_track_pos)) +
|
||||
"/" + self.track_duration)
|
||||
progress.render(screen)
|
||||
@@ -139,16 +139,16 @@ class MainScreen(BaseScreen):
|
||||
|
||||
# Progress
|
||||
progress = Progressbar(self.fonts['base'],
|
||||
time.strftime('%M:%S', time.gmtime(
|
||||
0)) + "/" + time.strftime(
|
||||
time.strftime('%M:%S', time.gmtime(
|
||||
0)) + "/" + time.strftime(
|
||||
'%M:%S', time.gmtime(0)),
|
||||
(size_1, self.size[1] - self.base_size * 2),
|
||||
(
|
||||
(size_1, self.size[1] - self.base_size * 2),
|
||||
(
|
||||
self.size[0] - size_1 - size_2,
|
||||
self.base_size),
|
||||
track.length, False)
|
||||
track.length, False)
|
||||
self.touch_text_manager.set_touch_object("time_progress",
|
||||
progress)
|
||||
progress)
|
||||
self.progress_show = True
|
||||
else:
|
||||
self.progress_show = False
|
||||
|
||||
Reference in New Issue
Block a user