int main() { char c; init_uart(); lcd_init(); lcd_enable(); ts_init(); ts_calibrate(); printf("can update program with serial port\n\r"); while (1) { printf("[w] write the nand flash\n\r"); printf("[r] read the nand flash\n\r"); printf("[e] erase the nand flash\n\r"); printf("[g] get file, and write to nand flash 0 block\n\r"); printf("[x] get file to ddr(0x52000000), run it\n\r"); printf("[t] test lcd\n\r"); printf("[s] test touch screem\n\r"); do { c = getc(); if (c == '\n' || c == '\r') { printf("\n\r"); } else { putc(c); } } while (c == '\n' || c == '\r'); switch (c) { case 'w': case 'W': { nand_write_test(); break; } case 'r': case 'R': { nand_read_test(); break; } case 'e': case 'E': { nand_erase_test(); break; } case 'g': case 'G': { update_program(); break; } case 'x': case 'X': { run_program(); break; } case 't': case 'T': { lcd_test(); break; } case 's': case 'S': { ts_test(); break; } } } return 0; }
void show_settings_menu() { static char* headers[] = { "COT Settings", "", NULL }; #define SETTINGS_ITEM_LANGUAGE 0 #define SETTINGS_ITEM_THEME 1 #define SETTINGS_CHOOSE_BACKUP_FMT 2 #define SETTINGS_ITEM_ORS_REBOOT 3 #define SETTINGS_ITEM_ORS_WIPE 4 #define SETTINGS_ITEM_NAND_PROMPT 5 #define SETTINGS_ITEM_SIGCHECK 6 #define SETTINGS_ITEM_TS_CAL 7 static char* list[9]; list[0] = "Language"; list[1] = "Theme"; if (backupfmt == 0) { list[2] = "Choose Backup Format (currently dup)"; } else { list[2] = "Choose Backup Format (currently tar)"; } if (orsreboot == 1) { list[3] = "Disable forced reboots"; } else { list[3] = "Enable forced reboots"; } if (orswipeprompt == 1) { list[4] = "Disable wipe prompt"; } else { list[4] = "Enable wipe prompt"; } if (backupprompt == 1) { list[5] = "Disable zip flash nandroid prompt"; } else { list[5] = "Enable zip flash nandroid prompt"; } if (signature_check_enabled == 1) { list[6] = "Disable md5 signature check"; } else { list[6] = "Enable md5 signature check"; } list[7] = "Calibrate Touchscreen"; list[8] = NULL; for (;;) { int chosen_item = get_menu_selection(headers, list, 0, 0); switch (chosen_item) { case GO_BACK: return; case SETTINGS_ITEM_THEME: { static char* ui_colors[] = {"Hydro (default)", "Blood Red", "Custom Theme (sdcard)", NULL }; static char* ui_header[] = {"COT Theme", "", NULL}; int ui_color = get_menu_selection(ui_header, ui_colors, 0, 0); if(ui_color == GO_BACK) continue; else { switch(ui_color) { case 0: currenttheme = "hydro"; is_sd_theme = 0; break; case 1: currenttheme = "bloodred"; is_sd_theme = 0; break; case 2: currenttheme = "custom"; is_sd_theme = 1; break; } break; } } case SETTINGS_CHOOSE_BACKUP_FMT: { static char* cb_fmts[] = {"dup", "tar", NULL}; static char* cb_header[] = {"Choose Backup Format", "", NULL}; int cb_fmt = get_menu_selection(cb_header, cb_fmts, 0, 0); if(cb_fmt == GO_BACK) continue; else { switch(cb_fmt) { case 0: backupfmt = 0; ui_print("Backup format set to dedupe.\n"); nandroid_switch_backup_handler(0); list[2] = "Choose Backup Format (currently dup)"; break; case 1: backupfmt = 1; ui_print("Backup format set to tar.\n"); nandroid_switch_backup_handler(1); list[2] = "Choose Backup Format (currently tar)"; break; } break; } } case SETTINGS_ITEM_ORS_REBOOT: { if (orsreboot == 1) { ui_print("Disabling forced reboots.\n"); list[3] = "Enable forced reboots"; orsreboot = 0; } else { ui_print("Enabling forced reboots.\n"); list[3] = "Disable forced reboots"; orsreboot = 1; } break; } case SETTINGS_ITEM_ORS_WIPE: { if (orswipeprompt == 1) { ui_print("Disabling wipe prompt.\n"); list[4] = "Enable wipe prompt"; orswipeprompt = 0; } else { ui_print("Enabling wipe prompt.\n"); list[4] = "Disable wipe prompt"; orswipeprompt = 1; } break; } case SETTINGS_ITEM_NAND_PROMPT: { if (backupprompt == 1) { ui_print("Disabling zip flash nandroid prompt.\n"); list[5] = "Enable zip flash nandroid prompt"; backupprompt = 0; } else { ui_print("Enabling zip flash nandroid prompt.\n"); list[5] = "Disable zip flash nandroid prompt"; backupprompt = 1; } break; } case SETTINGS_ITEM_SIGCHECK: { if (signature_check_enabled == 1) { ui_print("Disabling md5 signature check.\n"); list[6] = "Enable md5 signature check"; signature_check_enabled = 0; } else { ui_print("Enabling md5 signature check.\n"); list[6] = "Disable md5 signature check"; signature_check_enabled = 1; } break; } case SETTINGS_ITEM_LANGUAGE: { static char* lang_list[] = {"English", #if DEV_BUILD == 1 "Use Custom Language", #endif NULL }; static char* lang_headers[] = {"Language", "", NULL}; int result = get_menu_selection(lang_headers, lang_list, 0, 0); if(result == GO_BACK) { continue; } else if (result == 0) { language = "en"; } else if (result == 1) { language = "custom"; } break; } case SETTINGS_ITEM_TS_CAL: { ts_calibrate(); break; } default: return; } update_cot_settings(); } }
void _cbSysSet(WM_MESSAGE* pMsg) { int i=0; BUTTON_Handle SysInfoButton,MonitCalibraButton,SetDefaultButton,ReturnButton; WM_HWIN hWin = pMsg->hWin; WM_HWIN hItem; switch (pMsg->MsgId) { case WM_CREATE: /* 设置聚焦*/ WM_SetFocus(hWin); /* 创建四个图片按钮 */ SysInfoButton = BUTTON_CreateEx(11, 44, 94, 94, hWin, WM_CF_SHOW, 0, SYS_BUTTON_INFO); BUTTON_SetBitmapEx(SysInfoButton,BUTTON_BI_UNPRESSED, &bmSys_info_xg, 0 ,0); BUTTON_SetBitmapEx(SysInfoButton,BUTTON_BI_PRESSED, &bmSys_info, 0 ,0); MonitCalibraButton = BUTTON_CreateEx(111, 44, 94, 94, hWin, WM_CF_SHOW, 0, SYS_BUTTON_MONIT); BUTTON_SetBitmapEx(MonitCalibraButton,BUTTON_BI_UNPRESSED, &bmSys_moniter_xg, 0 ,0); BUTTON_SetBitmapEx(MonitCalibraButton,BUTTON_BI_PRESSED, &bmSys_moniter, 0 ,0); SetDefaultButton = BUTTON_CreateEx(211, 44, 94, 94 ,hWin, WM_CF_SHOW, 0, SYS_BUTTON_DEFAULT); BUTTON_SetBitmapEx(SetDefaultButton,BUTTON_BI_UNPRESSED, &bmSys_default_xg, 0 ,0); BUTTON_SetBitmapEx(SetDefaultButton,BUTTON_BI_PRESSED, &bmSys_default, 0 ,0); ReturnButton = BUTTON_CreateEx(116, 170, 94, 52, hWin, WM_CF_SHOW, 0, SYS_BUTTON_RETURN); BUTTON_SetBitmapEx(ReturnButton,BUTTON_BI_UNPRESSED, &bmSys_return_xg, 0 ,0); BUTTON_SetBitmapEx(ReturnButton,BUTTON_BI_PRESSED, &bmSys_return, 0 ,0); break; case WM_KEY: /* 按下某个键后发送到当前包含焦点的窗口*/ switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_ESCAPE: GUI_EndDialog(hWin, 1); break; case GUI_KEY_TAB: WM_SetFocusOnNextChild(hWin); break; } break; case WM_PAINT: GUI_SetBkColor(BK_COLOR_2); GUI_Clear(); break; case WM_NOTIFY_PARENT: if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) { int Id = WM_GetId(pMsg->hWinSrc); switch (Id) { case SYS_BUTTON_INFO: _DeleteFrame(); _CreateFrame(&_cbSysInfo); break; case SYS_BUTTON_MONIT: /* ts_calibrate是属于是循环函数,关闭 TIM_TOUCH 避免不要 的扫描坐标,以免影响GUI的运行 */ TIM_Cmd(TIM_TOUCH,DISABLE); ts_calibrate(); _DeleteFrame(); _CreateFrame(&_cbSysSet); TIM_Cmd(TIM_TOUCH,ENABLE); break; case SYS_BUTTON_WIFI: break; case SYS_BUTTON_DEFAULT: /* 增加对话框机制*/ _hWarningDlg = CreateSetDefaultWaring(); break; case SYS_BUTTON_LANGUAGE: break; case SYS_BUTTON_RETURN: _DeleteFrame(); _CreateFrame(&_cbIndex); break; } } break; default: WM_DefaultProc(pMsg); } }