diff --git a/mopidy_touchscreen/.idea/workspace.xml b/mopidy_touchscreen/.idea/workspace.xml index a07965a..837613c 100644 --- a/mopidy_touchscreen/.idea/workspace.xml +++ b/mopidy_touchscreen/.idea/workspace.xml @@ -26,32 +26,38 @@ - - - - - + + + - - + + - - - - - + + + - + + + + + + + + + + + - - + + @@ -68,11 +74,12 @@ @@ -108,6 +115,7 @@ + @@ -128,7 +136,6 @@ - @@ -286,11 +293,11 @@ - + - + @@ -313,13 +320,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + @@ -335,9 +372,7 @@ - - - + @@ -369,13 +404,6 @@ - - - - - - - @@ -384,31 +412,42 @@ - + - - + + + + + + + + + - - - - - + + + - + - - - - - + + + + + + + + + + + diff --git a/mopidy_touchscreen/library_screen.py b/mopidy_touchscreen/library_screen.py new file mode 100644 index 0000000..a742711 --- /dev/null +++ b/mopidy_touchscreen/library_screen.py @@ -0,0 +1,24 @@ +from .list_view import ListView + + +class LibraryScreen(): + + def __init__(self, size, base_size, manager): + self.size = size + self.base_size = base_size + self.manager = manager + self.list_view = ListView((0,self.base_size),(self.size[0],self.size[1]-2*self.base_size), self.base_size, manager.fonts) + self.library = self.manager.core.library.browse(None).get() + self.library_strings = [] + for lib in self.library: + self.library_strings.append(lib.name) + self.list_view.set_list(self.library_strings) + + + def update(self, screen): + self.list_view.render(screen) + + def touch_event(self, touch_event): + clicked = self.list_view.touch_event(touch_event) + if clicked is not None: + pass diff --git a/mopidy_touchscreen/main_screen.py b/mopidy_touchscreen/main_screen.py index 278eb52..8510698 100644 --- a/mopidy_touchscreen/main_screen.py +++ b/mopidy_touchscreen/main_screen.py @@ -55,8 +55,18 @@ class MainScreen(): label = TextItem(self.fonts['base'],self.getFirstArtist(track),(x,self.base_size*4), (width,self.size[1])) self.touch_text_manager.set_object("artist_name",label) + #Previous track button + button = TouchAndTextItem(self.fonts['icon'], u"\ue61c", (0, self.base_size * 6), None) + self.touch_text_manager.set_touch_object("previous", button) + size_1 = button.get_right_pos() + + button = TouchAndTextItem(self.fonts['icon'], u"\ue61d", (0, 0), None) + self.touch_text_manager.set_touch_object("next", button) + size_2 = button.get_right_pos() + button.pos = (self.size[0] - size_2, self.base_size * 6) + #Progress - progress = Progressbar(self.fonts['base'],time.strftime('%M:%S', time.gmtime(0))+"/"+time.strftime('%M:%S', time.gmtime(0)),(0,self.base_size*6), (self.size[0],self.base_size),track.length/1000, False) + progress = Progressbar(self.fonts['base'],time.strftime('%M:%S', time.gmtime(0))+"/"+time.strftime('%M:%S', time.gmtime(0)),(size_1, self.base_size*6), (self.size[0] - size_1- size_2,self.base_size),track.length/1000, False) self.touch_text_manager.set_touch_object("time_progress", progress) self.track = track @@ -114,9 +124,6 @@ class MainScreen(): current = TextItem(self.fonts['base'],self.getFirstArtist(self.track),(self.base_size/2,self.base_size*4),(width, self.base_size)) self.touch_text_manager.set_object("artist_name", current) - #self.touch_text_manager.set_object("album_name",), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) - #self.touch_text_manager.set_object("artist_name",self.fonts['dejavusans'],self.getFirstArtist(self.track),(self.base_size,self.base_size*4), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) - def loadImage(self): size = self.base_size * 4 self.image = pygame.transform.scale(pygame.image.load(self.getCoverFolder()+self.getImageFileName()).convert(),(size,size)) @@ -129,6 +136,10 @@ class MainScreen(): if key == "time_progress": value = self.touch_text_manager.get_touch_object(key).get_pos_value(event.current_pos) * 1000 self.core.playback.seek(value) + elif key == "previous": + self.core.playback.previous() + elif key == "next": + self.core.playback.next() elif event.type == TouchManager.swipe: if event.direction == TouchManager.left: self.core.playback.next() diff --git a/mopidy_touchscreen/screen_manager.py b/mopidy_touchscreen/screen_manager.py index 791bec9..08a90d6 100644 --- a/mopidy_touchscreen/screen_manager.py +++ b/mopidy_touchscreen/screen_manager.py @@ -4,6 +4,7 @@ from .screen_objects import * from .tracklist import Tracklist from .playlist_screen import PlaylistScreen from .dynamic_background import DynamicBackground +from .library_screen import LibraryScreen import logging import mopidy import traceback @@ -29,6 +30,7 @@ class ScreenManager(): try: self.screens = [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)] except: @@ -61,8 +63,6 @@ class ScreenManager(): self.screen_objects_manager.set_touch_object("single", button) x = button.get_right_pos() - - logger.error(font) #Mute button = TouchAndTextItem(self.fonts['icon'], u"\ue61f ", (x, 0), None) self.screen_objects_manager.set_touch_object("mute", button) @@ -75,26 +75,33 @@ class ScreenManager(): #Menu buttons + button_size = (self.size[0]/5, self.base_size) + #Main button - button = TouchAndTextItem(self.fonts['icon'], u" \ue600 ", (0, self.base_size * 7), None) + button = TouchAndTextItem(self.fonts['icon'], u" \ue600", (0, self.base_size * 7), button_size) self.screen_objects_manager.set_touch_object("menu_0", button) x = button.get_right_pos() #Tracklist button - button = TouchAndTextItem(self.fonts['icon'], u"\ue60d ", (x, self.base_size * 7), None) + button = TouchAndTextItem(self.fonts['icon'], u" \ue60d", (x, self.base_size * 7), button_size) self.screen_objects_manager.set_touch_object("menu_1", button) x = button.get_right_pos() - #Playlist button - button = TouchAndTextItem(self.fonts['icon'], u"\ue605 ", (x, self.base_size * 7), None) + #Library button + button = TouchAndTextItem(self.fonts['icon'], u" \ue604", (x, self.base_size * 7), button_size) self.screen_objects_manager.set_touch_object("menu_2", button) x = button.get_right_pos() - #Menu button - button = TouchAndTextItem(self.fonts['icon'], u" \ue60a ", (x, self.base_size * 7), None) + #Playlist button + button = TouchAndTextItem(self.fonts['icon'], u" \ue605", (x, self.base_size * 7), button_size) self.screen_objects_manager.set_touch_object("menu_3", button) x = button.get_right_pos() + #Menu button + button = TouchAndTextItem(self.fonts['icon'], u" \ue60a", (x, self.base_size * 7), None) + self.screen_objects_manager.set_touch_object("menu_4", button) + x = button.get_right_pos() + #Down bar self.down_bar = pygame.Surface((self.size[0], self.base_size), pygame.SRCALPHA) self.down_bar.fill((0, 0, 0, 128)) @@ -193,4 +200,4 @@ class ScreenManager(): self.screen_objects_manager.get_touch_object("menu_"+str(new_screen)).set_active(True) def playlists_loaded(self): - self.screens[2].playlists_loaded() \ No newline at end of file + self.screens[3].playlists_loaded() \ No newline at end of file