diff --git a/mopidy_touchscreen/.idea/workspace.xml b/mopidy_touchscreen/.idea/workspace.xml index dee3905..b1e8ab1 100644 --- a/mopidy_touchscreen/.idea/workspace.xml +++ b/mopidy_touchscreen/.idea/workspace.xml @@ -23,11 +23,11 @@ - + - - + + @@ -58,13 +58,25 @@ - - + + + + + + + + + + + + + + @@ -75,13 +87,13 @@ @@ -420,13 +432,6 @@ - - - - - - - @@ -449,14 +454,6 @@ - - - - - - - - @@ -467,22 +464,40 @@ + + + + + + + + - - + + - - + + + + + + + + + + + + diff --git a/mopidy_touchscreen/menu_screen.py b/mopidy_touchscreen/menu_screen.py index 96405b0..4ffcdc4 100644 --- a/mopidy_touchscreen/menu_screen.py +++ b/mopidy_touchscreen/menu_screen.py @@ -1,4 +1,9 @@ from .list_view import ListView +from .screen_objects import * +import mopidy +import os +import socket + class MenuScreen(): @@ -6,13 +11,63 @@ class MenuScreen(): 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.list_view.set_list(["Exit mopidy", "Shutdown", "Restart"]) + self.ip = None + self.screen_objects = ScreenObjectsManager() + + #Exit mopidy button + button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue611", (0, self.base_size), None) + self.screen_objects.set_touch_object("exit_icon", button) + button = TouchAndTextItem(self.manager.fonts['base'], "Exit Mopidy", (button.get_right_pos(), self.base_size), None) + self.screen_objects.set_touch_object("exit", button) + + #Shutdown button + button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue60b", (0, self.base_size * 2), None) + self.screen_objects.set_touch_object("shutdown_icon", button) + button = TouchAndTextItem(self.manager.fonts['base'], "Shutdown", (button.get_right_pos(), self.base_size * 2), None) + self.screen_objects.set_touch_object("shutdown", button) + + #Restart button + button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue609", (0, self.base_size * 3), None) + self.screen_objects.set_touch_object("restart_icon", button) + button = TouchAndTextItem(self.manager.fonts['base'], "Restart", (button.get_right_pos(), self.base_size * 3), None) + self.screen_objects.set_touch_object("restart", button) + + #IP addres + button = TouchAndTextItem(self.manager.fonts['base'], "IP: ", (0, self.base_size * 4), None) + self.screen_objects.set_touch_object("ip", button) + + #self.list_view = ListView((0,self.base_size),(self.size[0],self.size[1]-2*self.base_size), self.base_size, manager.fonts) + #self.list_view.set_list(["Exit mopidy", "Shutdown", "Restart"]) + + def update(self, screen): - self.list_view.render(screen) + self.screen_objects.render(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 \ No newline at end of file + #clicked = self.list_view.touch_event(touch_event) + clicked = self.screen_objects.get_touch_objects_in_pos(touch_event.current_pos) + for key in clicked: + if key == "exit_icon" or key == "exit": + mopidy.utils.process.exit_process() + elif key == "shutdown_icon" or key == "shutdown": + os.system("shutdown now -h") + elif key == "ip": + self.check_connection() + + def check_connection(self): + try: + self.manager.set_connection(False, True) + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.connect(("8.8.8.8", 80)) + self.ip = s.getsockname()[0] + s.close() + self.screen_objects.get_touch_object("ip").set_text("IP: " + self.ip, "None") + self.manager.set_connection(True, False) + except socket.error: + s.close() + self.ip = None + self.screen_objects.get_touch_object("ip").set_text("IP: No internet", "None") + self.manager.set_connection(False, False) + diff --git a/mopidy_touchscreen/screen_manager.py b/mopidy_touchscreen/screen_manager.py index 0a05a41..395d547 100644 --- a/mopidy_touchscreen/screen_manager.py +++ b/mopidy_touchscreen/screen_manager.py @@ -63,6 +63,11 @@ class ScreenManager(): self.screen_objects_manager.set_touch_object("single", button) x = button.get_right_pos() + #Internet + button = TouchAndTextItem(self.fonts['icon'], u"\ue602 ", (x, 0), None) + self.screen_objects_manager.set_touch_object("internet", button) + x = button.get_right_pos() + #Mute button = TouchAndTextItem(self.fonts['icon'], u"\ue61f ", (x, 0), None) self.screen_objects_manager.set_touch_object("mute", button) @@ -109,6 +114,7 @@ class ScreenManager(): self.options_changed() self.mute_changed(self.core.playback.mute.get()) self.playback_state_changed(self.core.playback.state.get(), self.core.playback.state.get()) + self.screens[4].check_connection() self.change_screen(self.current_screen) def update(self): @@ -156,6 +162,8 @@ class ScreenManager(): self.core.tracklist.set_repeat(not self.core.tracklist.repeat.get()) elif key == "single": self.core.tracklist.set_single(not self.core.tracklist.single.get()) + elif key == "internet": + self.screens[4].check_connection() elif key[:-1] == "menu_": self.change_screen(int(key[-1:])) self.screens[self.current_screen].touch_event(touch_event) @@ -200,4 +208,15 @@ class ScreenManager(): self.screen_objects_manager.get_touch_object("menu_"+str(new_screen)).set_active(True) def playlists_loaded(self): - self.screens[3].playlists_loaded() \ No newline at end of file + self.screens[3].playlists_loaded() + + def set_connection(self, connection, loading): + internet = self.screen_objects_manager.get_touch_object("internet") + if loading: + internet.set_text(u"\ue627",None) + internet.set_active(False) + else: + internet.set_text(u"\ue602",None) + internet.set_active(connection) + +