#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; } }