From 58ae8b80e284c3e03dddf9032985f5bf63bdaf82 Mon Sep 17 00:00:00 2001 From: Ander <9and3r@gmail.com> Date: Sat, 20 Dec 2014 14:56:23 +0100 Subject: [PATCH] Base Screen class --- mopidy_touchscreen/base_screen.py | 16 ++++++++++++++++ mopidy_touchscreen/library_screen.py | 11 +++++------ mopidy_touchscreen/main_screen.py | 12 +++++------- mopidy_touchscreen/menu_screen.py | 21 ++++++++++----------- mopidy_touchscreen/playlist_screen.py | 11 +++++------ mopidy_touchscreen/screen_manager.py | 12 +++++------- mopidy_touchscreen/search_screen.py | 8 +++----- mopidy_touchscreen/tracklist.py | 10 +++++----- 8 files changed, 54 insertions(+), 47 deletions(-) create mode 100644 mopidy_touchscreen/base_screen.py diff --git a/mopidy_touchscreen/base_screen.py b/mopidy_touchscreen/base_screen.py new file mode 100644 index 0000000..085cb41 --- /dev/null +++ b/mopidy_touchscreen/base_screen.py @@ -0,0 +1,16 @@ +__author__ = 'ander' + + +class BaseScreen(): + + def __init__(self, size, base_size, manager, fonts): + self.size = size + self.base_size = base_size + self.manager = manager + self.fonts = fonts + + def update(self, surface): + pass + + def event(self, event): + pass diff --git a/mopidy_touchscreen/library_screen.py b/mopidy_touchscreen/library_screen.py index 1ec3d57..ecde1ae 100644 --- a/mopidy_touchscreen/library_screen.py +++ b/mopidy_touchscreen/library_screen.py @@ -3,19 +3,18 @@ import mopidy.models from .list_view import ListView from .input_manager import InputManager +from .base_screen import BaseScreen logger = logging.getLogger(__name__) -class LibraryScreen(): - def __init__(self, size, base_size, manager): - self.size = size - self.base_size = base_size - self.manager = manager +class LibraryScreen(BaseScreen): + def __init__(self, size, base_size, manager, fonts): + BaseScreen.__init__(self, size, base_size, manager, fonts) self.list_view = ListView((0, 0), ( self.size[0], self.size[1] - self.base_size), self.base_size, - manager.fonts['base']) + self.fonts['base']) self.directory_list = [] self.current_directory = None self.library = None diff --git a/mopidy_touchscreen/main_screen.py b/mopidy_touchscreen/main_screen.py index a909ec7..fbcfa42 100644 --- a/mopidy_touchscreen/main_screen.py +++ b/mopidy_touchscreen/main_screen.py @@ -8,6 +8,7 @@ import urllib import urllib2 from threading import Thread import pygame +from .base_screen import BaseScreen from .screen_objects import (Progressbar, ScreenObjectsManager, TextItem, @@ -18,13 +19,10 @@ from .input_manager import InputManager logger = logging.getLogger(__name__) -class MainScreen(): - def __init__(self, size, manager, cache, core, fonts): +class MainScreen(BaseScreen): + def __init__(self, size, base_size, manager, fonts, cache, core): + BaseScreen.__init__(self, size, base_size, manager, fonts) self.core = core - self.size = size - self.base_size = self.size[1] / 8 - self.fonts = fonts - self.manager = manager self.track = None self.cache = cache self.image = None @@ -297,7 +295,7 @@ class MainScreen(): volume = self.core.playback.volume.get() + 10 if volume > 100: volume = 100 - self.core.playback.volume = volume + self.core.playback.volume = volume self.manager.volume_changed(volume) elif event.direction == InputManager.down: volume = self.core.playback.volume.get() - 10 diff --git a/mopidy_touchscreen/menu_screen.py b/mopidy_touchscreen/menu_screen.py index 2095ba4..27874c2 100644 --- a/mopidy_touchscreen/menu_screen.py +++ b/mopidy_touchscreen/menu_screen.py @@ -4,13 +4,12 @@ import mopidy from .screen_objects import ScreenObjectsManager, TouchAndTextItem from .input_manager import InputManager +from .base_screen import BaseScreen -class MenuScreen(): - def __init__(self, size, base_size, manager): - self.size = size - self.base_size = base_size - self.manager = manager +class MenuScreen(BaseScreen): + def __init__(self, size, base_size, manager, fonts): + BaseScreen.__init__(self, size, base_size, manager, fonts) self.ip = None self.screen_objects = ScreenObjectsManager() @@ -19,7 +18,7 @@ class MenuScreen(): u"\ue611", (0, 0), None) self.screen_objects.set_touch_object("exit_icon", button) - button = TouchAndTextItem(self.manager.fonts['base'], + button = TouchAndTextItem(self.fonts['base'], "Exit Mopidy", (button.get_right_pos(), 0), @@ -27,11 +26,11 @@ class MenuScreen(): self.screen_objects.set_touch_object("exit", button) # Shutdown button - button = TouchAndTextItem(self.manager.fonts['icon'], + button = TouchAndTextItem(self.fonts['icon'], u"\ue60b", (0, self.base_size * 1), None) self.screen_objects.set_touch_object("shutdown_icon", button) - button = TouchAndTextItem(self.manager.fonts['base'], + button = TouchAndTextItem(self.fonts['base'], "Shutdown", (button.get_right_pos(), self.base_size * 1), @@ -39,11 +38,11 @@ class MenuScreen(): self.screen_objects.set_touch_object("shutdown", button) # Restart button - button = TouchAndTextItem(self.manager.fonts['icon'], + button = TouchAndTextItem(self.fonts['icon'], u"\ue609", (0, self.base_size * 2), None) self.screen_objects.set_touch_object("restart_icon", button) - button = TouchAndTextItem(self.manager.fonts['base'], + button = TouchAndTextItem(self.fonts['base'], "Restart", (button.get_right_pos(), self.base_size * 2), @@ -51,7 +50,7 @@ class MenuScreen(): self.screen_objects.set_touch_object("restart", button) # IP addres - button = TouchAndTextItem(self.manager.fonts['base'], "IP: ", + button = TouchAndTextItem(self.fonts['base'], "IP: ", (0, self.base_size * 3), None) self.screen_objects.set_touch_object("ip", button) diff --git a/mopidy_touchscreen/playlist_screen.py b/mopidy_touchscreen/playlist_screen.py index 883a827..81246e8 100644 --- a/mopidy_touchscreen/playlist_screen.py +++ b/mopidy_touchscreen/playlist_screen.py @@ -1,15 +1,14 @@ from .list_view import ListView +from .base_screen import BaseScreen -class PlaylistScreen(): - def __init__(self, size, base_size, manager): - self.size = size - self.base_size = base_size - self.manager = manager +class PlaylistScreen(BaseScreen): + def __init__(self, size, base_size, manager, fonts): + BaseScreen.__init__(self, size, base_size, manager, fonts) self.list_view = ListView((0, 0), ( self.size[0], self.size[1] - self.base_size), self.base_size, - manager.fonts['base']) + self.fonts['base']) self.playlists_strings = [] self.playlists = [] self.playlists_loaded() diff --git a/mopidy_touchscreen/screen_manager.py b/mopidy_touchscreen/screen_manager.py index 8c2b941..b2cf8ec 100644 --- a/mopidy_touchscreen/screen_manager.py +++ b/mopidy_touchscreen/screen_manager.py @@ -42,11 +42,11 @@ class ScreenManager(): try: self.screens = [ SearchScreen(size, self.base_size, self, self.fonts), - MainScreen(size, self, cache, core, self.fonts), - Tracklist(size, self.base_size, self), - LibraryScreen(size, self.base_size, self), - PlaylistScreen(size, self.base_size, self), - MenuScreen(size, self.base_size, self)] + MainScreen(size, self.base_size, self, self.fonts, cache, core), + Tracklist(size, self.base_size, self, self.fonts), + LibraryScreen(size, self.base_size, self, self.fonts), + PlaylistScreen(size, self.base_size, self, self.fonts), + MenuScreen(size, self.base_size, self, self.fonts)] except: traceback.print_exc() self.track = None @@ -160,8 +160,6 @@ class ScreenManager(): def volume_changed(self, volume): self.screens[main_screen_index].volume_changed(volume) - - def playback_state_changed(self, old_state, new_state): self.screens[main_screen_index].playback_state_changed(old_state, new_state) diff --git a/mopidy_touchscreen/search_screen.py b/mopidy_touchscreen/search_screen.py index 4be8d7a..6e863ef 100644 --- a/mopidy_touchscreen/search_screen.py +++ b/mopidy_touchscreen/search_screen.py @@ -5,6 +5,7 @@ import pygame from .screen_objects import Progressbar, ScreenObjectsManager, \ TouchAndTextItem, TextItem +from .base_screen import BaseScreen logger = logging.getLogger(__name__) @@ -14,12 +15,9 @@ mode_album_name = 1 mode_artist_name = 2 -class SearchScreen(): +class SearchScreen(BaseScreen): def __init__(self, size, base_size, manager, fonts): - self.size = size - self.base_size = base_size - self.manager = manager - self.fonts = fonts + BaseScreen.__init__(self, size, base_size, manager, fonts) self.list_view = ListView((0, self.base_size*2), ( self.size[0], self.size[1] - 3*self.base_size), self.base_size, diff --git a/mopidy_touchscreen/tracklist.py b/mopidy_touchscreen/tracklist.py index da2f524..25208cc 100644 --- a/mopidy_touchscreen/tracklist.py +++ b/mopidy_touchscreen/tracklist.py @@ -1,16 +1,16 @@ from .list_view import ListView from .main_screen import MainScreen +from .base_screen import BaseScreen -class Tracklist(): - def __init__(self, size, base_size, manager): +class Tracklist(BaseScreen): + def __init__(self, size, base_size, manager, fonts): + BaseScreen.__init__(self, size, base_size, manager, fonts) self.size = size self.base_size = base_size self.manager = manager self.list_view = ListView((0, 0), ( - self.size[0], self.size[1] - self.base_size), - self.base_size, - manager.fonts['base']) + self.size[0], self.size[1] - self.base_size), self.base_size, self.fonts['base']) self.tracks = [] self.tracks_strings = [] self.update_list()