Mute, repeat-single, random buttons working

This commit is contained in:
9and3r
2014-07-28 01:35:50 +02:00
parent a0f33e28d3
commit 9600693b42
4 changed files with 103 additions and 46 deletions

View File

@@ -26,8 +26,8 @@
<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.0" vertical-offset="676" max-vertical-offset="1095">
<caret line="61" column="33" selection-start-line="61" selection-start-column="33" selection-end-line="61" selection-end-column="33" />
<state vertical-scroll-proportion="0.0" vertical-offset="691" max-vertical-offset="1185">
<caret line="77" column="49" selection-start-line="77" selection-start-column="49" selection-end-line="77" selection-end-column="49" />
<folding />
</state>
</provider>
@@ -36,18 +36,28 @@
<file leaf-file-name="touch_manager.py" pinned="false" current="false" current-in-tab="false">
<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="1005">
<state vertical-scroll-proportion="0.0" vertical-offset="586" max-vertical-offset="1005">
<caret line="53" column="24" selection-start-line="53" selection-start-column="24" selection-end-line="53" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="screen_manager.py" pinned="false" current="false" current-in-tab="false">
<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="1471" max-vertical-offset="3615">
<caret line="118" column="22" selection-start-line="118" selection-start-column="22" selection-end-line="118" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="screen_manager.py" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/screen_manager.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1411" max-vertical-offset="2010">
<caret line="111" column="47" selection-start-line="111" selection-start-column="47" selection-end-line="111" selection-end-column="47" />
<state vertical-scroll-proportion="0.4988067" vertical-offset="841" max-vertical-offset="2565">
<caret line="78" column="30" selection-start-line="78" selection-start-column="30" selection-end-line="78" selection-end-column="30" />
<folding />
</state>
</provider>
@@ -63,16 +73,6 @@
</provider>
</entry>
</file>
<file leaf-file-name="ext.conf" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/ext.conf">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="394">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="6" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindManager">
@@ -89,11 +89,11 @@
<option value="$PROJECT_DIR$/tracklist.py" />
<option value="$PROJECT_DIR$/dynamic_background.py" />
<option value="$PROJECT_DIR$/list_view.py" />
<option value="$PROJECT_DIR$/screen_objects.py" />
<option value="$PROJECT_DIR$/main_screen.py" />
<option value="$PROJECT_DIR$/__init__.py" />
<option value="$PROJECT_DIR$/touch_screen.py" />
<option value="$PROJECT_DIR$/ext.conf" />
<option value="$PROJECT_DIR$/screen_objects.py" />
<option value="$PROJECT_DIR$/touch_screen.py" />
<option value="$PROJECT_DIR$/screen_manager.py" />
</list>
</option>
@@ -676,13 +676,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.78520286" vertical-offset="2956" max-vertical-offset="3405">
<caret line="221" column="37" selection-start-line="221" selection-start-column="37" selection-end-line="221" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/list_view.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="525" max-vertical-offset="1215">
@@ -704,10 +697,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/touch_screen.py">
<entry file="file://$PROJECT_DIR$/ext.conf">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="676" max-vertical-offset="1095">
<caret line="61" column="33" selection-start-line="61" selection-start-column="33" selection-end-line="61" selection-end-column="33" />
<state vertical-scroll-proportion="0.2284264" vertical-offset="0" max-vertical-offset="394">
<caret line="6" column="45" selection-start-line="6" selection-start-column="45" selection-end-line="6" selection-end-column="45" />
<folding />
</state>
</provider>
@@ -720,6 +713,14 @@
</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="1471" max-vertical-offset="3615">
<caret line="118" column="22" selection-start-line="118" selection-start-column="22" selection-end-line="118" selection-end-column="22" />
<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="90" max-vertical-offset="1005">
@@ -728,18 +729,18 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/screen_manager.py">
<entry file="file://$PROJECT_DIR$/touch_screen.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1411" max-vertical-offset="2010">
<caret line="111" column="47" selection-start-line="111" selection-start-column="47" selection-end-line="111" selection-end-column="47" />
<state vertical-scroll-proportion="0.0" vertical-offset="691" max-vertical-offset="1185">
<caret line="77" column="49" selection-start-line="77" selection-start-column="49" selection-end-line="77" selection-end-column="49" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ext.conf">
<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="394">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="6" selection-end-column="45" />
<state vertical-scroll-proportion="0.4988067" vertical-offset="841" max-vertical-offset="2565">
<caret line="78" column="30" selection-start-line="78" selection-start-column="30" selection-end-line="78" selection-end-column="30" />
<folding />
</state>
</provider>

View File

