From 9237d6af633a3a9e17619038710888fc8429b15c Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 4 Jul 2016 19:54:50 +0200 Subject: [PATCH] 3djc/horus fine tune mixers setup (#3643) * Optimize display for mixer setup * Make mixer setup screen full icons * - Display flighmode in SMLSIZE - Add icon for it - Space out things given then gain space * Introduce SLOW_BLINK (half rate BLINK) WARNING : code for both DS and single icon 'DS' is here, need cleaning before PR after choice is made * Introduce snail and hourglass icons Fine tuning * Move to single icon column for DS (3 possibles icons) Space things a little * delayslow icon * delayslow icon --- .../THEMES/Darkblue/mask_textline_curve.png | Bin 0 -> 572 bytes .../THEMES/Darkblue/mask_textline_delay.png | Bin 0 -> 630 bytes .../Darkblue/mask_textline_delayslow.png | Bin 0 -> 891 bytes .../THEMES/Darkblue/mask_textline_fm.png | Bin 0 -> 755 bytes .../THEMES/Darkblue/mask_textline_label.png | Bin 0 -> 492 bytes .../THEMES/Darkblue/mask_textline_slow.png | Bin 0 -> 815 bytes .../THEMES/Darkblue/mask_textline_switch.png | Bin 0 -> 666 bytes .../THEMES/Default/mask_textline_curve.png | Bin 0 -> 572 bytes .../THEMES/Default/mask_textline_delay.png | Bin 0 -> 630 bytes .../Default/mask_textline_delayslow.png | Bin 0 -> 891 bytes .../horus/THEMES/Default/mask_textline_fm.png | Bin 0 -> 755 bytes .../THEMES/Default/mask_textline_label.png | Bin 0 -> 492 bytes .../THEMES/Default/mask_textline_slow.png | Bin 0 -> 815 bytes .../THEMES/Default/mask_textline_switch.png | Bin 0 -> 666 bytes radio/src/gui/horus/bitmaps.cpp | 8 +++ radio/src/gui/horus/bitmaps.h | 7 ++ radio/src/gui/horus/lcd.h | 1 + radio/src/gui/horus/menu_model_mixes.cpp | 63 +++++++++++++----- radio/src/gui/horus/themes/darkblue.cpp | 21 ++++++ radio/src/gui/horus/themes/default.cpp | 20 ++++++ 20 files changed, 105 insertions(+), 15 deletions(-) create mode 100644 radio/sdcard/horus/THEMES/Darkblue/mask_textline_curve.png create mode 100644 radio/sdcard/horus/THEMES/Darkblue/mask_textline_delay.png create mode 100644 radio/sdcard/horus/THEMES/Darkblue/mask_textline_delayslow.png create mode 100644 radio/sdcard/horus/THEMES/Darkblue/mask_textline_fm.png create mode 100644 radio/sdcard/horus/THEMES/Darkblue/mask_textline_label.png create mode 100644 radio/sdcard/horus/THEMES/Darkblue/mask_textline_slow.png create mode 100644 radio/sdcard/horus/THEMES/Darkblue/mask_textline_switch.png create mode 100644 radio/sdcard/horus/THEMES/Default/mask_textline_curve.png create mode 100644 radio/sdcard/horus/THEMES/Default/mask_textline_delay.png create mode 100644 radio/sdcard/horus/THEMES/Default/mask_textline_delayslow.png create mode 100644 radio/sdcard/horus/THEMES/Default/mask_textline_fm.png create mode 100644 radio/sdcard/horus/THEMES/Default/mask_textline_label.png create mode 100644 radio/sdcard/horus/THEMES/Default/mask_textline_slow.png create mode 100644 radio/sdcard/horus/THEMES/Default/mask_textline_switch.png diff --git a/radio/sdcard/horus/THEMES/Darkblue/mask_textline_curve.png b/radio/sdcard/horus/THEMES/Darkblue/mask_textline_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..050229393bed58ead11c77dbbc535edcd8290d1c GIT binary patch literal 572 zcmV-C0>k}@P)xHl&v27uENq61l$e^$L@BXTQns?SQr>_U zAg{tJQ2wlxEEUDV#)?_75DjI6q7j|DP@e9i`*a`oEYIot>HGct4)`DPdcBN9A}{_2 zexd1f3cKBow;|W-6`4#1E|&|IpAOw_H{9=cT(4K$?|1ZiJ?!^;WV2b|@B5C&BNvMW zPp8w<8;{2f1Ofy=0QCF)91I3bBods>W_&_cs}*y(9Bnom0Z6#%f^Zqey<006QqKi|ja^8o-3hr`1lNlnuz2m+VOP*IU0>9iXtURV!z-2l6@=|3jlzoY5(j=GMR+a>4YRnNTpI=GRtPO0RV(T zp`Z5dMNddD82lZ?;c!5br1v3)VL+B;2!ilFV8l6Rbuvka{0000< KMNUMnLSTYxbnqqs literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Darkblue/mask_textline_delay.png b/radio/sdcard/horus/THEMES/Darkblue/mask_textline_delay.png new file mode 100644 index 0000000000000000000000000000000000000000..9b771a94a91ca98231f47029388fbcd943a2e9ad GIT binary patch literal 630 zcmV-+0*U>JP)jK~yM_jgmi0>Twvw&;4N~1iyyVpNlkTgCSvoxTKR)FF>MK z&?c?Eg4U)8S^}ZP^@|8DHkr6cBB<4nLqP@x{)tpR4RO0!m&-lyEYCTIhv#s#wY7z$ z|C;UXZCv4SSdB(Qwr$JpcI!I;jYcC)CKJVCF}b4As5~Bzj*pLjh`(ZIXGiIDTGntl zlx^E{WWV3n+uPgR&bDn0hePT5`WnY^Xt&$c>va|v7mG#b((CoUO0d2@77m9M3t>2x}HyFMdb;o#taR4PTk z-{(6zoerT;h_kb^4}&p=NF>5wFaV%XD6qc1PBNL~>FEi8o0}WFUN7Bl7iF_qj*gB1 zxV*f??RI~bEgFsT{QL|+I-Mq;&*QRfTaS;AlB8O#rc5R?7fPj4(eCc99v&XFva+II zdwYB2^LZ^VFKc08;jhJeeSOtrGSUA2zFe(VOVjC8FE20uY^!BiYBrmC2XdN|ds>Ws Q*#H0l07*qoM6N<$g0L1E*Z=?k literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Darkblue/mask_textline_delayslow.png b/radio/sdcard/horus/THEMES/Darkblue/mask_textline_delayslow.png new file mode 100644 index 0000000000000000000000000000000000000000..de2f7d1f74e2c2f88c1ab8831352f35c30abd7db GIT binary patch literal 891 zcmV->1BCpEP)Mp^L__3M zYY>zWQL}`Ev?#QMLIoK_LsJkDAry#2IBB25ttCiP9J&_X|9OX(r}u%Ehvx@pJcq;K zpr@yY0RE^%B0-PG!?Uw9{z6q%_V@Qw_WS*qot?$V$O!7{>hOy~p@2vvf|;2aWV2bM zQYrX+J^;YS#|IQefvnT%Fh4&JyWNhbrzdEd2D{x3olb|t!$auxdbnIJ#N+Xw;9{|e zrluw!o6T}!VuG1Wh7Ao31i+1r4aVbfuCA_l}fR@yPLAp=|nIX z#QOR=_V)Jh`1puov5337JA^_ZXqpDA)e580h+HlQhr@wlu?W3h4+#LgUN2&?7%nd_ z;rIIi0Et8b+uPf4xmV{{Oz8*ySv=q-)D1k zGjq8dNpf*j$w^?KRZ*vND`O_CHs&}Oso;o*U}xw+x>^))9aCuuU7I6gkk z>FH@Yole%**VAAy@Z#d)C-C_An1h3ZBuTWkw$f}i(`K{LYPHg0v9PPFi*C1@kw}E) za+%-X-+X?4W;h&XXJ;ofnascDv9U3lOs4)l-d9Q literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Darkblue/mask_textline_fm.png b/radio/sdcard/horus/THEMES/Darkblue/mask_textline_fm.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a2c4a32f57a93c19850fe669bdee4dfef3390c GIT binary patch literal 755 zcmV+g z0HsnXeSLi?91g2mtxA$cMn-gYcBY-39RUJ#d3mX=tu3D`m5KtEWdTqsm2h2`bUIC; zQ1Cl)90%LB{mmW6;b-QDeTnCJ6pKYH%km5Tk@WWV5{*Xvp`oE6dU|?%=KcL$p-@PG zmY0{cx3{N>i3v&4?d`3i(WoS8etuqn;_M*#fJR406$phwzO_=RkVquBxVQkI zudk2i=VxADU+M4f2jK4R4oN=W+}seTR;yfJUjvXzr8qx7Cz(tFaCLP>XJ;p^t*sm# z9RZL|r)g+t@Hvyo5I8(ML=pg|Y5q}MKA*?3EIvLyC>D$UUvgcSlamvl13xd((a}LN znWRuCV49{cF-?=x(^KBw-u$8C<6}NQKYhlwZ2_8|o|fl%G7Lix4-b;0cs#Chxvcf| zbpdK@Y}Cuki&j@x1t=H{%5`1+m(6CeEDOuBD3{B0b#>9*-Oc^|J&%u%3=a?U^z=k7 zm!qYn1;a3yoSY<=%V8J>&CSj5`x-YkHngy?AW7QZ-qy^_%)ejp-%713zm0=~gKBGQ lQzQ~mQ&W?6cX#XBNdb5;NV002ovPDHLkV1jsAPW}J@ literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Darkblue/mask_textline_label.png b/radio/sdcard/horus/THEMES/Darkblue/mask_textline_label.png new file mode 100644 index 0000000000000000000000000000000000000000..8be12e39bcba3dbd933f9f148f56063f5a9afd6a GIT binary patch literal 492 zcmV$_90eMM8 zK~y-)t&^{-!eA7J-^u<3Wr#&grWFwkrp+Q2%WNhUF^WI_1<`1<8AU;GAjm+lDOgQ{ zFoUq5ScDDXH5ukE*NuB0IPit}5;gCUiOGE%jCX?7~Hc(X+ zj^m)&YzEqT@qLKL<5;iPP*oL{Wue#W`IZQuzxaGUBbUp;vaGL9kh@0Jd%8 i@p$-aMHGLQ1my*Dy0TEzHs2or00008e_57)8oa@!KbmMDNJBz*h@inCC`_Uj zmxds6hz1)QgNPObhn5O*i3lQ+NQi_62OFv(sG&3poC-2AtjN62JA8Z>Uf!hxXE^X2 z&civ#FAxfaH`uh6B#4q6U`N(FohJJf{OOKVzF3cZf;K8Znun%j!L85ZeOxmtt>Auv$wa$ z?(QxolL?Q4l#PuIEEWsVXq45} zRim(lg$2&f&(U=qfJ&u;q9~Z|@9*j8=-~A9ltd!I)6)}2M@Ou!tx+zQ0SE*F6pKYv zRW;gH6a~}Q*B7s^uheQa^7%ZOOoq$LOL}{IDHI9-)M_kKma(xhQ4~c&p^!{YPKu^!Vm6z_;c!SMlQB|Lsg(5h z_lt-~LwkF>w6wI))YL?+R^#XAhsMT6y1Tmxhr`Uy&SEy3sZ=WL?Cg+8Bse}kW?*0d t!r`zeit-nMf2gXeL?RKny}dQQ_yZIrto%OH6deEn002ovPDHLkV1nDddg=fG literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Darkblue/mask_textline_switch.png b/radio/sdcard/horus/THEMES/Darkblue/mask_textline_switch.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7d646e417cb40d27b0b2b4102aaf75bee02527 GIT binary patch literal 666 zcmV;L0%iS)P)2&CDIJmR3!&0fVOahXu)oQfc?Nn8jxm<2pEEbDv?Ob19Q&m-Jn#N|c`DOC) z@j+eJDIz>SKezOn&*wMJB%MxEMCkYXIUbLRQmI4{VK5lvY&NsN*=%;B$$UO%C={ZI z@bdDK%H!iB03eY_z-F^q=A|eKHc3$w#N%-QfMFO=+U+&~ARG>Fgn!dF-|O|DOePZm zfY<9?1Aiu4mCNM<0GOr;#p!ec0EWZi8o0l||EtN{+ZzDD?RG;sI5+?Rv|6n-@Z{tK zjYb2(U~sM0>2v@9fj|JbxVWH*@c8(6>uUeh;o%`ggoQ$Zm`07*qoM6N<$g5;w$ ABLDyZ literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Default/mask_textline_curve.png b/radio/sdcard/horus/THEMES/Default/mask_textline_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..050229393bed58ead11c77dbbc535edcd8290d1c GIT binary patch literal 572 zcmV-C0>k}@P)xHl&v27uENq61l$e^$L@BXTQns?SQr>_U zAg{tJQ2wlxEEUDV#)?_75DjI6q7j|DP@e9i`*a`oEYIot>HGct4)`DPdcBN9A}{_2 zexd1f3cKBow;|W-6`4#1E|&|IpAOw_H{9=cT(4K$?|1ZiJ?!^;WV2b|@B5C&BNvMW zPp8w<8;{2f1Ofy=0QCF)91I3bBods>W_&_cs}*y(9Bnom0Z6#%f^Zqey<006QqKi|ja^8o-3hr`1lNlnuz2m+VOP*IU0>9iXtURV!z-2l6@=|3jlzoY5(j=GMR+a>4YRnNTpI=GRtPO0RV(T zp`Z5dMNddD82lZ?;c!5br1v3)VL+B;2!ilFV8l6Rbuvka{0000< KMNUMnLSTYxbnqqs literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Default/mask_textline_delay.png b/radio/sdcard/horus/THEMES/Default/mask_textline_delay.png new file mode 100644 index 0000000000000000000000000000000000000000..9b771a94a91ca98231f47029388fbcd943a2e9ad GIT binary patch literal 630 zcmV-+0*U>JP)jK~yM_jgmi0>Twvw&;4N~1iyyVpNlkTgCSvoxTKR)FF>MK z&?c?Eg4U)8S^}ZP^@|8DHkr6cBB<4nLqP@x{)tpR4RO0!m&-lyEYCTIhv#s#wY7z$ z|C;UXZCv4SSdB(Qwr$JpcI!I;jYcC)CKJVCF}b4As5~Bzj*pLjh`(ZIXGiIDTGntl zlx^E{WWV3n+uPgR&bDn0hePT5`WnY^Xt&$c>va|v7mG#b((CoUO0d2@77m9M3t>2x}HyFMdb;o#taR4PTk z-{(6zoerT;h_kb^4}&p=NF>5wFaV%XD6qc1PBNL~>FEi8o0}WFUN7Bl7iF_qj*gB1 zxV*f??RI~bEgFsT{QL|+I-Mq;&*QRfTaS;AlB8O#rc5R?7fPj4(eCc99v&XFva+II zdwYB2^LZ^VFKc08;jhJeeSOtrGSUA2zFe(VOVjC8FE20uY^!BiYBrmC2XdN|ds>Ws Q*#H0l07*qoM6N<$g0L1E*Z=?k literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Default/mask_textline_delayslow.png b/radio/sdcard/horus/THEMES/Default/mask_textline_delayslow.png new file mode 100644 index 0000000000000000000000000000000000000000..de2f7d1f74e2c2f88c1ab8831352f35c30abd7db GIT binary patch literal 891 zcmV->1BCpEP)Mp^L__3M zYY>zWQL}`Ev?#QMLIoK_LsJkDAry#2IBB25ttCiP9J&_X|9OX(r}u%Ehvx@pJcq;K zpr@yY0RE^%B0-PG!?Uw9{z6q%_V@Qw_WS*qot?$V$O!7{>hOy~p@2vvf|;2aWV2bM zQYrX+J^;YS#|IQefvnT%Fh4&JyWNhbrzdEd2D{x3olb|t!$auxdbnIJ#N+Xw;9{|e zrluw!o6T}!VuG1Wh7Ao31i+1r4aVbfuCA_l}fR@yPLAp=|nIX z#QOR=_V)Jh`1puov5337JA^_ZXqpDA)e580h+HlQhr@wlu?W3h4+#LgUN2&?7%nd_ z;rIIi0Et8b+uPf4xmV{{Oz8*ySv=q-)D1k zGjq8dNpf*j$w^?KRZ*vND`O_CHs&}Oso;o*U}xw+x>^))9aCuuU7I6gkk z>FH@Yole%**VAAy@Z#d)C-C_An1h3ZBuTWkw$f}i(`K{LYPHg0v9PPFi*C1@kw}E) za+%-X-+X?4W;h&XXJ;ofnascDv9U3lOs4)l-d9Q literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Default/mask_textline_fm.png b/radio/sdcard/horus/THEMES/Default/mask_textline_fm.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a2c4a32f57a93c19850fe669bdee4dfef3390c GIT binary patch literal 755 zcmV+g z0HsnXeSLi?91g2mtxA$cMn-gYcBY-39RUJ#d3mX=tu3D`m5KtEWdTqsm2h2`bUIC; zQ1Cl)90%LB{mmW6;b-QDeTnCJ6pKYH%km5Tk@WWV5{*Xvp`oE6dU|?%=KcL$p-@PG zmY0{cx3{N>i3v&4?d`3i(WoS8etuqn;_M*#fJR406$phwzO_=RkVquBxVQkI zudk2i=VxADU+M4f2jK4R4oN=W+}seTR;yfJUjvXzr8qx7Cz(tFaCLP>XJ;p^t*sm# z9RZL|r)g+t@Hvyo5I8(ML=pg|Y5q}MKA*?3EIvLyC>D$UUvgcSlamvl13xd((a}LN znWRuCV49{cF-?=x(^KBw-u$8C<6}NQKYhlwZ2_8|o|fl%G7Lix4-b;0cs#Chxvcf| zbpdK@Y}Cuki&j@x1t=H{%5`1+m(6CeEDOuBD3{B0b#>9*-Oc^|J&%u%3=a?U^z=k7 zm!qYn1;a3yoSY<=%V8J>&CSj5`x-YkHngy?AW7QZ-qy^_%)ejp-%713zm0=~gKBGQ lQzQ~mQ&W?6cX#XBNdb5;NV002ovPDHLkV1jsAPW}J@ literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Default/mask_textline_label.png b/radio/sdcard/horus/THEMES/Default/mask_textline_label.png new file mode 100644 index 0000000000000000000000000000000000000000..8be12e39bcba3dbd933f9f148f56063f5a9afd6a GIT binary patch literal 492 zcmV$_90eMM8 zK~y-)t&^{-!eA7J-^u<3Wr#&grWFwkrp+Q2%WNhUF^WI_1<`1<8AU;GAjm+lDOgQ{ zFoUq5ScDDXH5ukE*NuB0IPit}5;gCUiOGE%jCX?7~Hc(X+ zj^m)&YzEqT@qLKL<5;iPP*oL{Wue#W`IZQuzxaGUBbUp;vaGL9kh@0Jd%8 i@p$-aMHGLQ1my*Dy0TEzHs2or00008e_57)8oa@!KbmMDNJBz*h@inCC`_Uj zmxds6hz1)QgNPObhn5O*i3lQ+NQi_62OFv(sG&3poC-2AtjN62JA8Z>Uf!hxXE^X2 z&civ#FAxfaH`uh6B#4q6U`N(FohJJf{OOKVzF3cZf;K8Znun%j!L85ZeOxmtt>Auv$wa$ z?(QxolL?Q4l#PuIEEWsVXq45} zRim(lg$2&f&(U=qfJ&u;q9~Z|@9*j8=-~A9ltd!I)6)}2M@Ou!tx+zQ0SE*F6pKYv zRW;gH6a~}Q*B7s^uheQa^7%ZOOoq$LOL}{IDHI9-)M_kKma(xhQ4~c&p^!{YPKu^!Vm6z_;c!SMlQB|Lsg(5h z_lt-~LwkF>w6wI))YL?+R^#XAhsMT6y1Tmxhr`Uy&SEy3sZ=WL?Cg+8Bse}kW?*0d t!r`zeit-nMf2gXeL?RKny}dQQ_yZIrto%OH6deEn002ovPDHLkV1nDddg=fG literal 0 HcmV?d00001 diff --git a/radio/sdcard/horus/THEMES/Default/mask_textline_switch.png b/radio/sdcard/horus/THEMES/Default/mask_textline_switch.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7d646e417cb40d27b0b2b4102aaf75bee02527 GIT binary patch literal 666 zcmV;L0%iS)P)2&CDIJmR3!&0fVOahXu)oQfc?Nn8jxm<2pEEbDv?Ob19Q&m-Jn#N|c`DOC) z@j+eJDIz>SKezOn&*wMJB%MxEMCkYXIUbLRQmI4{VK5lvY&NsN*=%;B$$UO%C={ZI z@bdDK%H!iB03eY_z-F^q=A|eKHc3$w#N%-QfMFO=+U+&~ARG>Fgn!dF-|O|DOePZm zfY<9?1Aiu4mCNM<0GOr;#p!ec0EWZi8o0l||EtN{+ZzDD?RG;sI5+?Rv|6n-@Z{tK zjYb2(U~sM0>2v@9fj|JbxVWH*@c8(6>uUeh;o%`ggoQ$Zm`07*qoM6N<$g5;w$ ABLDyZ literal 0 HcmV?d00001 diff --git a/radio/src/gui/horus/bitmaps.cpp b/radio/src/gui/horus/bitmaps.cpp index ef14a758c..2e9996ae4 100644 --- a/radio/src/gui/horus/bitmaps.cpp +++ b/radio/src/gui/horus/bitmaps.cpp @@ -193,3 +193,11 @@ BitmapBuffer * mixerSetupOutputBitmap = NULL; BitmapBuffer * mixerSetupAddBitmap = NULL; BitmapBuffer * mixerSetupMultiBitmap = NULL; BitmapBuffer * mixerSetupReplaceBitmap = NULL; +BitmapBuffer * mixerSetupLabelBitmap = NULL; +BitmapBuffer * mixerSetupCurveBitmap = NULL; +BitmapBuffer * mixerSetupSwitchBitmap = NULL; +BitmapBuffer * mixerSetupDelayBitmap = NULL; +BitmapBuffer * mixerSetupSlowBitmap = NULL; +BitmapBuffer * mixerSetupDelaySlowBitmap = NULL; +BitmapBuffer * mixerSetupFlightmodeBitmap = NULL; + diff --git a/radio/src/gui/horus/bitmaps.h b/radio/src/gui/horus/bitmaps.h index 9d4361f76..6bea462f7 100644 --- a/radio/src/gui/horus/bitmaps.h +++ b/radio/src/gui/horus/bitmaps.h @@ -88,5 +88,12 @@ extern BitmapBuffer * mixerSetupOutputBitmap; extern BitmapBuffer * mixerSetupAddBitmap; extern BitmapBuffer * mixerSetupMultiBitmap; extern BitmapBuffer * mixerSetupReplaceBitmap; +extern BitmapBuffer * mixerSetupLabelBitmap; +extern BitmapBuffer * mixerSetupFlightmodeBitmap; +extern BitmapBuffer * mixerSetupCurveBitmap; +extern BitmapBuffer * mixerSetupSwitchBitmap; +extern BitmapBuffer * mixerSetupDelayBitmap; +extern BitmapBuffer * mixerSetupSlowBitmap; +extern BitmapBuffer * mixerSetupDelaySlowBitmap; #endif // _BITMAPS_H_ diff --git a/radio/src/gui/horus/lcd.h b/radio/src/gui/horus/lcd.h index bd48ab4df..ec10b7f17 100644 --- a/radio/src/gui/horus/lcd.h +++ b/radio/src/gui/horus/lcd.h @@ -267,6 +267,7 @@ void lcdSetContrast(); #define BLINK_ON_PHASE (0) #else #define BLINK_ON_PHASE (g_blinkTmr10ms & (1<<6)) + #define SLOW_BLINK_ON_PHASE (g_blinkTmr10ms & (1<<7)) #endif #endif // _LCD_H_ diff --git a/radio/src/gui/horus/menu_model_mixes.cpp b/radio/src/gui/horus/menu_model_mixes.cpp index c3645df39..65fb06a22 100644 --- a/radio/src/gui/horus/menu_model_mixes.cpp +++ b/radio/src/gui/horus/menu_model_mixes.cpp @@ -270,14 +270,15 @@ bool menuModelMixOne(evt_t event) #define _STR_MAX(x) PSTR("/" #x) #define STR_MAX(x) _STR_MAX(x) -#define MIX_LINE_WEIGHT_POS 110 -#define MIX_LINE_SRC_POS 115 -#define MIX_LINE_CURVE_POS 165 -#define MIX_LINE_SWITCH_POS 230 -#define MIX_LINE_DELAY_POS 270 -#define MIX_LINE_FM_POS 290 -#define MIX_LINE_NAME_POS 405 -#define MIX_LINE_SELECT_POS 50 +#define MIX_LINE_WEIGHT_POS 105 +#define MIX_LINE_SRC_POS 120 +#define MIX_LINE_CURVE_ICON 175 +#define MIX_LINE_CURVE_POS 195 +#define MIX_LINE_SWITCH_ICON 260 +#define MIX_LINE_SWITCH_POS 280 +#define MIX_LINE_DELAY_SLOW_POS 340 +#define MIX_LINE_NAME_FM_ICON 370 +#define MIX_LINE_NAME_FM_POS 390 #define MIX_LINE_SELECT_POS 50 #define MIX_LINE_SELECT_WIDTH (LCD_W-MIX_LINE_SELECT_POS-15) #define MIX_STATUS_MARGIN_LEFT MENUS_MARGIN_LEFT + 45 @@ -322,20 +323,51 @@ void onMixesMenu(const char * result) void displayMixInfos(coord_t y, MixData *md) { + if (md->curve.value != 0 ) lcd->drawBitmap(MIX_LINE_CURVE_ICON, y + 2, mixerSetupCurveBitmap); putsCurveRef(MIX_LINE_CURVE_POS, y, md->curve); if (md->swtch) { + lcd->drawBitmap(MIX_LINE_SWITCH_ICON, y + 2, mixerSetupSwitchBitmap); putsSwitches(MIX_LINE_SWITCH_POS, y, md->swtch); } } +void displayMixSmallFlightModes(coord_t x, coord_t y, FlightModesType value) +{ + for (int i=0; idrawFilledRect(x, y+2, 8, 12 , SOLID, CURVE_AXIS_COLOR); + lcdDrawText(x, y, s, SMLSIZE); + x += 8; + } +} + void displayMixLine(coord_t y, MixData *md) { - if (md->name[0]) { - lcdDrawSizedText(MIX_LINE_NAME_POS, y+2, md->name, sizeof(md->name), ZCHAR | SMLSIZE); + if (md->name[0] && md->flightModes) + { + if (SLOW_BLINK_ON_PHASE) { + lcd->drawBitmap(MIX_LINE_NAME_FM_ICON, y + 2, mixerSetupFlightmodeBitmap); + displayMixSmallFlightModes(MIX_LINE_NAME_FM_POS, y + 2, md->flightModes); + } + else { + lcd->drawBitmap(MIX_LINE_NAME_FM_ICON, y + 2, mixerSetupLabelBitmap); + lcdDrawSizedText(MIX_LINE_NAME_FM_POS, y, md->name, sizeof(md->name), ZCHAR); + } + } + else + { + if (md->name[0]) { + lcd->drawBitmap(MIX_LINE_NAME_FM_ICON, y + 2, mixerSetupLabelBitmap); + lcdDrawSizedText(MIX_LINE_NAME_FM_POS, y, md->name, sizeof(md->name), ZCHAR); + } + if (md->flightModes) { + lcd->drawBitmap(MIX_LINE_NAME_FM_ICON, y + 2, mixerSetupFlightmodeBitmap); + displayMixSmallFlightModes(MIX_LINE_NAME_FM_POS, y + 2, md->flightModes); + } } displayMixInfos(y, md); - displayFlightModes(MIX_LINE_FM_POS, y, md->flightModes, 0); } void displayMixStatus(uint8_t channel) @@ -523,12 +555,13 @@ bool menuModelMixAll(evt_t event) displayMixLine(y, md); - char cs[] = " "; + BitmapBuffer * delayslow = 0; if (md->speedDown || md->speedUp) - cs[0] = 'S'; + delayslow = mixerSetupSlowBitmap; if (md->delayUp || md->delayDown) - cs[0] = (cs[0] =='S' ? '*' : 'D'); - lcdDrawText(MIX_LINE_DELAY_POS, y, cs); + delayslow = (delayslow ? mixerSetupDelaySlowBitmap : mixerSetupDelayBitmap ); + if (delayslow) + lcd->drawBitmap(MIX_LINE_DELAY_SLOW_POS, y + 2, delayslow); if (s_copyMode) { if ((s_copyMode==COPY_MODE || s_copyTgtOfs == 0) && s_copySrcCh == ch && i == (s_copySrcIdx + (s_copyTgtOfs<0))) { diff --git a/radio/src/gui/horus/themes/darkblue.cpp b/radio/src/gui/horus/themes/darkblue.cpp index 997d2fc6a..8f29702a9 100644 --- a/radio/src/gui/horus/themes/darkblue.cpp +++ b/radio/src/gui/horus/themes/darkblue.cpp @@ -145,6 +145,27 @@ class DarkblueTheme: public Theme delete mixerSetupReplaceBitmap; mixerSetupReplaceBitmap = BitmapBuffer::loadMaskOnBackground("mask_mplex_replace.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupLabelBitmap; + mixerSetupLabelBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_label.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupCurveBitmap; + mixerSetupCurveBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_curve.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupSwitchBitmap; + mixerSetupSwitchBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_switch.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupSlowBitmap; + mixerSetupSlowBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_slow.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupDelayBitmap; + mixerSetupDelayBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_delay.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupDelaySlowBitmap; + mixerSetupDelaySlowBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_delayslow.png", TEXT_BGCOLOR, TEXT_COLOR); + + delete mixerSetupFlightmodeBitmap; + mixerSetupFlightmodeBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_fm.png", TEXT_COLOR, TEXT_BGCOLOR); } virtual void load() const diff --git a/radio/src/gui/horus/themes/default.cpp b/radio/src/gui/horus/themes/default.cpp index 6bac0c825..f945a990f 100644 --- a/radio/src/gui/horus/themes/default.cpp +++ b/radio/src/gui/horus/themes/default.cpp @@ -201,6 +201,26 @@ class DefaultTheme: public Theme delete mixerSetupReplaceBitmap; mixerSetupReplaceBitmap = BitmapBuffer::loadMaskOnBackground("mask_mplex_replace.png", TEXT_COLOR, TEXT_BGCOLOR); + delete mixerSetupLabelBitmap; + mixerSetupLabelBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_label.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupCurveBitmap; + mixerSetupCurveBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_curve.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupSwitchBitmap; + mixerSetupSwitchBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_switch.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupFlightmodeBitmap; + mixerSetupFlightmodeBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_fm.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupSlowBitmap; + mixerSetupSlowBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_slow.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupDelayBitmap; + mixerSetupDelayBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_delay.png", TEXT_COLOR, TEXT_BGCOLOR); + + delete mixerSetupDelaySlowBitmap; + mixerSetupDelaySlowBitmap = BitmapBuffer::loadMaskOnBackground("mask_textline_delayslow.png", TEXT_BGCOLOR, TEXT_COLOR); } virtual void load() const