From 40be05d261b4d16a6234f6e439aa92c6b1d73691 Mon Sep 17 00:00:00 2001 From: Daniel Thompson Date: Mon, 18 Jan 2021 21:53:51 +0000 Subject: [PATCH] apps: musicplayer: Adopt GfxButton and use it for trace fwd/back Signed-off-by: Daniel Thompson --- TODO.rst | 2 +- res/back.png | Bin 0 -> 6841 bytes res/fwd.png | Bin 0 -> 6732 bytes res/headset.png | Bin res/pause.png | Bin res/play.png | Bin 12881 -> 13201 bytes wasp/apps/musicplayer.py | 77 ++++++++++++++++++--------------------- wasp/icons.py | 58 ++++++++++++++++++++--------- 8 files changed, 77 insertions(+), 60 deletions(-) create mode 100644 res/back.png create mode 100644 res/fwd.png mode change 100755 => 100644 res/headset.png mode change 100755 => 100644 res/pause.png mode change 100755 => 100644 res/play.png diff --git a/TODO.rst b/TODO.rst index 8924bf9..cc90397 100644 --- a/TODO.rst +++ b/TODO.rst @@ -62,7 +62,7 @@ Wasp-os * [X] Add a simple theming approach * [X] Update icon for Music player - * [ ] Introduce fwd/back/vol+/vol- buttons to the music player + * [X] Introduce fwd/back buttons to the music player * [X] Update icon for Alarm app * [X] Update art work for buttons in Confirmation view * [X] Reduce the size of the battery charge icon slightly (match bell) diff --git a/res/back.png b/res/back.png new file mode 100644 index 0000000000000000000000000000000000000000..810f68f93c34a9c203bae61bf8dcbd722b5353a5 GIT binary patch literal 6841 zcmeHKdpy)>+aKp+NRe`Aj1I(@F*BH%HHjg{`4o~cW_~j!=3r(pgiwk?4rLunD6wd5 zR8pHFB%}jvtRhL)u2OAmsOLAsmfmOIect_i-sivg40B)i_xfJf{k^a2{@uS+Hy67V z^6TUw5XcIWy^RO>9|?XmWTnBsR~F)bhCpPaV!V9$9^@z}hs&lh!T=~gngc)q0fPpC z2nK3=n7N}>O7nNNOsT2_CXLBTj$hHfGWJCE!hM%}gdsF9C*!wEawSzBq{ufPKkk}Z ze+A|qZoq@rtUl_qr&8*=?eFc5@3LYC+7}LwUwgGM@nhMfo!G^v?HztS(+}ffoH#|2 zK7W|GYmZyLe`D!~A3uj!mCU1G&}-`Fl}5U(ZkblbZ_d;+3iKP>D;uXnziM6G-u_6p zZ=888j$Tr+cCuB4R{kPf(L_r#<(=*tsWk`mZmxS*6Std_R#%)OmU)Ns`r__JA8#EW zM74im?8c3`lmjj4bmZ;P`H8qr#LOMJp@XxvIpG1x<8$YWt760+Z4G5agm&xUNm7}) z=(C2camk6=ne7YblgvkR!n@~&Uezj1D!SFi&t}Y&Y!|CHawy+WA2Ri(BoTfFDKV;b z17a9?Zo3jZ?S;06!@DzT*b8Utk{ZQg^rjBB2ZWp(e8-h|R1zSkCqYJ`46xtKuX%~s z?00*ED>bNJ!thtaJlVPxl%5O?DeI8k_)g8?$%Xf*06mQ^&F8GD}$qH?aae<_KAK6CJPZA5%r)_zLliVbpp*AnOsY>@uua(%C*6JojgEnz)ririS zHSz$3sMO9BsHb$;>q(o!6Ev<6j#E`y~c-+FDrJ?%d_m( zT2yH=Q>4@7Pxh8p?;0zl$Nnft>T>xZT)NE~hU{sBNNT5{0}W0Or{PDtE+$lWh&6R>&&W2BmcCz} zxrT6QE@&#%{M&nh)9S|0i`-`dk>hEX5qW#Ze_Pf6;8)h{3o~NwLFuZa_Lhp-ZqtVf z_(h|!{_)X~k#!D!rW3DgHlIh;Hg=t;yN2{pYCyI826=g2vLkWJVb`o$H3`_mUh|qz#4)`3(-Q?8!`ovx1BLGy@Z^JI(i1AZ z_dOoeo|>61(;vE>Zkcg!=!Qj^joVRdcUolm{aUz(mSuY1RjIkcx&Zo `grV{aNQ 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 k{9RtkuNzek8A@Xzse^n{n>lht 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 v2p$YVIO7Ke6W(sh{^D