Bladeren bron

.gitignore update

9and3r 11 jaren geleden
bovenliggende
commit
5c6aa015eb

+ 1 - 0
.gitignore

@@ -7,3 +7,4 @@
 MANIFEST
 build/
 dist/
+mopidy_touchscreen/.idea/

+ 62 - 83
mopidy_touchscreen/.idea/workspace.xml

@@ -22,32 +22,7 @@
     <favorites_list name="mopidy_touchscreen" />
   </component>
   <component name="FileEditorManager">
-    <leaf>
-      <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="-1.6865672" vertical-offset="2572" max-vertical-offset="2895">
-              <caret line="179" column="0" selection-start-line="179" selection-start-column="0" selection-end-line="179" selection-end-column="0" />
-              <folding>
-                <element signature="e#0#14#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="tracklist.py" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/tracklist.py">
-          <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.42307693" vertical-offset="195" max-vertical-offset="585">
-              <caret line="24" column="81" selection-start-line="24" selection-start-column="81" selection-end-line="24" selection-end-column="81" />
-              <folding>
-                <element signature="e#0#31#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
+    <leaf />
   </component>
   <component name="FindManager">
     <FindUsagesManager>
@@ -57,15 +32,15 @@
   <component name="IdeDocumentHistory">
     <option name="changedFiles">
       <list>
-        <option value="$PROJECT_DIR$/screen_objects.py" />
         <option value="$PROJECT_DIR$/menu_screen.py" />
         <option value="$PROJECT_DIR$/list_view.py" />
-        <option value="$PROJECT_DIR$/touch_screen.py" />
-        <option value="$PROJECT_DIR$/library_screen.py" />
+        <option value="$PROJECT_DIR$/tracklist.py" />
         <option value="$PROJECT_DIR$/screen_manager.py" />
-        <option value="$PROJECT_DIR$/touch_manager.py" />
+        <option value="$PROJECT_DIR$/touch_screen.py" />
+        <option value="$PROJECT_DIR$/screen_objects.py" />
         <option value="$PROJECT_DIR$/main_screen.py" />
-        <option value="$PROJECT_DIR$/tracklist.py" />
+        <option value="$PROJECT_DIR$/touch_manager.py" />
+        <option value="$PROJECT_DIR$/library_screen.py" />
       </list>
     </option>
   </component>
@@ -101,7 +76,6 @@
       <sortByType />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -122,6 +96,7 @@
           </PATH>
         </subPane>
       </pane>
+      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -271,13 +246,13 @@
   </component>
   <component name="ToolWindowManager">
     <frame x="65" y="24" width="1301" height="744" extended-state="6" />
-    <editor active="true" />
+    <editor active="false" />
     <layout>
       <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.34055728" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24960877" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2543036" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2543036" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32972136" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
@@ -285,11 +260,11 @@
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32972136" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32972136" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
     </layout>
   </component>
   <component name="Vcs.Log.UiProperties">
@@ -314,14 +289,30 @@
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/touch_manager.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1335">
-          <caret line="64" column="50" selection-start-line="64" selection-start-column="50" selection-end-line="64" selection-end-column="50" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1425">
+          <caret line="39" column="34" selection-start-line="39" selection-start-column="34" selection-end-line="39" selection-end-column="34" />
+          <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="810" max-vertical-offset="1215">
+          <caret line="75" column="28" selection-start-line="75" selection-start-column="28" selection-end-line="75" selection-end-column="28" />
           <folding>
