소스 검색

Cover bigger
Pause play button working

9and3r 11 년 전
부모
커밋
7e25490b40

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

@@ -23,11 +23,11 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="touch_screen.py" pinned="false" current="true" current-in-tab="true">
+      <file leaf-file-name="touch_screen.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/touch_screen.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.6085919" vertical-offset="90" max-vertical-offset="810">
-              <caret line="31" column="16" selection-start-line="31" selection-start-column="16" selection-end-line="31" selection-end-column="16" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="391" max-vertical-offset="855">
+              <caret line="44" column="33" selection-start-line="44" selection-start-column="12" selection-end-line="44" selection-end-column="33" />
               <folding />
             </state>
           </provider>
@@ -36,11 +36,9 @@
       <file leaf-file-name="touch_screen_backend.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/touch_screen_backend.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="345">
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
               <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
-              <folding>
-                <element signature="e#0#12#0" expanded="true" />
-              </folding>
+              <folding />
             </state>
           </provider>
         </entry>
@@ -48,8 +46,8 @@
       <file leaf-file-name="screen_objects.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/screen_objects.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="2071" max-vertical-offset="2760">
-              <caret line="146" column="36" selection-start-line="146" selection-start-column="36" selection-end-line="146" selection-end-column="36" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="2341" max-vertical-offset="2760">
+              <caret line="98" column="45" selection-start-line="98" selection-start-column="45" selection-end-line="98" selection-end-column="45" />
               <folding />
             </state>
           </provider>
@@ -58,8 +56,8 @@
       <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.0" vertical-offset="570" max-vertical-offset="1065">
-              <caret line="57" column="93" selection-start-line="57" selection-start-column="93" selection-end-line="57" selection-end-column="93" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="794" max-vertical-offset="1290">
+              <caret line="62" column="61" selection-start-line="62" selection-start-column="61" selection-end-line="62" selection-end-column="61" />
               <folding>
                 <element signature="e#0#35#0" expanded="true" />
               </folding>
@@ -67,6 +65,16 @@
           </provider>
         </entry>
       </file>
+      <file leaf-file-name="main_screen.py" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/main_screen.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state vertical-scroll-proportion="0.59359604" vertical-offset="134" max-vertical-offset="1620">
+              <caret line="37" column="73" selection-start-line="37" selection-start-column="73" selection-end-line="37" selection-end-column="73" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
     </leaf>
   </component>
   <component name="FindManager">
@@ -79,20 +87,20 @@
       <list>
         <option value="$PROJECT_DIR$/touch_text_manager.py" />
         <option value="$PROJECT_DIR$/touch_manager.py" />
-        <option value="$PROJECT_DIR$/main_screen.py" />
         <option value="$PROJECT_DIR$/__init__.py" />
         <option value="$PROJECT_DIR$/touch_screen_backend.py" />
-        <option value="$PROJECT_DIR$/screen_manager.py" />
-        <option value="$PROJECT_DIR$/screen_objects.py" />
         <option value="$PROJECT_DIR$/touch_screen.py" />
+        <option value="$PROJECT_DIR$/screen_objects.py" />
+        <option value="$PROJECT_DIR$/screen_manager.py" />
+        <option value="$PROJECT_DIR$/main_screen.py" />
       </list>
     </option>
   </component>
   <component name="ProjectFrameBounds">
     <option name="x" value="65" />
-    <option name="y" value="24" />
+    <option name="y" value="-4" />
     <option name="width" value="1301" />
-    <option name="height" value="744" />
+    <option name="height" value="772" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="false">
     <OptionsSetting value="true" id="Add" />
@@ -120,7 +128,6 @@
       <sortByType />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -141,6 +148,7 @@
           </PATH>
         </subPane>
       </pane>
+      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -310,7 +318,7 @@
     <servers />
   </component>
   <component name="ToolWindowManager">
-    <frame x="65" y="24" width="1301" height="744" extended-state="6" />
+    <frame x="65" y="-4" width="1301" height="772" extended-state="6" />
     <editor active="true" />
     <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" />
