Base Screen class

This commit is contained in:
Ander
2014-12-20 14:56:23 +01:00
parent eea899f4ea
commit 58ae8b80e2
8 changed files with 54 additions and 47 deletions

View File

@@ -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

View File

@@ -3,19 +3,18 @@ import mopidy.models
from .list_view import ListView from .list_view import ListView
from .input_manager import InputManager from .input_manager import InputManager
from .base_screen import BaseScreen
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class LibraryScreen(): class LibraryScreen(BaseScreen):
def __init__(self, size, base_size, manager): def __init__(self, size, base_size, manager, fonts):
self.size = size BaseScreen.__init__(self, size, base_size, manager, fonts)
self.base_size = base_size
self.manager = manager
self.list_view = ListView((0, 0), ( self.list_view = ListView((0, 0), (
self.size[0], self.size[1] - self.base_size), self.size[0], self.size[1] - self.base_size),
self.base_size, self.base_size,
manager.fonts['base']) self.fonts['base'])
self.directory_list = [] self.directory_list = []
self.current_directory = None self.current_directory = None
self.library = None self.library = None

View File

@@ -8,6 +8,7 @@ import urllib
import urllib2 import urllib2
from threading import Thread from threading import Thread
import pygame import pygame
from .base_screen import BaseScreen
from .screen_objects import (Progressbar, ScreenObjectsManager, from .screen_objects import (Progressbar, ScreenObjectsManager,
TextItem, TextItem,
@@ -18,13 +19,10 @@ from .input_manager import InputManager
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class MainScreen(): class MainScreen(BaseScreen):
def __init__(self, size, manager, cache, core, fonts): def __init__(self, size, base_size, manager, fonts, cache, core):
BaseScreen.__init__(self, size, base_size, manager, fonts)
self.core = core self.core = core
self.size = size
self.base_size = self.size[1] / 8
self.fonts = fonts
self.manager = manager
self.track = None self.track = None
self.cache = cache self.cache = cache
self.image = None self.image = None
@@ -297,7 +295,7 @@ class MainScreen():
volume = self.core.playback.volume.get() + 10 volume = self.core.playback.volume.get() + 10
if volume > 100: if volume > 100:
volume = 100 volume = 100
self.core.playback.volume = volume self.core.playback.volume = volume
self.manager.volume_changed(volume) self.manager.volume_changed(volume)
elif event.direction == InputManager.down: elif event.direction == InputManager.down:
volume = self.core.playback.volume.get() - 10 volume = self.core.playback.volume.get() - 10

View File

@@ -4,13 +4,12 @@ import mopidy
from .screen_objects import ScreenObjectsManager, TouchAndTextItem from .screen_objects import ScreenObjectsManager, TouchAndTextItem
from .input_manager import InputManager from .input_manager import InputManager
from .base_screen import BaseScreen
class MenuScreen(): class MenuScreen(BaseScreen):
def __init__(self, size, base_size, manager): def __init__(self, size, base_size, manager, fonts):
self.size = size BaseScreen.__init__(self, size, base_size, manager, fonts)
self.base_size = base_size
self.manager = manager
self.ip = None self.ip = None
self.screen_objects = ScreenObjectsManager() self.screen_objects = ScreenObjectsManager()
@@ -19,7 +18,7 @@ class MenuScreen():
u"\ue611", u"\ue611",
(0, 0), None) (0, 0), None)
self.screen_objects.set_touch_object("exit_icon", button) self.screen_objects.set_touch_object("exit_icon", button)
button = TouchAndTextItem(self.manager.fonts['base'], button = TouchAndTextItem(self.fonts['base'],
"Exit Mopidy", "Exit Mopidy",
(button.get_right_pos(), (button.get_right_pos(),
0), 0),
@@ -27,11 +26,11 @@ class MenuScreen():
self.screen_objects.set_touch_object("exit", button) self.screen_objects.set_touch_object("exit", button)
# Shutdown button # Shutdown button
button = TouchAndTextItem(self.manager.fonts['icon'], button = TouchAndTextItem(self.fonts['icon'],
u"\ue60b", u"\ue60b",
(0, self.base_size * 1), None) (0, self.base_size * 1), None)
self.screen_objects.set_touch_object("shutdown_icon", button) self.screen_objects.set_touch_object("shutdown_icon", button)
button = TouchAndTextItem(self.manager.fonts['base'], button = TouchAndTextItem(self.fonts['base'],
"Shutdown", "Shutdown",
(button.get_right_pos(), (button.get_right_pos(),
self.base_size * 1), self.base_size * 1),
@@ -39,11 +38,11 @@ class MenuScreen():
self.screen_objects.set_touch_object("shutdown", button) self.screen_objects.set_touch_object("shutdown", button)
# Restart button # Restart button
button = TouchAndTextItem(self.manager.fonts['icon'], button = TouchAndTextItem(self.fonts['icon'],
u"\ue609", u"\ue609",
(0, self.base_size * 2), None) (0, self.base_size * 2), None)
self.screen_objects.set_touch_object("restart_icon", button) self.screen_objects.set_touch_object("restart_icon", button)
button = TouchAndTextItem(self.manager.fonts['base'], button = TouchAndTextItem(self.fonts['base'],
"Restart", "Restart",
(button.get_right_pos(), (button.get_right_pos(),
self.base_size * 2), self.base_size * 2),
@@ -51,7 +50,7 @@ class MenuScreen():
self.screen_objects.set_touch_object("restart", button) self.screen_objects.set_touch_object("restart", button)
# IP addres # IP addres
button = TouchAndTextItem(self.manager.fonts['base'], "IP: ", button = TouchAndTextItem(self.fonts['base'], "IP: ",
(0, self.base_size * 3), None) (0, self.base_size * 3), None)
self.screen_objects.set_touch_object("ip", button) self.screen_objects.set_touch_object("ip", button)

View File

@@ -1,15 +1,14 @@
from .list_view import ListView from .list_view import ListView
from .base_screen import BaseScreen
class PlaylistScreen(): class PlaylistScreen(BaseScreen):
def __init__(self, size, base_size, manager): def __init__(self, size, base_size, manager, fonts):
self.size = size BaseScreen.__init__(self, size, base_size, manager, fonts)
self.base_size = base_size
self.manager = manager
self.list_view = ListView((0, 0), ( self.list_view = ListView((0, 0), (
self.size[0], self.size[1] - self.base_size), self.size[0], self.size[1] - self.base_size),
self.base_size, self.base_size,
manager.fonts['base']) self.fonts['base'])
self.playlists_strings = [] self.playlists_strings = []
self.playlists = [] self.playlists = []
self.playlists_loaded() self.playlists_loaded()

View File

@@ -42,11 +42,11 @@ 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, cache, core, self.fonts), MainScreen(size, self.base_size, self, self.fonts, cache, core),
Tracklist(size, self.base_size, self), Tracklist(size, self.base_size, self, self.fonts),
LibraryScreen(size, self.base_size, self), LibraryScreen(size, self.base_size, self, self.fonts),
PlaylistScreen(size, self.base_size, self), PlaylistScreen(size, self.base_size, self, self.fonts),
MenuScreen(size, self.base_size, self)] MenuScreen(size, self.base_size, self, self.fonts)]
except: except:
traceback.print_exc() traceback.print_exc()
self.track = None self.track = None
@@ -160,8 +160,6 @@ class ScreenManager():
def volume_changed(self, volume): def volume_changed(self, volume):
self.screens[main_screen_index].volume_changed(volume) self.screens[main_screen_index].volume_changed(volume)
def playback_state_changed(self, old_state, new_state): def playback_state_changed(self, old_state, new_state):
self.screens[main_screen_index].playback_state_changed(old_state, new_state) self.screens[main_screen_index].playback_state_changed(old_state, new_state)

View File

@@ -5,6 +5,7 @@ import pygame
from .screen_objects import Progressbar, ScreenObjectsManager, \ from .screen_objects import Progressbar, ScreenObjectsManager, \
TouchAndTextItem, TextItem TouchAndTextItem, TextItem
from .base_screen import BaseScreen
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -14,12 +15,9 @@ mode_album_name = 1
mode_artist_name = 2 mode_artist_name = 2
class SearchScreen(): class SearchScreen(BaseScreen):
def __init__(self, size, base_size, manager, fonts): def __init__(self, size, base_size, manager, fonts):
self.size = size BaseScreen.__init__(self, size, base_size, manager, fonts)
self.base_size = base_size
self.manager = manager
self.fonts = fonts
self.list_view = ListView((0, self.base_size*2), ( self.list_view = ListView((0, self.base_size*2), (
self.size[0], self.size[1] - 3*self.base_size), self.size[0], self.size[1] - 3*self.base_size),
self.base_size, self.base_size,

View File

@@ -1,16 +1,16 @@
from .list_view import ListView from .list_view import ListView
from .main_screen import MainScreen from .main_screen import MainScreen
from .base_screen import BaseScreen
class Tracklist(): class Tracklist(BaseScreen):
def __init__(self, size, base_size, manager): def __init__(self, size, base_size, manager, fonts):
BaseScreen.__init__(self, size, base_size, manager, fonts)
self.size = size self.size = size
self.base_size = base_size self.base_size = base_size
self.manager = manager self.manager = manager
self.list_view = ListView((0, 0), ( self.list_view = ListView((0, 0), (
self.size[0], self.size[1] - self.base_size), self.size[0], self.size[1] - self.base_size), self.base_size, self.fonts['base'])
self.base_size,
manager.fonts['base'])
self.tracks = [] self.tracks = []
self.tracks_strings = [] self.tracks_strings = []
self.update_list() self.update_list()