K1Guitar/UI/UI_UsbModeConfirm.c

81 lines
2.4 KiB
C

#include "includes.h"
extern const Touch_AreaTypeDef *pCurrentTouch_Area;
const Touch_AreaTypeDef Touch_UsbConfirm_Areas[] =
{
{ 0, 44, 0, 40, 0, 0, GUI_CANCEL, NULL },
{ UI0902_USB_BTN_XL, (uint16_t)(UI0902_USB_BTN_XL + UI0902_USB_BTN_W - 1),
UI0902_USB_BTN_Y, (uint16_t)(UI0902_USB_BTN_Y + UI0902_USB_BTN_H - 1),
0, 0, GUI_CANCEL, NULL },
{ UI0902_USB_BTN_XR, (uint16_t)(UI0902_USB_BTN_XR + UI0902_USB_BTN_W - 1),
UI0902_USB_BTN_Y, (uint16_t)(UI0902_USB_BTN_Y + UI0902_USB_BTN_H - 1),
0, 0, GUI_CONFIRM, NULL },
};
#define TOUCH_AREA_USB_CONFIRM_NUM (sizeof(Touch_UsbConfirm_Areas)/sizeof(Touch_AreaTypeDef))
static void UI_UsbConfirm_RevertToMidi(void)
{
NvmParam_Type *nvm = drv_nvm_param_ptr();
mGuiData_SystemSETTING[GUI_USB_MODE].Current = NVM_USB_MIDI;
nvm->param.UsbMode = NVM_USB_MIDI;
drv_nvm_save_to_flash();
MenuPage_Setting_Proc();
}
void UI_UsbModeConfirm_Init(void)
{
UI_ClearFocus();
LCD_WR_PIC_FROM_FLASH(0, 0, UI0902_TXT_USB_CONFIRM_W, UI0902_TXT_USB_CONFIRM_H,
UI0902_TXT_USB_CONFIRM_ADDR);
UI_DrawSubPageHeader((const uint8_t *)"\xCF\xB5\xCD\xB3\xC9\xE8\xD6\xC3");
LCD_WR_PIC_FROM_FLASH(UI0902_USB_BTN_XL, UI0902_USB_BTN_Y,
UI0902_BTN_USB_CANCEL_DARK_W, UI0902_BTN_USB_CANCEL_DARK_H,
UI0902_BTN_USB_CANCEL_DARK_ADDR);
LCD_WR_PIC_FROM_FLASH(UI0902_USB_BTN_XR, UI0902_USB_BTN_Y,
UI0902_BTN_USB_CONFIRM_BLUE_W, UI0902_BTN_USB_CONFIRM_BLUE_H,
UI0902_BTN_USB_CONFIRM_BLUE_ADDR);
pCurrentTouch_Area = Touch_UsbConfirm_Areas;
}
void UI_UsbModeConfirm_Process(DisplayTaskMessage_Type msg)
{
uint8_t k;
NvmParam_Type *nvm;
switch (msg.MessageType)
{
case MSG_ID_TOUCH:
for (k = 0; k < TOUCH_AREA_USB_CONFIRM_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)
{
switch (pCurrentTouch_Area[k].ID)
{
case GUI_CANCEL:
UI_UsbConfirm_RevertToMidi();
break;
case GUI_CONFIRM:
nvm = drv_nvm_param_ptr();
nvm->param.UsbMode = NVM_USB_UPDATE;
__disable_irq();
drv_nvm_save_to_flash();
nvic_system_reset();
break;
default:
break;
}
ResetAutoPowerCount();
break;
}
}
break;
default:
break;
}
}