mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 22:25:39 +00:00
Code cleanup
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -7,4 +7,4 @@
|
|||||||
MANIFEST
|
MANIFEST
|
||||||
build/
|
build/
|
||||||
dist/
|
dist/
|
||||||
mopidy_touchscreen/.idea/
|
.idea/
|
||||||
|
|||||||
@@ -36,5 +36,5 @@ class Extension(ext.Extension):
|
|||||||
def setup(self, registry):
|
def setup(self, registry):
|
||||||
registry.add('frontend', TouchScreen)
|
registry.add('frontend', TouchScreen)
|
||||||
|
|
||||||
#Backend used for controling volume
|
# Backend used for controling volume
|
||||||
registry.add('backend', TouchScreenBackend)
|
registry.add('backend', TouchScreenBackend)
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ class DynamicBackground():
|
|||||||
|
|
||||||
|
|
||||||
# Returns an array with 3 integers in range of 0-255
|
# Returns an array with 3 integers in range of 0-255
|
||||||
#The sum of the three integers will be lower than 255*2 (510) to avoid very bright colors
|
# The sum of the three integers will be lower than 255*2 (510) to avoid very bright colors
|
||||||
#White text should be seen ok with this background color
|
# White text should be seen ok with this background color
|
||||||
|
|
||||||
|
|
||||||
def get_valid_color():
|
def get_valid_color():
|
||||||
|
|||||||
@@ -23,7 +23,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e600" class="unit size1of2"/>
|
<input type="text" readonly value="e600" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -32,11 +33,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="glyph fs1">
|
<div class="glyph fs1">
|
||||||
<div class="clearfix bshadow0 pbs">
|
<div class="clearfix bshadow0 pbs">
|
||||||
<span class="icon-headphones"></span><span class="mls"> icon-headphones</span>
|
<span class="icon-headphones"></span><span
|
||||||
|
class="mls"> icon-headphones</span>
|
||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e601" class="unit size1of2"/>
|
<input type="text" readonly value="e601" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -45,11 +48,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="glyph fs1">
|
<div class="glyph fs1">
|
||||||
<div class="clearfix bshadow0 pbs">
|
<div class="clearfix bshadow0 pbs">
|
||||||
<span class="icon-connection"></span><span class="mls"> icon-connection</span>
|
<span class="icon-connection"></span><span
|
||||||
|
class="mls"> icon-connection</span>
|
||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e602" class="unit size1of2"/>
|
<input type="text" readonly value="e602" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -62,7 +67,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e603" class="unit size1of2"/>
|
<input type="text" readonly value="e603" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -75,7 +81,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e604" class="unit size1of2"/>
|
<input type="text" readonly value="e604" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -88,7 +95,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e605" class="unit size1of2"/>
|
<input type="text" readonly value="e605" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -101,7 +109,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e606" class="unit size1of2"/>
|
<input type="text" readonly value="e606" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -114,7 +123,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e607" class="unit size1of2"/>
|
<input type="text" readonly value="e607" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -127,7 +137,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e608" class="unit size1of2"/>
|
<input type="text" readonly value="e608" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -140,7 +151,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e609" class="unit size1of2"/>
|
<input type="text" readonly value="e609" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -153,7 +165,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e60a" class="unit size1of2"/>
|
<input type="text" readonly value="e60a" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -166,7 +179,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e60b" class="unit size1of2"/>
|
<input type="text" readonly value="e60b" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -179,7 +193,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e60c" class="unit size1of2"/>
|
<input type="text" readonly value="e60c" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -192,7 +207,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e60d" class="unit size1of2"/>
|
<input type="text" readonly value="e60d" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -205,7 +221,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e60e" class="unit size1of2"/>
|
<input type="text" readonly value="e60e" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -218,7 +235,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e60f" class="unit size1of2"/>
|
<input type="text" readonly value="e60f" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -231,7 +249,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e610" class="unit size1of2"/>
|
<input type="text" readonly value="e610" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -244,7 +263,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e611" class="unit size1of2"/>
|
<input type="text" readonly value="e611" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -253,11 +273,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="glyph fs1">
|
<div class="glyph fs1">
|
||||||
<div class="clearfix bshadow0 pbs">
|
<div class="clearfix bshadow0 pbs">
|
||||||
<span class="icon-checkmark"></span><span class="mls"> icon-checkmark</span>
|
<span class="icon-checkmark"></span><span
|
||||||
|
class="mls"> icon-checkmark</span>
|
||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e612" class="unit size1of2"/>
|
<input type="text" readonly value="e612" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -270,7 +292,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e613" class="unit size1of2"/>
|
<input type="text" readonly value="e613" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -283,7 +306,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e614" class="unit size1of2"/>
|
<input type="text" readonly value="e614" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -296,7 +320,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e615" class="unit size1of2"/>
|
<input type="text" readonly value="e615" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -309,7 +334,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e616" class="unit size1of2"/>
|
<input type="text" readonly value="e616" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -322,7 +348,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e617" class="unit size1of2"/>
|
<input type="text" readonly value="e617" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -331,11 +358,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="glyph fs1">
|
<div class="glyph fs1">
|
||||||
<div class="clearfix bshadow0 pbs">
|
<div class="clearfix bshadow0 pbs">
|
||||||
<span class="icon-backward"></span><span class="mls"> icon-backward</span>
|
<span class="icon-backward"></span><span
|
||||||
|
class="mls"> icon-backward</span>
|
||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e618" class="unit size1of2"/>
|
<input type="text" readonly value="e618" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -348,7 +377,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e619" class="unit size1of2"/>
|
<input type="text" readonly value="e619" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -361,7 +391,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e61a" class="unit size1of2"/>
|
<input type="text" readonly value="e61a" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -374,7 +405,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e61b" class="unit size1of2"/>
|
<input type="text" readonly value="e61b" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -383,11 +415,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="glyph fs1">
|
<div class="glyph fs1">
|
||||||
<div class="clearfix bshadow0 pbs">
|
<div class="clearfix bshadow0 pbs">
|
||||||
<span class="icon-previous"></span><span class="mls"> icon-previous</span>
|
<span class="icon-previous"></span><span
|
||||||
|
class="mls"> icon-previous</span>
|
||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e61c" class="unit size1of2"/>
|
<input type="text" readonly value="e61c" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -400,7 +434,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e61d" class="unit size1of2"/>
|
<input type="text" readonly value="e61d" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -413,7 +448,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e61e" class="unit size1of2"/>
|
<input type="text" readonly value="e61e" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -426,7 +462,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e61f" class="unit size1of2"/>
|
<input type="text" readonly value="e61f" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -439,7 +476,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e620" class="unit size1of2"/>
|
<input type="text" readonly value="e620" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -448,11 +486,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="glyph fs1">
|
<div class="glyph fs1">
|
||||||
<div class="clearfix bshadow0 pbs">
|
<div class="clearfix bshadow0 pbs">
|
||||||
<span class="icon-volume-low"></span><span class="mls"> icon-volume-low</span>
|
<span class="icon-volume-low"></span><span
|
||||||
|
class="mls"> icon-volume-low</span>
|
||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e621" class="unit size1of2"/>
|
<input type="text" readonly value="e621" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -465,7 +505,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e622" class="unit size1of2"/>
|
<input type="text" readonly value="e622" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -478,7 +519,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e623" class="unit size1of2"/>
|
<input type="text" readonly value="e623" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -491,7 +533,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e624" class="unit size1of2"/>
|
<input type="text" readonly value="e624" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -504,7 +547,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e625" class="unit size1of2"/>
|
<input type="text" readonly value="e625" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -517,7 +561,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e626" class="unit size1of2"/>
|
<input type="text" readonly value="e626" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -530,7 +575,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e627" class="unit size1of2"/>
|
<input type="text" readonly value="e627" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -543,7 +589,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e628" class="unit size1of2"/>
|
<input type="text" readonly value="e628" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
@@ -556,7 +603,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
<input type="text" readonly value="e629" class="unit size1of2"/>
|
<input type="text" readonly value="e629" class="unit size1of2"/>
|
||||||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right"/>
|
<input type="text" maxlength="1" readonly value=""
|
||||||
|
class="unitRight size1of2 talign-right"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="fs0 bshadow0 clearfix hidden-true">
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
<span class="unit pvs fgc1">liga: </span>
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ class LibraryScreen():
|
|||||||
self.size = size
|
self.size = size
|
||||||
self.base_size = base_size
|
self.base_size = base_size
|
||||||
self.manager = manager
|
self.manager = manager
|
||||||
self.list_view = ListView((0, self.base_size), (self.size[0], self.size[1] - 2 * self.base_size),
|
self.list_view = ListView((0, self.base_size), (
|
||||||
|
self.size[0], self.size[1] - 2 * self.base_size),
|
||||||
self.base_size, manager.fonts['base'])
|
self.base_size, manager.fonts['base'])
|
||||||
self.directory_list = []
|
self.directory_list = []
|
||||||
self.current_directory = None
|
self.current_directory = None
|
||||||
@@ -61,10 +62,12 @@ class LibraryScreen():
|
|||||||
if clicked == 0:
|
if clicked == 0:
|
||||||
self.go_up_directory()
|
self.go_up_directory()
|
||||||
else:
|
else:
|
||||||
if self.library[clicked - 1].type == mopidy.models.Ref.TRACK:
|
if self.library[
|
||||||
|
clicked - 1].type == mopidy.models.Ref.TRACK:
|
||||||
self.play_uri(self.library[clicked - 1].uri, True)
|
self.play_uri(self.library[clicked - 1].uri, True)
|
||||||
else:
|
else:
|
||||||
self.go_inside_directory(self.library[clicked - 1].uri)
|
self.go_inside_directory(
|
||||||
|
self.library[clicked - 1].uri)
|
||||||
else:
|
else:
|
||||||
if self.library[clicked].type == mopidy.models.Track:
|
if self.library[clicked].type == mopidy.models.Track:
|
||||||
self.play_uri(self.library[clicked].uri, True)
|
self.play_uri(self.library[clicked].uri, True)
|
||||||
@@ -77,6 +80,6 @@ class LibraryScreen():
|
|||||||
self.manager.core.tracklist.add(uri=uri)
|
self.manager.core.tracklist.add(uri=uri)
|
||||||
self.manager.core.playback.play()
|
self.manager.core.playback.play()
|
||||||
else:
|
else:
|
||||||
#TODO: add folder to tracks to play
|
# TODO: add folder to tracks to play
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -19,20 +19,21 @@ class ListView():
|
|||||||
self.set_list([])
|
self.set_list([])
|
||||||
self.selected = []
|
self.selected = []
|
||||||
|
|
||||||
#Sets the list for the lisview. It should be an iterable of strings
|
# Sets the list for the lisview. It should be an iterable of strings
|
||||||
def set_list(self, item_list):
|
def set_list(self, item_list):
|
||||||
self.list = item_list
|
self.list = item_list
|
||||||
self.list_size = len(item_list)
|
self.list_size = len(item_list)
|
||||||
if self.max_rows < self.list_size:
|
if self.max_rows < self.list_size:
|
||||||
self.scrollbar = True
|
self.scrollbar = True
|
||||||
scroll_bar = ScrollBar((self.pos[0] + self.size[0] - self.base_size, self.pos[1]),
|
scroll_bar = ScrollBar(
|
||||||
|
(self.pos[0] + self.size[0] - self.base_size, self.pos[1]),
|
||||||
(self.base_size, self.size[1]), self.list_size, self.max_rows)
|
(self.base_size, self.size[1]), self.list_size, self.max_rows)
|
||||||
self.screen_objects.set_touch_object("scrollbar", scroll_bar)
|
self.screen_objects.set_touch_object("scrollbar", scroll_bar)
|
||||||
else:
|
else:
|
||||||
self.scrollbar = False
|
self.scrollbar = False
|
||||||
self.load_new_item_position(0)
|
self.load_new_item_position(0)
|
||||||
|
|
||||||
#Will load items currently displaying in item_pos
|
# Will load items currently displaying in item_pos
|
||||||
def load_new_item_position(self, item_pos):
|
def load_new_item_position(self, item_pos):
|
||||||
self.current_item = item_pos
|
self.current_item = item_pos
|
||||||
if self.scrollbar:
|
if self.scrollbar:
|
||||||
@@ -46,7 +47,8 @@ class ListView():
|
|||||||
else:
|
else:
|
||||||
width = self.size[0]
|
width = self.size[0]
|
||||||
while i < self.list_size and z < self.max_rows:
|
while i < self.list_size and z < self.max_rows:
|
||||||
item = TouchAndTextItem(self.font, self.list[i], (self.pos[0], self.pos[1] + self.base_size * z),
|
item = TouchAndTextItem(self.font, self.list[i], (
|
||||||
|
self.pos[0], self.pos[1] + self.base_size * z),
|
||||||
(width, -1))
|
(width, -1))
|
||||||
self.screen_objects.set_touch_object(str(i), item)
|
self.screen_objects.set_touch_object(str(i), item)
|
||||||
i += 1
|
i += 1
|
||||||
@@ -57,11 +59,13 @@ class ListView():
|
|||||||
|
|
||||||
def touch_event(self, touch_event):
|
def touch_event(self, touch_event):
|
||||||
if touch_event.type == TouchManager.click or touch_event.type == TouchManager.long_click:
|
if touch_event.type == TouchManager.click or touch_event.type == TouchManager.long_click:
|
||||||
objects = self.screen_objects.get_touch_objects_in_pos(touch_event.current_pos)
|
objects = self.screen_objects.get_touch_objects_in_pos(
|
||||||
|
touch_event.current_pos)
|
||||||
if objects is not None:
|
if objects is not None:
|
||||||
for key in objects:
|
for key in objects:
|
||||||
if key == "scrollbar":
|
if key == "scrollbar":
|
||||||
direction = self.screen_objects.get_touch_object(key).touch(touch_event.current_pos)
|
direction = self.screen_objects.get_touch_object(
|
||||||
|
key).touch(touch_event.current_pos)
|
||||||
if direction != 0:
|
if direction != 0:
|
||||||
self.move_to(direction)
|
self.move_to(direction)
|
||||||
else:
|
else:
|
||||||
@@ -82,25 +86,29 @@ class ListView():
|
|||||||
if self.current_item + self.max_rows > self.list_size:
|
if self.current_item + self.max_rows > self.list_size:
|
||||||
self.current_item = self.list_size - self.max_rows
|
self.current_item = self.list_size - self.max_rows
|
||||||
self.load_new_item_position(self.current_item)
|
self.load_new_item_position(self.current_item)
|
||||||
self.screen_objects.get_touch_object("scrollbar").set_item(self.current_item)
|
self.screen_objects.get_touch_object("scrollbar").set_item(
|
||||||
|
self.current_item)
|
||||||
elif direction == -1:
|
elif direction == -1:
|
||||||
self.current_item -= self.max_rows
|
self.current_item -= self.max_rows
|
||||||
if self.current_item < 0:
|
if self.current_item < 0:
|
||||||
self.current_item = 0
|
self.current_item = 0
|
||||||
self.load_new_item_position(self.current_item)
|
self.load_new_item_position(self.current_item)
|
||||||
self.screen_objects.get_touch_object("scrollbar").set_item(self.current_item)
|
self.screen_objects.get_touch_object("scrollbar").set_item(
|
||||||
|
self.current_item)
|
||||||
self.set_selected(self.selected)
|
self.set_selected(self.selected)
|
||||||
|
|
||||||
#Set selected items
|
#Set selected items
|
||||||
def set_selected(self, selected):
|
def set_selected(self, selected):
|
||||||
for number in self.selected:
|
for number in self.selected:
|
||||||
try:
|
try:
|
||||||
self.screen_objects.get_touch_object(str(number)).set_active(False)
|
self.screen_objects.get_touch_object(str(number)).set_active(
|
||||||
|
False)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
for number in selected:
|
for number in selected:
|
||||||
try:
|
try:
|
||||||
self.screen_objects.get_touch_object(str(number)).set_active(True)
|
self.screen_objects.get_touch_object(str(number)).set_active(
|
||||||
|
True)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
self.selected = selected
|
self.selected = selected
|
||||||
@@ -34,11 +34,14 @@ class MainScreen():
|
|||||||
def update(self, screen):
|
def update(self, screen):
|
||||||
if self.track is not None:
|
if self.track is not None:
|
||||||
if self.image is not None:
|
if self.image is not None:
|
||||||
screen.blit(self.image, (self.base_size / 2, 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.touch_text_manager.get_touch_object("time_progress").set_value(
|
||||||
self.core.playback.time_position.get() / 1000)
|
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.touch_text_manager.get_touch_object("time_progress").set_text(
|
||||||
self.core.playback.time_position.get() / 1000)) + "/" + time.strftime('%M:%S', time.gmtime(
|
time.strftime('%M:%S', time.gmtime(
|
||||||
|
self.core.playback.time_position.get() / 1000)) + "/" + time.strftime(
|
||||||
|
'%M:%S', time.gmtime(
|
||||||
self.track.length / 1000)))
|
self.track.length / 1000)))
|
||||||
self.touch_text_manager.render(screen)
|
self.touch_text_manager.render(screen)
|
||||||
return screen
|
return screen
|
||||||
@@ -54,32 +57,42 @@ class MainScreen():
|
|||||||
self.artists.append(artist)
|
self.artists.append(artist)
|
||||||
|
|
||||||
# Track name
|
# Track name
|
||||||
label = TextItem(self.fonts['base'], MainScreen.get_track_name(track), (x, self.base_size * 2),
|
label = TextItem(self.fonts['base'], MainScreen.get_track_name(track),
|
||||||
|
(x, self.base_size * 2),
|
||||||
(width, self.size[1]))
|
(width, self.size[1]))
|
||||||
self.touch_text_manager.set_object("track_name", label)
|
self.touch_text_manager.set_object("track_name", label)
|
||||||
|
|
||||||
#Album name
|
# Album name
|
||||||
label = TextItem(self.fonts['base'], MainScreen.get_track_album_name(track), (x, self.base_size * 3),
|
label = TextItem(self.fonts['base'],
|
||||||
|
MainScreen.get_track_album_name(track),
|
||||||
|
(x, self.base_size * 3),
|
||||||
(width, self.size[1]))
|
(width, self.size[1]))
|
||||||
self.touch_text_manager.set_object("album_name", label)
|
self.touch_text_manager.set_object("album_name", label)
|
||||||
|
|
||||||
#Artist
|
# Artist
|
||||||
label = TextItem(self.fonts['base'], self.get_artist_string(), (x, self.base_size * 4), (width, self.size[1]))
|
label = TextItem(self.fonts['base'], self.get_artist_string(),
|
||||||
|
(x, self.base_size * 4), (width, self.size[1]))
|
||||||
self.touch_text_manager.set_object("artist_name", label)
|
self.touch_text_manager.set_object("artist_name", label)
|
||||||
|
|
||||||
#Previous track button
|
#Previous track button
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u"\ue61c", (0, self.base_size * 6), None)
|
button = TouchAndTextItem(self.fonts['icon'], u"\ue61c",
|
||||||
|
(0, self.base_size * 6), None)
|
||||||
self.touch_text_manager.set_touch_object("previous", button)
|
self.touch_text_manager.set_touch_object("previous", button)
|
||||||
size_1 = button.get_right_pos()
|
size_1 = button.get_right_pos()
|
||||||
|
|
||||||
size_2 = self.fonts['icon'].size(u"\ue61d")[0]
|
size_2 = self.fonts['icon'].size(u"\ue61d")[0]
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u"\ue61d", (self.size[0] - size_2, self.base_size * 6), None)
|
button = TouchAndTextItem(self.fonts['icon'], u"\ue61d",
|
||||||
|
(self.size[0] - size_2, self.base_size * 6),
|
||||||
|
None)
|
||||||
self.touch_text_manager.set_touch_object("next", button)
|
self.touch_text_manager.set_touch_object("next", button)
|
||||||
|
|
||||||
#Progress
|
#Progress
|
||||||
progress = Progressbar(self.fonts['base'],
|
progress = Progressbar(self.fonts['base'],
|
||||||
time.strftime('%M:%S', time.gmtime(0)) + "/" + time.strftime('%M:%S', time.gmtime(0)),
|
time.strftime('%M:%S', time.gmtime(
|
||||||
(size_1, self.base_size * 6), (self.size[0] - size_1 - size_2, self.base_size),
|
0)) + "/" + time.strftime('%M:%S',
|
||||||
|
time.gmtime(0)),
|
||||||
|
(size_1, self.base_size * 6),
|
||||||
|
(self.size[0] - size_1 - size_2, self.base_size),
|
||||||
track.length / 1000, False)
|
track.length / 1000, False)
|
||||||
self.touch_text_manager.set_touch_object("time_progress", progress)
|
self.touch_text_manager.set_touch_object("time_progress", progress)
|
||||||
|
|
||||||
@@ -101,7 +114,8 @@ class MainScreen():
|
|||||||
return artists_string
|
return artists_string
|
||||||
|
|
||||||
def get_image_file_name(self):
|
def get_image_file_name(self):
|
||||||
name = MainScreen.get_track_album_name(self.track) + '-' + self.get_artist_string()
|
name = MainScreen.get_track_album_name(
|
||||||
|
self.track) + '-' + self.get_artist_string()
|
||||||
md5name = hashlib.md5(name.encode('utf-8')).hexdigest()
|
md5name = hashlib.md5(name.encode('utf-8')).hexdigest()
|
||||||
return md5name
|
return md5name
|
||||||
|
|
||||||
@@ -112,19 +126,22 @@ class MainScreen():
|
|||||||
|
|
||||||
def is_image_in_cache(self):
|
def is_image_in_cache(self):
|
||||||
self.get_cover_folder()
|
self.get_cover_folder()
|
||||||
return os.path.isfile(self.get_cover_folder() + self.get_image_file_name())
|
return os.path.isfile(
|
||||||
|
self.get_cover_folder() + self.get_image_file_name())
|
||||||
|
|
||||||
def download_image(self, artist_index):
|
def download_image(self, artist_index):
|
||||||
if artist_index < len(self.artists):
|
if artist_index < len(self.artists):
|
||||||
try:
|
try:
|
||||||
safe_artist = urllib.quote_plus(self.artists[artist_index].name)
|
safe_artist = urllib.quote_plus(self.artists[artist_index].name)
|
||||||
safe_album = urllib.quote_plus(MainScreen.get_track_album_name(self.track))
|
safe_album = urllib.quote_plus(
|
||||||
|
MainScreen.get_track_album_name(self.track))
|
||||||
url = "http://ws.audioscrobbler.com/2.0/?"
|
url = "http://ws.audioscrobbler.com/2.0/?"
|
||||||
params = "method=album.getinfo&api_key=59a04c6a73fb99d6e8996e01db306829&artist=" + safe_artist + "&album=" + safe_album + "&format=json"
|
params = "method=album.getinfo&api_key=59a04c6a73fb99d6e8996e01db306829&artist=" + safe_artist + "&album=" + safe_album + "&format=json"
|
||||||
response = urllib2.urlopen(url + params)
|
response = urllib2.urlopen(url + params)
|
||||||
data = json.load(response)
|
data = json.load(response)
|
||||||
image = data['album']['image'][-1]['#text']
|
image = data['album']['image'][-1]['#text']
|
||||||
urllib.urlretrieve(image, self.get_cover_folder() + self.get_image_file_name())
|
urllib.urlretrieve(image,
|
||||||
|
self.get_cover_folder() + self.get_image_file_name())
|
||||||
self.load_image()
|
self.load_image()
|
||||||
except:
|
except:
|
||||||
self.download_image(artist_index + 1)
|
self.download_image(artist_index + 1)
|
||||||
@@ -135,17 +152,20 @@ class MainScreen():
|
|||||||
# There is no cover so it will use all the screen size for the text
|
# There is no cover so it will use all the screen size for the text
|
||||||
width = self.size[0] - self.base_size
|
width = self.size[0] - self.base_size
|
||||||
|
|
||||||
current = TextItem(self.fonts['base'], MainScreen.get_track_name(self.track),
|
current = TextItem(self.fonts['base'],
|
||||||
|
MainScreen.get_track_name(self.track),
|
||||||
(self.base_size / 2, self.base_size * 2),
|
(self.base_size / 2, self.base_size * 2),
|
||||||
(width, -1))
|
(width, -1))
|
||||||
self.touch_text_manager.set_object("track_name", current)
|
self.touch_text_manager.set_object("track_name", current)
|
||||||
|
|
||||||
current = TextItem(self.fonts['base'], MainScreen.get_track_album_name(self.track),
|
current = TextItem(self.fonts['base'],
|
||||||
|
MainScreen.get_track_album_name(self.track),
|
||||||
(self.base_size / 2, self.base_size * 3),
|
(self.base_size / 2, self.base_size * 3),
|
||||||
(width, -1))
|
(width, -1))
|
||||||
self.touch_text_manager.set_object("album_name", current)
|
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),
|
current = TextItem(self.fonts['base'], self.get_artist_string(),
|
||||||
|
(self.base_size / 2, self.base_size * 4),
|
||||||
(width, -1))
|
(width, -1))
|
||||||
self.touch_text_manager.set_object("artist_name", current)
|
self.touch_text_manager.set_object("artist_name", current)
|
||||||
|
|
||||||
@@ -156,30 +176,37 @@ class MainScreen():
|
|||||||
# There is no cover so it will use all the screen size for the text
|
# There is no cover so it will use all the screen size for the text
|
||||||
width = self.size[0] - self.base_size
|
width = self.size[0] - self.base_size
|
||||||
|
|
||||||
current = TextItem(self.fonts['base'], "Stopped", (self.base_size / 2, self.base_size * 2),
|
current = TextItem(self.fonts['base'], "Stopped",
|
||||||
|
(self.base_size / 2, self.base_size * 2),
|
||||||
(width, -1))
|
(width, -1))
|
||||||
self.touch_text_manager.set_object("track_name", current)
|
self.touch_text_manager.set_object("track_name", current)
|
||||||
|
|
||||||
current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 3),
|
current = TextItem(self.fonts['base'], "",
|
||||||
|
(self.base_size / 2, self.base_size * 3),
|
||||||
(width, -1))
|
(width, -1))
|
||||||
self.touch_text_manager.set_object("album_name", current)
|
self.touch_text_manager.set_object("album_name", current)
|
||||||
|
|
||||||
current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 4),
|
current = TextItem(self.fonts['base'], "",
|
||||||
|
(self.base_size / 2, self.base_size * 4),
|
||||||
(width, -1))
|
(width, -1))
|
||||||
self.touch_text_manager.set_object("artist_name", current)
|
self.touch_text_manager.set_object("artist_name", current)
|
||||||
|
|
||||||
def load_image(self):
|
def load_image(self):
|
||||||
size = self.base_size * 4
|
size = self.base_size * 4
|
||||||
self.image = pygame.transform.scale(
|
self.image = pygame.transform.scale(
|
||||||
pygame.image.load(self.get_cover_folder() + self.get_image_file_name()).convert(), (size, size))
|
pygame.image.load(
|
||||||
|
self.get_cover_folder() + self.get_image_file_name()).convert(),
|
||||||
|
(size, size))
|
||||||
|
|
||||||
def touch_event(self, event):
|
def touch_event(self, event):
|
||||||
if event.type == TouchManager.click:
|
if event.type == TouchManager.click:
|
||||||
objects = self.touch_text_manager.get_touch_objects_in_pos(event.current_pos)
|
objects = self.touch_text_manager.get_touch_objects_in_pos(
|
||||||
|
event.current_pos)
|
||||||
if objects is not None:
|
if objects is not None:
|
||||||
for key in objects:
|
for key in objects:
|
||||||
if key == "time_progress":
|
if key == "time_progress":
|
||||||
value = self.touch_text_manager.get_touch_object(key).get_pos_value(event.current_pos) * 1000
|
value = self.touch_text_manager.get_touch_object(
|
||||||
|
key).get_pos_value(event.current_pos) * 1000
|
||||||
self.core.playback.seek(value)
|
self.core.playback.seek(value)
|
||||||
elif key == "previous":
|
elif key == "previous":
|
||||||
self.core.playback.previous()
|
self.core.playback.previous()
|
||||||
@@ -212,7 +239,8 @@ class MainScreen():
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_track_album_name(track):
|
def get_track_album_name(track):
|
||||||
if track.album is not None and track.album.name is not None and len(track.album.name) > 0:
|
if track.album is not None and track.album.name is not None and len(
|
||||||
|
track.album.name) > 0:
|
||||||
return track.album.name
|
return track.album.name
|
||||||
else:
|
else:
|
||||||
return "Unknow Album"
|
return "Unknow Album"
|
||||||
|
|||||||
@@ -15,28 +15,35 @@ class MenuScreen():
|
|||||||
self.screen_objects = ScreenObjectsManager()
|
self.screen_objects = ScreenObjectsManager()
|
||||||
|
|
||||||
# Exit mopidy button
|
# Exit mopidy button
|
||||||
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue611", (0, self.base_size), None)
|
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue611",
|
||||||
|
(0, self.base_size), None)
|
||||||
self.screen_objects.set_touch_object("exit_icon", button)
|
self.screen_objects.set_touch_object("exit_icon", button)
|
||||||
button = TouchAndTextItem(self.manager.fonts['base'], "Exit Mopidy", (button.get_right_pos(), self.base_size),
|
button = TouchAndTextItem(self.manager.fonts['base'], "Exit Mopidy",
|
||||||
|
(button.get_right_pos(), self.base_size),
|
||||||
None)
|
None)
|
||||||
self.screen_objects.set_touch_object("exit", button)
|
self.screen_objects.set_touch_object("exit", button)
|
||||||
|
|
||||||
#Shutdown button
|
# Shutdown button
|
||||||
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue60b", (0, self.base_size * 2), None)
|
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue60b",
|
||||||
|
(0, self.base_size * 2), None)
|
||||||
self.screen_objects.set_touch_object("shutdown_icon", button)
|
self.screen_objects.set_touch_object("shutdown_icon", button)
|
||||||
button = TouchAndTextItem(self.manager.fonts['base'], "Shutdown", (button.get_right_pos(), self.base_size * 2),
|
button = TouchAndTextItem(self.manager.fonts['base'], "Shutdown",
|
||||||
|
(button.get_right_pos(), self.base_size * 2),
|
||||||
None)
|
None)
|
||||||
self.screen_objects.set_touch_object("shutdown", button)
|
self.screen_objects.set_touch_object("shutdown", button)
|
||||||
|
|
||||||
#Restart button
|
# Restart button
|
||||||
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue609", (0, self.base_size * 3), None)
|
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue609",
|
||||||
|
(0, self.base_size * 3), None)
|
||||||
self.screen_objects.set_touch_object("restart_icon", button)
|
self.screen_objects.set_touch_object("restart_icon", button)
|
||||||
button = TouchAndTextItem(self.manager.fonts['base'], "Restart", (button.get_right_pos(), self.base_size * 3),
|
button = TouchAndTextItem(self.manager.fonts['base'], "Restart",
|
||||||
|
(button.get_right_pos(), self.base_size * 3),
|
||||||
None)
|
None)
|
||||||
self.screen_objects.set_touch_object("restart", button)
|
self.screen_objects.set_touch_object("restart", button)
|
||||||
|
|
||||||
#IP addres
|
#IP addres
|
||||||
button = TouchAndTextItem(self.manager.fonts['base'], "IP: ", (0, self.base_size * 4), None)
|
button = TouchAndTextItem(self.manager.fonts['base'], "IP: ",
|
||||||
|
(0, self.base_size * 4), None)
|
||||||
self.screen_objects.set_touch_object("ip", button)
|
self.screen_objects.set_touch_object("ip", button)
|
||||||
|
|
||||||
#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)
|
||||||
@@ -49,7 +56,8 @@ class MenuScreen():
|
|||||||
|
|
||||||
def touch_event(self, touch_event):
|
def touch_event(self, touch_event):
|
||||||
# clicked = self.list_view.touch_event(touch_event)
|
# clicked = self.list_view.touch_event(touch_event)
|
||||||
clicked = self.screen_objects.get_touch_objects_in_pos(touch_event.current_pos)
|
clicked = self.screen_objects.get_touch_objects_in_pos(
|
||||||
|
touch_event.current_pos)
|
||||||
for key in clicked:
|
for key in clicked:
|
||||||
if key == "exit_icon" or key == "exit":
|
if key == "exit_icon" or key == "exit":
|
||||||
mopidy.utils.process.exit_process()
|
mopidy.utils.process.exit_process()
|
||||||
@@ -62,7 +70,7 @@ class MenuScreen():
|
|||||||
elif key == "ip":
|
elif key == "ip":
|
||||||
self.check_connection()
|
self.check_connection()
|
||||||
|
|
||||||
#Will check internet connection
|
# Will check internet connection
|
||||||
def check_connection(self):
|
def check_connection(self):
|
||||||
try:
|
try:
|
||||||
self.manager.set_connection(False, True)
|
self.manager.set_connection(False, True)
|
||||||
@@ -70,11 +78,13 @@ class MenuScreen():
|
|||||||
s.connect(("8.8.8.8", 80))
|
s.connect(("8.8.8.8", 80))
|
||||||
self.ip = s.getsockname()[0]
|
self.ip = s.getsockname()[0]
|
||||||
s.close()
|
s.close()
|
||||||
self.screen_objects.get_touch_object("ip").set_text("IP: " + self.ip, "None")
|
self.screen_objects.get_touch_object("ip").set_text(
|
||||||
|
"IP: " + self.ip, "None")
|
||||||
self.manager.set_connection(True, False)
|
self.manager.set_connection(True, False)
|
||||||
except socket.error:
|
except socket.error:
|
||||||
s.close()
|
s.close()
|
||||||
self.ip = None
|
self.ip = None
|
||||||
self.screen_objects.get_touch_object("ip").set_text("IP: No internet", "None")
|
self.screen_objects.get_touch_object("ip").set_text(
|
||||||
|
"IP: No internet", "None")
|
||||||
self.manager.set_connection(False, False)
|
self.manager.set_connection(False, False)
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ class PlaylistScreen():
|
|||||||
self.size = size
|
self.size = size
|
||||||
self.base_size = base_size
|
self.base_size = base_size
|
||||||
self.manager = manager
|
self.manager = manager
|
||||||
self.list_view = ListView((0, self.base_size), (self.size[0], self.size[1] - 2 * self.base_size),
|
self.list_view = ListView((0, self.base_size), (
|
||||||
|
self.size[0], self.size[1] - 2 * self.base_size),
|
||||||
self.base_size, manager.fonts['base'])
|
self.base_size, manager.fonts['base'])
|
||||||
self.playlists_strings = []
|
self.playlists_strings = []
|
||||||
self.playlists = []
|
self.playlists = []
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
import logging
|
|
||||||
import traceback
|
import traceback
|
||||||
import os
|
|
||||||
import pygame
|
|
||||||
|
|
||||||
import mopidy
|
import mopidy
|
||||||
|
from pkg_resources import Requirement, resource_filename
|
||||||
|
|
||||||
from .main_screen import MainScreen
|
from .main_screen import MainScreen
|
||||||
from .touch_manager import TouchManager
|
from .touch_manager import TouchManager
|
||||||
@@ -14,8 +12,6 @@ from .dynamic_background import DynamicBackground
|
|||||||
from .library_screen import LibraryScreen
|
from .library_screen import LibraryScreen
|
||||||
from .menu_screen import MenuScreen
|
from .menu_screen import MenuScreen
|
||||||
|
|
||||||
from pkg_resources import Requirement, resource_filename
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@@ -28,7 +24,8 @@ class ScreenManager():
|
|||||||
self.background = DynamicBackground()
|
self.background = DynamicBackground()
|
||||||
self.current_screen = 0
|
self.current_screen = 0
|
||||||
self.base_size = self.size[1] / 8
|
self.base_size = self.size[1] / 8
|
||||||
font = resource_filename(Requirement.parse("mopidy-touchscreen"),"mopidy_touchscreen/icomoon.ttf")
|
font = resource_filename(Requirement.parse("mopidy-touchscreen"),
|
||||||
|
"mopidy_touchscreen/icomoon.ttf")
|
||||||
self.fonts['base'] = pygame.font.SysFont("verdana", self.base_size)
|
self.fonts['base'] = pygame.font.SysFont("verdana", self.base_size)
|
||||||
self.fonts['icon'] = pygame.font.Font(font, self.base_size)
|
self.fonts['icon'] = pygame.font.Font(font, self.base_size)
|
||||||
try:
|
try:
|
||||||
@@ -44,7 +41,8 @@ class ScreenManager():
|
|||||||
self.screen_objects_manager = ScreenObjectsManager()
|
self.screen_objects_manager = ScreenObjectsManager()
|
||||||
|
|
||||||
# Top bar
|
# Top bar
|
||||||
self.top_bar = pygame.Surface((self.size[0], self.base_size), pygame.SRCALPHA)
|
self.top_bar = pygame.Surface((self.size[0], self.base_size),
|
||||||
|
pygame.SRCALPHA)
|
||||||
self.top_bar.fill((0, 0, 0, 128))
|
self.top_bar.fill((0, 0, 0, 128))
|
||||||
|
|
||||||
# Play/pause
|
# Play/pause
|
||||||
@@ -52,12 +50,12 @@ class ScreenManager():
|
|||||||
self.screen_objects_manager.set_touch_object("pause_play", button)
|
self.screen_objects_manager.set_touch_object("pause_play", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Random
|
# Random
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u"\ue629 ", (x, 0), None)
|
button = TouchAndTextItem(self.fonts['icon'], u"\ue629 ", (x, 0), None)
|
||||||
self.screen_objects_manager.set_touch_object("random", button)
|
self.screen_objects_manager.set_touch_object("random", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Repeat
|
# Repeat
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u"\ue626", (x, 0), None)
|
button = TouchAndTextItem(self.fonts['icon'], u"\ue626", (x, 0), None)
|
||||||
self.screen_objects_manager.set_touch_object("repeat", button)
|
self.screen_objects_manager.set_touch_object("repeat", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
@@ -78,7 +76,8 @@ class ScreenManager():
|
|||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Volume
|
#Volume
|
||||||
progress = Progressbar(self.fonts['base'], "100", (x, 0), (self.size[0] - x, self.base_size), 100, True)
|
progress = Progressbar(self.fonts['base'], "100", (x, 0),
|
||||||
|
(self.size[0] - x, self.base_size), 100, True)
|
||||||
self.screen_objects_manager.set_touch_object("volume", progress)
|
self.screen_objects_manager.set_touch_object("volume", progress)
|
||||||
progress.set_value(self.core.playback.volume.get())
|
progress.set_value(self.core.playback.volume.get())
|
||||||
|
|
||||||
@@ -87,37 +86,44 @@ class ScreenManager():
|
|||||||
button_size = (self.size[0] / 5, self.base_size)
|
button_size = (self.size[0] / 5, self.base_size)
|
||||||
|
|
||||||
#Main button
|
#Main button
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u" \ue600", (0, self.base_size * 7), button_size)
|
button = TouchAndTextItem(self.fonts['icon'], u" \ue600",
|
||||||
|
(0, self.base_size * 7), button_size)
|
||||||
self.screen_objects_manager.set_touch_object("menu_0", button)
|
self.screen_objects_manager.set_touch_object("menu_0", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Tracklist button
|
#Tracklist button
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u" \ue60d", (x, self.base_size * 7), button_size)
|
button = TouchAndTextItem(self.fonts['icon'], u" \ue60d",
|
||||||
|
(x, self.base_size * 7), button_size)
|
||||||
self.screen_objects_manager.set_touch_object("menu_1", button)
|
self.screen_objects_manager.set_touch_object("menu_1", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Library button
|
#Library button
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u" \ue604", (x, self.base_size * 7), button_size)
|
button = TouchAndTextItem(self.fonts['icon'], u" \ue604",
|
||||||
|
(x, self.base_size * 7), button_size)
|
||||||
self.screen_objects_manager.set_touch_object("menu_2", button)
|
self.screen_objects_manager.set_touch_object("menu_2", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Playlist button
|
#Playlist button
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u" \ue605", (x, self.base_size * 7), button_size)
|
button = TouchAndTextItem(self.fonts['icon'], u" \ue605",
|
||||||
|
(x, self.base_size * 7), button_size)
|
||||||
self.screen_objects_manager.set_touch_object("menu_3", button)
|
self.screen_objects_manager.set_touch_object("menu_3", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Menu button
|
#Menu button
|
||||||
button = TouchAndTextItem(self.fonts['icon'], u" \ue60a", (x, self.base_size * 7), None)
|
button = TouchAndTextItem(self.fonts['icon'], u" \ue60a",
|
||||||
|
(x, self.base_size * 7), None)
|
||||||
self.screen_objects_manager.set_touch_object("menu_4", button)
|
self.screen_objects_manager.set_touch_object("menu_4", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Down bar
|
#Down bar
|
||||||
self.down_bar = pygame.Surface((self.size[0], self.size[1] - self.base_size * 7), pygame.SRCALPHA)
|
self.down_bar = pygame.Surface(
|
||||||
|
(self.size[0], self.size[1] - self.base_size * 7), pygame.SRCALPHA)
|
||||||
self.down_bar.fill((0, 0, 0, 128))
|
self.down_bar.fill((0, 0, 0, 128))
|
||||||
|
|
||||||
self.options_changed()
|
self.options_changed()
|
||||||
self.mute_changed(self.core.playback.mute.get())
|
self.mute_changed(self.core.playback.mute.get())
|
||||||
self.playback_state_changed(self.core.playback.state.get(), self.core.playback.state.get())
|
self.playback_state_changed(self.core.playback.state.get(),
|
||||||
|
self.core.playback.state.get())
|
||||||
self.screens[4].check_connection()
|
self.screens[4].check_connection()
|
||||||
self.change_screen(self.current_screen)
|
self.change_screen(self.current_screen)
|
||||||
|
|
||||||
@@ -142,13 +148,16 @@ class ScreenManager():
|
|||||||
touch_event = self.touch_manager.event(event)
|
touch_event = self.touch_manager.event(event)
|
||||||
if touch_event is not None:
|
if touch_event is not None:
|
||||||
if touch_event.type == TouchManager.click:
|
if touch_event.type == TouchManager.click:
|
||||||
objects = self.screen_objects_manager.get_touch_objects_in_pos(touch_event.current_pos)
|
objects = self.screen_objects_manager.get_touch_objects_in_pos(
|
||||||
|
touch_event.current_pos)
|
||||||
if objects is not None:
|
if objects is not None:
|
||||||
for key in objects:
|
for key in objects:
|
||||||
if key == "volume":
|
if key == "volume":
|
||||||
value = self.screen_objects_manager.get_touch_object(key).get_pos_value(
|
value = self.screen_objects_manager.get_touch_object(
|
||||||
|
key).get_pos_value(
|
||||||
touch_event.current_pos)
|
touch_event.current_pos)
|
||||||
self.backend.tell({'action': 'volume', 'value': value})
|
self.backend.tell(
|
||||||
|
{'action': 'volume', 'value': value})
|
||||||
self.volume_changed(value)
|
self.volume_changed(value)
|
||||||
elif key == "pause_play":
|
elif key == "pause_play":
|
||||||
if self.core.playback.state.get() == mopidy.core.PlaybackState.PLAYING:
|
if self.core.playback.state.get() == mopidy.core.PlaybackState.PLAYING:
|
||||||
@@ -166,9 +175,11 @@ class ScreenManager():
|
|||||||
self.core.tracklist.set_random(random)
|
self.core.tracklist.set_random(random)
|
||||||
self.options_changed()
|
self.options_changed()
|
||||||
elif key == "repeat":
|
elif key == "repeat":
|
||||||
self.core.tracklist.set_repeat(not self.core.tracklist.repeat.get())
|
self.core.tracklist.set_repeat(
|
||||||
|
not self.core.tracklist.repeat.get())
|
||||||
elif key == "single":
|
elif key == "single":
|
||||||
self.core.tracklist.set_single(not self.core.tracklist.single.get())
|
self.core.tracklist.set_single(
|
||||||
|
not self.core.tracklist.single.get())
|
||||||
elif key == "internet":
|
elif key == "internet":
|
||||||
self.screens[4].check_connection()
|
self.screens[4].check_connection()
|
||||||
elif key[:-1] == "menu_":
|
elif key[:-1] == "menu_":
|
||||||
@@ -178,26 +189,34 @@ class ScreenManager():
|
|||||||
def volume_changed(self, volume):
|
def volume_changed(self, volume):
|
||||||
if not self.core.playback.mute.get():
|
if not self.core.playback.mute.get():
|
||||||
if volume > 80:
|
if volume > 80:
|
||||||
self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue61f", False)
|
self.screen_objects_manager.get_touch_object("mute").set_text(
|
||||||
|
u"\ue61f", False)
|
||||||
elif volume > 50:
|
elif volume > 50:
|
||||||
self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue620", False)
|
self.screen_objects_manager.get_touch_object("mute").set_text(
|
||||||
|
u"\ue620", False)
|
||||||
elif volume > 20:
|
elif volume > 20:
|
||||||
self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue621", False)
|
self.screen_objects_manager.get_touch_object("mute").set_text(
|
||||||
|
u"\ue621", False)
|
||||||
else:
|
else:
|
||||||
logger.error("sartu naiz")
|
logger.error("sartu naiz")
|
||||||
self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue622", False)
|
self.screen_objects_manager.get_touch_object("mute").set_text(
|
||||||
|
u"\ue622", False)
|
||||||
self.screen_objects_manager.get_touch_object("volume").set_value(volume)
|
self.screen_objects_manager.get_touch_object("volume").set_value(volume)
|
||||||
|
|
||||||
def playback_state_changed(self, old_state, new_state):
|
def playback_state_changed(self, old_state, new_state):
|
||||||
if new_state == mopidy.core.PlaybackState.PLAYING:
|
if new_state == mopidy.core.PlaybackState.PLAYING:
|
||||||
self.screen_objects_manager.get_touch_object("pause_play").set_text(u"\ue616", False)
|
self.screen_objects_manager.get_touch_object("pause_play").set_text(
|
||||||
|
u"\ue616", False)
|
||||||
else:
|
else:
|
||||||
self.screen_objects_manager.get_touch_object("pause_play").set_text(u"\ue615", False)
|
self.screen_objects_manager.get_touch_object("pause_play").set_text(
|
||||||
|
u"\ue615", False)
|
||||||
|
|
||||||
def mute_changed(self, mute):
|
def mute_changed(self, mute):
|
||||||
self.screen_objects_manager.get_touch_object("mute").set_active(not mute)
|
self.screen_objects_manager.get_touch_object("mute").set_active(
|
||||||
|
not mute)
|
||||||
if mute:
|
if mute:
|
||||||
self.screen_objects_manager.get_touch_object("mute").set_text(u"\ue623", False)
|
self.screen_objects_manager.get_touch_object("mute").set_text(
|
||||||
|
u"\ue623", False)
|
||||||
else:
|
else:
|
||||||
self.volume_changed(self.core.playback.volume.get())
|
self.volume_changed(self.core.playback.volume.get())
|
||||||
|
|
||||||
@@ -205,14 +224,19 @@ class ScreenManager():
|
|||||||
self.screens[1].tracklist_changed()
|
self.screens[1].tracklist_changed()
|
||||||
|
|
||||||
def options_changed(self):
|
def options_changed(self):
|
||||||
self.screen_objects_manager.get_touch_object("random").set_active(self.core.tracklist.random.get())
|
self.screen_objects_manager.get_touch_object("random").set_active(
|
||||||
self.screen_objects_manager.get_touch_object("repeat").set_active(self.core.tracklist.repeat.get())
|
self.core.tracklist.random.get())
|
||||||
self.screen_objects_manager.get_touch_object("single").set_active(self.core.tracklist.single.get())
|
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):
|
def change_screen(self, new_screen):
|
||||||
self.screen_objects_manager.get_touch_object("menu_" + str(self.current_screen)).set_active(False)
|
self.screen_objects_manager.get_touch_object(
|
||||||
|
"menu_" + str(self.current_screen)).set_active(False)
|
||||||
self.current_screen = new_screen
|
self.current_screen = new_screen
|
||||||
self.screen_objects_manager.get_touch_object("menu_" + str(new_screen)).set_active(True)
|
self.screen_objects_manager.get_touch_object(
|
||||||
|
"menu_" + str(new_screen)).set_active(True)
|
||||||
|
|
||||||
def playlists_loaded(self):
|
def playlists_loaded(self):
|
||||||
self.screens[3].playlists_loaded()
|
self.screens[3].playlists_loaded()
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ class BaseItem():
|
|||||||
self.pos = pos
|
self.pos = pos
|
||||||
self.size = size
|
self.size = size
|
||||||
self.rect = pygame.Rect(0, 0, self.size[0], self.size[1])
|
self.rect = pygame.Rect(0, 0, self.size[0], self.size[1])
|
||||||
self.rect_in_pos = pygame.Rect(self.pos[0], self.pos[1], self.size[0], self.size[1])
|
self.rect_in_pos = pygame.Rect(self.pos[0], self.pos[1], self.size[0],
|
||||||
|
self.size[1])
|
||||||
|
|
||||||
def get_right_pos(self):
|
def get_right_pos(self):
|
||||||
return self.pos[0] + self.size[0]
|
return self.pos[0] + self.size[0]
|
||||||
@@ -153,7 +154,8 @@ class TouchAndTextItem(TouchObject, TextItem):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
if self.active:
|
if self.active:
|
||||||
self.active_box = self.font.render(self.text, True, self.active_color)
|
self.active_box = self.font.render(self.text, True,
|
||||||
|
self.active_color)
|
||||||
else:
|
else:
|
||||||
self.box = self.font.render(self.text, True, self.color)
|
self.box = self.font.render(self.text, True, self.color)
|
||||||
if self.active:
|
if self.active:
|
||||||
@@ -178,7 +180,8 @@ class Progressbar(TouchObject):
|
|||||||
self.text.set_text(str(self.value), True)
|
self.text.set_text(str(self.value), True)
|
||||||
else:
|
else:
|
||||||
self.text = TextItem(font, text, pos, None)
|
self.text = TextItem(font, text, pos, None)
|
||||||
self.text.pos = (self.pos[0] + self.size[0] / 2 - self.text.size[0] / 2, self.text.pos[1])
|
self.text.pos = (self.pos[0] + self.size[0] / 2 - self.text.size[0] / 2,
|
||||||
|
self.text.pos[1])
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
pass
|
pass
|
||||||
@@ -219,7 +222,9 @@ class ScrollBar(TouchObject):
|
|||||||
if self.max < 1:
|
if self.max < 1:
|
||||||
self.bar_size = self.size[1]
|
self.bar_size = self.size[1]
|
||||||
else:
|
else:
|
||||||
self.bar_size = math.ceil(float(self.items_on_screen) / float(self.max) * float(self.size[1]))
|
self.bar_size = math.ceil(
|
||||||
|
float(self.items_on_screen) / float(self.max) * float(
|
||||||
|
self.size[1]))
|
||||||
self.bar = pygame.Surface((self.size[0], self.bar_size))
|
self.bar = pygame.Surface((self.size[0], self.bar_size))
|
||||||
self.bar.fill((255, 255, 255))
|
self.bar.fill((255, 255, 255))
|
||||||
|
|
||||||
@@ -237,4 +242,5 @@ class ScrollBar(TouchObject):
|
|||||||
|
|
||||||
def set_item(self, current_item):
|
def set_item(self, current_item):
|
||||||
self.current_item = current_item
|
self.current_item = current_item
|
||||||
self.bar_pos = float(self.current_item) / float(self.max) * float(self.size[1])
|
self.bar_pos = float(self.current_item) / float(self.max) * float(
|
||||||
|
self.size[1])
|
||||||
@@ -30,18 +30,21 @@ class TouchManager():
|
|||||||
|
|
||||||
if event.type == pygame.MOUSEBUTTONUP:
|
if event.type == pygame.MOUSEBUTTONUP:
|
||||||
if event.button == 4:
|
if event.button == 4:
|
||||||
touch_event = TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, True)
|
touch_event = TouchEvent(TouchManager.swipe, self.down_pos,
|
||||||
|
self.up_pos, True)
|
||||||
touch_event.direction = TouchManager.up
|
touch_event.direction = TouchManager.up
|
||||||
return touch_event
|
return touch_event
|
||||||
elif event.button == 5:
|
elif event.button == 5:
|
||||||
touch_event = TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, True)
|
touch_event = TouchEvent(TouchManager.swipe, self.down_pos,
|
||||||
|
self.up_pos, True)
|
||||||
touch_event.direction = TouchManager.down
|
touch_event.direction = TouchManager.down
|
||||||
return touch_event
|
return touch_event
|
||||||
elif event.button == 1 and self.down_button == 1:
|
elif event.button == 1 and self.down_button == 1:
|
||||||
touch_event = self.mouse_up(event)
|
touch_event = self.mouse_up(event)
|
||||||
return touch_event
|
return touch_event
|
||||||
elif event.button == 3 and self.down_button == 3:
|
elif event.button == 3 and self.down_button == 3:
|
||||||
touch_event = TouchEvent(TouchManager.long_click, self.down_pos, self.up_pos, None)
|
touch_event = TouchEvent(TouchManager.long_click, self.down_pos,
|
||||||
|
self.up_pos, None)
|
||||||
return touch_event
|
return touch_event
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
@@ -59,14 +62,18 @@ class TouchManager():
|
|||||||
if abs(self.down_pos[0] - self.up_pos[0]) < self.max_move_margin:
|
if abs(self.down_pos[0] - self.up_pos[0]) < self.max_move_margin:
|
||||||
if abs(self.down_pos[1] - self.up_pos[1]) < self.max_move_margin:
|
if abs(self.down_pos[1] - self.up_pos[1]) < self.max_move_margin:
|
||||||
if time.time() - TouchManager.long_click_min_time > self.down_time:
|
if time.time() - TouchManager.long_click_min_time > self.down_time:
|
||||||
return TouchEvent(TouchManager.long_click, self.down_pos, self.up_pos, None)
|
return TouchEvent(TouchManager.long_click, self.down_pos,
|
||||||
|
self.up_pos, None)
|
||||||
else:
|
else:
|
||||||
return TouchEvent(TouchManager.click, self.down_pos, self.up_pos, None)
|
return TouchEvent(TouchManager.click, self.down_pos,
|
||||||
|
self.up_pos, None)
|
||||||
elif abs(self.down_pos[1] - self.up_pos[1]) > self.min_swipe_move:
|
elif abs(self.down_pos[1] - self.up_pos[1]) > self.min_swipe_move:
|
||||||
return TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, True)
|
return TouchEvent(TouchManager.swipe, self.down_pos,
|
||||||
|
self.up_pos, True)
|
||||||
elif self.down_pos[1] - self.up_pos[1] < self.max_move_margin:
|
elif self.down_pos[1] - self.up_pos[1] < self.max_move_margin:
|
||||||
if abs(self.down_pos[0] - self.up_pos[0]) > self.min_swipe_move:
|
if abs(self.down_pos[0] - self.up_pos[0]) > self.min_swipe_move:
|
||||||
return TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, False)
|
return TouchEvent(TouchManager.swipe, self.down_pos,
|
||||||
|
self.up_pos, False)
|
||||||
|
|
||||||
|
|
||||||
class TouchEvent():
|
class TouchEvent():
|
||||||
|
|||||||
@@ -15,20 +15,24 @@ logger = logging.getLogger(__name__)
|
|||||||
class TouchScreen(pykka.ThreadingActor, core.CoreListener):
|
class TouchScreen(pykka.ThreadingActor, core.CoreListener):
|
||||||
def __init__(self, config, core):
|
def __init__(self, config, core):
|
||||||
super(TouchScreen, self).__init__()
|
super(TouchScreen, self).__init__()
|
||||||
self.backend = pykka.ActorRegistry.get_by_class_name("TouchScreenBackend")[0]
|
self.backend = \
|
||||||
|
pykka.ActorRegistry.get_by_class_name("TouchScreenBackend")[0]
|
||||||
self.core = core
|
self.core = core
|
||||||
self.running = False
|
self.running = False
|
||||||
self.screen_size = (config['touchscreen']['screen_width'], config['touchscreen']['screen_height'])
|
self.screen_size = (config['touchscreen']['screen_width'],
|
||||||
|
config['touchscreen']['screen_height'])
|
||||||
self.cache_dir = config['touchscreen']['cache_dir']
|
self.cache_dir = config['touchscreen']['cache_dir']
|
||||||
self.fullscreen = config['touchscreen']['fullscreen']
|
self.fullscreen = config['touchscreen']['fullscreen']
|
||||||
pygame.init()
|
pygame.init()
|
||||||
self.cursor = config['touchscreen']['cursor']
|
self.cursor = config['touchscreen']['cursor']
|
||||||
self.screen_manager = ScreenManager(self.screen_size, self.core, self.backend, self.cache_dir)
|
self.screen_manager = ScreenManager(self.screen_size, self.core,
|
||||||
|
self.backend, self.cache_dir)
|
||||||
|
|
||||||
def start_thread(self):
|
def start_thread(self):
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
if self.fullscreen:
|
if self.fullscreen:
|
||||||
screen = pygame.display.set_mode(self.screen_size, pygame.FULLSCREEN)
|
screen = pygame.display.set_mode(self.screen_size,
|
||||||
|
pygame.FULLSCREEN)
|
||||||
else:
|
else:
|
||||||
screen = pygame.display.set_mode(self.screen_size)
|
screen = pygame.display.set_mode(self.screen_size)
|
||||||
pygame.mouse.set_visible(self.cursor)
|
pygame.mouse.set_visible(self.cursor)
|
||||||
|
|||||||
@@ -3,30 +3,30 @@ import logging
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class TouchTextManager():
|
class TouchTextManager():
|
||||||
|
def __init__(self, size, base_size):
|
||||||
|
|
||||||
|
|
||||||
def __init__(self,size,base_size):
|
|
||||||
self.size = size
|
self.size = size
|
||||||
self.base_size = base_size
|
self.base_size = base_size
|
||||||
self.touch_objects = {}
|
self.touch_objects = {}
|
||||||
self.text_objects = {}
|
self.text_objects = {}
|
||||||
|
|
||||||
def add_object(self, key, text, pos, pos2, color):
|
def add_object(self, key, text, pos, pos2, color):
|
||||||
self.text_objects[key] = TextItem(text, pos,pos2,color,self.base_size)
|
self.text_objects[key] = TextItem(text, pos, pos2, color,
|
||||||
|
self.base_size)
|
||||||
|
|
||||||
def get_object(self, key):
|
def get_object(self, key):
|
||||||
return self.text_objects[key]
|
return self.text_objects[key]
|
||||||
|
|
||||||
def add_touch_object(self, key, text, pos, color):
|
def add_touch_object(self, key, text, pos, color):
|
||||||
self.touch_objects['key'] = TouchAndTextItem(text, pos, color, self.base_size)
|
self.touch_objects['key'] = TouchAndTextItem(text, pos, color,
|
||||||
|
self.base_size)
|
||||||
|
|
||||||
def get_touch_object(self,key):
|
def get_touch_object(self, key):
|
||||||
return self.touch_objects['key']
|
return self.touch_objects['key']
|
||||||
|
|
||||||
def add_progressbar(self, key, pos, pos2, max):
|
def add_progressbar(self, key, pos, pos2, max):
|
||||||
self.touch_objects['key'] = Progressbar(pos,pos2,max)
|
self.touch_objects['key'] = Progressbar(pos, pos2, max)
|
||||||
|
|
||||||
def render(self, surface):
|
def render(self, surface):
|
||||||
for key in self.text_objects:
|
for key in self.text_objects:
|
||||||
@@ -37,21 +37,19 @@ class TouchTextManager():
|
|||||||
|
|
||||||
|
|
||||||
class BaseItem():
|
class BaseItem():
|
||||||
|
def __init__(self, pos, pos2):
|
||||||
def __init__(self,pos,pos2):
|
|
||||||
self.pos = pos
|
self.pos = pos
|
||||||
self.pos2 = pos2
|
self.pos2 = pos2
|
||||||
self.size=[0,0]
|
self.size = [0, 0]
|
||||||
self.size[0] = self.pos2[0] - self.pos[0]
|
self.size[0] = self.pos2[0] - self.pos[0]
|
||||||
self.size[1] = self.pos2[1] - self.pos[1]
|
self.size[1] = self.pos2[1] - self.pos[1]
|
||||||
self.rect = pygame.Rect(0,0,self.size[0],self.size[1])
|
self.rect = pygame.Rect(0, 0, self.size[0], self.size[1])
|
||||||
|
|
||||||
|
|
||||||
class TextItem(BaseItem):
|
class TextItem(BaseItem):
|
||||||
|
def __init__(self, text, pos, pos2, color, text_size):
|
||||||
def __init__(self, text, pos,pos2, color,text_size):
|
|
||||||
if pos2 is not None:
|
if pos2 is not None:
|
||||||
BaseItem.__init__(self,pos,pos2)
|
BaseItem.__init__(self, pos, pos2)
|
||||||
self.text_size = text_size
|
self.text_size = text_size
|
||||||
self.font = pygame.font.SysFont("arial", text_size)
|
self.font = pygame.font.SysFont("arial", text_size)
|
||||||
self.text = text
|
self.text = text
|
||||||
@@ -70,7 +68,8 @@ class TextItem(BaseItem):
|
|||||||
else:
|
else:
|
||||||
self.fit_vertical = True
|
self.fit_vertical = True
|
||||||
else:
|
else:
|
||||||
BaseItem.__init__(self,pos,(pos[0]+self.box.get_rect().width,pos[1]+self.box.get_rect().height))
|
BaseItem.__init__(self, pos, (pos[0] + self.box.get_rect().width,
|
||||||
|
pos[1] + self.box.get_rect().height))
|
||||||
self.fit_horizontal = True
|
self.fit_horizontal = True
|
||||||
self.fit_vertical = True
|
self.fit_vertical = True
|
||||||
|
|
||||||
@@ -93,50 +92,49 @@ class TextItem(BaseItem):
|
|||||||
else:
|
else:
|
||||||
self.step = self.step + 1
|
self.step = self.step + 1
|
||||||
|
|
||||||
def render(self,surface):
|
def render(self, surface):
|
||||||
if self.fit_horizontal:
|
if self.fit_horizontal:
|
||||||
self.box
|
self.box
|
||||||
else:
|
else:
|
||||||
self.box = self.font.render(self.text, True, self.color)
|
self.box = self.font.render(self.text, True, self.color)
|
||||||
surface.blit(self.box,self.pos,area=self.rect)
|
surface.blit(self.box, self.pos, area=self.rect)
|
||||||
|
|
||||||
def set_text(self, text):
|
def set_text(self, text):
|
||||||
self.__init__(text,self.pos,self.pos2,self.color,self.text_size)
|
self.__init__(text, self.pos, self.pos2, self.color, self.text_size)
|
||||||
|
|
||||||
|
|
||||||
class TouchObject(BaseItem):
|
class TouchObject(BaseItem):
|
||||||
|
def __init__(self, pos, pos2):
|
||||||
def __init__(self,pos,pos2):
|
BaseItem.__init__(self, pos, pos2)
|
||||||
BaseItem.__init__(self,pos,pos2)
|
|
||||||
self.active = False
|
self.active = False
|
||||||
self.background_box = pygame.Surface(self.size)
|
self.background_box = pygame.Surface(self.size)
|
||||||
self.background_box.fill((0,128,255))
|
self.background_box.fill((0, 128, 255))
|
||||||
|
|
||||||
def render(self,surface):
|
def render(self, surface):
|
||||||
surface.blit(self.background_box, self.pos)
|
surface.blit(self.background_box, self.pos)
|
||||||
|
|
||||||
|
|
||||||
class TouchAndTextItem(TouchObject, TextItem):
|
class TouchAndTextItem(TouchObject, TextItem):
|
||||||
|
def __init__(self, text, pos, color, text_size):
|
||||||
def __init__(self, text, pos, color,text_size):
|
TextItem.__init__(self, text, pos, None, color, text_size)
|
||||||
TextItem.__init__(self,text, pos,None, color,text_size)
|
TouchObject.__init__(self, pos, self.pos2)
|
||||||
TouchObject.__init__(self,pos,self.pos2)
|
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
TextItem.update()
|
TextItem.update()
|
||||||
|
|
||||||
def render(self,surface):
|
def render(self, surface):
|
||||||
TouchObject.render(self,surface)
|
TouchObject.render(self, surface)
|
||||||
TextItem.render(self,surface)
|
TextItem.render(self, surface)
|
||||||
|
|
||||||
|
|
||||||
class Progressbar(BaseItem):
|
class Progressbar(BaseItem):
|
||||||
|
|
||||||
def __init__(self, pos, pos2, max):
|
def __init__(self, pos, pos2, max):
|
||||||
BaseItem.__init__(self, pos, pos2)
|
BaseItem.__init__(self, pos, pos2)
|
||||||
logger.error(pos2)
|
logger.error(pos2)
|
||||||
self.value = 0
|
self.value = 0
|
||||||
self.max = max
|
self.max = max
|
||||||
self.back_color = (0,0,0)
|
self.back_color = (0, 0, 0)
|
||||||
self.main_color = (255,255,255)
|
self.main_color = (255, 255, 255)
|
||||||
self.surface = pygame.Surface(self.size)
|
self.surface = pygame.Surface(self.size)
|
||||||
self.surface.fill(self.back_color)
|
self.surface.fill(self.back_color)
|
||||||
|
|
||||||
@@ -150,6 +148,6 @@ class Progressbar(BaseItem):
|
|||||||
self.value = value
|
self.value = value
|
||||||
self.surface.fill(self.back_color)
|
self.surface.fill(self.back_color)
|
||||||
pos_pixel = value * self.size[0] / self.max
|
pos_pixel = value * self.size[0] / self.max
|
||||||
rect = pygame.Rect(0,0,pos_pixel,self.size[1])
|
rect = pygame.Rect(0, 0, pos_pixel, self.size[1])
|
||||||
self.surface.fill(self.main_color, rect)
|
self.surface.fill(self.main_color, rect)
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ class Tracklist():
|
|||||||
self.size = size
|
self.size = size
|
||||||
self.base_size = base_size
|
self.base_size = base_size
|
||||||
self.manager = manager
|
self.manager = manager
|
||||||
self.list_view = ListView((0, self.base_size), (self.size[0], self.size[1] - 2 * self.base_size),
|
self.list_view = ListView((0, self.base_size), (
|
||||||
|
self.size[0], self.size[1] - 2 * self.base_size),
|
||||||
self.base_size, manager.fonts['base'])
|
self.base_size, manager.fonts['base'])
|
||||||
self.tracks = []
|
self.tracks = []
|
||||||
self.tracks_strings = []
|
self.tracks_strings = []
|
||||||
@@ -23,13 +24,16 @@ class Tracklist():
|
|||||||
self.tracks = self.manager.core.tracklist.tl_tracks.get()
|
self.tracks = self.manager.core.tracklist.tl_tracks.get()
|
||||||
self.tracks_strings = []
|
self.tracks_strings = []
|
||||||
for tl_track in self.tracks:
|
for tl_track in self.tracks:
|
||||||
self.tracks_strings.append(MainScreen.get_track_name(tl_track.track))
|
self.tracks_strings.append(
|
||||||
|
MainScreen.get_track_name(tl_track.track))
|
||||||
self.list_view.set_list(self.tracks_strings)
|
self.list_view.set_list(self.tracks_strings)
|
||||||
|
|
||||||
def touch_event(self, touch_event):
|
def touch_event(self, touch_event):
|
||||||
pos = self.list_view.touch_event(touch_event)
|
pos = self.list_view.touch_event(touch_event)
|
||||||
if pos is not None:
|
if pos is not None:
|
||||||
self.manager.core.playback.change_track(self.tracks[pos], on_error_step=1)
|
self.manager.core.playback.change_track(self.tracks[pos],
|
||||||
|
on_error_step=1)
|
||||||
|
|
||||||
def track_started(self, track):
|
def track_started(self, track):
|
||||||
self.list_view.set_selected([self.manager.core.tracklist.index(track).get()])
|
self.list_view.set_selected(
|
||||||
|
[self.manager.core.tracklist.index(track).get()])
|
||||||
Reference in New Issue
Block a user