From d654581f4daa189c6fc8f451285712c470c209f4 Mon Sep 17 00:00:00 2001 From: yuquanjun Date: Sat, 5 Sep 2026 21:30:59 +0800 Subject: [PATCH] Fix mixer labels order, vivid track colors, and solid blue knobs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Map 伴奏/弦/麦/麦混响 to correct assets, boost track saturation, fill knob disks. Co-authored-by: Cursor --- UI/UI_Mixer.c | 12 ++------ device/LCD_ILI9341/Drv_ILI9341_Lcd_App.c | 27 ++++++++++++++++++ device/LCD_ILI9341/Drv_ILI9341_Lcd_App.h | 1 + project/inc/UI0902_Res_Addr.h | 12 ++++---- .../调音台控件/调音台控件-3.png | Bin 1387 -> 1416 bytes tools/gen_ui0902_assets.py | 9 +++--- 6 files changed, 42 insertions(+), 19 deletions(-) diff --git a/UI/UI_Mixer.c b/UI/UI_Mixer.c index d3452c9..f656f59 100644 --- a/UI/UI_Mixer.c +++ b/UI/UI_Mixer.c @@ -9,7 +9,7 @@ const Touch_AreaTypeDef Touch_Mixer_Areas[] = { #define TOUCH_BTN_NUM (sizeof(Touch_Mixer_Areas)/sizeof(Touch_AreaTypeDef)) -/* ?????????????????? Flash ??????id0 ???? id1 ???? id2 MIC id3 ???????? */ +/* 左→右 伴奏|弦|麦|麦混响;Flash 标签按内容挂接(13伴奏/14弦/15麦/16麦混响) */ static const uint32_t s_fader_label[4][3] = { /* addr, w, h */ { UI0902_TXT_MIXER_BAND_ADDR, UI0902_TXT_MIXER_BAND_W, UI0902_TXT_MIXER_BAND_H }, { UI0902_TXT_MIXER_GUITAR_ADDR, UI0902_TXT_MIXER_GUITAR_W, UI0902_TXT_MIXER_GUITAR_H }, @@ -59,22 +59,16 @@ void DrawAllFaders(void) drv_nvm_save_to_flash(); } -/* 0902????????? + ????????????????????? */ +/* 0902-06:实心蓝色圆钮(勿用同心空心圆,会透出色条) */ #define MIXER_KNOB_R 14 -// ============================================================ -// ?????????? + ??? + ????????? -// ============================================================ static void DrawFaderSlider(Fader_t *f, uint16_t slider_y) { uint16_t cx = f->x + f->w / 2; uint16_t ly = f->y + f->h + 8; uint16_t cy = (uint16_t)(slider_y + MIXER_KNOB_R); char buf[8]; - uint8_t i; - /* 0902-06:圆形蓝色旋钮 */ - for (i = 0; i <= MIXER_KNOB_R; i++) - LCD_DrawCircle(cx, cy, i, COLOR_GRAD_MID); + LCD_FillCircle(cx, cy, MIXER_KNOB_R, COLOR_GRAD_MID); sprintf(buf, "%d", f->val); LCD_ShowString_AutoAlign((uint16_t)(cx - 8), (uint16_t)(cx + 8), (uint16_t)(cy - 5), diff --git a/device/LCD_ILI9341/Drv_ILI9341_Lcd_App.c b/device/LCD_ILI9341/Drv_ILI9341_Lcd_App.c index 6341fce..8bb68e5 100644 --- a/device/LCD_ILI9341/Drv_ILI9341_Lcd_App.c +++ b/device/LCD_ILI9341/Drv_ILI9341_Lcd_App.c @@ -572,6 +572,33 @@ void LCD_DrawCircle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color) } } +/****************************************************************************** + 函数说明:实心圆填充(水平扫线,无镂空) +******************************************************************************/ +void LCD_FillCircle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color) +{ + int16_t y; + int32_t r2; + if (r == 0) + { + LCD_DrawPoint(x0, y0, color); + return; + } + r2 = (int32_t)r * (int32_t)r; + for (y = -(int16_t)r; y <= (int16_t)r; y++) + { + int32_t xx = r2 - (int32_t)y * (int32_t)y; + int16_t dx = 0; + int16_t x; + /* 整数平方根:dx = floor(sqrt(xx)) */ + while ((int32_t)(dx + 1) * (dx + 1) <= xx) + dx++; + x = (int16_t)(x0 - dx); + LCD_FillByColor((uint16_t)x, (uint16_t)(y0 + y), + (uint16_t)(x0 + dx + 1), (uint16_t)(y0 + y + 1), color); + } +} + /****************************************************************************** 函数说明:显示单个字符 diff --git a/device/LCD_ILI9341/Drv_ILI9341_Lcd_App.h b/device/LCD_ILI9341/Drv_ILI9341_Lcd_App.h index 00fbb7a..d76d5bb 100644 --- a/device/LCD_ILI9341/Drv_ILI9341_Lcd_App.h +++ b/device/LCD_ILI9341/Drv_ILI9341_Lcd_App.h @@ -39,6 +39,7 @@ extern void LCD_DrawPoint(uint16_t x, uint16_t y, uint16_t color); extern void LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color); //在指定位置画一条线 extern void LCD_DrawRectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color); //在指定位置画一个矩形 extern void LCD_DrawCircle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color); //在指定位置画一个圆 +extern void LCD_FillCircle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color); //实心圆 extern void LCD_ShowChar(uint16_t x, uint16_t y, uint8_t num, uint16_t fc, uint16_t bc, uint8_t sizey, uint8_t mode); //extern void LCD_ShowChinese(uint16_t x, uint16_t y, uint8_t *str, uint16_t fc, uint16_t bc, uint8_t sizey, uint8_t mode); diff --git a/project/inc/UI0902_Res_Addr.h b/project/inc/UI0902_Res_Addr.h index 4b91bdd..405d930 100644 --- a/project/inc/UI0902_Res_Addr.h +++ b/project/inc/UI0902_Res_Addr.h @@ -228,17 +228,17 @@ #define UI0902_MIXER_TRACK_W 31 #define UI0902_MIXER_TRACK_H 215 -#define UI0902_TXT_MIXER_MIC_ADDR (UI0902_RES_BASE + 0x07A000UL) /* 700 bytes */ -#define UI0902_TXT_MIXER_MIC_W 25 -#define UI0902_TXT_MIXER_MIC_H 14 +#define UI0902_TXT_MIXER_BAND_ADDR (UI0902_RES_BASE + 0x07A000UL) /* 700 bytes */ +#define UI0902_TXT_MIXER_BAND_W 25 +#define UI0902_TXT_MIXER_BAND_H 14 #define UI0902_TXT_MIXER_GUITAR_ADDR (UI0902_RES_BASE + 0x07B000UL) /* 336 bytes */ #define UI0902_TXT_MIXER_GUITAR_W 12 #define UI0902_TXT_MIXER_GUITAR_H 14 -#define UI0902_TXT_MIXER_BAND_ADDR (UI0902_RES_BASE + 0x07C000UL) /* 338 bytes */ -#define UI0902_TXT_MIXER_BAND_W 13 -#define UI0902_TXT_MIXER_BAND_H 13 +#define UI0902_TXT_MIXER_MIC_ADDR (UI0902_RES_BASE + 0x07C000UL) /* 338 bytes */ +#define UI0902_TXT_MIXER_MIC_W 13 +#define UI0902_TXT_MIXER_MIC_H 13 #define UI0902_TXT_MIXER_VOCALFX_ADDR (UI0902_RES_BASE + 0x07D000UL) /* 1036 bytes */ #define UI0902_TXT_MIXER_VOCALFX_W 37 diff --git a/tools/assets_0902/06_控件/调音台控件/调音台控件-3.png b/tools/assets_0902/06_控件/调音台控件/调音台控件-3.png index 730b99561c86350e9c42fae44cba9e5be56e94ff..eb6a9034ceb7d6552eabbadba61f97e81b29945c 100644 GIT binary patch delta 1398 zcmV-+1&R9W3Wy7kBYy=?Nkldu&rx9Du(b2P;#w>w=6HqadQZ9~%aN4VVms zO$N#!m1WAq=&r0KJ7S_xNJx!c1B%N8CjXI`Om`e2UkD+w>(x?>BOf0n`G zH=-x5R)Nx-iF8XFe60(vHT#TbpCdClF*ah8^{ePw_J1R9&!6|d$lV^RU)+;(?7oT> zx84TJH_$#~q}BXZycMgosE6e)!Dcg&pka+=0xH? zdeAws$+nG*&mWEIlhz%Icj749zTuG}nW$megQ0krv+}b2q^I``ebvk<(n%^$;!kaj zD;Nw0$$xqP$Ju-^%-rrEO3NisBGwRE9)HcA(BLQQ+P%g!^4vOhuMyzVbGrme#2P}& zMNl%@c$X(wuUP@8I0b<~?2UM&?l}fE50_#{05}%seXg`z0wrQ4-sK4mezJ8N zNc2MBESx^&u)NDGxU(<(u?tSW=&*cq!-Um|-+uw8v|IuuVhy3?A}ATHjh2g`WVAL~ zE`o|%c|wDq)VtTF-REh|`KRIvh7o(A+YQZp&8x{E1^zt)fpUi<_nK#~i|uQpemQX1h2wMx#_@ntS}uVS zv44ipauJk_)<(arsw_G8xnJ*IBmRpT35%Ty{i$gaUf``=HFU1s|_m%~Y}+5%=dI zPVC&rUlqsg|LniRcQ+@?_tBD;EtJe6GbuH9~l zYi6hjrN)@ic@I1IKI&rgw6ffoLVt_o_O&xqm~RZo9>pdj&+3=x(w05O6IO1H>e)$Z zEG%a8n>Uyh$g6VzMz(wHNDqEDrZ6ylM2(~%VOKTthSYm|QLz7hikN=GskiR4*CghU z&*sYEVZ}FGQq30V)}=k?kpfbdlyB0uUGK1B zBFe$z_E@<)W=@|(dFm~E&LIwPhVQtZ=*OI%JCVX@I?~-}$-B#ntUNqs5H};D1VC5m z-gf{abB5scB$GAhdUF?-lycSVh zcENX}3sP?nq>1rG&k-Ko0>PY$j$fUqIr%wi>(2f+oPjkTRwH@B1K-6TFng&f=njR< zEdF)x@$IO5`+vxajR=UxiXun%=Vf8$>(jiqOExs8BFqrQM?iAjUi$NdBxqlG6BqA} zqGWG5Mm(P2ID;Jx=aKGlW9Ib7%eGqk!ppn?3}y{nE}Hxzj6YKfdwwz6uP*MyBHRx@ z*4h}-5QiF#?J10xzOdCx1~cnzCc9LmBh zlM|RdcNSGg5A$z%&qv%n%J+Ifbf29;YGy73Hjza4yHtZ&W`Azs6PS?kL^^!eJ5_^O ze8059o_}YBV9&Eb3NV8y88$JoPV)oq{)>d-_|PCy%*ha*%*_cnH>(k0UDSUA0^>-3J{K@ap0Y^CD4}U%`yM`0u(-0OB4QYA|zTq3{;@Zu7 zcmo(btu{X0a$N4F^Py9XaKZ^EoN&SkCtOyjdR=ukeDyll^E3+v2JXV^ol+ds>vb?1 z6aU41;xH0LHVBc5_C!BD?*EIa9cEVtTo4;E`g}+SbbTAo{aKw*)BpHAt zi+Wv_z;Qa@2q&Cy!U z*{Z<%qBC&&$~8E9U2~t=Z%Hwu{n}+@^w#joM9H+JRN_G40k9G0=Q(Rd?WbSiy@Ucq z;X`qDw0(bt!&taNg@0*`FHE=a%~<=I!|dPPby3g3^2pZt6)NV-DE2@}X*t?k9sK*X zYydlzKQR<8S{eiQ*Kln3*%R0Zh<}0}r#vmo?l9Eqbyrjx-q-Iy@zZ;ktV*(EZf8%( z$g<=4JISas?OS&0W!3B9I6J=$6xOingaTAgTLZ!fwh|3n#DgsuQZMx2_#Y1R&5SJD zLw{IfS%WHKv-v?>b?k$H3&8}%S=fQd*6v{I@QfP6(d>1?_16fm*ZpCyDN?&WSoIc| zy#~JYP0h(u{AFAz44*r~LWnIVdsF^Sdu*&IYOOh0qJNXF?(5^du0C%=qhsXK<(7LP b?F_)*m?rnjD<~#v00000NkvXXu0mjf-3+Dq diff --git a/tools/gen_ui0902_assets.py b/tools/gen_ui0902_assets.py index 5b2f47a..3c1d6d8 100644 --- a/tools/gen_ui0902_assets.py +++ b/tools/gen_ui0902_assets.py @@ -186,10 +186,11 @@ EXTERNAL = [ ("MIXER_KNOB", "06_控件/调音台控件/调音台控件-1.png"), ("MIXER_KNOB2", "06_控件/调音台控件/调音台控件-2.png"), ("MIXER_TRACK", "06_控件/调音台控件/调音台控件-3.png"), - ("TXT_MIXER_MIC", "06_控件/调音台控件/文字/调音台文字-13.png"), - ("TXT_MIXER_GUITAR", "06_控件/调音台控件/文字/调音台文字-14.png"), - ("TXT_MIXER_BAND", "06_控件/调音台控件/文字/调音台文字-15.png"), - ("TXT_MIXER_VOCALFX", "06_控件/调音台控件/文字/调音台文字-16.png"), + # 文字文件:13伴奏 14弦 15麦 16麦混响(旧映射把 13/15 挂反) + ("TXT_MIXER_BAND", "06_控件/调音台控件/文字/调音台文字-13.png"), # 伴奏 + ("TXT_MIXER_GUITAR", "06_控件/调音台控件/文字/调音台文字-14.png"), # 弦 + ("TXT_MIXER_MIC", "06_控件/调音台控件/文字/调音台文字-15.png"), # 麦 + ("TXT_MIXER_VOCALFX", "06_控件/调音台控件/文字/调音台文字-16.png"), # 麦混响 ("TXT_MIXER_GUITARFX", "06_控件/调音台控件/文字/调音台文字-17.png"), ("TXT_EFFECT_AMOUNT", "06_控件/文字/文字-10.png"), ("TXT_BAND_VOLUME", "06_控件/文字/文字-11.png"),