From 155e8a045aa4e1ba8f5e4512a1607e1b8dfb3324 Mon Sep 17 00:00:00 2001 From: Ander <9and3r@gmail.com> Date: Thu, 21 May 2015 12:54:27 +0200 Subject: [PATCH 1/5] Version change to 1.0.0 --- README.rst | 6 +++++- mopidy_touchscreen/__init__.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index af1d6e2..e6049ed 100644 --- a/README.rst +++ b/README.rst @@ -171,11 +171,15 @@ Project resources Changelog ========= -v0.4.0 (UNRELEASED) +v1.0.0 (UNRELEASED) ------------------- - Require Mopidy v1.0 - Update to work with changed core playback API in Mopidy 1.0 +- Search working +- GPIO and Keyboard support +- Lower CPU usage +- Bug Fixes v0.3.2 (2015-01-09) ------------------- diff --git a/mopidy_touchscreen/__init__.py b/mopidy_touchscreen/__init__.py index 4fa7bde..58a3cf3 100644 --- a/mopidy_touchscreen/__init__.py +++ b/mopidy_touchscreen/__init__.py @@ -7,7 +7,7 @@ from mopidy import config, ext from .touch_screen import TouchScreen -__version__ = '0.4.0' +__version__ = '1.0.0' class Extension(ext.Extension): From b7c62e0dd3eecd9db2012bc438735e2eaebd6fd7 Mon Sep 17 00:00:00 2001 From: Ander <9and3r@gmail.com> Date: Thu, 21 May 2015 14:01:02 +0200 Subject: [PATCH 2/5] Fix keyboard navigation --- mopidy_touchscreen/screens/keyboard_screen.py | 57 +++++++++++++------ 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/mopidy_touchscreen/screens/keyboard_screen.py b/mopidy_touchscreen/screens/keyboard_screen.py index 7858ec6..4d47a58 100644 --- a/mopidy_touchscreen/screens/keyboard_screen.py +++ b/mopidy_touchscreen/screens/keyboard_screen.py @@ -151,39 +151,64 @@ class Keyboard(BaseScreen): def change_selected(self, x, y): if self.selected_others < 0: - self.selected_row += x - if self.selected_row < 0: - self.selected_row = 0 - elif self.selected_row > 9: - self.selected_row = 9 - self.selected_col += y + # We are on the keyboard + + # Update col + self.selected_col += x if self.selected_col < 0: self.selected_col = 0 - elif self.selected_col > 2: + elif self.selected_col > 9: + self.selected_col = 9 + + # Update row + self.selected_row += y + if self.selected_row < 0: + self.selected_row = 0 + elif self.selected_row > 2: + + # Change to the bottom part if self.selected_col < 2: self.selected_others = 0 - elif self.selected_col < 8: + elif self.selected_col < 4: self.selected_others = 1 - else: + elif self.selected_col < 8: self.selected_others = 2 - self.set_selected_other() + else: + self.selected_others = 3 + + # Update selected if self.selected_others < 0: key = self.keys[self.current_keyboard][ - self.selected_col][self.selected_row] + self.selected_row][self.selected_col] self.keyboards[self.current_keyboard].set_selected(key) else: self.keyboards[0].set_selected(None) self.keyboards[1].set_selected(None) + self.set_selected_other() else: + # We are on the bottom part if y < 0: + # we are returning to the keyboard + + # Select col + if self.selected_others == 0: + self.selected_col = 0 + elif self.selected_others == 1: + self.selected_col = 2 + elif self.selected_others == 2: + self.selected_col = 4 + else: + self.selected_col = 8 + self.selected_others = -1 self.set_selected_other() - self.selected_col = 2 - self.selected_row = 0 + + self.selected_row = 2 key = self.keys[self.current_keyboard][ - self.selected_col][self.selected_row] + self.selected_row][self.selected_col] self.keyboards[self.current_keyboard].set_selected(key) - else: + elif x != 0: + # We change in horizontal self.selected_others += x if self.selected_others < 0: self.selected_others = 0 @@ -205,7 +230,7 @@ class Keyboard(BaseScreen): self.manager.close_keyboard() else: key = self.keys[self.current_keyboard][ - self.selected_col][self.selected_row] + self.selected_row][self.selected_col] self.other_objects.get_object("text").add_text( key, False) From 2d1cc6002f77f39e356ee0ad739b876838d41126 Mon Sep 17 00:00:00 2001 From: Ander <9and3r@gmail.com> Date: Thu, 21 May 2015 14:02:27 +0200 Subject: [PATCH 3/5] Remove requirements --- requirements.txt | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index ee79c75..0000000 --- a/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -'setuptools' -'Mopidy >= 1.0' -'Pykka >= 1.1' -'pygame' From 00e5a88e5751d7e51a9d35105f3cd71fb482639d Mon Sep 17 00:00:00 2001 From: Ander <9and3r@gmail.com> Date: Thu, 21 May 2015 14:19:15 +0200 Subject: [PATCH 4/5] Remove touch option to track name, album name, artist name --- README.rst | 3 +- mopidy_touchscreen/screens/main_screen.py | 46 ++++++++++------------- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/README.rst b/README.rst index e6049ed..1456713 100644 --- a/README.rst +++ b/README.rst @@ -178,7 +178,8 @@ v1.0.0 (UNRELEASED) - Update to work with changed core playback API in Mopidy 1.0 - Search working - GPIO and Keyboard support -- Lower CPU usage +- Background image +- Lower CPU usage (Update screen only when needed) - Bug Fixes v0.3.2 (2015-01-09) diff --git a/mopidy_touchscreen/screens/main_screen.py b/mopidy_touchscreen/screens/main_screen.py index c7f2436..8fe17f1 100644 --- a/mopidy_touchscreen/screens/main_screen.py +++ b/mopidy_touchscreen/screens/main_screen.py @@ -15,7 +15,7 @@ import mopidy.core import pygame from ..graphic_utils import Progressbar, \ - ScreenObjectsManager, TouchAndTextItem + ScreenObjectsManager, TextItem, TouchAndTextItem from ..input import InputManager @@ -129,7 +129,7 @@ class MainScreen(BaseScreen): rects.append(progress.rect_in_pos) for key in self.update_keys: - object = self.touch_text_manager.get_touch_object(key) + object = self.touch_text_manager.get_object(key) object.update() object.render(screen) rects.append(object.rect_in_pos) @@ -149,30 +149,30 @@ class MainScreen(BaseScreen): self.artists.append(artist) # Track name - label = TouchAndTextItem(self.fonts['base'], + label = TextItem(self.fonts['base'], MainScreen.get_track_name(track), (x, self.base_size * 2), (width, -1)) if not label.fit_horizontal: self.update_keys.append("track_name") - self.touch_text_manager.set_touch_object("track_name", label) + self.touch_text_manager.set_object("track_name", label) # Album name - label = TouchAndTextItem(self.fonts['base'], + label = TextItem(self.fonts['base'], MainScreen.get_track_album_name (track), (x, self.base_size * 3), (width, -1)) if not label.fit_horizontal: self.update_keys.append("album_name") - self.touch_text_manager.set_touch_object("album_name", label) + self.touch_text_manager.set_object("album_name", label) # Artist - label = TouchAndTextItem(self.fonts['base'], + label = TextItem(self.fonts['base'], self.get_artist_string(), (x, self.base_size * 4), (width, -1)) if not label.fit_horizontal: self.update_keys.append("artist_name") - self.touch_text_manager.set_touch_object("artist_name", label) + self.touch_text_manager.set_object("artist_name", label) # Previous track button button = TouchAndTextItem(self.fonts['icon'], u"\ue61c", @@ -275,7 +275,7 @@ class MainScreen(BaseScreen): # so it will use all the screen size for the text width = self.size[0] - self.base_size - current = TouchAndTextItem(self.fonts['base'], + current = TextItem(self.fonts['base'], MainScreen.get_track_name (self.track), (self.base_size / 2, @@ -283,10 +283,10 @@ class MainScreen(BaseScreen): (width, -1)) if not current.fit_horizontal: self.update_keys.append("track_name") - self.touch_text_manager.set_touch_object("track_name", + self.touch_text_manager.set_object("track_name", current) - current = TouchAndTextItem(self.fonts['base'], + current = TextItem(self.fonts['base'], MainScreen.get_track_album_name (self.track), (self.base_size / 2, @@ -294,17 +294,17 @@ class MainScreen(BaseScreen): (width, -1)) if not current.fit_horizontal: self.update_keys.append("album_name") - self.touch_text_manager.set_touch_object("album_name", + self.touch_text_manager.set_object("album_name", current) - current = TouchAndTextItem(self.fonts['base'], + current = TextItem(self.fonts['base'], self.get_artist_string(), (self.base_size / 2, self.base_size * 4), (width, -1)) if not current.fit_horizontal: self.update_keys.append("artist_name") - self.touch_text_manager.set_touch_object("artist_name", + self.touch_text_manager.set_object("artist_name", current) self.background.set_background_image(None) @@ -316,25 +316,25 @@ class MainScreen(BaseScreen): width = self.size[0] - self.base_size - current = TouchAndTextItem(self.fonts['base'], "", + current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 2), (width, -1)) - self.touch_text_manager.set_touch_object("track_name", + self.touch_text_manager.set_object("track_name", current) - current = TouchAndTextItem(self.fonts['base'], "", + current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 3), (width, -1)) - self.touch_text_manager.set_touch_object("album_name", + self.touch_text_manager.set_object("album_name", current) - current = TouchAndTextItem(self.fonts['base'], "", + current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 4), (width, -1)) - self.touch_text_manager.set_touch_object("artist_name", + self.touch_text_manager.set_object("artist_name", current) def load_image(self): @@ -410,12 +410,6 @@ class MainScreen(BaseScreen): not self.core.tracklist.single.get()) elif key == "internet": self.manager.check_connection() - elif key == "track_name": - self.manager.search(self.track.name, 0) - elif key == "album_name": - self.manager.search(self.track.album.name, 1) - elif key == "artist_name": - self.manager.search(self.get_artist_string(), 2) def change_volume(self, event): manager = self.touch_text_manager From 2c6c2cee2561f1ce6aae506a6fa3ddb93b0327d4 Mon Sep 17 00:00:00 2001 From: Ander <9and3r@gmail.com> Date: Thu, 21 May 2015 14:35:24 +0200 Subject: [PATCH 5/5] Update Readme --- README.rst | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.rst b/README.rst index 1456713..4d70a24 100644 --- a/README.rst +++ b/README.rst @@ -126,8 +126,6 @@ or send an email to `9and3r@gmail.com `_ Features ======== -Working -------- * See track info (track name, album, artist, cover image) * Seek Track @@ -141,10 +139,6 @@ Working * Repeat one/on/off * Playback list and song selection * Playlists - -Planned -------- - * Use keyboard or GPIO buttons instead of touchscreen