@@ -36,12 +36,12 @@ class ScreenManager():
self.top_bar.fill((0, 0, 0, 128))
#Play/pause
button = TouchAndTextItem(self.fonts['dejavusans']," ll",(0, 0), None)
button = TouchAndTextItem(self.fonts['dejavusans']," ll", (0, 0), None)
self.screen_objects_manager.set_touch_object("pause_play", button)
x = button.get_right_pos()
#Random
button = TouchAndTextItem(self.fonts['dejavuserif'],u"\u2928",(x,0),None)
button = TouchAndTextItem(self.fonts['dejavuserif'],u"\u2928", (x, 0), None)
self.screen_objects_manager.set_touch_object("random",button)
x = button.get_right_pos()
@@ -76,6 +76,8 @@ class ScreenManager():
self.down_bar = pygame.Surface((self.size[0], self.base_size),pygame.SRCALPHA)
self.down_bar.fill((0, 0, 0, 128))
self.options_changed()
def update(self):
surface = pygame.Surface(self.size)
self.background.draw_background(surface)
@@ -110,11 +112,13 @@ class ScreenManager():
elif key == "mute":
mute = not self.core.playback.mute.get()
self.core.playback.set_mute(mute)
#self.backend.tell({'action':'mute','value':mute})
self.mute_changed(mute)
elif key == "random":
logger.error(self.core.tracklist.random)
self.core.tracklist.random = not self.core.tracklist.random
#self.backend.tell({'action':'random','value':random})
random = not self.core.tracklist.random.get()
self.core.tracklist.set_random(random)
self.options_changed()
elif key == "repeat":
self.change_repeat_single()
elif key == "menu_main":
self.current_screen = 0
elif key == "menu_tracklist":
@@ -126,12 +130,44 @@ class ScreenManager():
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)
self.screen_objects_manager.get_touch_object("pause_play").set_text(" ll", True)
else:
self.screen_objects_manager.get_touch_object("pause_play").set_text(u" \u25B8",True)
def mute_changed(self, mute):
self.touch_text_manager.get_touch_object("mute").set_active(mute)
self.screen_objects_manager.get_touch_object("mute").set_active(mute)
def tracklist_changed(self):
self.screens[1].tracklist_changed()
self.screens[1].tracklist_changed()
def options_changed(self):
self.screen_objects_manager.get_touch_object("random").set_active(self.core.tracklist.random.get())
repeat = self.core.tracklist.repeat.get()
single = self.core.tracklist.single.get()
repeat_button = self.screen_objects_manager.get_touch_object("repeat")
repeat_button.set_active(repeat)
if single:
repeat_button.set_text(u"\u27F21", True)
else:
repeat_button.set_text(u"\u27F2", True)
def change_repeat_single(self):
repeat = self.core.tracklist.repeat.get()
single = self.core.tracklist.single.get()
if single:
if repeat:
repeat = False
single = False
else:
repeat = True
single = False
else:
if repeat:
repeat = True
single = True
else:
repeat = False
single = True
self.core.tracklist.set_repeat(repeat)
self.core.tracklist.set_single(single)
self.options_changed()

View File

@@ -110,13 +110,13 @@ class TextItem(BaseItem):
def render(self, surface):
if self.fit_horizontal:
self.box
pass
else:
self.box = self.font.render(self.text, True, self.color)
surface.blit(self.box, self.pos, area=self.rect)
def set_text(self, text, same_size):
if same_size:
def set_text(self, text, change_size):
if change_size:
TextItem.__init__(self, self.font, text, self.pos, None)
else:
TextItem.__init__(self, self.font, text, self.pos, self.size)
@@ -140,10 +140,24 @@ class TouchAndTextItem(TouchObject, TextItem):
def __init__(self, font, text, pos, size):
TextItem.__init__(self, font, text, pos, size)
TouchObject.__init__(self, pos, self.size)
self.active_color = (255, 0, 255)
self.active_box = self.font.render(text, True, self.active_color)
def update(self):
TextItem.update(self)
def render(self, surface):
if self.fit_horizontal:
pass
else:
if self.active:
self.active_box = self.font.render(self.text, True, self.active_color)
else:
self.box = self.font.render(self.text, True, self.color)
if self.active:
surface.blit(self.active_box, self.pos, area=self.rect)
else:
surface.blit(self.box, self.pos, area=self.rect)
class Progressbar(TouchObject):

View File

@@ -72,3 +72,9 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
self.screen_manager.tracklist_changed()
except:
traceback.print_exc()
def options_changed(self):
try:
self.screen_manager.options_changed()
except:
traceback.print_exc()