-            <element signature="e#0#13#0" expanded="true" />
+            <element signature="e#0#31#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/touch_manager.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1335">
+          <caret line="64" column="50" selection-start-line="64" selection-start-column="50" selection-end-line="64" selection-end-column="50" />
+          <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.0" vertical-offset="0" max-vertical-offset="3420">
@@ -441,13 +432,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/screen_objects.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="2229" max-vertical-offset="3765">
-          <caret line="152" column="32" selection-start-line="152" selection-start-column="32" selection-end-line="152" selection-end-column="32" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/menu_screen.py">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.76501304" vertical-offset="532" max-vertical-offset="1185">
@@ -455,78 +439,73 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/library_screen.py">
+    <entry file="file://$PROJECT_DIR$/playlist_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.42307693" vertical-offset="645" max-vertical-offset="1200">
-          <caret line="54" column="26" selection-start-line="54" selection-start-column="26" selection-end-line="54" selection-end-column="26" />
-          <folding>
-            <element signature="e#0#31#0" expanded="false" />
-          </folding>
+        <state vertical-scroll-proportion="0.46153846" vertical-offset="75" max-vertical-offset="555">
+          <caret line="17" column="31" selection-start-line="17" selection-start-column="31" selection-end-line="17" selection-end-column="31" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/list_view.py">
+    <entry file="file://$PROJECT_DIR$/tracklist.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.34615386" vertical-offset="720" max-vertical-offset="1545">
-          <caret line="62" column="35" selection-start-line="62" selection-start-column="35" selection-end-line="62" selection-end-column="35" />
-          <folding />
+        <state vertical-scroll-proportion="0.34615386" vertical-offset="195" max-vertical-offset="585">
+          <caret line="22" column="26" selection-start-line="22" selection-start-column="26" selection-end-line="22" selection-end-column="26" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/screen_manager.py">
+    <entry file="file://$PROJECT_DIR$/main_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.37220845" vertical-offset="1665" max-vertical-offset="3240">
-          <caret line="133" column="27" selection-start-line="133" selection-start-column="27" selection-end-line="133" selection-end-column="27" />
-          <folding />
+        <state vertical-scroll-proportion="0.84615386" vertical-offset="2055" max-vertical-offset="3255">
+          <caret line="159" column="41" selection-start-line="159" selection-start-column="41" selection-end-line="159" selection-end-column="41" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/touch_screen.py">
+    <entry file="file://$PROJECT_DIR$/screen_objects.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.719603" vertical-offset="250" max-vertical-offset="1245">
-          <caret line="43" column="21" selection-start-line="43" selection-start-column="21" selection-end-line="43" selection-end-column="21" />
-          <folding />
+        <state vertical-scroll-proportion="0.8883375" vertical-offset="2117" max-vertical-offset="3750">
+          <caret line="167" column="59" selection-start-line="167" selection-start-column="59" selection-end-line="167" selection-end-column="59" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/touch_manager.py">
+    <entry file="file://$PROJECT_DIR$/list_view.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.074441686" vertical-offset="405" max-vertical-offset="1440">
-          <caret line="29" column="27" selection-start-line="29" selection-start-column="27" selection-end-line="29" selection-end-column="27" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </folding>
+        <state vertical-scroll-proportion="0.5769231" vertical-offset="405" max-vertical-offset="1545">
+          <caret line="47" column="13" selection-start-line="47" selection-start-column="13" selection-end-line="47" selection-end-column="13" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/playlist_screen.py">
+    <entry file="file://$PROJECT_DIR$/touch_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.46153846" vertical-offset="75" max-vertical-offset="555">
-          <caret line="17" column="31" selection-start-line="17" selection-start-column="31" selection-end-line="17" selection-end-column="31" />
-          <folding />
+        <state vertical-scroll-proportion="0.70719606" vertical-offset="765" max-vertical-offset="1290">
+          <caret line="77" column="27" selection-start-line="77" selection-start-column="27" selection-end-line="77" selection-end-column="27" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/main_screen.py">
+    <entry file="file://$PROJECT_DIR$/screen_manager.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="-1.6865672" vertical-offset="2572" max-vertical-offset="2895">
-          <caret line="179" column="0" selection-start-line="179" selection-start-column="0" selection-end-line="179" selection-end-column="0" />
-          <folding>
-            <element signature="e#0#14#0" expanded="true" />
-          </folding>
+        <state vertical-scroll-proportion="0.8511166" vertical-offset="1487" max-vertical-offset="3285">
+          <caret line="134" column="69" selection-start-line="133" selection-start-column="4" selection-end-line="134" selection-end-column="69" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tracklist.py">
+    <entry file="file://$PROJECT_DIR$/library_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.42307693" vertical-offset="195" max-vertical-offset="585">
-          <caret line="24" column="81" selection-start-line="24" selection-start-column="81" selection-end-line="24" selection-end-column="81" />
+        <state vertical-scroll-proportion="2.2282052" vertical-offset="1" max-vertical-offset="1260">
+          <caret line="58" column="40" selection-start-line="58" selection-start-column="40" selection-end-line="58" selection-end-column="40" />
           <folding>
             <element signature="e#0#31#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/touch_manager.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="-1.0843673" vertical-offset="992" max-vertical-offset="1395">
+          <caret line="39" column="34" selection-start-line="39" selection-start-column="34" selection-end-line="39" selection-end-column="34" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
 

+ 10 - 6
mopidy_touchscreen/library_screen.py

@@ -50,25 +50,29 @@ class LibraryScreen():
                     if clicked == 0:
                         self.go_up_directory()
                     else:
-                        self.play_uri(self.library[clicked-1].uri)
+                        self.play_uri(self.library[clicked-1].uri, False)
                 else:
-                    self.play_uri(self.library[clicked].uri)
+                    self.play_uri(self.library[clicked].uri, False)
             else:
                 if self.current_directory is not None:
                     if clicked == 0:
                         self.go_up_directory()
                     else:
                         if self.library[clicked-1].type == mopidy.models.Ref.TRACK:
