K1Guitar/UI/UI_Setting.c

146 lines
5.3 KiB
C
Raw Permalink 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"
/* 0904 / 0902-07 ??????? + ?? + ????????? */
extern const Touch_AreaTypeDef *pCurrentTouch_Area;
const Touch_AreaTypeDef Touch_SystemSetting_Areas[] =
{
/* ?? */
{ 0, 44, 0, 40, 0, 0, GUI_CANCEL, NULL },
/* ???? */
{ UI0902_SET_ROW_X, (uint16_t)(UI0902_SET_ROW_X + UI0902_SET_ROW_W / 2 - 1),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH + UI0902_SET_ROW_H - 1),
-1, 0, GUI_BLUETOOTH_SW, NULL },
{ (uint16_t)(UI0902_SET_ROW_X + UI0902_SET_ROW_W / 2),
(uint16_t)(UI0902_SET_ROW_X + UI0902_SET_ROW_W - 1),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH + UI0902_SET_ROW_H - 1),
1, 0, GUI_BLUETOOTH_SW, NULL },
/* ?????? */
{ UI0902_SET_ROW_X, (uint16_t)(UI0902_SET_ROW_X + UI0902_SET_ROW_W / 2 - 1),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH * 2),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH * 2 + UI0902_SET_ROW_H - 1),
-1, 0, GUI_AUTOCLOSE, NULL },
{ (uint16_t)(UI0902_SET_ROW_X + UI0902_SET_ROW_W / 2),
(uint16_t)(UI0902_SET_ROW_X + UI0902_SET_ROW_W - 1),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH * 2),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH * 2 + UI0902_SET_ROW_H - 1),
1, 0, GUI_AUTOCLOSE, NULL },
/* ???? */
{ UI0902_SET_ROW_X, (uint16_t)(UI0902_SET_ROW_X + UI0902_SET_ROW_W - 1),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH * 3),
(uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH * 3 + UI0902_SET_ROW_H - 1),
0, 0, GUI_RESTORE, NULL },
};
#define TOUCH_AREA_SYSTEMSETTING_NUM (sizeof(Touch_SystemSetting_Areas)/sizeof(Touch_AreaTypeDef))
GUI_SWITCH mGuiData_SystemSETTING[] = {
{ 0, 0, 2, GUI_VERSION},
{ 1, 0, 1, GUI_BLUETOOTH_SW}, /* 默认开;开机由 NVM BluetoothSW 覆盖 */
/* 手册15/30/45/60 分钟 + 不自动;默认 15 分钟(index 0) */
{ 0, 0, 4, GUI_AUTOCLOSE},
{ 0, 0, 1, GUI_RESTORE},
};
LEBEL_UI SystemSetting[] =
{
{UI0902_SET_ROW_X, UI0902_SET_ROW_W, UI0902_SET_ROW_Y0,
UI0902_SET_ROW_H, (const uint8_t*)"\xB9\xCC\xBC\xFE\xB0\xE6\xB1\xBE",
LCD_ALIGN_LEFT, WHITE, BLACK, UI0902_SET_ROW_FONT,
LCD_ALIGN_CENTER, WHITE, BLACK, UI0902_FONT_LABEL, GUI_VERSION},
{UI0902_SET_ROW_X, UI0902_SET_ROW_W, (uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH),
UI0902_SET_ROW_H, (const uint8_t*)"\xC0\xB6\xD1\xC0\xC1\xAC\xBD\xD3",
LCD_ALIGN_LEFT, WHITE, BLACK, UI0902_SET_ROW_FONT,
LCD_ALIGN_CENTER, WHITE, BLACK, UI0902_FONT_LABEL, GUI_BLUETOOTH_SW},
{UI0902_SET_ROW_X, UI0902_SET_ROW_W, (uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH * 2),
UI0902_SET_ROW_H, (const uint8_t*)"\xD7\xD4\xB6\xAF\xB9\xD8\xBB\xFA",
LCD_ALIGN_LEFT, WHITE, BLACK, UI0902_SET_ROW_FONT,
LCD_ALIGN_CENTER, WHITE, BLACK, UI0902_FONT_LABEL, GUI_AUTOCLOSE},
{UI0902_SET_ROW_X, UI0902_SET_ROW_W, (uint16_t)(UI0902_SET_ROW_Y0 + UI0902_SET_ROW_PITCH * 3),
UI0902_SET_ROW_H, (const uint8_t*)"\xBB\xD6\xB8\xB4\xB3\xF6\xB3\xA7\xC9\xE8\xD6\xC3",
LCD_ALIGN_LEFT, WHITE, BLACK, UI0902_SET_ROW_FONT,
LCD_ALIGN_CENTER, WHITE, BLACK, UI0902_FONT_LABEL, GUI_RESTORE},
};
void DrawSystemSetting(void)
{
Draw_System_Item_List(&SystemSetting[GUI_VERSION], &mGuiData_SystemSETTING[GUI_VERSION]);
Draw_System_Item_List(&SystemSetting[GUI_BLUETOOTH_SW], &mGuiData_SystemSETTING[GUI_BLUETOOTH_SW]);
Draw_System_Item_List(&SystemSetting[GUI_AUTOCLOSE], &mGuiData_SystemSETTING[GUI_AUTOCLOSE]);
Draw_System_Item_List(&SystemSetting[GUI_RESTORE], &mGuiData_SystemSETTING[GUI_RESTORE]);
}
void Touch_SystemSettingAction(int8_t FLAG, uint8_t ID, uint8_t areaIndex, uint8_t value)
{
uint16_t last_value;
(void)areaIndex;
(void)value;
if (ID == GUI_CANCEL)
{
MenuPage_SystemSetting_Proc(); /* ? 0902-11 ???? */
return;
}
last_value = mGuiData_SystemSETTING[ID].Current;
switch (ID)
{
case GUI_BLUETOOTH_SW:
mGuiData_SystemSETTING[ID].Current = !mGuiData_SystemSETTING[ID].Current;
if (!UI_SetFocus(ID))
RefreshSystemSetting(last_value, &SystemSetting[ID], &mGuiData_SystemSETTING[ID]);
break;
case GUI_AUTOCLOSE:
GUI_Item_AjustLoopValue(&mGuiData_SystemSETTING[ID], FLAG >= 0 ? 1 : -1);
if (!UI_SetFocus(ID))
RefreshSystemSetting(last_value, &SystemSetting[ID], &mGuiData_SystemSETTING[ID]);
break;
case GUI_RESTORE:
MenuPage_Restore_Proc();
break;
default:
break;
}
}
void UI_Setting_Init(void)
{
UI_ClearFocus();
LCD_FillByColor(0, 0, 240, 320, UI0902_BG_COLOR);
UI_DrawSubPageHeader((const uint8_t *)"\xCF\xB5\xCD\xB3\xC9\xE8\xD6\xC3");
DrawSystemSetting();
pCurrentTouch_Area = Touch_SystemSetting_Areas;
}
void UI_Setting_Process(DisplayTaskMessage_Type msg)
{
uint8_t k;
switch (msg.MessageType)
{
case MSG_ID_TOUCH:
for (k = 0; k < TOUCH_AREA_SYSTEMSETTING_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_SystemSettingAction(pCurrentTouch_Area[k].Flag,
pCurrentTouch_Area[k].ID, k,
pCurrentTouch_Area[k].Value);
ResetAutoPowerCount();
break;
}
}
break;
default:
break;
}
}