mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 22:25:39 +00:00
Internet and IP indicator
This commit is contained in:
65
mopidy_touchscreen/.idea/workspace.xml
generated
65
mopidy_touchscreen/.idea/workspace.xml
generated
@@ -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>
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user