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 730b995..eb6a903 100644 Binary files a/tools/assets_0902/06_控件/调音台控件/调音台控件-3.png and b/tools/assets_0902/06_控件/调音台控件/调音台控件-3.png differ 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"),