From 737e5ac8e273af4451c898f7a22fbc212d1cd140 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Tue, 19 Sep 2023 17:30:12 +0100 Subject: [PATCH] Compander setting now saved into each channel --- README.md | 2 +- app/menu.c | 2 +- bitmaps.c | 16 ++++++++++++++-- bitmaps.h | 4 ++++ firmware | Bin 165560 -> 165624 bytes firmware.bin | Bin 49668 -> 49748 bytes firmware.packed.bin | Bin 49686 -> 49766 bytes radio.c | 24 ++++++++++++++++-------- radio.h | 9 ++++++--- settings.c | 29 ++++++++++++++++++----------- settings.h | 2 +- ui/main.c | 44 ++++++++++++++++++++++++++++---------------- 12 files changed, 89 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 3fc5a67..c3fe87e 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ ENABLE_TX_WHEN_AM := 0 allow TX (always FM) when RX is set to ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 standard CTCSS tail phase shift rather than QS's own 55Hz tone method ENABLE_MAIN_KEY_HOLD := 1 initial F-key press not needed, instead hold down keys 0-9 to access the functions ENABLE_BOOT_BEEPS := 0 give user audio feedback on volume knob position at boot-up -ENABLE_COMPANDER := 1 compander option - setting not yet saved (per channel) +ENABLE_COMPANDER := 1 compander option (per channel) ENABLE_SHOW_CHARGE_LEVEL := 1 show the charge level when the radio is on charge ENABLE_REVERSE_BAT_SYMBOL := 1 mirror the battery symbol on the status bar (+ pole on the right) ENABLE_STATUSBAR_VOLTAGE := 0 show the battery voltage on the top status bar - when possible diff --git a/app/menu.c b/app/menu.c index e170330..2f5ebf6 100644 --- a/app/menu.c +++ b/app/menu.c @@ -578,7 +578,7 @@ void MENU_AcceptSetting(void) #ifdef ENABLE_COMPANDER case MENU_COMPAND: gTxVfo->Compander = gSubMenuSelection; - //gRequestSaveChannel = 2; + gRequestSaveChannel = 2; return; #endif diff --git a/bitmaps.c b/bitmaps.c index a346eee..9ee4004 100644 --- a/bitmaps.c +++ b/bitmaps.c @@ -539,7 +539,7 @@ const uint8_t BITMAP_ScanList[6] = }; */ const uint8_t BITMAP_ScanList1[6] = -{ // 1 symbol +{ // 'I' symbol 0b00000000, 0b00000000, 0b01000010, @@ -549,7 +549,7 @@ const uint8_t BITMAP_ScanList1[6] = }; const uint8_t BITMAP_ScanList2[6] = -{ // 2 symbol +{ // 'II' symbol 0b00000000, 0b01000010, 0b01111110, @@ -557,3 +557,15 @@ const uint8_t BITMAP_ScanList2[6] = 0b01111110, 0b01000010 }; + +#ifdef ENABLE_COMPANDER + const uint8_t BITMAP_compand[6] = + { + 0b00000000, + 0b00111100, + 0b01000010, + 0b01000010, + 0b01000010, + 0b00100100 + }; +#endif diff --git a/bitmaps.h b/bitmaps.h index 7109758..987bed7 100644 --- a/bitmaps.h +++ b/bitmaps.h @@ -60,5 +60,9 @@ extern const uint8_t BITMAP_VFO_NotDefault[8]; extern const uint8_t BITMAP_ScanList1[6]; extern const uint8_t BITMAP_ScanList2[6]; +#ifdef ENABLE_COMPANDER + extern const uint8_t BITMAP_compand[6]; +#endif + #endif diff --git a/firmware b/firmware index fd2385509537f9f851362c2ac2ce4bf232e8781c..f9358c328e22031f3c153070baff7c00d1563c08 100644 GIT binary patch delta 18477 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 Bg+Tq-QfQ8S^mLCZZ$Q#&Y{ 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 ddR%(kS654&|1X{NyFvf} diff --git a/firmware.bin b/firmware.bin index 44448d0ed7892838d30c253c5e59b03279a810e6..080ccf74663105a3d078a3b197f84bb86e11d231 100644 GIT binary patch delta 7622 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 delta 7495 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 89bde94c30562a205aea97b9c144fd810f9b12c4..41d3ed12fcb5f6d63f2641af7cb7ddcf317e1cfa 100644 GIT binary patch delta 20806 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 A-v9sr delta 20726 zcmXuKWk8hu^F7QiDcvq1-5rXsbS|-UEZyBHNVpOL3L>y{Bht07ge=mEf`p)ybV{l; zlFxO2f6xEzzB>DvnKN_d%(WGVn-zzfDhHBElV1kwFrrvMD&PZX2w*YaY@F}uE#Hd0FL68Mzh(a9?M2(@KRR;mT znbQ3NpDbY%=sm$8Doiy*7euA3BAOw+Cde}xh$#N{%cPPNL&$h=5443k3-b)SbH+?#60BvI37}R-I0IZi31Z-~ef&Is~FY@hDkAcB-fN=6prR zJ#n0~*l|n&Vt*3lBlwHqRG0C}?w`*&;<@7QgHM5ck97|KUT5p;m67rM_1 zOMQQ`I4Wpd>QF?=8fydf++mSCCWt%AC$uEW5Trz{3q8U|u@Sy$Ks^wC0GK_56qWO^nM!AJBuFl%{r8 z=tRYUmh|ff&dp`mCyw;DRk84(o6utq)SpM3V74F>t&}F=8i5s2rl0}JNlN?y#FTr* z;3tlq;I;|(XR&OZVOP@mFVt&0Tz0UbJ4}<*B8Y_O`K-sy6=en|r649(+6e>_N8QN4 z$nw6UdoGy$q3Y|lygVpFD2$AR!&5vt-$Z0(H!c4LRSq2j9|)uTW$i%|s0mpN$OZL6 z&JI+H+LW^ZJwhqUcYxSX|KwRgdng74cF+@)tinG~Fy@gWF9@`Tu~AY4fuvA{%G?wx zjCR^3sKF?6x2~#&JQQj|IU2N#GFCx>)=4<4s@#dc?wb3%6@ zqr6(ij{b+4Rt)cF_Hd1^dH6Se3R_=%u8-#^Tzh~4PtDMYD+pI&O0e^M{irK_VX)UF zO2B{*T$F|}F^~g+xzVU}Lk*LSg14SxnZ8U(wME#_*Bif6XWT{GHgF2N!~du~dHH)p zcZ`Qwy1OrP(P@-n&iQXpr(ih7rAk)ctA43hAWpdU;ci0?wo1=uone%(h5N~u+PqE? zl#r1(Qji^Fb5}(NKh~aRYqq9OIy73p`d9&@Q~w@ybNpUr@t_nu{*bP#nusehC7=Cy za+-><(JP}mS|Zt|?4~v`gdg& zn+OVDu0N17rU`m*7?cVCQ>hBe{|p*k_dIGtmb#%DbIPjpeK1^j0=Zn}%vFXf+dmZ^ zob#hyu7gF%TPI>gPw>6}Do`bc)OUh+OHDV7{j1$edg&la412F$TTB*^Z;G_(J11gD zo~<2mC%k3O#S3T3mEg&bq{2;O|_sW2D3CM5~*v%EpGD4E5HSu2uSl z$})Zhq$RtF4M-k?Gy!N+5%bA(90WQ`^sW1dG&S;>;UB6x%u`yb4_>kb$7o zg^g|@l(J$E1KI)H^D#!#QXLCj6xV2LcG`www=V`|qWbI^Ky;{i`$r%QhRT5iB!0&F1ivrHEwH6XlQ7fpWBmM* z`l79BdgG@D0{Wr5ZgEV65hjYoyNofO=%U;5;9+@`u459Az;lkW4;JaHS6X;7kTB-D zOR7)zyfo83U5y%sCkZ5|GH|2Boftr27#$}vFhKVfE^k1Ws2!Jl@cI=d-Zcyi`hdA} zZv=s0m_|?F6$DVHUYsC86oWT6Xbz?5%?T<%Ie9yPO*1fq-n1ZX?DwiiFUUkge$R zmqcf;E5mn(-7-;JzDkZ?!*Aoo*bJD5d#I)OXTDRt%3e3oFO%-eJkRBMiWa(lVCv|G`i+Z$lA~X0D z%CqB*%j-gKnvEIsB>;iiP@{gVppU2nze*r-nf{Vs0wUC~zXA}UdjU=$9h6UiAUG!& zl^5U(w5@xA{DNX|FM8P2;SgRNWSXW$(hs&(mN%=e-YF2aV{z-eufyan{(7r?csk|? ziLwb~1p#ajXaxdEqUM51$(~hnUZz;8PZrhNR6a)~1S^ABQA5FApl7H@A)+8S$|Xb# z^c2+?QVO(j!zW!#_Aztr%e?{xi#D2b8#z4#W~aj+{gN%+Narb0{GsA_u}61clx-** z$QFYP{Rd)slg5Ym?VFy|nAdAmz6Q_uU>`c~*H3CYs67?&ofeh#G#n{*^j|yWUisi1 z`z)mXqf{U#%Y4(#Cv*$rzos!WSU;LApy7sh;KLb2zAf4;o#tH4?QyBaz;5$J6@5Xk z1qoG>e?VFW3-tK>+35r>zj)@ndPvZH$J_Iv9fZ5>@0*TQNt|HMp}#I-A4H$UqLYx6 z!3=LU=Q6^j9aQz!G03FS)@9jVL(^81s;!*B&*-%+rWC<87%4}Kta>a#I82O(YPUTE z#+s$|PyVEmRvKpS5tW?R zcfX=Z)1E{Z3D({CCh%#`rcxmXeniqhyH@!?>)vbJUS3wzE;#+UHm!#E6xMLs+4EgC z-bBSU6X|NPSc==na7GN*U_vZM8H9_Tl9LKYxKf(^q9Q+#W9gj#SAXXxL^~*8$Ps)s z3+^9l6`K+odft~v2$A8Ho<>!f7?rd>LkKnQ+ROGMgV$!pe$M@%d8jV@ZN!VnMuT?u zYKsxo>p_p#iIG^N?0W(#qxzfC@Wn%Mi*@S5i%B*#2S?>m9278nJ*Slrlip0hT z%IFOXgU;zh^OSL&s>}d)F5mrIyV!0w(;)7-u{tq5R-gW-l;wuJ!Q9i)U+1YOt?YOg z%38nJBg;%sx`=OiKhWZzd87po@hje}BQ|HWy_2IgPB|Hw1SiJLCYN7DYq0S0l7F~i zQ0QjDS#g$b2aQ!=(8c}g`y?&y&b@*WW!3eIQ#jkx#o(TCZS%~4Dz3%9pt>Pl0|hVK zip^FfRDICe$8T(c)B;_&EUamy{-Ad4Js)4L5ugGD&q3 zqAX&{^Y`)PLB42vSXFAN>2aTX0#Et@vPmnQxGis*%uq+|)#G=qlMCAxZd_MWF1wcQ z1)=H88fYp=2Ntz@)Yh(l!S_)8g;&3Cs}nPXQhr`p_H zAqB<}n+ctrT2SNS{UqMIL?uQ<(GFE+CtB~AbbDp6AIu94l!guxN7aA5@n~#$8z1gndPl;ZbG6Nw=bQHR!vm9%+lsqv1G!&BRA+zY zPK1_0QJw6Ze4!!}=}A)jy@AL9Q_YNQNBeoFU+_rMU(-p~+uSR1-Z++>{m*nMN4>Li zxw)=#81Fh{N@eK_yV#fD-uHi>t;*R*@-TGtrsAhu;a1Hk8kzLZ`4DxOq4^^(}6^wREWHz%8?(~iu0%>S(o^G zF2*$cumQpMjGYkYNQ(+-PJl+|9q1&K6w>_vn&RCr?p`@>X~~3!#}PYJZ#omW>4V}8 zFSPoC{oj^Ehg=8qQgr==EZ@9GgzMK@N8Ke6Hx*1x`9qS7;}C)nOV!$q)j!L^JDy}1 z3%>u$fk8yWjE-{I&7<;ewlc-R zcwhgQ?ynJq44R<2B{KI@sTht$VxF0_i}z88Hk<$@7q-$s&JFQ;O2V(f{oY?!$F`~3 z7Sn5yvOp4e{npHQ>1lrzvI4i30#p?tpsL)yf(;(|q1eJNaA2cw+O#n3u`#%v%2G!UJSyVvRgJB`oz1%%CMQvY_pC=_=_ z>U^l#qrL)pnSC~ydSlvkqsqY-D&gdVj3iwo3al()_SVae;qo28B$2caN)cKR)cMVc z!QbVZicIeL7K~;Hp=%u1*8V1#zg^7@d=be@R)4leZ!OK^62*2usi%8~jA)Q|XRCJdOZ0P^#NSuDT zcZ`IMczlFzQyAi#ljSLUqch`0=LzcjG7{4?y&Z+4+On@LO49yzy>`>P>w<_F7XC2n(4G zNTxxns|ma@-d665)R#d&RZTuUz^6Z7S1@JwUhxxPwXSQXMrTF`Yx!5%7m-=TILWT> zvPi5G%rkS&m>g#QZF_Byd_W%CZa!k4M0xNq=2u;4F4B|2kv{|}UGcWhq^9?&X@V6q z+Um+9(g}|EnLks_RH>NihN3y|`GT0bY|b(eTwsmJH8^bQi&B%ReyRHU!vXVFLW)e| z&+|`&;=f!+9$>MLKNqhhqH~JK>SH2g!9lDNoP^J1IHxlXlhdlFoDUwFrP3PmZa0C= z8kxjyeE)S>H*)YHLwlFgYki;Tr;`3LOG^Nf&}s*6jSnQ@{w8;C{WlytyIm7*bIEL- zIv>*cB+9iNTObMF0aE@LXh!1$a_>OgtG@SuB#Z!(5CSBjJyj9mu%(sZt0ER@17P*@ z@Ya$j%lAX1dkSHIxs!}#nC8E;R?QRPsD8Kp5DR3pXjR3RD=pwuvdA zW6dn+XX(qdK{Y#Q`F@k=X_!T`BE(N~s*{>?Y_r_%Ua7sV+4{S8i5+c^A%CC69u*RH zC|wk8(Ycxu286oETKWV@On-Xvk=1*c_6F%~L4u&!e0famY0S|r;``E(GFRv|qhDk* zsnL7E4ADNjYEIYhnasO24I53d%+@pj^U=&}d(>rr0u?gAbIJl}mb@llb&pPDJ z{OV*yq&}kRDKZY=;;l?R1j|BtZF}~hks)G~t6kXu6~1m9$=;P3a^4>xBbslmfbJE8 zg*>hFdaC;=uJ~xdKmwACky!u(q(%AMRzN)}nL`96aAxi%bQh2l3_kxZe1dK#^ohA;uMo(NU z_r)hA<|9jBWXIaqNjS?2IZk`jgd6KHjkh|HPrRrSUga@@m}7Xtj;Mvm0;HR^Xo*H^LR2J#N< z$TPFgNSqmeil|(9$3-*>AR?0dUL(az&5Y71|5TTC1m3K}q@_YR*JP)N+Ve)+`#iha z>E_2Qgv~YV4jo@bbO+wE8@3_5e{enQ2)&lV+jD{Tm`#PxHjjw_09a^?2#^0*1<>ZO zNXIy(YRSB?#4RAfKGRx19Cqk^%KVg{lAss~<}Pa6icFLPFUA{rrN31@8e+0`>2dl{ zoGq6+q+h>;`y+yo?gydn9=?>1Va1xRRJIPCBk8;nu;i2mmYRCHDs8E|G+B3!yw|im zCwlUJt|4#pvNR%og{~Xp7GaqjStKsrASmU>pP@frTQSF`+giU|9xZZyA&*DOM5&H! zsP*&>b$UfWVo2oG=R8uPc{v^cqE%V$P>CLZt?MOcH=id-RSHk&TuCFJT$!CV^k@HV zGGATS1LKP9nZkzJR8-oEcX6`ThoEr;JnP+)*+1V^U<}`V&S-&RaA!oPwBHR_XC8u1 zk6-D~Z*q%0&c!AdM2z1Sv|4;JhUz2ls<#XM0{?~Q67sL=v+=wNQljf~ZbBzc<~!M6 zxxwL)YfG`nyJ&vjXoY2CG{19KG)V4HuKF?bHuHzKu`v5hoy5piOe##6 zL5ouvN^Q-}$B6x*+VxD?kY2-|HTz!~4%K78`kPN2(zj>SH3#qL;tC8DgHXt{wfdT2 z6X(N7Penq{1nJX}FHT;g{(|~XGji=61iP7|BB$KXlH?b;C=+-<)>-RM@VDP)S$Eli zhNR3tK}thBcG{=eKYbM1-#j-WX@bxlh6!4^hLql+xqj^XsFcVKIEU&u1mt9hK#q9? zZ%A&!`D*9eyqGs)VAW^1-Oi}Min^Fw$0TjkpUIvcas>9hmV4Ck2gU99I^h#wlPDmuO!O-ay*1yT zBneKei|B?pI_jRh`e1@D+TR$h26on*V5;ezEjw5 z!`4>%6JUMaY^t%D?-jFdRtBvdU4G%q={DY$9vW2k{|+S&$0?q9ROc079kgU?>=q3s z0^0GaFR;rTT)d5Kw?vLcurr;H3!N_D>DmssJR;`hTnk;+=>Pn*CPkW`&ig+m)HP4U zOBj?M6YYzfdohkenVzC!Nq8Ui-bo)6Meo-n~0#JHp>xvF`?%&fFUKez{G_ z&Xy@g|8Z<)v&=cOhNyz{K3EMMoqPnml*;8gc5H|neX`gyFJ#pgRV%cik%{B_JT)p0 z!!&yL zl)8ghcBM8V2Ez8liNSA-biZ7_bi4L_6%rj8j;DacLJHn6_8MvHIf-qNuW6MIi~ z*K%QfejnPUAX_#^5n5mXz~S|imlgMfEI2~QE9{ruIONN#>iz`jWfOA+Rhi)}+K(9F z>;q;&^=+a*s~GQL033H+nB0NGd<)Y11k2(=3?s;1BW$_ZCXHj97DdbG=Tn8G6^tvX z7(i9;URF|ZE@%BmME94YIeJeliQ;ClQSeW<703>517-oPQC85ydi`rfR=ZJfZ$vf|7MENAI?xIIHEQwIJoXwYgbf*lI$yUM|^FQgqR z9641@UMIUBDwqgO31qKwsqSZMX%bqyz0xkvZ>fRoDzp-^%3i5Qv$OkJpk>l;RX-+} zBZmnJC|QCSe>PT^d@%B9jzY=)d(O(ykX{Bm(h;;B8<=ita)o}a+7auMI0dF+5%E9i zOoTmOjDPIVWMkP=>YFHy)A)Ns(#f&2Shvt99ECF(?{I0`6&JVe%X&G^+RqQ@lE*PT@Ofhp{7$$JVG$s@wkO{+F#gS5ZcuEpa5URZvE?J*@vA5V#>q0rFTn3By#7+VqhD5S^1c># ze$HZ*e$);XPUm-Sx8@qh^)dRw<_yJuc1L8WY# z1839$($ejutlPPQ>srz;tiXSXkLZ!N?{Dj7b-%gI_rSv*av9CV?daQ!ByHM0d+hSEEk8! zU)A$*a~=HVfG++}@6Y(1vWPI}w^hIfKMN$yD;f*~JZXJoDAs0b{I+6`-GF(9g6fR? z^@-38FcTtD`4A`J=}AMyy+#*Snk{UL_Vb=$W_S<&7XmdgyE$pNv!Rhl>zXMW=6ogw zYTgPN8ui)1I@)BrMm8-GDYS&qbZsxnow$vbV14W&e|s4<3#yt!o>^7-2D1tmPkW;? zT0ih3D+gZLIBe*QoI|N5?* zoZU86Ats-X6FG-#Lszr>XnS}fyG4~$0Pk{gs6Tk66NwKvg!kKv+$mm%Ovn)@B=_ME_jHHHi|q!MXrDYwhPIf7&6ov7UY8uX|cwH9ljMFdn=meI}bjL{b-*^>N7Q>$4iHXp3XVDWg2H|drt?tR$d)6<0tod`C0 z{ty=aXD*Ruv+k{yBicPJP0&>DrxR?mZqruOB-{hA09=aBFfjZGmaSCQLt>8>&xT+X zHIOjAtyxx_fF(N8gbQ7STkI?kATCI=*8?=vR+%^zZ)gA2XT+(0|Ao6V6KJaQklbMVx%os8%5_Wy~{K=03jr;!WYgXyrxbsGy zXy@S7K%_GkOnGDMkfzggiV|NzKJPJ52;g9R)-d(Zv#T>I|D264lmGzW00@&q0Kk9k zxTYR%v#qTz`*xp;vYr#iGOAIQVMrxg71KjHjsChk^tkEbZ7Hy#*?15PJKaz><>6WN zd(ItFg!c5h*2r|y?yxVW@1wL-ZQc+OM}i13;KU^_#+cefo2iq7v!?DwkzPdEi2)cE zHhVF8lpK}wfcF{u@`1;ifQG16g+_KAr$;Z`_M6vt&T%F|M$u9nlTJx%UcDei&ZZ(w zP^t9V_QzWd22m2nG22iRy)zl}NHd-uJ#9bcEm6@q~!N^amfnOEdQ3=OVn#E!aIicGIxwFG)IVV+OjW37KV%A#}f z{ zjlMWd>vUBdbXa)V<<1;w7G4yEiqiQz&4h?7rj$APl+C1|2rCz`uahGMcEt;M z$^TnW!0&Yx&n9`}Zx2_dZ}F0mWUc=k8aJaU=>$E~GqEGfDt|5`bTC2FBnfv7S=MZi zJBbTPSO4R^Ozm&AhHPncfcBmbYcCR`zqOa;Ib{dm)#s>51PAd`k%dk)y95GE2>q_3 z$Z?Zr5X4ai@1rN4PkEaE&hHDnj=pxON({+8AbBNWi`A(;V(V|?j-?0pdR85-^}WF- ziRn~L?_$lLI%mLf_10T;kZrZaW1UU!`Bkn7h5fOdWsI;wmJ~hN6CIsNX2ZSN%qtFR zA99h3Lnd{*Ge4`@VTXPh5kkfwb9?f6Z-25g2YKQ2{~Odd9!j%P{Oc!+DV+7VtdYZwYWnGHpj2+)pexK{NR0Uo&aKo`5Q`a>_B;wbUxIU=ed(H>qU#*;(lOf4sLGu1y0JtV?dz_(6GVTTgNMv! zlwrsz*R?{35$h;tGBFU(Gj=*}6#h;x_|lMavdK4MekxRt6Gqdw6kjE9nht@1di?#K z=*n5dv!;_K;p?hu+xk2nx2P6rveDZwnO;vaqTxWRkqRnayNdRQh?mUfiX}W`e(E3h z+-~3gK2%TpC0@z`CpvR5glu8x_8O^g&&ZMeb@AzKV)4d?d5g?g_C+u4Dtp22%PILw zDlhlqPt%7K;49Yeq>u>O0I|b$y`&sC;1~Gy3(}^CqTnX8`NclcV?tV50iZW+OhN1W z3^yE;1UkcO7E7X^L)ZWS3;+Nb|Dpu*a-oJfJ=x-ENRFp0+1t3FYV0-=J4YQnH_%KG zWqAH9^i&zwisbjd#7GCCnLl_#oE!IR*>ta^ug_Owrvp7y(a(7{yR)Eru{!2 zh|b_OeYYIOjiL`*zHD|_&z1`Mc~7hXJn2#n zaWb96X~ex^=7xhTvN6H$i_7*3_)dC7Rk=2VzX#h11g2umRf??sP`NnnoK?LuXV*b> zU@8`G@JBK>ye;CjJFp745MY740`~Ru%9eZfH*b9QccqUWtdG7)v3r| zX7-rgDHb?0lSpH#;W1W_cW{JlSsX zK^ami_xt2XzLD~_1fT7`>u3V@eL+V8(!V-Uro@lMy*z%&Q`mmu=Jj`mR?Ar;uI3OY z*0b{KZi6?<9Q;MKB*gQ4aJ>O0FjxHjqV$Nd#V_HODN5~QD)yQ-{m&jQ1n@;7sp)gv zjvx)G|C461ooG0|ftUM^{U>LyQY`3N6HbpOcjPb}#5cd=qo(T`lCIMdH-IEd8GX4` zZ`Z49ZiUu;B)LWy*MNH?pyVy|p#;%ARUfNsBooBuKRQT#{h$~pimz|UyNarztVI22 z%)>g;5?%qEKKOl6sT;$cDG`&Ctkw#^d6Ud+&65SmzKGGM=>0DT`m1_a+DQz7{Q%wW z*-`grrZZHv0~0Z*+a6tvY+>?;+5y|@bHF;)C}xo+Ta4zg1eD1pa4ky%gg_?MK(4!+ zYB~}K0Un{zUkQGUAjeIbmFNFPGD7u20D$io!n))C2@^+g__0Rg`%h6?w~%b@R9{jO zzKykw=y;W{d53OyZjF-eXB(6z5WIdut3X%!%#3Da`g(`~v;*4hOYLM8UEulP(K$sa zn0*=Mkhh1eSC+o4jaT<)_Gc$4F2y-n@PvnDLH`mV*iT;cn^E_^)vVU*Xz5Uz_wF-) zG!i}?Ay2LGRy0Q(+2gOuI}FX%(afa>_gAj|8DacOo^{x4_@8I=8}N*3L|1)doLmQA zc_Y!qgGByN7%&vB07Ib$FccDmM}xl`S_0M-)<&=Yw&Iu{hS&)wD7+Pud**P3k(4NP zT5hn-tU0%zeeR{FP=L1hmK!Oqs~$!)Xd!f}ysf)ZBHtozDi;t|++pzPnPY&BT78Y`F=hx|+ zrSKw9-3IajwNyNoqi@~VZ(Roz!9wvMz&s{78hCm?foXY-{~5+^9iE)lwv{BmA5snH z?~cn@H^Z+C${f(hJ;LdbS=$>3g@wPjP=B3Ub?EtPPp+IHWwrY(UA+ids*G`s{oe&c z%b6{s#axp!(bnZ@G#lH3WhW}A$2CtJ68`@HFpdtnc@HB~i7#kb*q)_FXe{(T;RsP` zPqnw#^wH6W@pKV{eqp+UXnXkgC)JqM?+m+T`M*>|#~A!;`Yyt}(>ZVKW=4nK&W<9D zW16OECGp!sn$+l^^-FE7pwczXzL2Z>czVCmyV-&ooxhdl&)tL=D;C)A>QTC3rvJTw z>*#m4@N~BU21g|t*@n5yC8v8UWhHFx7_}#|I{CT=Q|agZ5^CI(|G3y5ruFMZ{bqPA z*kny%+_Z~*DBPs}sfW$t&gGoK)##yI#rwVsLYdDlpC?*b8FCk} zNE;bE2ivJy^4$Zf;2Nj`nhXQEAz&WhPB{@ez((a)u=9nUMWiQf07T^SPcwrBmd@iLFkZNvH zB^oV$V+rQab;F{W)1T{*XcQ4J7x*O$rb$}cgDRE#PiAq(t z;EUiV=cGuC;PBdyEi{nh@DElKlmFA4DSCF|P} zMb>k`zAtA(uKFH&xDGx9y3t{yKcfdr5h2N~RX`nZL^2-{4ZgXuBzpG*YxAb}wn7W| zZh*6aYT8KZgmfFofp~7dP+lMh9Dp4WBj6crkJ`^8H{jNufO&1C%)Mf|gkzU)X@buV znAce|q*r7>H*CIw?I>8Qv>gEeID6&Zbs+(DD)`g4zLUB+qc$6>(C9l(!3WJyUthCPyXN8h2d{jvpu)v#)EDNOzs*v@VNQELM%gvt{3UUXeI{J1>Dl>$nap!d zvcDbrDki9NUn&){r*JI%j1fSR;xvrlQTPS<((tu-|Lm9#!}c}HcCQ9Xx5}|>^9sMy z(pXS0sh-EycLFyqL?RF6{ZpxUu7`q(W~v#Avm`WWIe63pqd0o|ZAVNOJHBKIZ7^z> z&w5O9^6y*r!*y>HA2L|i?=fs^q4i1q^bcGmKZZzu#eOrqb^Chg@JbT-HR$aueMfiN zN05$o3;lG0zpU<`i^a1b9pesp76yFw)r(W$luC9H8>I)V%kKl;Edm%w+<N*n7~cAvU(4<5 zWL~4DPZ1mdbE(@qyQ4XOBX)0|M>8^Co@lDXPslIQW2rB&q=eG_uOQC6?Rv8F+%tj5 zE;{xRED?^KDlPVs29m9r#36=3c`n8F^O&ZwVVvD;Xz70=H-_Zuq30XEpK}BllIYrs z{vHHV)%ALOQ>gZZqT5*Hw=15W))IL9@ADH^dcuGf*AQ=2eF?y@Ah=FZf271{F^HaG zPYx*gr08$yzc86E0xEn`_DIq2KBKrkvrW z!KV&T{Kot)CQVt5O-s;s_WQAoPhNXG*{o3suG&OuUEB*#1+0AM6Mpu4UenCuYDH)| z+jW`A3wO48o^^GeG;Q;7NdwbL_?2qt!&0{CT}fvCKV1}uQ1c4Lew&fnbPi?gKJo!r zooMe-{JnxT6|}JPqvo)VuCkCIadFFp6Gn_tL|}2Iyp@v8kho&QTJnIA!u8HF zYMHMNI7})*K80w>aQr>)#K=uRC>OA*b#LL{*7eVxh#j%-i>5~; zrmVBG_xXwILSK;#jw;puB-HiBvFo9Ece9s(5JtnU1V7)Tr}R_8Yd&$SATziSaX(@i z6#9K74;z_jT8GT-T-rE|Ie{GIXpEYi1!KZ%vtL^Po}bIY&YMngX4=^I>! z-rg*%l>~aFk1QF3mBiyS$>m5!=@M{ zM!u_-o=kYA5{X;CTd4con>lYA_|0<0PoTmlxby6v!X>BK+DPwkoPZ9cbzE#lK)6KS z{@!PWxm=s1zh|MP6cb7E-D0fx{A`~D4ueVg(bnk13ChO}zmQak9d2(lew@t7A*`I6 z$z^pfOUj&NZ}y%9iHTb#pKJw8`j?43pnjV1dZPCFiwt9KbIQSI?`)zalkrQiAb~vl z$;fSIcXNvuf85TDQ5v0-s?{`|77Xf8(kK6xBE*LcXOoyk9a;S&jDU@i8=l*v_r61NL=6@@pE!%jX+0mI8b)i{>muJ2(iFdJzzsSvbyqkC52wiP>}hW9+E!b6tmnkCBMo zp;Z@(fpuIHdeq?`)v|Q5B}SLF?QV}DEoYTS5gcihGZ$4 z-25)J5bP1`>fq>*jdLq+u?_h3s`PGqT6S|%(~ggN;rO-K>}}m3+?d&)d)~SJ+bP47 z6jgTxMldf`hNq<(`QN0sAu2!KIfmq@|FTe=aa}XIzyD}C=$pbbl5%bQV`zfSv;af? zMtEp7l2!^aPlUm`xw?yG3w@I;yN@?W&LC>JRif1GcYz(0AcsI5aExKzQ{NPR8e~L$ zXP>iT;hkq!GmpQmiHGMl_%RYyG~l}XCOf?*kmHv_tckZKm4CvawMD4xqYcAreZRrY z*z+q!*eoi3Y23p_e&{#b+`d=9-`Y(d+a$(>gv`MaCLM=XOI~!~pHUNSpJkkX7dsOA z)xEQTR>HT8!kULZ>$5W0smLa0SbfXzpX7L8#gtTr4K2RU>JaJJuy!1qX4VjQ=6rk- zNoeQGx4k!$UaOJS&p1b=#W%rg@4UMPx1PKGG0;-OWi3>M)2p#&!o8i6$@!3v3^rkd zTzkTdfDJ)#@cIW7bdIAE!kmjo&N)P1YKGPeq`jiqbdoX7dBXMEXx(2uvw|UJDq6|9 zhs!f<{(_Td@b+_mcOa1)303ts@?kMAY>b*Rg4PQymh6^fkK zuTGKNcdEuu6-P$DrBnL~&DM$!#JlQ168zZfGn1~mLPxeikoVgXhwM^mBx3Z`ctjhs zJR6JSU-&`eES6oljHO*Vo=5!(@}kXd51XG!tGtG=$9DGK6~JX5!%Wi?g-(p6{;*v- z273@Av&W|iaBht_=;?<3%FE|Tbd$;FlAN@Pp`5#@a%?zm0RUAI(^@IML0IHItSs^Q zeF6Xg?zy@H#ZFsd)F(@~5{hsU-pWtes_UvU-hB-^oNMA?tun4sVlPm2XHz%96 zsd5)+9VCGl$5=feJwpaEKV1VRzwzU%ntyI%H`pIPUhsff9#?hxQmkG`xS74vnqL>8 zIenMJ&(Unehmgn^wcniITwjjV)mBPE?MJWd%vB)i*KhIFpgdlv2Xw(@;2Yn>r^waDph{KxD%Gti;t=ZCe-D6kIktM3Ox ztMEA-WY4+@{tk4=3yt(8y=rIN80s@Ko@p32Yjb<5vD1Ae7Z>(uN85tjb$X9?voNdN zAKJxQ#LH+5Gya>w0y)YqW8t{5!g5$Zg6meQ4B&K!hm*!D*3L?{#+f&nHX1V`IZ z5{%<{pspP}tI3u?qTF<9k;2WrB`*004@Q1DY~e%!@9g!5pW0#NXzzHvW^l z>DdJa%o6PQOO0Y@!aSW3or(;O5Bzu2lVk*ktW5Yd_b&MP(=FBmfh5eX29mIpEJp#^ zTk`;35|NFh?Qp|CLNhKTCbE)$$EIj^`yu?Z+7eYiS@Nv9l}yU8&@#k5X*n&zz@Q`pLas z+S{0E?V%m)=MBn8<#Ix%lZonFW_9Ki72kZPh3;4&W1ZfI`(3qBr}qt-!4mi06Q1(e z{Z|EYaZJ4H+LB0utrE|}+m3R7h4%~voQ%dy;)g$M&5x#I@VS5xG`;zKk9qL+-{)Cc zt{`0g^u6E(q0m<{cM)cM2*#MfWeSd75rmCOR+GK-8`*aM$k|7eZysiFufXTR|H}dH zYGing7uuIJu2iA|$N|{&<)KO&6M{AVu2t@Wm19#%*3b6shDc)1;GDBa17#5}HB8@S z^aqRc+2jjijvJ%MPjB*Uod03_KQ9#G`Op~OzuU`M*`iu|`vf^3Q zvru^4xFduvOxTwRO@zct5~*-GG-0f4+EMSp%q=tyvwK);y78+Qu?4QCP;K*-#wT4a z3i(c*kJ;Jm1g6uIdX@%%E_ta`&|c-^zgUuDSd|mFMxxrysJT8{T~3*tETXn zwr(lj9W3wyNY$5=0s2^#U$(1yvQ!K&`bZ|0DnC&|v5Y(lk004jSeaT~<#Gx_kHaEL_sfXiG@M3SVzpS4tkOS!6j(7e5 zfFfSU#=`T*)HzG!4L}vFyIB3j&dc5Zw-O&)z_-%+BHMt!jp#>cb5t3jxt5e_`+AEx zN3W61%okeml@+T$>+r}~?U`5N2VASVvj7hu|3?J>g#ZA+xHi?d$U) zxjb&3Re$dP1JE#gi|4rrE`M=-<|Qfk6SriE6A& z>Ri~bCW_?qs==?f(}fub$#Gp>gnLb+JrIKb0hmtu|7y4re<;_tKa?Dlku(NlH)BcG zL=q8(u`i)vELk(MN0vNU4vB0H$rfsC$y)X;`_N)*kO)ndcsb12xA&QIKEMCq`h2hN za^3fRJ&)XK4~OM21OQoR!MY&@7U0IkW=1bS*I}V`LuXe9aKRo=mRdj$8k})X8it)=gI%Jpa#6ImzT2^0Xcv! zgec%lw9{%p8NTAvrlr)N5;UmF8+N@=0C+W8enjU$e#8Yz0qf>4X(l=K>4tqtps`@m z`lQ&|=M_Ba*WDwwt3oTQbX_@EwPy3g`OLA76$#K;R(qDGWm{OG_`x#6Fp@wJAJ;@q zz$pPzyAVb3VVP^Ka>0-+SU|dsXovab$_~V}OpYnXLp!hj+mi?VF7LpD3jhHssoMMt zH$Vi~z5Z(f*5F?fGHXCHz!nggr9cw;ETB5D`R%=L0@UgtNyS;CQycPJ0tirsXHa`s zm4fEbX%K;o>=Y|Oe?`d|@!doO$bn`t1qtg;R21L%h>*Fto=tR7urpussHLIGQ!+so z44J$U)qEZ6q7MW*V~7OtZ$IO z7Tox0j&rE;YNT_3YT?|E0XaaKh6CD@>`s+b1J-2)pXYK(fxoI*kH{Uj?`+kuG_|=q zKrJ~_pOGcMDh2TtmyWU4xAR+a`lU>hv*A@cT5SUmms?;2Ar5LKde{A zdnqknO$f^eE^Jkc?8{#>2EZ1Wmp(LsdP7NSF~4T!G{u0R?RHl^bT84jQwyFe1T(M> zs_|L?Nf@#(vafR`qmPIUZxcA$w26}C5mz(x5#;-sGb|$5>Pop-hlsr6+ zt32r{_|FIaRRNdLcFaJ{k=mVw*#am`DSvi`B$7`?mLf3>Uzh{`Up+$y_ z%+WRpZL|5=vab^lCv-^JLcrmTCBr)%%4j}IrUhhNSi2u0%nw@_&p<{m5N9olBdn6$ zpqgUu`A{2XVgP7Fe|%43kyW8h)|&NC%f9%N=hh$&n1B>QYvM*@h4-|zCgDZ#nfd2GZO&xuhP?q14O{GM{=M0t?$}d zN(Ju`X-1z}Qni{fXwd;0zeG~YK3yct9wuAlmhW0wN&euYv_B!>j(tAmCy$?dGEYj1 zns4PTG0Sc;4g58<;|3nof+V!QOp3}z zi*!gKt@Q}ij*i{Fpc4*h0Tp3YUdUNHlAv$pWdbw|-p$>*yOuzVf z_Zb#BXWX25alvX0d|yI_Tt5qYf?Q?27Qoy(%Ioj1&J;CzO=6e|!MzdZjXj0>!LOKt z95dN)mZ^_dZ2;^Qtqb|DCZLO<=DFjV>3-fplRk|y5pcknFTP4IYw>IaAJDR*&A$yg z;ZR{|^&0t~fzZTsm_*X_vE;w*C28voRw(w3{?Dm{!8zuUy*1+q;S#RsydEep& z-zEReOrHsr!OQ9m{BbO^yeR?#URGE9%YjGDi{K|7!r(=v3Aj&a1nv=)f%}Ap;35;S z0d6!dnIdNa7YGn1<54b=;QY+;{&GGnO5(U%n z_?WPxalgrW!U~y>Xr!=Zj`^?pRT^fQ0INlox0-=odKxzD*_P8MqT+)VW-tw* z6Lm4%o%+sm5N}bbg?yF0jYy)e$BEuZ1n+q+kr@9vcwX6RmPCvxj9 zhm7E>B#jTMWrp`Y-VGdXD!i~ycfvQhA!8r{yf6*<_xYalX;BNJs!f<$7h{gU{C+oL zZ41beR?s$feCO1fuTXM%Y;^x43nd*b@&SLLr%KJEbu~nvVwpH{RD1!Ts^H-hJXxL24P3K=>H5+u!lcd zZxTlNxa-idCV2!|aACbW&(muF z5@4E6TV`>I8XXuIxQGxnbjUsorbVc1sVr+qdcuMpPxqmHl3{R=1HX`pK;HFVhN@d< zUiOEr`ZYMM$eFa)pOyFyEyh!>3V(@|n%}3nd6v^Q&TlFCVg7|Ohme~fl|0z7mNo2v$7lwOGbf+%J)kV&rX;j`?S zmJZbNQ%tRQ>t*+D7&RU_%;!GgV=P)HYVBMSz)kJE3g|aEQ_37J?nb0}(hk#!S3;KH z({5IRVd|8QtC)h=5=N&Mm`gQb9c)3_U{A|wZCg|A^i>|3hv>=mY`mWYpHaisTV+$C zuuL$X0Q5j_Rxl)s3f5xM2g36Odo(81v7dgO!7Yb>Gw$)09E|e$w7TJ}uzb*>wW-Ld zpYi6YcZ`kkV>LTg-L7xi>B+Pq6z{A1&5XPkVSdLWHt^c$Z$=^&(9khT6Du;gtT?*y z?mZmJh5Xc##%$hakq3q26dlR+>-U)dag;znfVFBdofW%8rtl+~-3rL0=`2HPD3CN7 z7?gPD#hu5-K;8&1d2bFW^0bNMpTVW-mC+EV)-1*|hj(CvKFK#3OW#SqX-$HUcQ{qDuxEAkAJr*Ec{B~_p_ws&?w`>R{8jfVvWXzbj=*YfBNKR2#L( zvteO3$NEssuJCVc^w1NcXxJ*QKwO{m+?51^k!@{efu_&9K#9)GgA3Y^+rNITF~z8v z=)72ZK$Cv3=Q`Rhvt(nQYW~?`q?gkU2*&&@`)fB-@J*uXr>3F7tS`cEtr{8ZT1s{9 z&xgdYbx3|{efNhFKU}0)+BS0YFi83IH%h5t*LCtDyNa=Ed5P5PaifKRkkW^1j;gP5 z@*h4R%;(xzHRW@qe5xig zhBF(E0k!V0`!qUOdRK0~{as`zc}Ams&}?jpFID*UnYf0+(6pqEh-Q_BCYzaH1ot*X z=CG3wEZ~M1kmRecdM>v>G{jal5oOBJaj$mf+(Y_{i4^#q&j+vor^GeI6dD^sf{n4x zv@d)#I4c$}OISKDf+7ssp6UkR)7G|!jY2D#!TENGl5?=natP6UJFnBgO)mBQWlpcA z5BAiv*xxHruJ*R^I%gF0GfT|w?acMv7PxdtK7+0uJYTOfL3%ZT<)0w4mdE^wPa zs5mX*x|=uCQkDhW6aR04I+cPA13z+UeN2;f&RNW7B%gTO0yNNsd|rpz|#9#99IJTW&YDaIu1!bCa9B0tMV7w?d ecr@b%&*xwqf?;6%%ISN`yivHEzGQ-W&i?}vLJ@-i diff --git a/radio.c b/radio.c index 461ffc8..ceba43c 100644 --- a/radio.c +++ b/radio.c @@ -48,7 +48,8 @@ STEP_Setting_t gStepSetting; VfoState_t VfoState[2]; bool RADIO_CheckValidChannel(uint16_t Channel, bool bCheckScanList, uint8_t VFO) -{ +{ // return true if the channel appears valid + uint8_t Attributes; uint8_t PriorityCh1; uint8_t PriorityCh2; @@ -56,8 +57,8 @@ bool RADIO_CheckValidChannel(uint16_t Channel, bool bCheckScanList, uint8_t VFO) if (!IS_MR_CHANNEL(Channel)) return false; - // Check channel is valid Attributes = gMR_ChannelAttributes[Channel]; + if ((Attributes & MR_CH_BAND_MASK) > BAND7_470MHz) return false; @@ -177,8 +178,9 @@ void RADIO_ConfigureChannel(uint8_t VFO, uint32_t Arg) if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) return; - gUpdateStatus = true; gEeprom.CROSS_BAND_RX_TX = CROSS_BAND_OFF; + + gUpdateStatus = true; return; } #endif @@ -203,7 +205,8 @@ void RADIO_ConfigureChannel(uint8_t VFO, uint32_t Arg) Attributes = gMR_ChannelAttributes[Channel]; if (Attributes == 0xFF) - { + { // invalid/unused channel + uint8_t Index; if (IS_MR_CHANNEL(Channel)) @@ -220,8 +223,11 @@ void RADIO_ConfigureChannel(uint8_t VFO, uint32_t Arg) Band = Attributes & MR_CH_BAND_MASK; if (Band > BAND7_470MHz) - Band = BAND6_400MHz; - + { +// Band = BAND6_400MHz; + Band = FREQUENCY_GetBand(gEeprom.ScreenChannel[VFO]); // 111 bug fix, or have I broke it ? + } + if (IS_MR_CHANNEL(Channel)) { gEeprom.VfoInfo[VFO].Band = Band; @@ -349,7 +355,9 @@ void RADIO_ConfigureChannel(uint8_t VFO, uint32_t Arg) } __attribute__((packed)) Info; EEPROM_ReadBuffer(Base, &Info, sizeof(Info)); + pRadio->ConfigRX.Frequency = Info.Frequency; + if (Info.Offset >= 100000000) Info.Offset = 1000000; gEeprom.VfoInfo[VFO].TX_OFFSET_FREQUENCY = Info.Offset; @@ -418,7 +426,7 @@ void RADIO_ConfigureChannel(uint8_t VFO, uint32_t Arg) gEeprom.VfoInfo[VFO].IsAM = false; #ifdef ENABLE_COMPANDER - gEeprom.VfoInfo[VFO].Compander = 0; // off + gEeprom.VfoInfo[VFO].Compander = (Attributes & MR_CH_COMPAND) >> 4; #endif RADIO_ConfigureSquelchAndOutputPower(pRadio); @@ -465,7 +473,7 @@ void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo) Txp[1], Txp[2], LowerLimitFrequencyBandTable[Band], - MiddleFrequencyBandTable[Band], + MiddleFrequencyBandTable[Band], UpperLimitFrequencyBandTable[Band], pInfo->pTX->Frequency); } diff --git a/radio.h b/radio.h index a9dad79..d2ac398 100644 --- a/radio.h +++ b/radio.h @@ -23,9 +23,12 @@ #include "dcs.h" enum { - MR_CH_SCANLIST1 = (1u << 7), - MR_CH_SCANLIST2 = (1u << 6), - MR_CH_BAND_MASK = 0x0Fu + MR_CH_BAND_MASK = 0x0F << 0, + #ifdef ENABLE_COMPANDER + MR_CH_COMPAND = 3u << 4, // new + #endif + MR_CH_SCANLIST2 = 1u << 6, + MR_CH_SCANLIST1 = 1u << 7 }; enum { diff --git a/settings.c b/settings.c index 212c59d..77d3c79 100644 --- a/settings.c +++ b/settings.c @@ -229,7 +229,7 @@ void SETTINGS_SaveChannel(uint8_t Channel, uint8_t VFO, const VFO_Info_t *pVFO, } } -void SETTINGS_UpdateChannel(uint8_t Channel, const VFO_Info_t *pVFO, bool bUpdate) +void SETTINGS_UpdateChannel(uint8_t Channel, const VFO_Info_t *pVFO, bool keep) { UART_LogSend("svalid\r\n", 8); @@ -238,32 +238,39 @@ void SETTINGS_UpdateChannel(uint8_t Channel, const VFO_Info_t *pVFO, bool bUpdat #endif { uint8_t State[8]; - uint8_t Attributes = 0xFF; - uint16_t Offset = 0x0D60 + (Channel & ~7U); + uint8_t Attributes = 0xFF; // default attributes + #ifdef ENABLE_COMPANDER + Attributes &= ~MR_CH_COMPAND; // default to '0' = compander disabled + #endif + uint16_t Offset = 0x0D60 + (Channel & ~7u); EEPROM_ReadBuffer(Offset, State, sizeof(State)); - if (bUpdate) + if (keep) { - Attributes = (pVFO->SCANLIST1_PARTICIPATION << 7) | (pVFO->SCANLIST2_PARTICIPATION << 6) | (pVFO->Band << 0); - if (State[Channel & 7U] == Attributes) - return; + #ifdef ENABLE_COMPANDER + Attributes = (pVFO->SCANLIST1_PARTICIPATION << 7) | (pVFO->SCANLIST2_PARTICIPATION << 6) | (pVFO->Compander << 4) | (pVFO->Band << 0); + #else + Attributes = (pVFO->SCANLIST1_PARTICIPATION << 7) | (pVFO->SCANLIST2_PARTICIPATION << 6) | (pVFO->Band << 0); + #endif + if (State[Channel & 7u] == Attributes) + return; // no change in the attributes } - State[Channel & 7U] = Attributes; + State[Channel & 7u] = Attributes; EEPROM_WriteBuffer(Offset, State); gMR_ChannelAttributes[Channel] = Attributes; - #ifndef KEEP_MEM_NAME - if (IS_MR_CHANNEL(Channel)) +// #ifndef KEEP_MEM_NAME + if (IS_MR_CHANNEL(Channel) && !keep) { // clear/reset the channel name const uint16_t OffsetMR = Channel * 16; memset(&State, 0xFF, sizeof(State)); EEPROM_WriteBuffer(0x0F50 + OffsetMR, State); EEPROM_WriteBuffer(0x0F58 + OffsetMR, State); } - #endif +// #endif } } diff --git a/settings.h b/settings.h index 0db016f..3b94b8c 100644 --- a/settings.h +++ b/settings.h @@ -235,6 +235,6 @@ extern EEPROM_Config_t gEeprom; void SETTINGS_SaveVfoIndices(void); void SETTINGS_SaveSettings(void); void SETTINGS_SaveChannel(uint8_t Channel, uint8_t VFO, const VFO_Info_t *pVFO, uint8_t Mode); -void SETTINGS_UpdateChannel(uint8_t Channel, const VFO_Info_t *pVFO, bool bUpdate); +void SETTINGS_UpdateChannel(uint8_t Channel, const VFO_Info_t *pVFO, bool keep); #endif diff --git a/ui/main.c b/ui/main.c index 29f3bc2..eeb110e 100644 --- a/ui/main.c +++ b/ui/main.c @@ -244,22 +244,19 @@ void UI_DisplayMain(void) if (IS_MR_CHANNEL(gEeprom.ScreenChannel[vfo_num])) { // channel mode - // show the scanlist symbols - const uint8_t Attributes = gMR_ChannelAttributes[gEeprom.ScreenChannel[vfo_num]]; -// #ifdef ENABLE_BIG_FREQ - // side-by-side - if (Attributes & MR_CH_SCANLIST1) - memmove(pLine0 + 113, BITMAP_ScanList1, sizeof(BITMAP_ScanList1)); - if (Attributes & MR_CH_SCANLIST2) - memmove(pLine0 + 120, BITMAP_ScanList2, sizeof(BITMAP_ScanList2)); -// #else -// // top-bottom .. makes room for full 10 characters of channel name -// if (Attributes & MR_CH_SCANLIST1) -// memmove(pLine0 + 120, BITMAP_ScanList1, sizeof(BITMAP_ScanList1)); -// if (Attributes & MR_CH_SCANLIST2) -// memmove(pLine0 + 120 + LCD_WIDTH, BITMAP_ScanList2, sizeof(BITMAP_ScanList2)); -// #endif - + // show the channel symbols + const uint8_t attributes = gMR_ChannelAttributes[gEeprom.ScreenChannel[vfo_num]]; + if (attributes & MR_CH_SCANLIST1) + memmove(pLine0 + 113, BITMAP_ScanList1, sizeof(BITMAP_ScanList1)); + if (attributes & MR_CH_SCANLIST2) + memmove(pLine0 + 120, BITMAP_ScanList2, sizeof(BITMAP_ScanList2)); + #ifndef ENABLE_BIG_FREQ + #ifdef ENABLE_COMPANDER + if ((attributes & MR_CH_COMPAND) > 0) + memmove(pLine0 + 120 + LCD_WIDTH, BITMAP_compand, sizeof(BITMAP_compand)); + #endif + #endif + switch (gEeprom.CHANNEL_DISPLAY_MODE) { case MDF_FREQUENCY: // show the channel frequency @@ -327,6 +324,21 @@ void UI_DisplayMain(void) sprintf(String, "%03u.%05u", frequency / 100000, frequency % 100000); UI_PrintString(String, 32, 0, Line, 8); #endif + + // show the channel symbols + const uint8_t attributes = gMR_ChannelAttributes[gEeprom.ScreenChannel[vfo_num]]; + (void)attributes; // stop compiler warning/error + #ifdef ENABLE_BIG_FREQ + #ifdef ENABLE_COMPANDER + if ((attributes & MR_CH_COMPAND) > 0) + memmove(pLine0 + 120, BITMAP_compand, sizeof(BITMAP_compand)); + #endif + #else + #ifdef ENABLE_COMPANDER + if ((attributes & MR_CH_COMPAND) > 0) + memmove(pLine0 + 120 + LCD_WIDTH, BITMAP_compand, sizeof(BITMAP_compand)); + #endif + #endif } }