-                            self.play_uri(self.library[clicked-1].uri)
+                            self.play_uri(self.library[clicked-1].uri, True)
                         else:
                             self.go_inside_directory(self.library[clicked-1].uri)
                 else:
                     if self.library[clicked].type == mopidy.models.Track:
-                        self.play_uri(self.library[clicked].uri)
+                        self.play_uri(self.library[clicked].uri, True)
                     else:
                         self.go_inside_directory(self.library[clicked].uri)
 
-    def play_uri(self, uri):
+    def play_uri(self, uri, track):
         self.manager.core.tracklist.clear()
-        self.manager.core.tracklist.add(uri=uri)
+        if track:
+            self.manager.core.tracklist.add(uri=uri)
+        else:
+            logger.error(uri)
+            self.manager.core.tracklist.add(tracks=self.manager.core.library.search(query={'any':'*'}, uris=[uri]).get()[0].tracks)
         self.manager.core.playback.play()

+ 27 - 3
mopidy_touchscreen/main_screen.py

@@ -24,6 +24,11 @@ class MainScreen():
         self.image = None
         self.artists = None
         self.touch_text_manager = ScreenObjectsManager()
+        current_track = self.core.playback.current_track.get()
+        if current_track is None:
+            self.track_playback_ended(None, None)
+        else:
+            self.track_started(current_track)
 
     def update(self, screen):
         if self.track is not None:
@@ -125,17 +130,36 @@ class MainScreen():
             width = self.size[0] - self.base_size
 
             current = TextItem(self.fonts['base'], MainScreen.get_track_name(self.track), (self.base_size / 2, self.base_size * 2),
-                               (width, self.base_size))
+                               (width, -1))
             self.touch_text_manager.set_object("track_name", current)
 
             current = TextItem(self.fonts['base'], MainScreen.get_track_album_name(self.track), (self.base_size / 2, self.base_size * 3),
-                               (width, self.base_size))
+                               (width, -1))
             self.touch_text_manager.set_object("album_name", current)
 
             current = TextItem(self.fonts['base'], self.get_artist_string(), (self.base_size / 2, self.base_size * 4),
-                               (width, self.base_size))
+                               (width, -1))
             self.touch_text_manager.set_object("artist_name", current)
 
+    def track_playback_ended(self, tl_track, time_position):
+
+        self.image = None
+
+        # There is no cover so it will use all the screen size for the text
+        width = self.size[0] - self.base_size
+
+        current = TextItem(self.fonts['base'], "Stopped", (self.base_size / 2, self.base_size * 2),
+                               (width, -1))
+        self.touch_text_manager.set_object("track_name", current)
+
+        current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 3),
+                               (width, -1))
+        self.touch_text_manager.set_object("album_name", current)
+
+        current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 4),
+                               (width, -1))
+        self.touch_text_manager.set_object("artist_name", current)
+
     def load_image(self):
         size = self.base_size * 4
         self.image = pygame.transform.scale(

+ 3 - 0
mopidy_touchscreen/screen_manager.py

@@ -131,6 +131,9 @@ class ScreenManager():
         self.screens[0].track_started(track.track)
         self.screens[1].track_started(track)
 
+    def track_playback_ended(self, tl_track, time_position):
+        self.screens[0].track_playback_ended(tl_track, time_position)
+
     def event(self, event):
         touch_event = self.touch_manager.event(event)
         if touch_event is not None:

+ 1 - 0
mopidy_touchscreen/screen_objects.py

@@ -162,6 +162,7 @@ class TouchAndTextItem(TouchObject, TextItem):
             else:
                 self.box = self.font.render(self.text, True, self.color)
         if self.active:
+            #Area h*2 to render letters like g, j, y...
             surface.blit(self.active_box, self.pos, area=self.rect)
         else:
             surface.blit(self.box, self.pos, area=self.rect)

+ 0 - 1
mopidy_touchscreen/touch_manager.py

@@ -30,7 +30,6 @@ class TouchManager():
     def event(self, event):
 
         if event.type == pygame.MOUSEBUTTONUP:
-            logger.error(event.button)
             if event.button == 4:
                 touch_event = TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, True)
                 touch_event.direction = TouchManager.up

+ 3 - 0
mopidy_touchscreen/touch_screen.py

@@ -74,6 +74,9 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
         except:
             traceback.print_exc()
 
+    def track_playback_ended(self, tl_track, time_position):
+        self.screen_manager.track_playback_ended(tl_track, time_position)
+
     def options_changed(self):
          try:
             self.screen_manager.options_changed()