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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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