Browse Source

Internet and IP indicator

9and3r 11 years ago
parent
commit
44fe85c960

+ 40 - 25
mopidy_touchscreen/.idea/workspace.xml

@@ -23,11 +23,11 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="screen_manager.py" pinned="false" current="true" current-in-tab="true">
+      <file leaf-file-name="screen_manager.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/screen_manager.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.45454547" vertical-offset="1995" max-vertical-offset="2940">
-              <caret line="157" column="96" selection-start-line="157" selection-start-column="96" selection-end-line="157" selection-end-column="96" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="2814" max-vertical-offset="3240">
+              <caret line="218" column="45" selection-start-line="218" selection-start-column="45" selection-end-line="218" selection-end-column="45" />
               <folding />
             </state>
           </provider>
@@ -58,13 +58,25 @@
       <file leaf-file-name="main_screen.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/main_screen.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="1530" max-vertical-offset="2325">
-              <caret line="139" column="39" selection-start-line="139" selection-start-column="39" selection-end-line="139" selection-end-column="39" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="1537" max-vertical-offset="2325">
+              <caret line="59" column="52" selection-start-line="59" selection-start-column="52" selection-end-line="59" selection-end-column="52" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
+      <file leaf-file-name="menu_screen.py" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/menu_screen.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state vertical-scroll-proportion="0.6866841" vertical-offset="787" max-vertical-offset="1185">
+              <caret line="70" column="80" selection-start-line="70" selection-start-column="80" selection-end-line="70" selection-end-column="80" />
+              <folding>
+                <element signature="e#0#31#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
     </leaf>
   </component>
   <component name="FindManager">
@@ -75,13 +87,13 @@
   <component name="IdeDocumentHistory">
     <option name="changedFiles">
       <list>
-        <option value="$PROJECT_DIR$/menu_screen.py" />
         <option value="$PROJECT_DIR$/list_view.py" />
         <option value="$PROJECT_DIR$/screen_objects.py" />
         <option value="$PROJECT_DIR$/touch_screen.py" />
         <option value="$PROJECT_DIR$/library_screen.py" />
         <option value="$PROJECT_DIR$/main_screen.py" />
         <option value="$PROJECT_DIR$/screen_manager.py" />
+        <option value="$PROJECT_DIR$/menu_screen.py" />
       </list>
     </option>
   </component>
@@ -420,13 +432,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/menu_screen.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.3524804" vertical-offset="0" max-vertical-offset="383">
-          <caret line="9" column="32" selection-start-line="9" selection-start-column="32" selection-end-line="9" selection-end-column="32" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/list_view.py">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="-1.1148825" vertical-offset="1222" max-vertical-offset="1605">
@@ -449,14 +454,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/playlist_screen.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
-          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/library_screen.py">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="37" max-vertical-offset="780">
@@ -467,22 +464,40 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/playlist_screen.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/main_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="1530" max-vertical-offset="2325">
-          <caret line="139" column="39" selection-start-line="139" selection-start-column="39" selection-end-line="139" selection-end-column="39" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="592" max-vertical-offset="2325">
+          <caret line="59" column="52" selection-start-line="59" selection-start-column="52" selection-end-line="59" selection-end-column="52" />
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/screen_manager.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.45454547" vertical-offset="1995" max-vertical-offset="2940">
-          <caret line="157" column="96" selection-start-line="157" selection-start-column="96" selection-end-line="157" selection-end-column="96" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="2814" max-vertical-offset="3240">
+          <caret line="218" column="45" selection-start-line="218" selection-start-column="45" selection-end-line="218" selection-end-column="45" />
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/menu_screen.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.6866841" vertical-offset="787" max-vertical-offset="1185">
+          <caret line="70" column="80" selection-start-line="70" selection-start-column="80" selection-end-line="70" selection-end-column="80" />
+          <folding>
+            <element signature="e#0#31#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
 

+ 61 - 6
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
+        #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)
+

+ 20 - 1
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()
+        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)
+
+