From bff45a4b2a3f42855d9ce266c08755095d92d042 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 22 Mar 2016 22:43:00 +0100 Subject: [PATCH] [Horus] Tx battery and audio volume added in the topbar --- radio/src/bitmaps/horus/CMakeLists.txt | 3 +- radio/src/bitmaps/horus/mask_txbat.png | Bin 0 -> 601 bytes .../bitmaps/horus/volume/mask_volume_0.png | Bin 0 -> 866 bytes .../bitmaps/horus/volume/mask_volume_1.png | Bin 0 -> 833 bytes .../bitmaps/horus/volume/mask_volume_2.png | Bin 0 -> 922 bytes .../bitmaps/horus/volume/mask_volume_3.png | Bin 0 -> 1012 bytes .../bitmaps/horus/volume/mask_volume_4.png | Bin 0 -> 1213 bytes .../horus/volume/mask_volume_scale.png | Bin 0 -> 604 bytes radio/src/gui/horus/bitmaps.cpp | 28 ++++++++++++++++++ radio/src/gui/horus/bitmaps.h | 7 +++++ radio/src/gui/horus/gui.h | 4 +-- radio/src/gui/horus/topbar.cpp | 26 ++++++++++++++-- radio/src/gui/horus/topbar.h | 2 +- radio/src/gui/taranis/view_main.cpp | 7 +++-- 14 files changed, 68 insertions(+), 9 deletions(-) create mode 100644 radio/src/bitmaps/horus/mask_txbat.png create mode 100644 radio/src/bitmaps/horus/volume/mask_volume_0.png create mode 100644 radio/src/bitmaps/horus/volume/mask_volume_1.png create mode 100644 radio/src/bitmaps/horus/volume/mask_volume_2.png create mode 100644 radio/src/bitmaps/horus/volume/mask_volume_3.png create mode 100644 radio/src/bitmaps/horus/volume/mask_volume_4.png create mode 100644 radio/src/bitmaps/horus/volume/mask_volume_scale.png diff --git a/radio/src/bitmaps/horus/CMakeLists.txt b/radio/src/bitmaps/horus/CMakeLists.txt index 4b32dcc23..d73c6f533 100644 --- a/radio/src/bitmaps/horus/CMakeLists.txt +++ b/radio/src/bitmaps/horus/CMakeLists.txt @@ -16,4 +16,5 @@ add_bitmaps_target(horus_slider_masks "${RADIO_SRC_DIRECTORY}/bitmaps/horus/slid add_bitmaps_target(horus_layouts_masks "${RADIO_SRC_DIRECTORY}/gui/horus/layouts/*.png" 480 8bits) add_bitmaps_target(horus_themes_bitmaps "${RADIO_SRC_DIRECTORY}/gui/horus/themes/*.png" 480 5/6/5) add_bitmaps_target(horus_fonts ${RADIO_SRC_DIRECTORY}/fonts/horus/*.png 480 8bits) -add_dependencies(horus_bitmaps horus_calibration_bitmaps horus_alpha_bitmaps horus_alpha_calibration_bitmaps horus_masks horus_slider_masks horus_themes_bitmaps horus_layouts_masks horus_fonts) +add_bitmaps_target(horus_volume_masks ${RADIO_SRC_DIRECTORY}/bitmaps/horus/volume/*.png 480 8bits) +add_dependencies(horus_bitmaps horus_volume_masks horus_calibration_bitmaps horus_alpha_bitmaps horus_alpha_calibration_bitmaps horus_masks horus_slider_masks horus_themes_bitmaps horus_layouts_masks horus_fonts) diff --git a/radio/src/bitmaps/horus/mask_txbat.png b/radio/src/bitmaps/horus/mask_txbat.png new file mode 100644 index 0000000000000000000000000000000000000000..fd59391909622330e0a5cfd8db19de74edd4a0c3 GIT binary patch literal 601 zcmV-f0;c_mP)|W zK~zY`y_K)4B2gHI-#If1PH+bd2Ad{}1_cdjFe!prtI=W*3?hi=pJ2BLMiERCjDkT$ zWQvC224RDvXRaWK;J3jadtGnZ9ru9)GjQPf-Z|fyPavWX06*}I_~n@ZTwpDxbdx^B zhGAenpW|>i000z4K_C!-%jL3GO+=h-Y`0rVCX;ka`B<4uhB$w0vjWb(7I8kGF&>X! ziknWSIGs+G2A2L5-*LHIu-om|O_GFsJ`bDC_D`}{EQVUG_FKGOuTd(MP^nZPir2n! zI-Qu!W|pQ*rBV+uh=>;o1p+|LW|NA=A^{+u&qr1hi9{Y}49>YJ%Q68Vx7$tKZkLwJ zC51vE%f+%Rli%+rUDrR^X0s8F$0LHlAga|WR8>Vd90uncR>K%WB9Xvuw-eaCk$Sxz zMxznp@i@xmGTsdXfMha>;c$q-V1RnPj!Y)=cCiEis;Z*ZYC+R9q*5vL`~A1bE|&`o z!??a^n)V5Ryk0Lg8V$;3vm}b*Te{lg@elwqP1D4Fzc(EY$IEZ>-PcJ{6oqoR96FuO z^Y}1LwA<}(JCiZ?SD#uCgy$i#TCFIZP7`D7CApPrGMPLQ3q-{4V^P<2EEbDzD~(2@ naJ$`>&0~RxegaVNf8oCX(5aUEEgtrK00000NkvXXu0mjfkZ%43 literal 0 HcmV?d00001 diff --git a/radio/src/bitmaps/horus/volume/mask_volume_0.png b/radio/src/bitmaps/horus/volume/mask_volume_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ae5b6ae75208a016d87cde1a4aa80d66b4ca50 GIT binary patch literal 866 zcmV-o1D*VdP)U1lFff3}$H(s>^OJO4XKQOK4a4Bs*%^buAj9D>Ez4pg5@B0g8%@*vY%5s5 zfS;eAsVE8!!=R>V1dy-h=4M`8TyT4Pn}dUc-v`cSvkZkoTwPt|^z`&E(4SRaUe07P z$-cfmCX>nH!HGnIkw}Cc9UZ*Czh^~71p!b|6t1tY)93T$;gge-JUBRDAP^`X+}PO2 z{r!D*cXu-uixB{2S!OnyrPJx;+}s?uwzk;W*-2TJX;~I~dwYulJ8av=&CLy}tE(YN z5=_$s0H~@8Q54~Fx!`iSFgiL4P1E4@dU1Jq2~E=w2n0}7RfY5O^MWt62w;Z zs)8ii+uPywdLhd)Zf|c93b7!HSddU{H?+f4wRpP%Q{)D!`* zw6v7N!^8R5*Vfj)6!mXl%d*(h)5G!calXC1@$T-98yg#WsIKdLeSPKP;vxZ16h$5% z9~TcM$y_eSg@pyy)zz`Tzn?ohJM?%w)ODSiOeVi>d3l*FEiJsdx+)kfkbnP=ZQI86 s^)+5zUf_1SA&TPH&-9c275rc7AJYu^c)o-TVE_OC07*qoM6N<$f+o#>@&Et; literal 0 HcmV?d00001 diff --git a/radio/src/bitmaps/horus/volume/mask_volume_1.png b/radio/src/bitmaps/horus/volume/mask_volume_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6fe0636ba2bfa7bd0851b1fea553d2c14cda8818 GIT binary patch literal 833 zcmV-H1HSx;P)g~!K6-ENDbqq@e&#@QR8J& zN|T+P4P_~R1EpqTIi+ld#aY?Rf@sQuh;%S0lS2~?4;c*2eDCJoxm>#Gp6Pz;**x_; zpXc}VyhtSD0BrcbxmSLopWtjZi)b{8jg1XB91eKBUewms=1rEr>Rex6M@2;i=H}*L zx7#6v!1(w$Mn*<(cXyW`nWW&mL?RK^*VofDO`e{fa(;fE3kwT;etu>+9A;Zv8-@5V zQmzOy@I+{N?lgTg?3UPLJmNPRmAJAW| zxVV^xVQ^qzfQN^N*5UpAeJ(C8vbVRFH#awQI-LZ->gsBSLLv6_^yKiVsVT0mu5x;M z+B)3Y+Dcv5+27yK&CN{$U}?J>R~J-Og{EoP+uK7R5C8yNTwLJz_!#MQ+R~wx-`?JkOeW!UI+4j_psFeW z;QIO+0HEtSc6N4Pnr3d0q9~B%FK^=aVO3R8Q&WTO?QIkk6ri!O5wa{}ZEX$FXcUEo zg%CnuWn~2bAW0HRN=hI}k~J6rd_Es^T}N|sGY$?8;P?9h0PXGV@Or(ds;a{I`8fc< z@Ao4Xi=ncz(h>}kBAHAw5D3sP40d#MFdmQ7X0v^|PDMpU+}+*f(9jSK!?1q191aJT zmX_dhxzOF+jc_=Ot*tGzw6x?F=ytmii9~R8bOc3F;BvXFSNwh{>2#WXeSI7o8)GV! z;_dA%&(6;H^z_7FFv!l%PCh(5SgDr$^U3^`Y&OeaFvzm9GB!0ead2>u<>lp^n3&+> zoaKRxY!{PLv&pRumCwF%%hz#&0tAqy65`;dxpX&r`q0)AO$H+^Z{`FsSDmjDd-ze%nu5O!>p;PVLTq^+1VNA=H}@4`}z9%%0M8%=H_O~ za!$zKNX`ML(`nl6cHZ3FaBOUh0J5*Tx|*?AjKN@#LqkK~1`8x*00vc6;rIKINF+cK zUa$9)JB5XX*xug8`1m-cr>CJP3X;hroKB}!qmv*hA08fZadDBIot?bDzo*%3CID7e zR&rrsfgK$k+0MOQFW1)AI59E7U@%BYlBg)k-&x(%)WlFI#P05HZf$K50E>%@`S$ik ztJTW>{(jo+b^@RzNlc|ubh%tqRh2fIjkB|}n!!2%I6XauBuM~(+uK_JKwDcI^m;uc zNy5Rw0X!ZL0O0EC3MVHgP!t7%AYgKG5>r!CNT<`9yw<(Hzax=Iz-%@nlgU7@*8>3V z?(P5pp->2WdwYn-em-Pb#`5wq06-7~6crUg5QJ=!!NEbStgL7Q1AxorLMRkMLqh|Oj*j4V zy8!?#EiG_39H^+Mz{SM{0Kn~bBNmIHyu3V{WOa2FMx#*^7$oIHB0-PG!)P>0r_;&H z%S##zhMYYHz=DDT?(grjx3`zkXf$V9GMS9_;WC*_SXx?w#bQBwdpiPw0CskE(Ae0R zEzoMUA{-9m`1ly2D8gc~Y7RaN?YK9-b}u)e;YJv}`vEiL8f=qR6`pT7$wKc39rITDY@ waeaM_+S*!(qNvTz-zzDQyak|fB)={B2S(3gIdZz>9RL6T07*qoM6N<$f_5vczyJUM literal 0 HcmV?d00001 diff --git a/radio/src/bitmaps/horus/volume/mask_volume_3.png b/radio/src/bitmaps/horus/volume/mask_volume_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb9421f21cf7b9e391c155ec83710710da69c2b GIT binary patch literal 1012 zcmVc}&8!v8awB(K zP%hfEbpMdEj2ZjZnvAQt*tydI^yo`E}c#%Npfy(jsV!z z)%AVw{{B7}78a<}>FD?SsZb~gfCU8wv|6ofYHEtZ2L}hay1L4tp&{CAHY$}$Mj{cC zWOH*f0np)ad=Fe%SxLLyPQ6}Fm&-)}%*e>#>+363Diuv86H7`;2!KkZlA%zDTCJ9` zSd4{*g`Aq2B1xW~pEEf*nN?L)UxFn7aB^}2rBVq1@cDcIfcpA+Bqb$5sZ?TbZx3d( z831s7eU0PeV?-hm2!eo-kr9lJjv^cmBRe}ACX)%9o0~W|I7m3ulDD@v+}+(lp->@_=dkX-t+wIui-iFufjVDQ^Qb;6!ZDMo<5(C5{ZNWxW2wllDxXQVpdib0ZPhCss1xEJUmQ`#X^tALyblghpJR6x?Ct`5w^6nu&1Yop-_nT_xC(IJLB{7Gbbk}Syxxb$H&J{!Qa$JFiFN@ zF-}fSGBY!iWo2bF8jZ}#%3^gUwBNu00000zQ&EJjT% z#cU<+6hx?1(Xtk`uti8A6=Vg0$SkIo24#Mr8||BkCi~E4WN=VsqEV;eo!{Nu-l);K z7cTb?XK^^s^Zd^9aQ++vn33ev|EswDZ)gTMola|PY)m5~Bg)CiQDtSNN=i!pQB~74 zb>qej6&4oC>-DZ41jP77Po6xXprC-`$B%RM>QydYyhuew1t(9QWN~rv*YFIDj*cP; z!!Q^c8d@zRmH~eF@FBZ)?IIKkF+Dv^Z*MPm@7`s3d6|KM0m{qEiN!MRN;n)Q91a5z zjYi4I$w3l@g@r6FE&U$6va&*HX(@AabDTPL3Q5-5xpODMU=W|rM_XH42KdmSL*(Y> z5{*UyxO3-@m3!vQnYF>DY0}r%$K}hH>F)0S3Hp6)+_;fIAi&Y1M|tz+4bPuHXLxuR zfZMlkBZ=15R;#+#>qQdl)~#b|YAO@_^5skJ-MdFkO%2g#6qn0|B(`tgPG4UihYugN z;AhXC6G&pyrcHeN_Ko7=Vw#(qDJ?BU5^lGfL?VIL>m{8|vt!2&u3ftZz=sbXSigQf z<>loT;q>X#R@bw$vliGUN$=jhliTf8QKw6sW)K7anK zw{PDnnM}$s3|+WzL6mzmYZy;R7wjA z3v#(!GEGwsheMJyKR+)?^85XI`t+$np^%kix7%g2*(6C#O-*vSTvpMJjt)uE_3PIq zNkv6Ps;;hS}A8SFT*4rl!W)7ZnxZbUHCj69AvjXT1@h&-Y{0Uawbvzh8Uy?9uDjuT@`PFG;GZ zs#0ZTrM7L`rca+fNs{X8>lF+JwRP)OYXXCVgUZg%w)T7X?o~VBv@QrI&0|)r> z<;$Aj)zsSBYBk_+I7p>ZnP7l)I!#Yc51Th{X7}#hG&D4jpPx@xR~KKue*ITafT^h| zwrtsgBsx1g0b&La({KLcP$;BuIIOa=GTH6+wZi@=(=@fbysWIOEE$FoH-Lzw>_2Ay bw~GA*KEX)5X!RSa00000NkvXXu0mjf=4M9A literal 0 HcmV?d00001 diff --git a/radio/src/bitmaps/horus/volume/mask_volume_scale.png b/radio/src/bitmaps/horus/volume/mask_volume_scale.png new file mode 100644 index 0000000000000000000000000000000000000000..301f847dd04174671d56e4a3cd4d560ffe305789 GIT binary patch literal 604 zcmV-i0;BzjP)tGay-`w8f(4j@hkU?Au{Rsv)i=>mKuF^kH z7bmy=2}g0zp<8k2=peS#(Lm``C^TFlAY@5~HfTwoJ6xMdxXY*Sb~xwb;pIJ?&jS8P zD(h#J{QiU*1!q~N>+5S(t5tcP_w^7EV_4(y7)e-`#naQ%S0k}8a2SS!VF*AJMeOeG zB8h6X%4)UxKJd}e5w>j;MG*jZcXvoa5|@{kX2FxmgwbdO!0qiVl4!TvdEfIqBvB|7 z@O|GLxZm%yx3|ap`#S)~$Hz$G;o$**AP6XxN=TyFY?=daHXC}q9{qkFfW>0L&dv^p zhllyh#l=PL`t|kI40x*`2uRZufU~nRBr%;%0hrBZdDh)-*DQEGpL2C}1;B7PL=xxc z=Xt+guOkV^arpT7FbBTBzo*e?y-Bd3|tj zpd?8YhM^>>)oRIc97)n(Ffe<$w(eeDUa%|+NjyJ4=l#>uQzYTKE|@$ZTO~=t$;k<> z>#|%f0eF0T#Bm%XVcYiifWK0^-Oe*E7K^Oc>z@JpzR&*tK9cBkIsmZ+#QK5%ILk7n qX{u7GB+IfA3wV=M`R_}!ivI$bb&2loeFE740000drawTopbarBackground(NULL); // USB icon - if (usbPlugged()) { - lcdDrawBitmapPattern(LCD_W-102, 8, LBM_TOPMENU_USB, MENU_TITLE_COLOR); + if (1/*usbPlugged()*/) { + lcdDrawBitmapPattern(LCD_W-98, 8, LBM_TOPMENU_USB, MENU_TITLE_COLOR); } // RSSI @@ -68,6 +68,26 @@ void drawTopBar() lcdDrawSolidFilledRect(LCD_W-90 + i * 6, 38 - height, 4, height, TELEMETRY_RSSI() >= rssiBarsValue[i] ? MENU_TITLE_COLOR : MENU_TITLE_DISABLE_COLOR); } + /* Audio volume */ + lcdDrawBitmapPattern(LCD_W-130, 4, LBM_TOPMENU_VOLUME_SCALE, MENU_TITLE_DISABLE_COLOR); + if (requiredSpeakerVolume == 0 || g_eeGeneral.beepMode == e_mode_quiet) + lcdDrawBitmapPattern(LCD_W-130, 4, LBM_TOPMENU_VOLUME_0, MENU_TITLE_COLOR); + else if (requiredSpeakerVolume < 7) + lcdDrawBitmapPattern(LCD_W-130, 4, LBM_TOPMENU_VOLUME_1, MENU_TITLE_COLOR); + else if (requiredSpeakerVolume < 13) + lcdDrawBitmapPattern(LCD_W-130, 4, LBM_TOPMENU_VOLUME_2, MENU_TITLE_COLOR); + else if (requiredSpeakerVolume < 19) + lcdDrawBitmapPattern(LCD_W-130, 4, LBM_TOPMENU_VOLUME_3, MENU_TITLE_COLOR); + else + lcdDrawBitmapPattern(LCD_W-130, 4, LBM_TOPMENU_VOLUME_4, MENU_TITLE_COLOR); + + /* Tx battery */ + uint8_t bars = limit(0, 6 * (g_vbat100mV - g_eeGeneral.vBatMin - 90) / (30 + g_eeGeneral.vBatMax - g_eeGeneral.vBatMin), 5); + lcdDrawBitmapPattern(LCD_W-130, 24, LBM_TOPMENU_TXBATT, MENU_TITLE_COLOR); + for (unsigned int i = 0; i < 5; i++) { + lcdDrawSolidFilledRect(LCD_W-122+4*i, 30, 2, 8, i >= bars ? MENU_TITLE_DISABLE_COLOR : MENU_TITLE_COLOR); + } + topbar->refresh(); #if 0 diff --git a/radio/src/gui/horus/topbar.h b/radio/src/gui/horus/topbar.h index 93d8aaadf..649074f60 100644 --- a/radio/src/gui/horus/topbar.h +++ b/radio/src/gui/horus/topbar.h @@ -25,7 +25,7 @@ #define MAX_TOPBAR_ZONES 5 #define MAX_TOPBAR_OPTIONS 0 -#define TOPBAR_ZONE_WIDTH 60 +#define TOPBAR_ZONE_WIDTH 70 #define TOPBAR_ZONE_MARGIN 3 class Topbar: public WidgetsContainer diff --git a/radio/src/gui/taranis/view_main.cpp b/radio/src/gui/taranis/view_main.cpp index 9d2cf4197..261daaac5 100644 --- a/radio/src/gui/taranis/view_main.cpp +++ b/radio/src/gui/taranis/view_main.cpp @@ -273,11 +273,14 @@ void displayTopBar() } /* Audio volume */ + TRACE("%d", requiredSpeakerVolume); if (requiredSpeakerVolume == 0 || g_eeGeneral.beepMode == e_mode_quiet) LCD_ICON(BAR_VOLUME_X, BAR_Y, ICON_SPEAKER0); - else if (requiredSpeakerVolume < 10) + else if (requiredSpeakerVolume <= 6) LCD_ICON(BAR_VOLUME_X, BAR_Y, ICON_SPEAKER1); - else if (requiredSpeakerVolume < 20) + else if (requiredSpeakerVolume <= 12) + LCD_ICON(BAR_VOLUME_X, BAR_Y, ICON_SPEAKER2); + else if (requiredSpeakerVolume <= 18) LCD_ICON(BAR_VOLUME_X, BAR_Y, ICON_SPEAKER2); else LCD_ICON(BAR_VOLUME_X, BAR_Y, ICON_SPEAKER3);