From 44fe85c96061fa89cfacaeb1b7bb255e8c713a15 Mon Sep 17 00:00:00 2001
From: 9and3r <9and3r@gmail.com>
Date: Wed, 30 Jul 2014 01:44:44 +0200
Subject: [PATCH] Internet and IP indicator
---
mopidy_touchscreen/.idea/workspace.xml | 65 +++++++++++++++----------
mopidy_touchscreen/menu_screen.py | 67 +++++++++++++++++++++++---
mopidy_touchscreen/screen_manager.py | 21 +++++++-
3 files changed, 121 insertions(+), 32 deletions(-)
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)
+
+