Cover bigger

Pause play button working
This commit is contained in:
9and3r
2014-07-21 01:38:32 +02:00
parent 912d8016d3
commit 7e25490b40
5 changed files with 138 additions and 80 deletions

View File

@@ -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,27 +673,6 @@
<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">
<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$/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" />
<folding />
</state>
</provider>
</entry>
@@ -672,16 +680,40 @@
<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" />
<folding>
<element signature="e#0#12#0" expanded="true" />
</folding>
<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.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>
</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="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$/screen_manager.py">
<provider selected="true" editor-type-id="text-editor">
<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>
</state>
</provider>
</entry>
<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>

View File

@@ -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):

View File

@@ -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)

View File

@@ -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):

View File

@@ -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)