K1Guitar/UI/UI_SystemSet.c

296 lines
10 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "includes.h"
#define UI_MODE_SCREEN_WIDTH 240 // <20><>Ļ<EFBFBD><C4BB>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD<43>޸<EFBFBD>
#define UI_MODE_SCREEN_HEIGHT 250 // <20><>Ļ<EFBFBD>߶ȣ<DFB6><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD<43>޸<EFBFBD>
#define UI_MODE_BG_COLOR 0x1925 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭͼ<D4AD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define UI_MODE_LINE_COLOR DARKBLUE // <20>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define UI_MODE_TEXT_COLOR 0xFFFF // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ɫ
#define UI_MODE_FONT_SIZE 24 // <20><><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><D6BF>޸<EFBFBD>
// ==============================
// <20><><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// ==============================
#define MODE_AREA_START_Y 25 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ Y
#define MODE_AREA_END_Y 250 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Y
#define MODE_AREA_HEIGHT (MODE_AREA_END_Y - MODE_AREA_START_Y)
const Touch_AreaTypeDef Touch_SetingSelect_Areas[] = {
// Xmin, Xmax, Ymin, Ymax, flag, ID, action
{ 5, 235, 30, 140, 0, 0, GUI_SETING_SELECT1, NULL }, // <20><>һ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>̨
{ 5, 235, 140, 250, 1, 0, GUI_SETING_SELECT3, NULL }, // <20>ڶ<EFBFBD><DAB6>У<EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
{ 10, 50, 275, 340, 0,2, 5, NULL },
{ 70, 130, 275, 340, 0,0, 5, NULL },
{ 130, 170, 275, 340, 0,1, 5, NULL },
{ 190, 230, 275, 340, 0,3, 5, NULL },
};
#define TOUCH_AREA_SETING_SELECT_NUM (sizeof(Touch_SetingSelect_Areas)/sizeof(Touch_AreaTypeDef))
void Touch_Seting_Select_Action(int8_t FLAG, uint8_t ID, uint8_t areaIndex,uint8_t value)
{
uint8_t last_value;
switch(ID)
{
case 0:
MenuPage_Mixer_Proc();
break;
// case 2: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D4A4>
// MenuPage_FreeMode_Proc();
// break;
case 2:
MenuPage_Setting_Proc();
break;
case 5:
last_value = mGuiData[GUI_TAB_INDEX].Current;
mGuiData[GUI_TAB_INDEX].Current = value;
if(last_value != value)
{
switch(value)
{
case 0:
if(mGuiData[GUI_TAB_LAST_INDEX].Current == mGuiData[GUI_TAB_INDEX].Current)
break;
//AutoBandTop1_Stop(); // AutoBand 模块未加入工程
ADDRESS = 0x00000000;
//AutoBandTop1_LoadPresetItemFromFlash(0); // AutoBand 模块未加入工程
break;
case 1:
if(mGuiData[GUI_TAB_LAST_INDEX].Current == mGuiData[GUI_TAB_INDEX].Current)
break;
//AutoBandTop1_Stop(); // AutoBand 模块未加入工程
ADDRESS = 0x0000EB41;
//AutoBandTop1_LoadPresetItemFromFlash(0); // AutoBand 模块未加入工程
break;
case 2:
if(mGuiData[GUI_TAB_LAST_INDEX].Current == mGuiData[GUI_TAB_INDEX].Current)
break;
//AutoBandTop1_Stop();
ADDRESS = 0x000170EF;
break;
}
}
// switch(value)
// {
// case 0:
//
// MenuPage_SongMode_Proc();
// break;
// case 1:
// MenuPage_ExpertMode_Proc();
// break;
// case 2:
// MenuPage_FreeMode_Proc();
// break;
// }
Refresh_TabSelect_ui(&UI_Label[ID], &mGuiData[ID]);
break;
}
}
//// 1 = 2<><32><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>0 = 3<><33><EFBFBD><EFBFBD>ʾ
//#define USE_2_LINE_MODE 1
//
//void UI_DrawSysModeSelectScreen(void)
//{
// uint16_t y1, y2;
//
// // 1. <20><><EFBFBD><EFBFBD>
// LCD_FillByColor(0,0,240,320,BLACK);
// LCD_FillRoundRect(5,5,240-5,320-5,10,UI_MODE_BG_COLOR);
//
// // ==============================
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
// // ==============================
// #if (USE_2_LINE_MODE == 1)
// // 2<>У<EFBFBD><D0A3><EFBFBD> 25~250 ֮<><D6AE><EFBFBD><EFBFBD><EFBFBD>
// y1 = MODE_AREA_START_Y + (MODE_AREA_HEIGHT / 2);
// LCD_DrawLine(5, y1, UI_MODE_SCREEN_WIDTH-5, y1, UI_MODE_LINE_COLOR);
// #else
// // 3<>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ȷ<EFBFBD>
// y1 = MODE_AREA_START_Y + (MODE_AREA_HEIGHT / 3);
// y2 = MODE_AREA_START_Y + (MODE_AREA_HEIGHT * 2 / 3);
// LCD_DrawLine(5, y1, UI_MODE_SCREEN_WIDTH-5, y1, UI_MODE_LINE_COLOR);
// LCD_DrawLine(5, y2, UI_MODE_SCREEN_WIDTH-5, y2, UI_MODE_LINE_COLOR);
// #endif
//
// uint16_t text_x_pos;
// uint16_t text_y_pos;
//
// // ==============================
// // <20><>һ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>3<EFBFBD><33> <20><><EFBFBD>У<EFBFBD>
// // ==============================
// text_x_pos = (UI_MODE_SCREEN_WIDTH - 3 * UI_MODE_FONT_SIZE) / 2;
//
// #if (USE_2_LINE_MODE == 1)
// text_y_pos = MODE_AREA_START_Y + (MODE_AREA_HEIGHT/2/2) - (UI_MODE_FONT_SIZE/2);
// #else
// text_y_pos = MODE_AREA_START_Y + (y1/2/2) - (UI_MODE_FONT_SIZE/2);
// #endif
//
// LCD_ShowChineseString(
// text_x_pos, text_y_pos,
// (uint8_t*)"\xB5\xF7\xD2\xF4\xCC\xA8", // <20><><EFBFBD><EFBFBD>̨
// UI_MODE_TEXT_COLOR, UI_MODE_BG_COLOR, UI_MODE_FONT_SIZE, 0
// );
//
// // ==============================
// // <20>ڶ<EFBFBD><DAB6>У<EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ã<EFBFBD>4<EFBFBD><34> <20><><EFBFBD>У<EFBFBD>
// // ==============================
// text_x_pos = (UI_MODE_SCREEN_WIDTH - 4 * UI_MODE_FONT_SIZE) / 2;
//
// #if (USE_2_LINE_MODE == 1)
// text_y_pos = MODE_AREA_START_Y + (MODE_AREA_HEIGHT/2) + (MODE_AREA_HEIGHT/2/2) - (UI_MODE_FONT_SIZE/2);
// #else
// text_y_pos = y1 + ((y2 - y1)/2) - (UI_MODE_FONT_SIZE/2);
// #endif
//
// LCD_ShowChineseString(
// text_x_pos, text_y_pos,
// (uint8_t*)"\xCF\xB5\xCD\xB3\xC9\xE8\xD6\xC3", // ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
// UI_MODE_TEXT_COLOR, UI_MODE_BG_COLOR, UI_MODE_FONT_SIZE, 0
// );
//
// // ==============================
// // <20><><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3A8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
// // ==============================
// #if (USE_2_LINE_MODE == 0)
// text_x_pos = (UI_MODE_SCREEN_WIDTH - 4 * UI_MODE_FONT_SIZE) / 2;
// text_y_pos = y2 + ((MODE_AREA_HEIGHT - y2)/2) - (UI_MODE_FONT_SIZE/2);
// LCD_ShowChineseString(
// text_x_pos, text_y_pos,
// (uint8_t*)"\xD7\xD4\xD3\xC9\xC4\xA3\xCA\xBD",
// UI_MODE_TEXT_COLOR, UI_MODE_BG_COLOR, UI_MODE_FONT_SIZE, 0
// );
// #endif
//}
//#define UI_MODE_SCREEN_WIDTH 240 // 屏幕宽度<EFBC8C>??????????你的LCD<43>??????????<3F>??????????
//#define UI_MODE_SCREEN_HEIGHT 320 // 屏幕高度<EFBC8C>??????????你的LCD<43>??????????<3F>??????????
//#define UI_MODE_BG_COLOR 0x1925 // 背景深色近似原图的深蓝<E6B7B1>??????????
//#define UI_MODE_LINE_COLOR 0x0000/*DARKBLUE*/ // 分割线<E589B2>?<3F>比背景稍亮
#define UI_SET_MODE_TEXT_COLOR 0xFFFF // 文字颜色<EFBC8C>??????????
//#define UI_MODE_FONT_SIZE 24 // 字体大小<EFBC8C>??????????你的字库<E5AD97>??????????<3F>??????????
void UI_DrawSysModeSelectScreen(void)
{
// 1. 渐变背景深灰→黑色<E9BB91>???
// LCD_FillGradient(0, 0, 240, 320, 0x5AEB, 0x0000);
LCD_FillByColor(0, 0, 240, 320, BLACK);
label_top();
// 2. 按钮参数<E695B0>??=220 <20>?????=87 圆<>??=10 深灰色背<E889B2>?????
const uint16_t btn_w = 220;
const uint16_t btn_h = 87;
const uint16_t btn_r = 10;
const uint16_t btn_x = (240 - btn_w) / 2; // 10
const uint16_t btn_color = /*DARKLGRAY*//*0x2988*/BLACK; // 深灰<E6B7B1>?????
// 3. 排列 3 <20>?????按钮Y=40<EFBC8C>????? 5最后一<E5908E>?????按钮底部距底 9px
// 按钮 Y: 40, 132, 224
LCD_DrawLine(0, 30, 240, 30, btn_color);
// 调音台Y=40+20
// LCD_FillRoundRect(btn_x, 40+20, btn_w, btn_h, btn_r, btn_color);
LCD_FillRoundRectGradient(btn_x, 40+20, btn_w, btn_h, btn_r, START_COLOR, END_COLOR);
LCD_DrawChevron_Right(200, 105, 15, 3, WHITE);
uint16_t x1 = LCD_ShowChinese_AutoAlign_Gradient(
btn_x, btn_x + btn_w,
40 + (btn_h - 24) / 2+20,
(uint8_t*)"\xB5\xF7\xD2\xF4\xCC\xA8",
LCD_ALIGN_CENTER,
UI_SET_MODE_TEXT_COLOR,
START_COLOR, END_COLOR,
24
);
LCD_WR_PIC(x1-45, 40 + (btn_h - 24) / 2+10,40,40,gImage_mixer);
// 系统设置Y=132+20
// LCD_FillRoundRect(btn_x, 132+20, btn_w, btn_h, btn_r, btn_color);
LCD_FillRoundRectGradient(btn_x, 132+20, btn_w, btn_h, btn_r, START_COLOR, END_COLOR);
LCD_DrawChevron_Right(200, 195, 15, 3, WHITE);
uint8_t x2 = LCD_ShowChinese_AutoAlign_Gradient(
btn_x, btn_x + btn_w,
132 + (btn_h - 24) / 2+20,
(uint8_t*)"\xCF\xB5\xCD\xB3\xC9\xE8\xD6\xC3",
LCD_ALIGN_CENTER,
UI_SET_MODE_TEXT_COLOR,
START_COLOR, END_COLOR,
24
);
LCD_WR_PIC(x2-45, 132 + (btn_h - 24) / 2+10,40,40,gImage_SystemSetting);
}
void UI_SystemSet_Init(void)
{
// LCD_WR_REG(0x28); // Display OFF
pCurrentTouch_Area = Touch_SetingSelect_Areas;
UI_DrawSysModeSelectScreen();
label_top();
label_Tab_Select_ui(&UI_Label[GUI_PLAY_SECTION], &mGuiData[GUI_TAB_INDEX]);
// LCD_WR_REG(0x29); // Display ON
}
void UI_SystemSet_Process(DisplayTaskMessage_Type msg)
{
switch(msg.MessageType)
{
case MSG_ID_TOUCH:
for(uint8_t k=0; k<TOUCH_AREA_SETING_SELECT_NUM; k++)
{
if( msg.HiByte >= pCurrentTouch_Area[k].x_min &&
msg.HiByte <= pCurrentTouch_Area[k].x_max &&
msg.LoByte >= pCurrentTouch_Area[k].y_min &&
msg.LoByte <= pCurrentTouch_Area[k].y_max )
{
Touch_Seting_Select_Action(pCurrentTouch_Area[k].Flag,pCurrentTouch_Area[k].ID,k,pCurrentTouch_Area[k].Value);
break;
}
}
break;
case MSG_ID_EC_VOL:
// //LCD_ShowString(200, 0, Num_To_String(msg.DataU16[1],buff,3), RED, WHITE, 16, 0);
// uint8_t vol = msg.DataU16[1];
//// uint8_t level;
// if (vol <= 5) level = 0;
// else if (vol <= 35) level = 1;
// else if (vol <= 65) level = 2;
// else if (vol <= 95) level = 3;
// else if (vol <= 115) level = 4;
// else level = 5;
// Draw_Volume_Bar(5, 5, level, 1, WHITE, GRAY);
// uint8_t mMasterSysExVolume[12] = { 0xF0, 0x41, 0x00, 0x42, 0x12, 0x40, 0x00, 0x04, 0x64, 0x00, 0x00,0xF7};
// memset(mMasterSysExVolume+8,msg.DataU16[1],1);
// SendMidiDataToDreamDSP(mMasterSysExVolume,12);
//
// ResetAutoPowerCount();
break;
}
}