@@ -325,11 +333,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="7" 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="true" weight="0.32884902" sideWeight="0.49961567" 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="true" weight="0.32884902" sideWeight="0.49961567" 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">
@@ -354,6 +362,40 @@
     </breakpoint-manager>
   </component>
   <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/touch_screen.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="810">
+          <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/touch_screen_backend.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="75" max-vertical-offset="345">
+          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+          <folding />
+        </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="2190" max-vertical-offset="2775">
+          <caret line="146" column="36" selection-start-line="146" selection-start-column="36" selection-end-line="146" selection-end-column="36" />
+          <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="570" max-vertical-offset="1065">
+          <caret line="57" column="93" selection-start-line="57" selection-start-column="93" selection-end-line="57" selection-end-column="93" />
+          <folding>
+            <element signature="e#0#35#0" expanded="true" />
+          </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="0" max-vertical-offset="1680">
@@ -366,7 +408,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="780" max-vertical-offset="1050">
           <caret line="52" column="32" selection-start-line="52" selection-start-column="32" selection-end-line="52" selection-end-column="32" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -408,7 +449,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="720" max-vertical-offset="1050">
           <caret line="48" column="11" selection-start-line="48" selection-start-column="11" selection-end-line="48" selection-end-column="11" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -468,7 +508,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="450" max-vertical-offset="570">
           <caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -510,7 +549,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="450" max-vertical-offset="570">
           <caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -624,19 +662,10 @@
         </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="1094" max-vertical-offset="1500">
-          <caret line="96" column="89" selection-start-line="96" selection-start-column="12" selection-end-line="96" selection-end-column="89" />
-          <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="616" max-vertical-offset="1035">
           <caret line="52" column="32" selection-start-line="52" selection-start-column="32" selection-end-line="52" selection-end-column="32" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -644,44 +673,47 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.6778043" vertical-offset="226" max-vertical-offset="645">
           <caret line="34" column="45" selection-start-line="34" selection-start-column="45" selection-end-line="34" selection-end-column="45" />
-          <folding>
-            <element signature="e#0#39#0" expanded="true" />
-          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/screen_manager.py">
+    <entry file="file://$PROJECT_DIR$/touch_screen_backend.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="570" max-vertical-offset="1065">
-          <caret line="57" column="93" selection-start-line="57" selection-start-column="93" selection-end-line="57" selection-end-column="93" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="345">
+          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/touch_screen.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="391" max-vertical-offset="855">
+          <caret line="44" column="33" selection-start-line="44" selection-start-column="12" selection-end-line="44" selection-end-column="33" />
+          <folding />
         </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="2071" max-vertical-offset="2760">
-          <caret line="146" column="36" selection-start-line="146" selection-start-column="36" selection-end-line="146" selection-end-column="36" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="2341" max-vertical-offset="2760">
+          <caret line="98" column="45" selection-start-line="98" selection-start-column="45" selection-end-line="98" selection-end-column="45" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/touch_screen_backend.py">
+    <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="345">
-          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="794" max-vertical-offset="1290">
+          <caret line="62" column="61" selection-start-line="62" selection-start-column="61" selection-end-line="62" selection-end-column="61" />
           <folding>
-            <element signature="e#0#12#0" expanded="true" />
+            <element signature="e#0#35#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/touch_screen.py">
+    <entry file="file://$PROJECT_DIR$/main_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.6085919" vertical-offset="90" max-vertical-offset="810">
-          <caret line="31" column="16" selection-start-line="31" selection-start-column="16" selection-end-line="31" selection-end-column="16" />
+        <state vertical-scroll-proportion="0.59359604" vertical-offset="134" max-vertical-offset="1620">
+          <caret line="37" column="73" selection-start-line="37" selection-start-column="73" selection-end-line="37" selection-end-column="73" />
           <folding />
         </state>
       </provider>

+ 22 - 14
mopidy_touchscreen/main_screen.py

@@ -35,7 +35,7 @@ class MainScreen():
 
         if self.track is not None:
             if self.image is not None:
-                screen.blit(self.image, (self.base_size, self.base_size*2))
+                screen.blit(self.image, (self.base_size/2, self.base_size + self.base_size/2))
             self.touch_text_manager.get_touch_object("time_progress").set_value(self.core.playback.time_position.get()/1000)
             self.touch_text_manager.get_touch_object("time_progress").set_text(time.strftime('%M:%S', time.gmtime(self.core.playback.time_position.get()/1000))+"/"+time.strftime('%M:%S', time.gmtime(self.track.length/1000)))
         self.touch_text_manager.render(screen)
@@ -43,9 +43,10 @@ class MainScreen():
 
     def track_started(self, track):
         self.image = None
-        self.touch_text_manager.add_object("track_name",self.fonts['dejavusans'],track.name,(self.size[0]/2,self.base_size*2), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
-        self.touch_text_manager.add_object("album_name",self.fonts['dejavusans'],track.album.name,(self.size[0]/2,self.base_size*3), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
-        self.touch_text_manager.add_object("artist_name",self.fonts['dejavusans'],self.getFirstArtist(track),(self.size[0]/2,self.base_size*4), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
+        x = self.base_size * 5
+        self.touch_text_manager.add_object("track_name",self.fonts['dejavusans'],track.name,(x,self.base_size*2), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
+        self.touch_text_manager.add_object("album_name",self.fonts['dejavusans'],track.album.name,(x,self.base_size*3), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
+        self.touch_text_manager.add_object("artist_name",self.fonts['dejavusans'],self.getFirstArtist(track),(x,self.base_size*4), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
         self.touch_text_manager.add_progressbar("time_progress", self.fonts['dejavusans'],time.strftime('%M:%S', time.gmtime(0))+"/"+time.strftime('%M:%S', time.gmtime(0)),(0,self.base_size*6), (self.size[0],self.base_size*7),track.length/1000, False)
         self.track = track
         if not self.is_image_in_cache():
@@ -78,18 +79,25 @@ class MainScreen():
         return os.path.isfile(self.getCoverFolder()+self.getImageFileName())
 
     def downloadImage(self):
-        safe_artist=urllib.quote_plus(self.getFirstArtist(None))
-        safe_album=urllib.quote_plus(self.track.album.name)
-        url="http://ws.audioscrobbler.com/2.0/?"
-        params="method=album.getinfo&api_key=59a04c6a73fb99d6e8996e01db306829&artist="+safe_artist+"&album="+safe_album+"&format=json"
-        response = urllib2.urlopen(url+params)
-        data = json.load(response)
-        image = data['album']['image'][-1]['#text']
-        urllib.urlretrieve(image, self.getCoverFolder()+self.getImageFileName())
-        self.loadImage()
+        try:
+            safe_artist=urllib.quote_plus(self.getFirstArtist(self.track))
+            safe_album=urllib.quote_plus(self.track.album.name)
+            url="http://ws.audioscrobbler.com/2.0/?"
+            params="method=album.getinfo&api_key=59a04c6a73fb99d6e8996e01db306829&artist="+safe_artist+"&album="+safe_album+"&format=json"
+            response = urllib2.urlopen(url+params)
+            data = json.load(response)
+            image = data['album']['image'][-1]['#text']
+            urllib.urlretrieve(image, self.getCoverFolder()+self.getImageFileName())
+            self.loadImage()
+        except:
+            logger.warning("Cover could not be downloaded")
+            logger.error(self.track.name)
+            self.touch_text_manager.add_object("track_name",self.fonts['dejavusans'],self.track.name,(self.base_size,self.base_size*2), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
+            self.touch_text_manager.add_object("album_name",self.fonts['dejavusans'],self.track.album.name,(self.base_size,self.base_size*3), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
+            self.touch_text_manager.add_object("artist_name",self.fonts['dejavusans'],self.getFirstArtist(self.track),(self.base_size,self.base_size*4), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255))
 
     def loadImage(self):
-        size = self.base_size*3
+        size = self.base_size * 4
         self.image = pygame.transform.scale(pygame.image.load(self.getCoverFolder()+self.getImageFileName()).convert(),(size,size))
 
     def touch_event(self, event):

+ 16 - 1
mopidy_touchscreen/screen_manager.py

@@ -3,6 +3,8 @@ from .touch_manager import TouchManager
 from .screen_objects import ScreenObjectsManager
 import pygame
 import logging
+import mopidy
+import traceback
 
 logger = logging.getLogger(__name__)
 
@@ -21,7 +23,7 @@ class ScreenManager():
         self.track = None
         self.touch_manager = TouchManager(size)
         self.screen_objects_manager = ScreenObjectsManager(size,self.base_size)
-        x = self.screen_objects_manager.add_touch_object("pause_play",self.fonts['dejavusans'],u" ll",(0,0),(255,255,255))
+        x = self.screen_objects_manager.add_touch_object("pause_play",self.fonts['dejavusans']," ll",(0,0),(255,255,255))
         x = x + self.base_size / 2
         x = self.screen_objects_manager.add_touch_object("random",self.fonts['dejavuserif'],u"\u2928",(x,0),(255,255,255))
         x = x + self.base_size / 2
@@ -33,6 +35,7 @@ class ScreenManager():
         self.screen_objects_manager.get_touch_object("volume").set_value(self.core.playback.volume.get())
         self.top_bar = pygame.Surface((self.size[0],self.base_size),pygame.SRCALPHA)
         self.top_bar.fill((0,0,0,128))
+        self.playback_state_changed(mopidy.core.PlaybackState.STOPPED, self.core.playback.state.get())
 
     def update(self):
         surface = pygame.Surface(self.size)
@@ -56,10 +59,22 @@ class ScreenManager():
                             value = self.screen_objects_manager.get_touch_object(key).get_pos_value(touch_event.current_pos)
                             self.backend.tell({'action':'volume','value':value})
                             self.screen_objects_manager.get_touch_object(key).set_value(value)
+                        elif key == "pause_play":
+                            if self.core.playback.state.get() == mopidy.core.PlaybackState.PLAYING:
+                                self.core.playback.pause()
+                                logger.error("pausatzen")
+                            else:
+                                self.core.playback.play()
+                                logger.error("erreproduzitzen")
             self.screens[0].touch_event(touch_event)
 
     def volume_changed(self, volume):
         self.screen_objects_manager.get_touch_object("volume").set_value(volume)
 
+    def playback_state_changed(self, old_state, new_state):
+        if new_state == mopidy.core.PlaybackState.PLAYING:
+            self.screen_objects_manager.get_touch_object("pause_play").set_text(" ll",False)
+        else:
+            self.screen_objects_manager.get_touch_object("pause_play").set_text(u" \u25B8",True)
 
 

+ 5 - 5
mopidy_touchscreen/screen_objects.py

@@ -61,7 +61,7 @@ class BaseItem():
 
 class TextItem(BaseItem):
 
-    def __init__(self, font, text, pos,pos2, color,text_size):
+    def __init__(self, font, text, pos, pos2, color, text_size):
         if pos2 is not None:
             BaseItem.__init__(self,pos,pos2)
         self.text_size = text_size
@@ -112,11 +112,11 @@ class TextItem(BaseItem):
             self.box = self.font.render(self.text, True, self.color)
         surface.blit(self.box,self.pos,area=self.rect)
 
-    def set_text(self, text, size_mantain):
-        if size_mantain:
-            self.__init__(self.font, text,self.pos,None,self.color,self.text_size)
+    def set_text(self, text, same_size):
+        if same_size:
+            TextItem.__init__(self, self.font, text, self.pos, None, self.color, self.text_size)
         else:
-            self.__init__(self.font, text,self.pos,self.pos2,self.color,self.text_size)
+            TextItem.__init__(self, self.font, text, self.pos, self.pos2, self.color, self.text_size)
 
 class TouchObject(BaseItem):
 

+ 4 - 1
mopidy_touchscreen/touch_screen.py

@@ -54,4 +54,7 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
             traceback.print_exc()
 
     def volume_changed(self, volume):
-        self.screen_manager.volume_changed(volume)
+        self.screen_manager.volume_changed(volume)
+
+    def playback_state_changed(self,old_state, new_state):
+        self.screen_manager.playback_state_changed(old_state, new_state)