From 0c17c658c113c5f19c1081c8e1a17b09ac6cdbc2 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 9 Sep 2023 13:58:21 +0100 Subject: [PATCH] Channel menu items show channel name --- firmware | Bin 167644 -> 167644 bytes firmware.bin | Bin 55340 -> 55508 bytes firmware.packed.bin | Bin 55358 -> 55526 bytes settings.c | 3 +-- ui/helper.c | 4 ++-- ui/helper.h | 4 ++-- ui/main.c | 47 +++++++++++++++++++++++---------------- ui/menu.c | 52 ++++++++++++++++++++++++++++++++++++-------- 8 files changed, 76 insertions(+), 34 deletions(-) diff --git a/firmware b/firmware index 32be62519081191e8dbc9d48bb0f8106b61cf633..4e5f75f3fbdf8dfa344b246273c0cbf04d5e7a1c 100644 GIT binary patch delta 8289 zcmcaJm+Q`4t_d!(Tdp!NfG{fq2rx1*f+z+i5UH?bVxm0bmBz-Yjf}Gy=S-JnWOQcS zGCh%z@gifo#qa2g>zvjF$D*e+6c9O}NF-?>$>0CPO+yXtMAW?hk2ynHabkKn8MunDJ9+mhfz@4;ueP zCWubt`ta*73j_CuR2JNtmTr;?}J{W=(L99yt$)J?y%{PI6BG-rce;G8`FMz}u zlrp`!KCGVpm7P(Yv3a^I2csr`#vi`f28NOa3JhF|Tpw;v59MG?7Lfc466Bg8S)j=oF`^+66wGyUFvMvn0gC*#KLD>WEd85t|4uh(P@Wb*&Hok@%F86)H0?Ju<%C7GD~ z{%>c|W2|6i()>TY&X92rlhNPpHb#tDjEptgmm4$wW|DmNYq_^f1%nR5g^v$3Di}3{ zFR*F|-eCVQZ~AUC#@mc7+ozi|UT0yvvOV91(VR)p;va*uaY3P2VZ!RYWYZj{Zx=O`{wp$juz%3|vpvC^v51LD=;!n+zKn|)PfaiPW9(&2-OlRI z_>qzE%J%O8j8~bM%&%@g7tCnE$e6dCJ(SU(k#W!V@GwSsCZ>SD(<>qv;~3kfUyook zXUv+;AIWIWxYKv$=QsiOpceg&&p=xV&t*>t;C?=`9YHP zgURpd8*&(>xGR1uF)%1vFtC0oo_;llv72$z^u%07OD2_{)92(eN-@rvzCD-Gp7GK4 z@41YkOiW8IZ09RrJjcxVe*4{G#>Y#fF|L&~ z_{XTDd(qTex`IKQ`2vF?2gA?rK0lZ~T$p~oj&U<%-}L5s#%jh1+yB=ynllP-`D?Dk z?k!co?k!Uwu$MuB>BH*jo{fy=Dz5(-XEU12ar%5wFX8*%18xn|W-$EN%EQ2=epc3! zfsKLbgUSExOBxw}Fv@|#ECm{FKen3nUB zZx|D{|88SUWM*75J+_N+JL8(|qTP(DEKCl+rrY#08Zcg;p4-pp&3JeE&VI(jjPs}0 zPGC$8o$^21Euv7Fq0LyLgG-U|L(l(gw;6@X3>{E@%l~Y*8-;HbGTj&$e|+Edk3&h5 zA;XRNL%>gEhAya@qW{@$5(UZ(Jy3qubn}UfzD&|Tr?*XHv|@ZR{oq8#?TibjS59J- zW_&$;>LkYNj9;ebPG&UL+Hrw_LGU;O!viIOtqh878zwOXdoX`s`XQjipvbg>>BHau z0iH}Nm_PXbn0{(9qYUG#>CY!KCbBSp;Q2A#X9}YXkD+~;d zR~Q(+Z(BHfvlvyR#Q!iVvrT51&1fcFaa=p-28U9P=K>j~58QvIGtFjn5U}~f zK7&h%(SlVY;RfRe`(M+8W;0r-AN#%jIj;i8YGx%*&jS)nANKv;|J=g(_9ixMz8eY* z97?X9dGZR+8SR<0|4iqb!zjZf^Jluw97Y+ofGZ3Pu~(-1&0*9^ zoO6YNA%cTJA^i#iL+KR;hA0jOg$=9>3I?nU3b`B%3UyZ)7&18+6nc&^FkIziP$)UZ zzz}l`k|tV?F)*YYgQSO$V+;%~#~2tETw!2XdWC^u?G*-wtydTr_D;V!hcUhW^)Cem zW~HT`tp-dVp8jIgW4O5L0Z3$_XNLjPhdaNR^cXHK1dGh`>^5NfaQPRr9>c{MV3Ap# zeFjV)PW@uhW4PE47Mboj(SYg0!C$O;3>VwLB9lF*7%+X<@vHv9ajond?cOtM*(Wk; zT3=w&bicr$xqABkxs2YzZNJ!ON3*eBWu3vMROwk^!1SSZy6im0y-aeyrr(*zC>1I2 zOFLs##$+eq3(T{nD;Tv|FM@*9!E>7d(+8$sATcJWm$nfub@DHKs?-wvi*R%Zu6*USBOdo=O zYE+nN#NA-{kn`V+L6gy((T*_;jMEu&7#A=uW8BWThw&uiGR9Sm=NQj1ZfCs0c#F}9 zX*(kXS}^%B>|wNHie-ppaAb03a%I}i=+5NB{M4@C(Pq9N#h_=! zs3m%1vzJf>gBHU@=SLeo8MPQLZ1e<$mf%lDur37##>wo)43k-`|9`*yQ@euMno*ng z#!7G%se6G@86pd^aH$7K&B34A6^hz?7Z-Ujefa)^qh5paCbFV=U`6YHYF8*}^Ie?n z!Svzj4-Pan)4^)y{?x9})Rww91#Fer1qLPd)whZ`SF#vQ^kDiR^J9W1=PFQ$aQ{Iz zUx5MSi29$}6}RM=wHR;KYijdf%+63`xUuQ)cZdHP6`4w!7S3`r9GMIhr5Kbs4F7-U z{-swTXZLv%qqfwItc?F!3>SDFDKJ!de*1p!cXq~qZPp7FzH234*E47{Twr|!vy9Ce zewG*&r`iJwApVkT1PWnib@8@^n%~q&ojaN1kZ2JLF%7h zi1z}i09l~7 z*?LAf&wierVdKf5-E+alv+KErXLg3U;cSNb=L|~O8G;NmHvRp+>R)ySBg3stpa7}( zG5MLiXLg3Y;cSN7=j_Tdo>>{ehQZG1&$BXgJsGqZE)+jcd(NzsnIY=!<(#2wJX0d! z`2n{%7eF1}2lltGFfgcIWnj>}%E0iBhe6@|6$XZ@R~Q&PxEK_au1x1!$|zNDaurfV zgX*zM7Z@0-Mb^1LtZK1;e1(DGHK@8j!N5>+m4V^?6$XYi#~B!A%>;p+_Jvm=RlvuL z#~oXLJhAh?3aJLZU14AVH8IXyVPN=sg@J)px!*G@qtGzenfZBEMlaaW{Lh)5XJvGI zazF2`_x$&)+w;$}ZqHxO*p#y}x;%rO-#^RB==A*iEGwhK^Vc(0rB?6E3<+Z|=eFnB z8SE<~!mdcxGpW8qQ|e^eoFW zJ0sR`HpALyI{KOyIiNY0VX`s9zwg)nr+H_2N_AvS*IdLXUmx-}$&-lzlymHV!4fko zG%+81%AwDD5mBc6`@Z@=q%;Ww7akj*aws!QX0v|&oJX7Kf}S?Rh2u{lX<*(a1BSof zC;es6V7R#VDTDe~Gc!hBB};~Fn|M}mPiOp){twhf;$Hc^{`;EW1`HeqOiB%#cvpV^ zzVvstn~u_KiQBOX*74dLHyM<(+;kL!Brby;QL8!0j;Wsyff-nz*f+`P#LeND92H~p= z4B}TA80t6}6y9($C{&BAQwFC~`Kt^J+b%FLY`MU|u;wZQgTYk>2CJ)({;<>4=~>Ge zpD}t)4_v`0FNM2qo!+&A(NA>m4+a&G>zNc8CNr&Iw`QF3@4Mmjw<{RsMHiz;v4W+< zrz@^x)EE5!_xpGIf9x9!_L_Jyt@!r6a(d!QMs5D&AN!u`dg*yyiUJA7OrO1yQJHbp z^!+OtBZIuIGBE7nU{FW`jaG3$n&Kf>85s6)FevQhU{FBLXSr7y7z9o*FjQP+U}(O| zz_68rL4gaLe;F7KaWE)!US(jIe06%(D#j&@Q>OE;X7tR=KF+{!jgvv)2PcC<w)<`*8*a)8h;b%EuwS4;^L(g|DFY2?vA1{^!0u6%l~};?)+!j^VbS2D+QDo7{7m4`SC_UK#5}|h%NWy^78|38`u~WKurKp znFWe>P=WxZfq7RE<=3*S3=EE!85r2Nf_i1_#*B&*b`0OY=lx~h>*ej`Rj^em;rsWy zfBt-5^6UF|{=e=%@`?%!-@nKGb@kO?VEpjs7bAlP!}srDe-#**73B@Se-E7ga4n-^ zy}>U_KPwMIhCkm^fBpI1@$1ib<-bgd3Jib0Z~n!oz@+&1`}$vhzc2m6sPOmunLh^J z2@Hk|2P7Cx{(SfS#iH}=B7?%;?>RrT!BvX5WlXl~wlOf|Kyk)428JRiuG`7L0ONz$AaM|1XeR>$48PdU zdYLg;XA9E?W+&ba3=CY13=BLBpi#yD{}~w=YxsD0!F&Y<1_s5A3=C&b!;GxM%uHRwjL>lq1un z*qG#)N{(!|Vq*&85)wEHs(C?}k>L#!1B1ZP?ehefF#Y3a+_ZhI2Gf5=#x>K|YBAL_*<9GJr_B_{$Ta7|_C6h^JZ44E zfB?uQ1_nlk{j3ZOAif9#h{woqf|Y^c%ywA=CV3{t+U}#y2 z;5RWbFdSKq$_JIk5D`X(|EvrQAU+?|cwROJh6fiI82F)lDK-X%_ZJwzaRM52*JNX0 z_mMud1RI|GBl#_9h|ne-UHOxHDIl4txe-PepsUa({{LKVp6Yo^zlG06*U zKod6DGJTyHlbj$ZLqaq#GJur-nSK{!3d2^2AS@P+Oy@Ocl6N|RCR}hCRawYR1RoTP z1xS35=~H%1&ogI|3tX@Zp$;VeV=saa(#Nq6!3W6~97OOz@-;|&komPg^r*J zOB|ZcXTc;ly~lz{fT`!ubUOWIkwg z8JQ0nDMRL8M+;|A6CYU~G#-J>2Mv!Q@s$}sLrzEn450o2GT-a!bUiC3xq46?jw}wU z!;$%*gbd@`aWF7kJi@>rz`(%3#K6b^ikJ&%!EgtOpUA<$@DNS?10?w-CI)4OH%J1t z91IK}(KLKGGQCfNNy=@dFL5w1fW{=PndT{3ZibXZLQISd zt(=e+7N}$rWME{N#mT^sdSv=PYbH4+*LBn7Y?$Tkvtf#3+&F!$4by(mD0ZGL zQ=K4a;0IKqg0#)yW?(om{jV)kJd@C|>2Y>UaZF6drth<3@?)}HIi1g*NsjT^bX|KU zeI}P<)8p)!^b}1&H6a571IQ8DypSO#W(EcZkZBIQ3=F@fueE2I&$wl}uLDy&6X)jX z>l~Q;n8Mdh{|BO%T$t|X$mGZPfBIZUCVwW$!_(h6GRZOioX+dSWY5I7b-JGulO2=f z>gjz>OnFSa8>asQ(Ok!-=Q%U^F_mtfzR#H{k7?qe>3S|qa!ei&IwymMiS zV_Y}g*Of`1@zC^IS0;HT!Q<2CxiZNKU0ja{HbD^v2Gz~e&$%+iF_j#fuII*7CseqG zfx!UeBL+qWQBej4j^oq!xiQ%>o}B*IjcGp9qGQwNxijerfkrQ3!Dc4Lzz}(S`#pE2 zcZ^KR$ETn3WU6D5IyT+Ui>VLfi+f&7b&Ox9$9gm6GbwJIe$Jc8kMZ$zSs$kPg1$(R zI7ym;;qLUaK1}-?GW7{5-J4Pctjlzn{qz5u2;#?{kh1DW14?w!sX z#AMHSdb)2AQ#>eG*99@@F*RJ6elLjWo)D}p1hQ+D5@c$0WINdRzpP9Fyec>2(oIag1B0 z-;H33XS_AtHj+u7spr`AyhtWHriE*!uZv{zW0G7k{a++g9OKdHu~AI(8Lv4}Vt7a3)?8#6J=GBPS}4`gQC&B!RaotKp{oRN`vdMX>EKGVm))2Fd9$}xTYJAE4) zqni1{zbtYL7rdVF&ETKOptRDP>%)=13>pj<{GcKX%3L3IgG4UYKj53iKbt{;L6Q4I z!E|AEM$7uAe*|W8O}NF-?>$>0CPO+yXtMAW?hgWgnHabkKn8MuaQZ1UOL#WdhfDuN zCWubt`mp3L3j_BDeXt6V8KN_}KN$XGP-^go$Tt3E&@jKiXrjQt{XrJ2MrelcOs)^v ze;G8GFEFTZ&1N*_nk+DzK|Aas*9>m054Zmytm6I2pp@s$H-Ud5*9XtP3>xegKu%y# z%Jk;?5IX%UJEJt7+Dz^m8P%PWDI2b`C~hi7UMHU#^u{zYBNeQG5z?r zokfqaf|=>^zv*>`jC+{w{Ml|}#F)j%sJ4B%G2?G0$qB!fd&^WX=rCOP_&}qAQA79w ztA^kW_75J@cbhTZX4Kn0-JJ0{3uE2(d>ck{Cc#I48I+9+3jK^L7_>PruzhHozTJ+o zlQD9-qdj9fqw4gP_Kb;4U;b|AabRR)WSli!*pV@qk!gCmBcnB=#`eXIpyZ~${h$+L zBO}v|-`ibW7>_YB8cgSQV^n3VoNnmGxRz03`h7RXm5ip_JKY&Y8AYD`QDD&WX10B~ ziCHO9!qR~K!`(mAH+e7?sY+dDVA#RUps<32L4k*hK_P&PL4lixK|%2{1B1$C1_lcb z1_iC@o}P@qML|kKxEK@|1lSxvQcJiQ6cndNdNEovz5X?Qniu0Lh3CIj7!?>Y-Tr=` z`;)_j)qBaNIZod$YAF3zWcFbHaO3y(1aHP7CZ;_rN8ce?)!D!AX zGMzt?(VXeWujw92q=!r5HV?Z_j14XYASj zJ(p3GiRsVz?R*7{=a?C1Zoga1c$twgcKgOsMr}r>z~K^!W9?9jwyA zgXO~nu)LWE%ZKjip_PpPnZBH#9#+LD$LKq~w2JXMQ^xV>e$|X=AbMLhqZT8}^oP}q zi0QpC3#gs-~Z>W8BPWF}=B-v6|6p`~P}Ib4KB~zvfEp z-ckkZ-ZBLOdl?j%K7>y9Y-BW7dH;`bHlxWLr_UGl629*};MOp02E&i7JPcgwXJsuJ z*cg~T-21nENh9MAMmbQJ?SY2dkF6{Wd<^0Y42mvFvJA{0R{!6=tC=x~iD}CD>3nUB zZy33@|88SUWM*WU9^1vZosng`Xg8xO3)8Eg({1`04H)&O=k_ytGn!7{+0S^G(Q|t3 z1jf`*yZ_m45rxVOZN?HET#Aez%>HM)%_vl6=z#L|{%5=0D157s>BhkLuD z8E(uUe*I8p=z^+|`Je43QJ~Dw1LccMH=oGp%XIX|^tOqNR*W{&4^Cv<&geb8auTC7 zqx1BslNhfv`b^KA%xJ77aDjm#^B4oe10{j242o?VCNTtiFnw6_UqFdLk!c0fhvokR zJVEsL|I<%RW|U!^GX42v#zYpT58M7v_nE>d!x%h0a|+{Zui(oJ4DWdu6v8euFnr)) zP>8wAz_5~oK><{NG;lB|Bwl7Qqy*E4|9=@~ zGn)RF_$Kk_xdAhS!s3(D>!vY!2weKB$iO(8SLuZWuOZWi(|@O5o5pCux8biM!wN|& z29VgQztbhAGpaDPo|tYool#4z@h_t(yU7QzDHbOf7z(y>`mi!6S1@REUF1;WQcRFx z`f%{?^uFngT1>0|PTw`1F-)xf?*kBH7Z3=E1#JSJ~o`tae;bc30UtC-&XnSN&`qXKv59|0vp2EG+cA6llf z&tlxobmjN-BeNJ)qz?XORA!sZGMmv%y5hKY&Dce-I&&Ch*j8L-VAy(jy5Af|t;8>v z85kls7!>wjW?(pbnSmjSgF#^fD}#aoD}zEV2ZO@3%M1*e91IFijxsP@Ge~8DKIcA zE%j_QVEWMii&2l^;;IKAk%gWe223B?elh7WTwDkindjMU!1ST^7qcG2#Tj6cS)P3c zOdm>qvFI^e><5cX_nc_J^db8fs~*F}Hn7NK&nX5>ACi96KRB+HeWTrbW-a?fMosGr zOq%W&7&KQ;-#?epTiDD*pw<}pe|?)s^n zu_|M-lkf%R+0qq^+N>8rLF(YS&4B5{nx7ysCa9PVSZvWx=Gn8W7_?b0fYe!d9x!0~ zFaxBn8m8C8^OOP8hra3l^BJWX8>VN^XOw3wnBF~~(Xw9p3M3RkNeGl%7H~5tupMJy zU_Qpcz;KL#;qOrfhF?b+7``86VE6(J{a7vr1*xM944|B4ca(ua;V1)x*HH$BtfLGJ zNku1H+rk zpd#hN)&L(+3RYm~-oW%Ba(e6n#!gPAHHr-Xz6bx{oBncB}`>Z6-?GlRZR6vO-!v!)=b?@^O=@1t!6S|a$wrdWX-e(qN|?C znkg%T%hUPc0XI;I@Pvm!L5Pb%LH;5Gg8>VJf*}(F!$u|shBu&)U}jL5euaVIsCQPz zj2Olb_y02}9rkAYu>2>e>3hgif#KWt$$vQ18P&8a7^g8z*VSgY5dFxQpex6vd>NyB zz3Bf{o=glN8^ZoDDl<-IH)fa&GDU%b#rpsEQ$MvUIJ7w~GAc1lW}IZCxWI$Oy3XkT z_kBOLD|ob-F6db^YKz>M4X!r@F3j>|)MmIa%M%pn-9Io*Tl`bIg4vo;oA<^funye| zjP*!X_IZG;ocL3_LQ$LVVz&p=hr%Bm8k{$g4QdCgssE{6p`^`svBiVwLp+9>2C$mk zpV}3g+EN#5!B&Y~U{GRPeXEFLC5us&2jhon|0_K?Rw*#lfBSy>H?jo~fBXN`uDB(~ zti^a!Q=9){c7`IujZJ^Q3;frp$W+p_aF(0l$Yh`>#h}b#`2YLupL!K?cAqyfYD?Y7 z%J{FvaH0L70z|H8b&ycs{t{=v<_#1QKF=^3kXRz`qlurr_GNeSi$pa^HV z7~rYE!1&?%|7XwqyfU=eZ!lU%GhB-D0VkM(-?yJ-g881F-=2fiKfmDN1yTVrfAK#z zFE?+-54PE03tT-9J+t)8&X6^n&2avCHnZ$p zk2|*hcw)Ew3Z%dXg#g1vhv!^Msh&~J9?!EgQal;787^8pPxdr>p6r>OVQx5^LHjv_ zQg((Q!;Jb(f4{5!%g$hAxV1@v;otW!|M{Oqd1hzW8_s5se9o>M?wOSlY#8h;{5&fo z)RRGr;ez~gq36s>nHd4zUd|cDGbMPQvnu;~W@Qu_20Jr6&&u!ttKxb7|5;XsmnX+_ zFVEl4ygYwC^YZ-uj7>Q!!_za^`OUMe3=hv=&$2S=Jv_fZV^wnT&diW7_Hw@dJUfGJ zWrW;;O+UYH|L^22QNWYS^s*eQ*6Q<2_H3#q3l4aV>_MDbE;<6c{8tFKznv{nt-e zeqgZ3Lp?0ts%K?!JmqneoH)>{X1BL5r?1Fzn%AP}p^afnf^= zq;b3E3IoGF4hDt291IG`>G>!$tzWppz;OEt1H)Dh1_dr~K4D-u#KEBO@CpON>nqd6 zRx>VPd^LUdYDUk@!^apHu5mIb{NQ9z*m#VAL5`h4;TV_>+;#-ISIk&m)5D9k^`z|eb)fuZ^sq&=_0%%I?V zjDZ2vc^99ayM|GmZ}C5Yz5l*H`ThI(|L?}XrcYYKxQ%i9bkDVn&P@FOr}wR8)T{sg zk5QFNg+ZBRg(O4065~{cDgVA_|KV7{1WGB25PtF>P<6$iDCz;>NB{Z${p_Fb-)H_= z_WZR1%Sr(y2FCB-tA4yu5K!V+31XN0xcvNp+XglU1yBtODkwk&3n(#w3Yl+L;Dttz z{l6;=3^Ok=FtBe0^?KNi85JcMzJEXRmwm67x0hGJR;h&V-;MwN`TpzI_wT8H-F@U0 z6&SvM-}2YhSA&7^!=GP_3>pmIzpweLz`(31Z}9#5^692sRjGm>-fU6-`Rgk zdB4hFVVLE_c7st_!dJWC-}mA_49eOCAg5~m!<8%N2 zGcqvN@bU11`3ejS45b?w7|x)`GlAtL7#J8F7#J8%Y?}UwnF%x|Aj`sJ&f2k=f#J;b zUKS?x=?yGQ984iwrgyP088OOC-^;>e&GcpG^j|DYR*VwUO<9?=nOY7`Phw@#VtR6L zdLJv38dJ`p>DySDj2H!`zhq_7XWDUix)d9e9Mg%z+pXA`g1Ce-j(|c2gc%v$FflM> z9N9ikfJu%?Xa|ynC^G}Yjw9R82{D~xo&Lv)iHFURnStTYk?rdwnEvrIa&2F$!StVz zk!AW?Ev9;=Dd)HAX*0z!GJQF}y-$ZJk697arv_QUz`)3`pOt|D#1~-z@faCSure^H zY?n1)l4oL+pKfc!Bwv4J2}ChSK|K=#L&Z`Azln)~L1H;7A5`K(L>L+VvobJ%_+7(}7+No))ZlP)kYa6F)$oLGH)Im z1H(Ne_3PM_85rJPU|L;cRj&cJZw(sVsjCOJlx>At2+ z@{AVKb3v5P^j=dYd7*^$2+h=9eDr|&am(i1A#fDo@`XJ9DVF#Vq?lOChTbX_wh zc}Ab57HNd z#0SYAIe;pE0f`Ti7ny$7oJn3t;vhm9NI2)x?(ys@NB16mFap`Omg+0dKy`LCRzl85;9EQj)Q?g^9Tcj00RR969Xdy zDB?8Gg24odpUA<$V2P&Q0!hA!iJ_js1xcWmgMq;lO@jxLJSdz)koe0v7#Jea)JGu6 zgVd)W@h@>OFtnavV31>EU=Ub2AVf#^Tyr~5fF z`7wr1pXAtQ^`ixT3Yh9V-nKF+} zpXbUXC#1R_5p04Y3=EZGKh*YFeDtCzR!)x zj!|~{UpJ=tOuvp!pXbh`Cj=TGgaw9Rgd^92_oMdBoB1_s0FXMLFVD}frLpgCPo zq(sOtFj%gKRD+;k&XZwa*t%)@I$tI~rms7v|MO+CV-(+R>&L{;$h79@bU%NlIHuNv z)7SYkM(>g)c%?u1JpnzdwWXM%!VBntK8^WZ|H2>K2eIZPK zOy7@A=L==}$5gszI$s!560ZU~D4ZD?W~eeSuuQKFW6EcGb9DNHi{`;us~T$3`*DXVjnmH;T!h(Q~?QG*i40XkZXj?SsPaixvaJ z$-@i`F(9`yFf#nsVql2f1St?ee&p6>VCdXD{a!Sa9;3x{-WaC;On;9~=Zj_16Y@n0 z_BA@70fgy(u}pG|j?;5vne3VN9G$){mZ?t&G$|tkP4xS885kCyobDILWXH&`y*G~O OvK}MP_QYPMYDNGS%i5^` diff --git a/firmware.bin b/firmware.bin index 6bc4618a34e38cb19a3b0f4ab19a999384886a69..4e6b6cec328e49703f38d0ff14900883331ff5ce 100644 GIT binary patch delta 5375 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 60b598d278dc6605a9d5e895e252919e17e0c345..2f7007495eeba0d61010589c42d62ef75b46366f 100644 GIT binary patch delta 17115 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 delta 16946 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 Q+h@c*pUQF4rbSo`05j3-CjbBd diff --git a/settings.c b/settings.c index d896fce..6ada648 100644 --- a/settings.c +++ b/settings.c @@ -215,11 +215,10 @@ void SETTINGS_SaveChannel(uint8_t Channel, uint8_t VFO, const VFO_Info_t *pVFO, if (IS_MR_CHANNEL(Channel)) { // clear/reset the channel name memset(&State8, 0xFF, sizeof(State8)); - EEPROM_WriteBuffer(0x0F50 + OffsetMR + , State8); + EEPROM_WriteBuffer(0x0F50 + OffsetMR, State8); EEPROM_WriteBuffer(0x0F58 + OffsetMR, State8); } #endif - } } } diff --git a/ui/helper.c b/ui/helper.c index 410771b..b2633f4 100644 --- a/ui/helper.c +++ b/ui/helper.c @@ -21,7 +21,7 @@ #include "ui/helper.h" #include "ui/inputbox.h" -void UI_GenerateChannelString(char *pString, uint8_t Channel) +void UI_GenerateChannelString(char *pString, const uint8_t Channel) { unsigned int i; @@ -38,7 +38,7 @@ void UI_GenerateChannelString(char *pString, uint8_t Channel) pString[i + 3] = (gInputBox[i] == 10) ? '-' : gInputBox[i] + '0'; } -void UI_GenerateChannelStringEx(char *pString, bool bShowPrefix, uint8_t ChannelNumber) +void UI_GenerateChannelStringEx(char *pString, const bool bShowPrefix, const uint8_t ChannelNumber) { if (gInputBoxIndex) { diff --git a/ui/helper.h b/ui/helper.h index a232583..984e2b0 100644 --- a/ui/helper.h +++ b/ui/helper.h @@ -20,8 +20,8 @@ #include #include -void UI_GenerateChannelString(char *pString, uint8_t Channel); -void UI_GenerateChannelStringEx(char *pString, bool bShowPrefix, uint8_t ChannelNumber); +void UI_GenerateChannelString(char *pString, const uint8_t Channel); +void UI_GenerateChannelStringEx(char *pString, const bool bShowPrefix, const uint8_t ChannelNumber); void UI_PrintString(const char *pString, uint8_t Start, uint8_t End, uint8_t Line, uint8_t Width, bool bCentered); void UI_DisplayFrequency(const char *pDigits, uint8_t X, uint8_t Y, bool bDisplayLeadingZero, bool bFlag); void UI_DisplaySmallDigits(uint8_t Size, const char *pString, uint8_t X, uint8_t Y); diff --git a/ui/main.c b/ui/main.c index a079c0a..23b61c3 100644 --- a/ui/main.c +++ b/ui/main.c @@ -136,7 +136,7 @@ void UI_DisplayMain(void) UI_PrintString(String, 2, 127, 2 + (i * 3), 8, false); continue; } - + if (bIsSameVfo) memcpy(pLine0 + 2, BITMAP_VFO_Default, sizeof(BITMAP_VFO_Default)); } @@ -228,7 +228,7 @@ void UI_DisplayMain(void) State = VFO_STATE_ALARM; } #endif - + if (State) { uint8_t Width = 10; @@ -257,7 +257,7 @@ void UI_DisplayMain(void) Width = 8; break; } - + UI_PrintString(String, 31, 111, i * 4, Width, true); } else @@ -273,41 +273,50 @@ void UI_DisplayMain(void) switch (gEeprom.CHANNEL_DISPLAY_MODE) { case MDF_FREQUENCY: - if (gCurrentFunction == FUNCTION_TRANSMIT) { - if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) { + if (gCurrentFunction == FUNCTION_TRANSMIT) + { + if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) Channel = gEeprom.RX_CHANNEL; - } else { + else Channel = gEeprom.TX_CHANNEL; - } - if (Channel == i) { + + if (Channel == i) NUMBER_ToDigits(gEeprom.VfoInfo[i].pTX->Frequency, String); - } else { + else NUMBER_ToDigits(gEeprom.VfoInfo[i].pRX->Frequency, String); - } - } else { + } + else NUMBER_ToDigits(gEeprom.VfoInfo[i].pRX->Frequency, String); - } + UI_DisplayFrequency(String, 31, i * 4, false, false); - if (IS_MR_CHANNEL(gEeprom.ScreenChannel[i])) { + + if (IS_MR_CHANNEL(gEeprom.ScreenChannel[i])) + { const uint8_t Attributes = gMR_ChannelAttributes[gEeprom.ScreenChannel[i]]; - if (Attributes & MR_CH_SCANLIST1) { + + if (Attributes & MR_CH_SCANLIST1) memcpy(pLine0 + 113, BITMAP_ScanList, sizeof(BITMAP_ScanList)); - } - if (Attributes & MR_CH_SCANLIST2) { + + if (Attributes & MR_CH_SCANLIST2) memcpy(pLine0 + 120, BITMAP_ScanList, sizeof(BITMAP_ScanList)); - } } + UI_DisplaySmallDigits(2, String + 6, 112, Line + 1); break; + case MDF_CHANNEL: sprintf(String, "CH-%03d", gEeprom.ScreenChannel[i] + 1); UI_PrintString(String, 31, 112, i * 4, 8, true); break; + case MDF_NAME: - if(gEeprom.VfoInfo[i].Name[0] == 0 || gEeprom.VfoInfo[i].Name[0] == 0xFF) { + if (gEeprom.VfoInfo[i].Name[0] == 0 || gEeprom.VfoInfo[i].Name[0] == 0xFF) + { sprintf(String, "CH-%03d", gEeprom.ScreenChannel[i] + 1); UI_PrintString(String, 31, 112, i * 4, 8, true); - } else { + } + else + { UI_PrintString(gEeprom.VfoInfo[i].Name, 31, 112, i * 4, 8, true); } break; diff --git a/ui/menu.c b/ui/menu.c index 0723732..d760585 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -522,27 +522,61 @@ void UI_DisplayMenu(void) } } else - { - UI_PrintString(String, 50, 127, 2, 8, true); - } - if (gMenuCursor == MENU_VOL) { // 2nd text line .. percentage + UI_PrintString(String, 50, 127, 1, 8, true); const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : (gBatteryVoltageAverage > gMax_bat_v) ? gMax_bat_v : gBatteryVoltageAverage; sprintf(String, "%u%%", (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v)); - UI_PrintString(String, 50, 127, 4, 8, true); + UI_PrintString(String, 50, 127, 3, 8, true); + } + else + if (gMenuCursor == MENU_OFFSET) + { + UI_PrintString(String, 50, 127, 1, 8, true); + UI_PrintString("MHz", 50, 127, 3, 8, true); + } + else + { + UI_PrintString(String, 50, 127, 2, 8, true); } - if (gMenuCursor == MENU_OFFSET) - UI_PrintString("MHz", 50, 127, 4, 8, true); - if ((gMenuCursor == MENU_RESET || gMenuCursor == MENU_MEM_CH || gMenuCursor == MENU_DEL_CH) && gAskForConfirmation) - { + { // display confirmation strcpy(String, (gAskForConfirmation == 1) ? "SURE?" : "WAIT!"); UI_PrintString(String, 50, 127, 4, 8, true); } + else + if ((gMenuCursor == MENU_MEM_CH || gMenuCursor == MENU_DEL_CH) && !gAskForConfirmation) + { // display the channel name + const uint16_t channel = (uint16_t)gSubMenuSelection; + const bool valid = RADIO_CheckValidChannel(channel, false, 0); + if (valid) + { // 16 bytes allocated to the channel name but only 12 used + char s[17] = {0}; + EEPROM_ReadBuffer(0x0F50 + (channel * 16), s + 0, 8); + EEPROM_ReadBuffer(0x0F58 + (channel * 16), s + 8, 2); + { // make invalid chars '0' + i = 0; + while (i < sizeof(s)) + { + if (s[i] < 32 || s[i] >= 128) + break; + i++; + } + while (i < sizeof(s)) + s[i++] = 0; + while (--i > 0) + { + if (s[i] != 0 && s[i] != 32) + break; + s[i] = 0; + } + } + UI_PrintString(s, 50, 127, 4, 8, true); + } + } if ((gMenuCursor == MENU_R_CTCS || gMenuCursor == MENU_R_DCS) && gCssScanMode != CSS_SCAN_MODE_OFF) UI_PrintString("SCAN", 50, 127, 4, 8, true);