by=>#2rsFj4X=LZqv$eg2!rt0!dY*1%%G1Tv{8;nQ(Q^6dq2}0psyJQFWaf75
zvh7{F<}$yI=y6Sp>ybg-jT%;>rW>(HBxdNfgk?mh>{4!IBv-QM(_^Et*yvb#{-=5-
zHx}MM#1+V^BhZ!<>vee5SBZ$3+oa-z*MxX%Qf{f{DFQ
zFPbGPT1D#iS7T-(8cmon+SBhQ>~t)awiDEL`dxDRJ?ivZ+{r}Lj+wbczs*D#*m3yu
z3y0Q-Jy=vEL|WL8=#FZ|x>+(u>sF~Tx(<;8kJZ24ZabdW_TO~8+W&2pTKx_=4hst*
zq4FO0b;$Wz%!n#%ENE!{3r(qE^6r+QmN^4aR#+OSX|<2ZhI*|-DF|xydxM91tXaRc
zPS|0n?@_zo?qNcX({lnZghizec3d1MzbF^w8N2A#?K-b@-*f0@3h&j_P4cj4p67TN
zhCcs=aWXuXn8CnN*~BP|I<0=I<#{)}oA5|$B3Nh76VTg(-d)&E6(zA#91;(S^U%Ab
zS;a<0EAa`PBN%a<05_$33A=loBE?40ayQzW>9mjSrB=5E2jn=CEX%Vfk`F!25T=Hu
zXmgL>9-?XAwTF7JuGg`c0gtpA1E|q$w@JwT8Rw|Ns>f+({p>5#s}VL$3m@Y9wq1ScIp9!
zpprC~aqN+SAB<(j%%fdc8ur#V@-VOHN2(L1q7%uX+;@kBz+OczpTB{?F;CTGg&g-BeF$}vR`x<@p0
zC(i}l(-pI>#?bwaRUR|Vv9dL&e_~dqCu66;L`v?M&TvFh)3&YvrRniVx;#A@N3TN3
zLfC8Cn8GPJs>f7!m=kjh^mf9t+JxqUEY=W_h86a$QVD_$+XlDz2l6xy
zi}Cb`s*a@N@xu6IDm6J?hz~H4k&%Q}+CP^YgqPgh{t}K4edm76Sy#7@*ubc|uF3bu
ztNRX>2O*_=XkRscB*+p)+Zh5V+
z@S1G!RfH}KoaKGuVfGz3#@704ThOt#Mxkv8Uu@uJFb#Ici5xrUPghgd^MXIMwvOw5
zBEr`TwjNq96W+Os3*)0V
znRkv%pnSOl8pq)^m4$;?)AM5u+sa=}UQGTuh)3Rf0SEm2F$4d>Rv5*pl;KM4y4$G8
zJT-rQlDN^k!T%FHi4|H2n*A2SRJRKsL~DOSjC)rgtDV^=@2$9aAx&CZtkG_&NmCl9
z8^CE5yx^kBQwAl;kTN!BUBKDgi>2r}5*#27;C@gSG7?JaA*GZV>N^Zksx?5Y1I#PjgNu;2Db)Fa
z5o>-gu?Pf57QxOY5JVrWGH;*N>VWYbP~?1E@5TVuy@fs5f$oU*qX}yHN3(-n!|}jF
zU)PWS$jdkn;^K8Wy$(k7{Rj#=Z25IM>}j*;acE@%?pqOiz~csc6tY~iVpYiLbXMs`
zr_=8M2I3`3G}oLx&c0g{D4#%(U%=oWa+hX9qM;jA?wHm?<$)zzw{7*;q;8
z`1?s_jo7#7R1}iv3&O82T38^sZv}LknEtW&_PfJ1>m7|*6qzOVIZBThPdpDPU<{wL0QRGy?)OE9vVpxgBqDp4MipQ;q
zjDM0(0;R4TUZ(!TUw}PINh1Yt&9|ilk-ilnfC?zGcHxC*=)5^
zN+G}TsU+@`Q{|oIln-IfN_OA=eOX*giHjIjLHi9q>&;6W&k9`qA@9FkqrfKZ#^R8(gpV^YthKnN9g!<
z@Bg+k!975u64s_9;IVj*HvARYv@)C$B4rA8mMv$4omGM6qu5yyU)_{JDPvu61-rq@
zp^uJ6qM8hKaFLX+AE!sIUg8f3|D_3Wv|vNg!#q>)R=mN(X~+lZ7h5IJ8%Q8^wZE+D
z$T+XkTXYq}aY%U|1U#H=Tu9rExOfmj)3x16(zbKWQPpkCQKLa~4Yx|}9mMqiI@Iri
zejpdZsVfSi47r>>4?fTY2Nc;hl`Kw8>WKUGKi~+${)&VmOMH&7Wq_GQ9)~}5B}G&E
zr}2{bd|{LG0a_E>*$VU=$eXyEJR6?tE^=o5Yu}xPbUmMc7~`S>NjCCEw}LdMj*FgV
zH;RptM_wCI0-mssWE5VMkT9|9o`m63Fj!`ox|4Z4NYb@=$0%uyhZU%
zg?NEC4|F4=A;(4yP*SQBn_Jg39(kWTx>3FuU@SS3T|
z8x^c;`EFgtWus*ACm;V7f|`ZhT`c9|
zS|XJhF^c86t<5%8Tij_FAzj6_WrTAz(u|~`;o72g&550MqL9zU(4~5tTF|B4^R|!S
zeavSN&yU{x`gfm5-uI!1^MMlLHy_RUpZP_
zgKw4_4~yZUerfZUT#mRyxB&J-oW7->X$SPQWn2qwFDxslhudwmJ19bOw#gDce)}AN
z!4t!`-wAPA+@@#ghxB`?AT3EJq(90v`4uIqEGix4mhz8CA@WM(&B%M|PIXCrNd3I}
zwE7kGo9e6T&(+_lx3yQJ`=c*KSEKLi)B0oj6}_w9ieVr5D^(LOa;|}gr?K@h#E--E
zB-|nfR+0ce7~*BX(;=(?J{iIhe48{vScP|82;mqa!5JY7L}Or>X8;F0132IrzyZ$y
z4tNHzim~^EV*{Q~f$wE;3FWeQ26@pr@vL}GJmt3>u@~R2_n 80:
+ self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue61f", False)
+ elif volume > 50:
+ self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue620", False)
+ elif volume > 20:
+ self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue621", False)
+ else:
+ logger.error("sartu naiz")
+ self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue622", False)
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", True)
+ self.screen_objects_manager.get_touch_object("pause_play").set_text(u"\ue616", False)
else:
- self.screen_objects_manager.get_touch_object("pause_play").set_text(u" \u25B8", True)
+ self.screen_objects_manager.get_touch_object("pause_play").set_text(u"\ue615", False)
def mute_changed(self, mute):
- self.screen_objects_manager.get_touch_object("mute").set_active(mute)
+ self.screen_objects_manager.get_touch_object("mute").set_active(not mute)
+ if mute:
+ self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue623", False)
+ else:
+ self.volume_changed(self.core.playback.volume.get())
def tracklist_changed(self):
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()
+ self.screen_objects_manager.get_touch_object("repeat").set_active(self.core.tracklist.repeat.get())
+ self.screen_objects_manager.get_touch_object("single").set_active(self.core.tracklist.single.get())
def change_screen(self, new_screen):
self.screen_objects_manager.get_touch_object("menu_"+str(self.current_screen)).set_active(False)
diff --git a/mopidy_touchscreen/screen_objects.py b/mopidy_touchscreen/screen_objects.py
index b91c47b..bd8364e 100644
--- a/mopidy_touchscreen/screen_objects.py
+++ b/mopidy_touchscreen/screen_objects.py
@@ -149,6 +149,10 @@ class TouchAndTextItem(TouchObject, TextItem):
def update(self):
TextItem.update(self)
+ def set_text(self, text, change_size):
+ TextItem.set_text(self, text, change_size)
+ self.active_box = self.font.render(text, True, self.active_color)
+
def render(self, surface):
if self.fit_horizontal:
pass
diff --git a/mopidy_touchscreen/touch_manager.py b/mopidy_touchscreen/touch_manager.py
index c531e8a..1778e5b 100644
--- a/mopidy_touchscreen/touch_manager.py
+++ b/mopidy_touchscreen/touch_manager.py
@@ -14,12 +14,13 @@ class TouchManager():
left = 2
right = 3
- def __init__(self,size):
+ def __init__(self, size):
self.down_pos = (0, 0)
self.up_pos = (0, 0)
self.screen_size = size
self.max_move_margin = self.screen_size[1] / 6
self.min_swipe_move = self.screen_size[1] / 3
+ self.down_button = -1
def event(self, event):
if event.type == pygame.MOUSEBUTTONUP:
@@ -31,14 +32,17 @@ class TouchManager():
touch_event = TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, True)
touch_event.direction = TouchManager.down
return touch_event
- else:
+ elif event.button == 1 and self.down_button == 1:
return self.mouse_up(event)
+ else:
+ return None
elif event.type == pygame.MOUSEBUTTONDOWN:
self.mouse_down(event)
return None
def mouse_down(self, event):
self.down_pos = event.pos
+ self.down_button = event.button
def mouse_up(self, event):
self.up_pos = event.pos
diff --git a/mopidy_touchscreen/tracklist.py b/mopidy_touchscreen/tracklist.py
index d7e7ba4..a5eae91 100644
--- a/mopidy_touchscreen/tracklist.py
+++ b/mopidy_touchscreen/tracklist.py
@@ -7,8 +7,9 @@ class Tracklist():
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 = ListView((0, self.base_size),(self.size[0],self.size[1]-2*self.base_size), self.base_size, manager.fonts)
self.tracks = []
+ self.tracks_strings = []
self.update_list()
def update(self, screen):
@@ -25,7 +26,9 @@ class Tracklist():
self.list_view.set_list(self.tracks_strings)
def touch_event(self, touch_event):
- self.list_view.touch_event(touch_event)
+ pos = self.list_view.touch_event(touch_event)
+ if pos is not None:
+ self.manager.core.playback.change_track(self.tracks[pos], on_error_step=1)
def track_started(self, track):
self.list_view.set_selected([self.manager.core.tracklist.index(track).get()])
\ No newline at end of file