mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 22:25:39 +00:00
Window can be resized
This commit is contained in:
@@ -26,11 +26,16 @@ menu_index = 5
|
|||||||
|
|
||||||
class ScreenManager():
|
class ScreenManager():
|
||||||
def __init__(self, size, core, cache):
|
def __init__(self, size, core, cache):
|
||||||
self.size = size
|
|
||||||
self.core = core
|
self.core = core
|
||||||
|
self.cache = cache
|
||||||
self.fonts = {}
|
self.fonts = {}
|
||||||
self.background = DynamicBackground()
|
self.background = DynamicBackground()
|
||||||
self.current_screen = 0
|
self.current_screen = library_index
|
||||||
|
self.init_manager(size)
|
||||||
|
|
||||||
|
|
||||||
|
def init_manager(self, size):
|
||||||
|
self.size = size
|
||||||
self.base_size = self.size[1] / 8
|
self.base_size = self.size[1] / 8
|
||||||
font = resource_filename(
|
font = resource_filename(
|
||||||
Requirement.parse("mopidy-touchscreen"),
|
Requirement.parse("mopidy-touchscreen"),
|
||||||
@@ -41,7 +46,7 @@ class ScreenManager():
|
|||||||
try:
|
try:
|
||||||
self.screens = [
|
self.screens = [
|
||||||
SearchScreen(size, self.base_size, self, self.fonts),
|
SearchScreen(size, self.base_size, self, self.fonts),
|
||||||
MainScreen(size, self.base_size, self, self.fonts, cache, core, self.background),
|
MainScreen(size, self.base_size, self, self.fonts, self.cache, self.core, self.background),
|
||||||
Tracklist(size, self.base_size, self, self.fonts),
|
Tracklist(size, self.base_size, self, self.fonts),
|
||||||
LibraryScreen(size, self.base_size, self, self.fonts),
|
LibraryScreen(size, self.base_size, self, self.fonts),
|
||||||
PlaylistScreen(size, self.base_size, self, self.fonts),
|
PlaylistScreen(size, self.base_size, self, self.fonts),
|
||||||
@@ -109,7 +114,7 @@ class ScreenManager():
|
|||||||
self.playback_state_changed(self.core.playback.state.get(),
|
self.playback_state_changed(self.core.playback.state.get(),
|
||||||
self.core.playback.state.get())
|
self.core.playback.state.get())
|
||||||
self.screens[menu_index].check_connection()
|
self.screens[menu_index].check_connection()
|
||||||
self.change_screen(library_index)
|
self.change_screen(self.current_screen)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
surface = pygame.Surface(self.size)
|
surface = pygame.Surface(self.size)
|
||||||
@@ -184,3 +189,6 @@ class ScreenManager():
|
|||||||
|
|
||||||
def search(self, query, mode):
|
def search(self, query, mode):
|
||||||
self.screens[search_index].search(query, mode)
|
self.screens[search_index].search(query, mode)
|
||||||
|
|
||||||
|
def resize(self, event):
|
||||||
|
self.init_manager(event.size)
|
||||||
|
|||||||
@@ -32,11 +32,7 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
|
|||||||
os.environ["SDL_PATH_DSP"] = config['touchscreen']['sdl_path_dsp']
|
os.environ["SDL_PATH_DSP"] = config['touchscreen']['sdl_path_dsp']
|
||||||
pygame.init()
|
pygame.init()
|
||||||
pygame.display.set_caption("Mopidy-Touchscreen")
|
pygame.display.set_caption("Mopidy-Touchscreen")
|
||||||
if self.fullscreen:
|
self.get_display_surface(self.screen_size)
|
||||||
self.screen = pygame.display.set_mode(self.screen_size,
|
|
||||||
pygame.FULLSCREEN)
|
|
||||||
else:
|
|
||||||
self.screen = pygame.display.set_mode(self.screen_size)
|
|
||||||
pygame.mouse.set_visible(self.cursor)
|
pygame.mouse.set_visible(self.cursor)
|
||||||
self.screen_manager = ScreenManager(self.screen_size,
|
self.screen_manager = ScreenManager(self.screen_size,
|
||||||
self.core,
|
self.core,
|
||||||
@@ -56,6 +52,13 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
|
|||||||
pins['enter'] = config['touchscreen']['gpio_enter']
|
pins['enter'] = config['touchscreen']['gpio_enter']
|
||||||
self.gpio_manager = GPIOManager(pins)
|
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)
|
||||||
|
|
||||||
def start_thread(self):
|
def start_thread(self):
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
while self.running:
|
while self.running:
|
||||||
@@ -67,6 +70,9 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
|
|||||||
self.running = False
|
self.running = False
|
||||||
elif event.type == pygame.KEYUP and event.key == pygame.K_q:
|
elif event.type == pygame.KEYUP and event.key == pygame.K_q:
|
||||||
self.running = False
|
self.running = False
|
||||||
|
elif event.type == pygame.VIDEORESIZE:
|
||||||
|
self.get_display_surface(event.size)
|
||||||
|
self.screen_manager.resize(event)
|
||||||
else:
|
else:
|
||||||
self.screen_manager.event(event)
|
self.screen_manager.event(event)
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
|
|||||||
Reference in New Issue
Block a user