diff --git a/code/application/source/cardv/SrcCode/UIApp/Play/UIPlayComm.c b/code/application/source/cardv/SrcCode/UIApp/Play/UIPlayComm.c index a9e2461ae..9bffa3b03 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Play/UIPlayComm.c +++ b/code/application/source/cardv/SrcCode/UIApp/Play/UIPlayComm.c @@ -59,39 +59,69 @@ void ChkKeySoundComm(void) } -#if _TODO + +static BOOL gbNoFile = TRUE; static void xUIPlay_Filesys_DelCB(FIND_DATA *pFindData, BOOL *bDelete, UINT32 Param1, UINT32 Param2) { + INT32 fileNum; + UINT32 fileType; + UINT32 filterType = (DCF_GetDBInfo(DCF_INFO_VALID_FILE_FMT) | DCF_GetDBInfo(DCF_INFO_DEP_FILE_FMT)); + UINT8 attrib; + attrib = pFindData->attrib; + DBG_IND("FileName = %s\r\n", pFindData->FATMainName); + + fileNum = DCF_IsValidFile(pFindData->FATMainName, pFindData->FATExtName, &fileType); + + if (!M_IsReadOnly(attrib) && fileNum && (filterType & fileType)) { + *bDelete = TRUE; + } else { + *bDelete = FALSE; + gbNoFile = FALSE; + } } - static void xUIPlay_Filesys_LockCB(FIND_DATA *pFindData, BOOL *bApply, UINT32 Param1, UINT32 Param2) { + INT32 fileNum; + UINT32 fileType; + UINT32 filterType = (DCF_GetDBInfo(DCF_INFO_VALID_FILE_FMT) | DCF_GetDBInfo(DCF_INFO_DEP_FILE_FMT)); + DBG_IND("FileName = %s\r\n", pFindData->FATMainName); + + fileNum = DCF_IsValidFile(pFindData->FATMainName, pFindData->FATExtName, &fileType); + if (fileNum && (filterType & fileType)) { + *bApply = TRUE; + } else { + *bApply = FALSE; + } } - static void xUIPlay_FList_DCF_DelAll(void) { + SDCFDIRINFO dirinfo; + char path[DCF_FULL_FILE_PATH_LEN]; + BOOL ret; + UINT32 i, uiMaxDirNum; + uiMaxDirNum = DCF_GetDBInfo(DCF_INFO_MAX_DIR_ID); + for (i = 100; i <= uiMaxDirNum; i++) { + // check if folder has file + ret = DCF_GetDirInfo(i, &dirinfo); + if (ret /*&& dirinfo.uiNumOfDcfObj*/) { + // delete all in one folder + DCF_GetDirPath(i, path); + gbNoFile = TRUE; + FileSys_DelDirFiles(path, xUIPlay_Filesys_DelCB); + // delete empty folder + if (gbNoFile) { + if (FileSys_DeleteDir(path) != FST_STA_OK) { + DBG_ERR("Failed to Delete %s.\r\n", path); + } + } + } + } + DCF_Refresh(); } - - - -static ER xUIPlay_FList_DCF_DelFile(UINT32 cmdID) -{ - - return E_OK; -} - -static void xUIPlay_FList_DCF_LockAll(BOOL bLock) -{ - -} - -#endif - - static ER xUIPlay_FList_FDB_ProtectFile(UINT32 cmdID) { FILEDB_HANDLE FileDBHdl = 0; @@ -156,11 +186,26 @@ FDB_Protect_Err: DBG_ERR("cmdID=%d\r\n", cmdID); return E_OK; } +static void xUIPlay_FList_DCF_LockAll(BOOL bLock) +{ + SDCFDIRINFO dirinfo = {0}; + char path[DCF_FULL_FILE_PATH_LEN] = {0}; + UINT32 i, uiMaxDirNum; + uiMaxDirNum = DCF_GetDBInfo(DCF_INFO_MAX_DIR_ID); + for (i = 100; i <= uiMaxDirNum; i++) { + // check if folder has file + if (DCF_GetDirInfo(i, &dirinfo)) { + if (dirinfo.uiNumOfDcfObj) { + DCF_GetDirPath(i, path); + FileSys_LockDirFiles(path, bLock, xUIPlay_Filesys_LockCB); + } + } + } +} static ER xUIPlay_FList_DCF_ProtectFile(UINT32 cmdID) { -#if _TODO char filePath[DCF_FULL_FILE_PATH_LEN]; UINT32 index, i, uiThisFileFormat, tmpFileType; BOOL bLock; @@ -190,8 +235,7 @@ static ER xUIPlay_FList_DCF_ProtectFile(UINT32 cmdID) } xUIPlay_FList_DCF_LockAll(bLock); } -#endif - +//DBG_IND("ProtectTime = %04d ms \r\n", Perf_GetDuration() / 1000); return E_OK; } @@ -314,9 +358,54 @@ static ER xUIPlay_FList_FDB_DelFile(UINT32 cmdID) return E_SYS; } +static ER xUIPlay_FList_DCF_DelFile(UINT32 cmdID) +{ + DBG_IND("cmdID=%d\r\n", cmdID); + if (cmdID == PB_DELETE_ONE) { + //#NT#2016/05/24#Ben Wang -begin + //#NT#Fix the coverity issue. + UINT32 index, uiThisFileFormat, i, tmpFileType; + //#NT#2016/05/24#Ben Wang -end + CHAR filePath[DCF_FULL_FILE_PATH_LEN] = {0}; + index = DCF_GetCurIndex(); + uiThisFileFormat = DCF_GetDBInfo(DCF_INFO_CUR_FILE_TYPE); + for (i = 0; i <= DCF_FILE_TYPE_NUM; i++) { + tmpFileType = 0x0001 << i; + if (uiThisFileFormat & tmpFileType) { + if (DCF_GetObjPath(index, uiThisFileFormat, filePath)) { + if (FST_STA_OK == FileSys_DeleteFile(filePath)) { + DCF_DelDBfile(filePath); + } + } + } + } + } else if (cmdID == PB_DELETE_ALL) { + char filePath[DCF_FULL_FILE_PATH_LEN]; + BOOL ret; + UINT8 attrib = 0; + UINT32 DirID = 0, FileID = 0, Index = 0, uiThisFileFormat = 0; + BOOL isCurrFileReadOnly = FALSE; + Index = DCF_GetDBInfo(DCF_INFO_CUR_INDEX); + DCF_GetObjInfo(Index, &DirID, &FileID, &uiThisFileFormat); + DCF_GetObjPath(Index, uiThisFileFormat, filePath); + ret = FileSys_GetAttrib(filePath, &attrib); + if ((ret == E_OK) && M_IsReadOnly(attrib) == TRUE) { + isCurrFileReadOnly = TRUE; + } + + // --------- delete all files ----------------------- + xUIPlay_FList_DCF_DelAll(); + if (isCurrFileReadOnly) { + Index = DCF_GetIndexByID(DirID, FileID); + DCF_SetCurIndex(Index); + } + DCF_Refresh(); + } + return E_OK; +} void UIPlay_Protect(PLAY_PROTECT_CMD Command) { UINT32 useFileDB = 0; @@ -333,8 +422,14 @@ void UIPlay_Protect(PLAY_PROTECT_CMD Command) void UIPlay_Delete(UINT32 Command) { UINT32 index = 0; - - xUIPlay_FList_FDB_DelFile(Command); + UINT32 useFileDB = 0; + + useFileDB = UI_GetData(FL_IsUseFileDB); + if (useFileDB) { + xUIPlay_FList_FDB_DelFile(Command); + }else{ + xUIPlay_FList_DCF_DelFile(Command); + } PB_GetParam(PBPRMID_CURR_FILESEQ, &index); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c index 916c06633..376eaf6ce 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c @@ -2,6 +2,7 @@ #include "PrjInc.h" #include "UIFlowLVGL/UIFlowMenuCommonItem/TabMenu.h" #include "UIWnd/UIFlow.h" +#include "sf_systemMng.h" TMDEF_BEGIN_OPTIONS(CAMERA_MODE) TMDEF_OPTION_TEXT_S(CAMERA_MODE_PHOTO, TM_OPTION_ENABLE) @@ -99,7 +100,7 @@ int General_MenuCallback(UINT32 uiMessage, UINT32 uiParam) case IDM_IMAGE_SIZE: { puiPara->ImgSize = uwOption; - printf("\033[33m[General_MenuCallback]set CamMode:%d\033[0m\n", uwOption); + printf("\033[33m[General_MenuCallback]set ImgSize:%d\033[0m\n", uwOption); break; } case IDM_VIDEO_SIZE: @@ -112,12 +113,9 @@ int General_MenuCallback(UINT32 uiMessage, UINT32 uiParam) puiPara->VideoLenth = uwOption; break; } - case IDM_NIGHT_MODE: - { - break; - } case IDM_FLASH_POWER: { + puiPara->VideoLenth = uwOption; break; } case IDM_SENSITIVITY: @@ -150,119 +148,122 @@ int General_MenuCallback(UINT32 uiMessage, UINT32 uiParam) return TMF_PROCESSED; } -// static lv_style_t gMatrixStylebg; -// static lv_style_t gMatrixStylebtn; -// static void _init_Matrix_style() -// { -// static int isinitialized = 0; -// if(initialized) -// break; +// -------------------------------------------------------------------------- +// Common Function +// -------------------------------------------------------------------------- +static lv_style_t gMatrixStylebg; +static lv_style_t gMatrixStylebtn; +static void init_Matrix_style(void) +{ + static int isinitialized = 0; + if(isinitialized) + return; -// lv_color_t color = {0}; -// lv_style_init(&gMatrixStylebg); -// lv_style_set_pad_top(&gMatrixStylebg,LV_STATE_DEFAULT,0); -// lv_style_set_pad_bottom(&gMatrixStylebg,LV_STATE_DEFAULT,0); -// lv_style_set_pad_left(&gMatrixStylebg,LV_STATE_DEFAULT,0); -// lv_style_set_pad_right(&gMatrixStylebg,LV_STATE_DEFAULT,0); -// lv_style_set_pad_inner(&gMatrixStylebg,LV_STATE_DEFAULT,0); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + lv_color_t color = {0}; + lv_style_init(&gMatrixStylebg); + lv_style_set_pad_top(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_bottom(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_left(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_right(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_inner(&gMatrixStylebg,LV_STATE_DEFAULT,0); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DISABLED, color); -// lv_style_init(&gMatrixStylebtn); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// lv_style_set_value_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// lv_style_set_text_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + lv_style_init(&gMatrixStylebtn); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + lv_style_set_value_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + lv_style_set_text_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0xc8, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); -// isinitialized = 1; -// } + isinitialized = 1; +} // -------------------------------------------------------------------------- // Sensitivity @@ -362,29 +363,464 @@ void Option_Sensitivity_Key(lv_obj_t* obj, uint32_t key) // -------------------------------------------------------------------------- // Delay // -------------------------------------------------------------------------- +static int DelayIndex = 0; +static lv_obj_t* DelayMatrixObj = NULL; +static char DelayHHBuf[3] = "00"; +static char DelayMMBuf[3] = "00"; +static char DelaySSBuf[3] = "00"; +static const char* DelayMap[6] = +{ + DelayHHBuf, + ":", + DelayMMBuf, + ":", + DelaySSBuf, + "" +}; + +static void update_Delay_msg(lv_obj_t* obj) +{ + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + snprintf(DelayHHBuf, 3, "%02d", puiPara->PirDelayTime.Hour); + snprintf(DelayMMBuf, 3, "%02d", puiPara->PirDelayTime.Min); + snprintf(DelaySSBuf, 3, "%02d", puiPara->PirDelayTime.Sec); + + lv_btnmatrix_set_focused_btn(DelayMatrixObj, DelayIndex); +} + void show_Delay_page(lv_obj_t* obj) { - // lv_obj_t *button_matrix_1 = lv_btnmatrix_create(parent, NULL); - // lv_obj_set_hidden(button_matrix_1, false); - // lv_obj_set_click(button_matrix_1, true); - // lv_obj_set_drag(button_matrix_1, false); - // lv_obj_set_pos(button_matrix_1, 21, 58); - // lv_obj_set_size(button_matrix_1, 272, 140); - // static const char* button_matrix_1_LVGLPropertyBtnmatrixButtonsText[] = {"Btn1","Btn2","Btn3",""," "," "," ","1",""}; - // lv_btnmatrix_set_map(button_matrix_1, button_matrix_1_LVGLPropertyBtnmatrixButtonsText); - // lv_btnmatrix_set_one_check(button_matrix_1, false); - // lv_btnmatrix_set_focused_btn(button_matrix_1,1); - // lv_btnmatrix_set_one_check(button_matrix_1, false); - // lv_obj_add_style(button_matrix_1, 0, &button_matrix_1_s0); - // lv_obj_add_style(button_matrix_1, 1, &button_matrix_1_s1); + DelayIndex = 0; + + init_Matrix_style(); + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(!puiPara->PirDelaySwitch) + { + puiPara->PirDelayTime.Hour = 0; + puiPara->PirDelayTime.Min = 0; + puiPara->PirDelayTime.Sec = 30; + } + snprintf(DelayHHBuf, 3, "%02d", puiPara->PirDelayTime.Hour); + snprintf(DelayMMBuf, 3, "%02d", puiPara->PirDelayTime.Min); + snprintf(DelaySSBuf, 3, "%02d", puiPara->PirDelayTime.Sec); + + DelayMatrixObj = lv_btnmatrix_create(obj, NULL); + lv_obj_set_hidden(DelayMatrixObj, false); + lv_obj_set_click(DelayMatrixObj, true); + lv_obj_set_drag(DelayMatrixObj, false); + lv_obj_set_pos(DelayMatrixObj, 92, 58); + lv_obj_set_size(DelayMatrixObj, 136, 140); + lv_btnmatrix_set_map(DelayMatrixObj, DelayMap); + lv_btnmatrix_set_one_check(DelayMatrixObj, true); + lv_btnmatrix_set_align(DelayMatrixObj, LV_LABEL_ALIGN_CENTER); + lv_btnmatrix_set_focused_btn(DelayMatrixObj,0); + lv_btnmatrix_set_one_check(DelayMatrixObj, false); + lv_obj_add_style(DelayMatrixObj, 0, &gMatrixStylebg); + lv_obj_add_style(DelayMatrixObj, 1, &gMatrixStylebtn); } void hidde_Delay_page(void) { - + if(DelayMatrixObj) + { + lv_obj_del(DelayMatrixObj); + } } void Option_Delay_Key(lv_obj_t* obj, uint32_t key) { + if(DelayMatrixObj == NULL) + { + printf("DelayMatrixObj is NULL"); + return; + } + + // char result[2]; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + printf("key:%d\n",key); + + switch(key) + { + case LV_USER_KEY_NEXT: + printf("\033[33m[Option_Sensitivity_Key]s\033[0m\n"); + if(DelayIndex == 0) + { + if(puiPara->PirDelayTime.Hour > 0 && puiPara->PirDelayTime.Hour <= 23) + puiPara->PirDelayTime.Hour--; + else + puiPara->PirDelayTime.Hour = 23; + } + else if(DelayIndex == 2) + { + if(puiPara->PirDelayTime.Min > 0 && puiPara->PirDelayTime.Min <= 59) + puiPara->PirDelayTime.Min--; + else + puiPara->PirDelayTime.Min = 59; + } + else if(DelayIndex == 4) + { + if(puiPara->PirDelayTime.Sec > 0 && puiPara->PirDelayTime.Sec <= 59) + puiPara->PirDelayTime.Sec--; + else + puiPara->PirDelayTime.Sec = 59; + } + if(puiPara->PirDelayTime.Min == 0 && (puiPara->PirDelayTime.Sec >= 0 && puiPara->PirDelayTime.Sec < 5)) + puiPara->PirDelayTime.Sec = 59; + update_Delay_msg(obj); + break; + case LV_USER_KEY_PREV: + printf("\033[33m[Option_Sensitivity_Key]w\033[0m\n"); + if(DelayIndex == 0) + { + if(puiPara->PirDelayTime.Hour >= 23) + puiPara->PirDelayTime.Hour = 0; + else + puiPara->PirDelayTime.Hour++; + } + else if(DelayIndex == 2) + { + if(puiPara->PirDelayTime.Min >= 59) + puiPara->PirDelayTime.Min = 0; + else + puiPara->PirDelayTime.Min++; + } + else if(DelayIndex == 4) + { + if(puiPara->PirDelayTime.Sec == 59) + puiPara->PirDelayTime.Sec = 0; + else + puiPara->PirDelayTime.Sec++; + } + if(puiPara->PirDelayTime.Min == 0 && (puiPara->PirDelayTime.Sec >= 0 && puiPara->PirDelayTime.Sec < 5)) + puiPara->PirDelayTime.Sec = 5; + update_Delay_msg(obj); + break; + case LV_USER_KEY_LEFT: + printf("\033[33m[Option_Sensitivity_Key]a\033[0m\n"); + DelayIndex = (DelayIndex - 2 + 6) % 6; + update_Delay_msg(obj); + break; + case LV_USER_KEY_RIGHT: + printf("\033[33m[Option_Sensitivity_Key]d\033[0m\n"); + DelayIndex = (DelayIndex + 2) % 6; + update_Delay_msg(obj); + break; + case LV_KEY_ENTER: + printf("\033[33m[Option_Sensitivity_Key]SELECT\033[0m\n"); + puiPara->PirDelaySwitch = 1; + lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); + hidde_Delay_page(); + break; + default: + break; + } +} + +// -------------------------------------------------------------------------- +// Operating Time +// -------------------------------------------------------------------------- +static int OperatingTimeIndex = 0; +static lv_obj_t* OperatingTimeMatrixObj = NULL; +static char OperatingTimeHHBuf1[3] = "00"; +static char OperatingTimeMMBuf1[3] = "00"; +static char OperatingTimeHHBuf2[3] = "00"; +static char OperatingTimeMMBuf2[3] = "00"; +static const char* OperatingTimeMap[8] = +{ + OperatingTimeHHBuf1, + ":", + OperatingTimeMMBuf1, + " ", + OperatingTimeHHBuf2, + ":", + OperatingTimeMMBuf2, + "" +}; + +static void update_Operating_Time_msg(lv_obj_t* obj) +{ + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + snprintf(OperatingTimeHHBuf1, 3, "%02d", puiPara->WorkTime[0].StartTime.Hour); + snprintf(OperatingTimeMMBuf1, 3, "%02d", puiPara->WorkTime[0].StartTime.Min); + snprintf(OperatingTimeHHBuf2, 3, "%02d", puiPara->WorkTime[0].StopTime.Hour); + snprintf(OperatingTimeMMBuf2, 3, "%02d", puiPara->WorkTime[0].StopTime.Min); + + lv_btnmatrix_set_focused_btn(OperatingTimeMatrixObj, OperatingTimeIndex); +} + +void show_Operating_Time_page(lv_obj_t* obj) +{ + OperatingTimeIndex = 0; + + init_Matrix_style(); + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(!puiPara->WorkTime1Switch) + { + puiPara->WorkTime[0].StartTime.Hour = 0; + puiPara->WorkTime[0].StartTime.Min = 0; + puiPara->WorkTime[0].StopTime.Hour = 0; + puiPara->WorkTime[0].StopTime.Min = 0; + } + snprintf(OperatingTimeHHBuf1, 3, "%02d", puiPara->WorkTime[0].StartTime.Hour); + snprintf(OperatingTimeMMBuf1, 3, "%02d", puiPara->WorkTime[0].StartTime.Min); + snprintf(OperatingTimeHHBuf2, 3, "%02d", puiPara->WorkTime[0].StopTime.Hour); + snprintf(OperatingTimeMMBuf2, 3, "%02d", puiPara->WorkTime[0].StopTime.Min); + + OperatingTimeMatrixObj = lv_btnmatrix_create(obj, NULL); + lv_obj_set_hidden(OperatingTimeMatrixObj, false); + lv_obj_set_click(OperatingTimeMatrixObj, true); + lv_obj_set_drag(OperatingTimeMatrixObj, false); + lv_obj_set_pos(OperatingTimeMatrixObj, 65, 58); + lv_obj_set_size(OperatingTimeMatrixObj, 190, 140); + lv_btnmatrix_set_map(OperatingTimeMatrixObj, OperatingTimeMap); + lv_btnmatrix_set_one_check(OperatingTimeMatrixObj, true); + lv_btnmatrix_set_align(OperatingTimeMatrixObj, LV_LABEL_ALIGN_CENTER); + lv_btnmatrix_set_focused_btn(OperatingTimeMatrixObj,0); + lv_btnmatrix_set_one_check(OperatingTimeMatrixObj, false); + lv_obj_add_style(OperatingTimeMatrixObj, 0, &gMatrixStylebg); + lv_obj_add_style(OperatingTimeMatrixObj, 1, &gMatrixStylebtn); +} + +void hidde_Operating_Time_page(void) +{ + if(OperatingTimeMatrixObj) + { + lv_obj_del(OperatingTimeMatrixObj); + } +} + +void Option_Operating_Time_Key(lv_obj_t* obj, uint32_t key) +{ + if(OperatingTimeMatrixObj == NULL) + { + printf("OperatingTimeMatrixObj is NULL"); + return; + } + + // char result[2]; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + printf("key:%d\n",key); + + switch(key) + { + case LV_USER_KEY_NEXT: + printf("\033[33m[Option_Operating_Time_Key]s\033[0m\n"); + if(OperatingTimeIndex == 0) + { + if(puiPara->WorkTime[0].StartTime.Hour > 0 && puiPara->WorkTime[0].StartTime.Hour <= 23) + puiPara->WorkTime[0].StartTime.Hour--; + else + puiPara->WorkTime[0].StartTime.Hour = 23; + } + else if(OperatingTimeIndex == 2) + { + if(puiPara->WorkTime[0].StartTime.Min > 0 && puiPara->WorkTime[0].StartTime.Min <= 59) + puiPara->WorkTime[0].StartTime.Min--; + else + puiPara->WorkTime[0].StartTime.Min = 59; + } + else if(OperatingTimeIndex == 4) + { + if(puiPara->WorkTime[0].StopTime.Hour > 0 && puiPara->WorkTime[0].StopTime.Hour <= 23) + puiPara->WorkTime[0].StopTime.Hour--; + else + puiPara->WorkTime[0].StopTime.Hour = 23; + } + else if(OperatingTimeIndex == 6) + { + if(puiPara->WorkTime[0].StopTime.Min > 0 && puiPara->WorkTime[0].StopTime.Min <= 59) + puiPara->WorkTime[0].StopTime.Min--; + else + puiPara->WorkTime[0].StopTime.Min = 59; + } + update_Operating_Time_msg(obj); + break; + case LV_USER_KEY_PREV: + printf("\033[33m[Option_Operating_Time_Key]w\033[0m\n"); + if(OperatingTimeIndex == 0) + { + if(puiPara->WorkTime[0].StartTime.Hour >= 23) + puiPara->WorkTime[0].StartTime.Hour = 0; + else + puiPara->WorkTime[0].StartTime.Hour++; + } + else if(OperatingTimeIndex == 2) + { + if(puiPara->WorkTime[0].StartTime.Min >= 59) + puiPara->WorkTime[0].StartTime.Min = 0; + else + puiPara->WorkTime[0].StartTime.Min++; + } + else if(OperatingTimeIndex == 4) + { + if(puiPara->WorkTime[0].StopTime.Hour >= 23) + puiPara->WorkTime[0].StopTime.Hour = 0; + else + puiPara->WorkTime[0].StopTime.Hour++; + } + else if(OperatingTimeIndex == 6) + { + if(puiPara->WorkTime[0].StopTime.Min >= 59) + puiPara->WorkTime[0].StopTime.Min = 0; + else + puiPara->WorkTime[0].StopTime.Min++; + } + update_Operating_Time_msg(obj); + break; + case LV_USER_KEY_LEFT: + printf("\033[33m[Option_Operating_Time_Key]a\033[0m\n"); + OperatingTimeIndex = (OperatingTimeIndex - 2 + 8) % 8; + update_Operating_Time_msg(obj); + break; + case LV_USER_KEY_RIGHT: + printf("\033[33m[Option_Operating_Time_Key]d\033[0m\n"); + OperatingTimeIndex = (OperatingTimeIndex + 2) % 8; + update_Operating_Time_msg(obj); + break; + case LV_KEY_ENTER: + printf("\033[33m[Option_Operating_Time_Key]SELECT\033[0m\n"); + puiPara->WorkTime1Switch = 1; + lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); + hidde_Operating_Time_page(); + break; + default: + break; + } +} + +// -------------------------------------------------------------------------- +// DateTime +// -------------------------------------------------------------------------- +static int DateTimeIndex = 0; +static lv_obj_t* DateTimeMatrixObj = NULL; +static char DateTimeMOBuf[3] = "00"; +static char DateTimeDDBuf[3] = "00"; +static char DateTimeYYBuf[5] = "0000"; +static char DateTimeHHBuf[3] = "00"; +static char DateTimeMIBuf[3] = "00"; +static char DateTimeSSBuf[3] = "00"; +static const char* DateTimeMap[12] = +{ + DateTimeMOBuf, + ":", + DateTimeDDBuf, + ":", + DateTimeYYBuf, + " ", + DateTimeHHBuf, + ":", + DateTimeMIBuf, + ":", + DateTimeSSBuf, + "" +}; + +static void update_DateTime_Time_msg(lv_obj_t* obj) +{ + // UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + lv_btnmatrix_set_focused_btn(DateTimeMatrixObj, DateTimeIndex); +} + +void show_DateTime_page(lv_obj_t* obj) +{ + OperatingTimeIndex = 0; + + init_Matrix_style(); + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + SF_PARA_TIME_S tmptime; + if(puiPara->DateAuto == SF_DATE_AUTO) + { + tmptime.Year = 2023; + tmptime.Mon = 1; + tmptime.Day = 1; + tmptime.Hour = 8; + tmptime.Min = 0; + tmptime.Sec = 0; + } + snprintf(DateTimeMOBuf, 3, "%02d", tmptime.Mon); + snprintf(DateTimeDDBuf, 3, "%02d", tmptime.Day); + snprintf(DateTimeYYBuf, 5, "%04d", tmptime.Year); + snprintf(DateTimeHHBuf, 3, "%02d", tmptime.Hour); + snprintf(DateTimeMIBuf, 3, "%02d", tmptime.Min); + snprintf(DateTimeSSBuf, 3, "%02d", tmptime.Sec); + + + DateTimeMatrixObj = lv_btnmatrix_create(obj, NULL); + lv_obj_set_hidden(DateTimeMatrixObj, false); + lv_obj_set_click(DateTimeMatrixObj, true); + lv_obj_set_drag(DateTimeMatrixObj, false); + lv_obj_set_pos(DateTimeMatrixObj, 25, 58); + lv_obj_set_size(DateTimeMatrixObj, 270, 140); + lv_btnmatrix_set_map(DateTimeMatrixObj, DateTimeMap); + lv_btnmatrix_set_one_check(DateTimeMatrixObj, true); + lv_btnmatrix_set_align(DateTimeMatrixObj, LV_LABEL_ALIGN_CENTER); + lv_btnmatrix_set_focused_btn(DateTimeMatrixObj,0); + lv_btnmatrix_set_one_check(DateTimeMatrixObj, false); + lv_btnmatrix_set_btn_width(DateTimeMatrixObj, 0, 2); + lv_btnmatrix_set_btn_width(DateTimeMatrixObj, 2, 2); + lv_btnmatrix_set_btn_width(DateTimeMatrixObj, 4, 3); + lv_btnmatrix_set_btn_width(DateTimeMatrixObj, 6, 2); + lv_btnmatrix_set_btn_width(DateTimeMatrixObj, 8, 2); + lv_btnmatrix_set_btn_width(DateTimeMatrixObj, 10, 2); + lv_btnmatrix_set_btn_width(DateTimeMatrixObj, 5, 2); + lv_obj_add_style(DateTimeMatrixObj, 0, &gMatrixStylebg); + lv_obj_add_style(DateTimeMatrixObj, 1, &gMatrixStylebtn); +} + +void hidde_DateTime_page(void) +{ + if(DateTimeMatrixObj) + { + lv_obj_del(DateTimeMatrixObj); + } +} + +void Option_DateTime_Key(lv_obj_t* obj, uint32_t key) +{ + if(DateTimeMatrixObj == NULL) + { + printf("DateTimeMatrixObj is NULL"); + return; + } + + // char result[2]; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + printf("key:%d\n",key); + + switch(key) + { + case LV_USER_KEY_NEXT: + printf("\033[33m[Option_DateTime_Key]s\033[0m\n"); + update_DateTime_Time_msg(obj); + break; + case LV_USER_KEY_PREV: + printf("\033[33m[Option_DateTime_Key]w\033[0m\n"); + update_DateTime_Time_msg(obj); + break; + case LV_USER_KEY_LEFT: + printf("\033[33m[Option_DateTime_Key]a\033[0m\n"); + DateTimeIndex = (DateTimeIndex - 2 + 12) % 12; + update_DateTime_Time_msg(obj); + break; + case LV_USER_KEY_RIGHT: + printf("\033[33m[Option_DateTime_Key]d\033[0m\n"); + DateTimeIndex = (DateTimeIndex + 2) % 12; + update_DateTime_Time_msg(obj); + break; + case LV_KEY_ENTER: + printf("\033[33m[Option_DateTime_Key]SELECT\033[0m\n"); + puiPara->DateAuto = SF_DATE_MANUAL; + lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); + hidde_DateTime_page(); + break; + default: + break; + } +} -} \ No newline at end of file diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.h index bc53dc87b..25af6166a 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.h @@ -8,8 +8,14 @@ extern void show_Sensitivity_page(lv_obj_t* obj); extern void hidde_Sensitivity_page(void); extern void show_Delay_page(lv_obj_t* obj); extern void hidde_Delay_page(void); +extern void show_Operating_Time_page(lv_obj_t* obj); +extern void hidde_Operating_Time_page(void); +extern void show_DateTime_page(lv_obj_t* obj); +extern void hidde_DateTime_page(void); extern void Option_Sensitivity_Key(lv_obj_t* obj, uint32_t key); extern void Option_Delay_Key(lv_obj_t* obj, uint32_t key); +extern void Option_Operating_Time_Key(lv_obj_t* obj, uint32_t key); +extern void Option_DateTime_Key(lv_obj_t* obj, uint32_t key); #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h index 06efcebea..922c516a8 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h @@ -735,6 +735,8 @@ enum _MENU_IDS { IDS_BATTERY_TYPE_LITHIUM = LV_PLUGIN_STRING_ID_STRING_LITHIUM, IDS_BATTERY_TYPE_LITH_PACK = LV_PLUGIN_STRING_ID_STRING_LITH_PACK, IDS_SD_LOOP = LV_PLUGIN_STRING_ID_STRING_SD_LOOP, + IDS_SD_LOOP_OFF = LV_PLUGIN_STRING_ID_STRID_OFF, + IDS_SD_LOOP_ON = LV_PLUGIN_STRING_ID_STRID_ON, IDS_CAMERA_FW_UPGRADE = LV_PLUGIN_STRING_ID_STRING_CAMERA_FW_UPGRADE, IDS_MODULE_FW_UPGRADE = LV_PLUGIN_STRING_ID_STRING_MODE_FW_UPGRADE, IDS_RESET = LV_PLUGIN_STRING_ID_STRING_RESET, diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuMore.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuMore.c index a4bdb6d5f..3a0ee1062 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuMore.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuMore.c @@ -9,6 +9,8 @@ TMDEF_OPTION_TEXT_S(BATTERY_TYPE_LITHIUM, TM_OPTION_ENABLE) TMDEF_OPTION_TEXT_S(BATTERY_TYPE_LITH_PACK, TM_OPTION_ENABLE) TMDEF_END_OPTIONS() TMDEF_BEGIN_OPTIONS(SD_LOOP) +TMDEF_OPTION_TEXT_S(SD_LOOP_OFF, TM_OPTION_ENABLE) +TMDEF_OPTION_TEXT_S(SD_LOOP_ON, TM_OPTION_ENABLE) TMDEF_OPTION_TEXT_S(END, TM_OPTION_ENABLE) TMDEF_END_OPTIONS() TMDEF_BEGIN_OPTIONS(CAMERA_FW_UPGRADE) @@ -43,5 +45,33 @@ TMDEF_EMNU(gMoreMenu, MORE, More_MenuCallback) // -------------------------------------------------------------------------- int More_MenuCallback(UINT32 uiMessage, UINT32 uiParam) { + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + // printf(" ====================================================== \n"); + printf("\033[33m[More_MenuCallback]uiMessage:%d uiParam:%d\033[0m\n", uiMessage, uiParam); + UINT16 uwItemId; + UINT16 uwOption; + if (uiMessage == TMM_CONFIRM_OPTION) + { + uwItemId = LO_WORD(uiParam); + uwOption = HI_WORD(uiParam); + switch (uwItemId) + { + case IDM_BATTERY_TYPE: + { + puiPara->BatteryType = uwOption; + printf("\033[33m[Send_MenuCallback]BatteryType:%d\033[0m\n", puiPara->BatteryType); + break; + } + case IDM_SD_LOOP: + { + puiPara->SdLoopSwitch = uwOption; + printf("\033[33m[Send_MenuCallback]SdLoopSwitch:%d\033[0m\n", puiPara->SdLoopSwitch); + break; + } + default: + break; + } + } + return TMF_PROCESSED; } \ No newline at end of file diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c index 3997cf8ec..4b37e650d 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c @@ -81,6 +81,126 @@ int Qr_MenuCallback(UINT32 uiMessage, UINT32 uiParam) return TMF_PROCESSED; } +// -------------------------------------------------------------------------- +// Common Function +// -------------------------------------------------------------------------- +static lv_style_t gMatrixStylebg; +static lv_style_t gMatrixStylebtn; +static void init_Matrix_style(void) +{ + static int isinitialized = 0; + if(isinitialized) + return; + + lv_color_t color = {0}; + lv_style_init(&gMatrixStylebg); + lv_style_set_pad_top(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_bottom(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_left(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_right(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_inner(&gMatrixStylebg,LV_STATE_DEFAULT,0); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + + lv_style_init(&gMatrixStylebtn); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + lv_style_set_value_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + lv_style_set_text_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0xc8, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + + isinitialized = 1; +} + +// -------------------------------------------------------------------------- +// QR CODE +// -------------------------------------------------------------------------- char *qr_code_str = "{\"imei\":\"%s\",\"verizonICCID\":\"%s\",\"attICCID\":\"%s\",\"isEsim\":%s}"; static lv_obj_t *qr = NULL; static lv_obj_t *label = NULL; @@ -132,71 +252,88 @@ void hidde_qr_picture_page(void) // Password // -------------------------------------------------------------------------- static int PasswordIndex = 0; -static lv_obj_t* PasswordArray[4]; +static lv_obj_t* PasswordMatrixObj = NULL; +static char PasswordBuf1[2] = "0"; +static char PasswordBuf2[2] = "0"; +static char PasswordBuf3[2] = "0"; +static char PasswordBuf4[2] = "0"; +static char PasswordBuf5[2] = "0"; +static char PasswordBuf6[2] = "0"; +static const char* PasswordMap[7] = +{ + PasswordBuf1, + PasswordBuf2, + PasswordBuf3, + PasswordBuf4, + PasswordBuf5, + PasswordBuf6, + "" +}; + +static void update_Password_msg(lv_obj_t* obj) +{ + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + snprintf(PasswordBuf1, 2, "%c", puiPara->PwdStr[0]); + snprintf(PasswordBuf2, 2, "%c", puiPara->PwdStr[1]); + snprintf(PasswordBuf3, 2, "%c", puiPara->PwdStr[2]); + snprintf(PasswordBuf4, 2, "%c", puiPara->PwdStr[3]); + snprintf(PasswordBuf5, 2, "%c", puiPara->PwdStr[4]); + snprintf(PasswordBuf6, 2, "%c", puiPara->PwdStr[5]); + + lv_btnmatrix_set_focused_btn(PasswordMatrixObj, PasswordIndex); +} + void show_Password_page(lv_obj_t* obj) { - // char result[2]; - // UIMenuStoreInfo *puiPara = sf_ui_para_get(); - // lv_color_t color = {0}; + PasswordIndex = 0; - // CameraNameIndex = 0; - // static lv_style_t Camera_Name_style; - // lv_style_init(&Camera_Name_style); - // STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&Camera_Name_style, LV_STATE_DEFAULT, color); - // STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&Camera_Name_style, LV_STATE_DEFAULT, color); - // lv_style_set_text_font(&Camera_Name_style,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); - // STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&Camera_Name_style, LV_STATE_FOCUSED, color); - // STYLE_COLOR_PROP(0x06, 0x24, 0xfd, 0x0d) ; lv_style_set_text_color(&Camera_Name_style, LV_STATE_FOCUSED, color); + init_Matrix_style(); - // for(int i = 0; i < 4; i++) { - // if (!(puiPara->CamNameStr[i] >= '0' && puiPara->CamNameStr[i] <= '9') && - // !(puiPara->CamNameStr[i] >= 'A' && puiPara->CamNameStr[i] <= 'Z') && - // puiPara->CamNameStr[i] != ' ') - // { - // memset(puiPara->CamNameStr, ' ', 4); - // break; - // } - // } + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(!puiPara->PwdSwitch) + { + memset(puiPara->PwdStr, '0' ,sizeof(puiPara->PwdStr)); + } + snprintf(PasswordBuf1, 2, "%c", puiPara->PwdStr[0]); + snprintf(PasswordBuf2, 2, "%c", puiPara->PwdStr[1]); + snprintf(PasswordBuf3, 2, "%c", puiPara->PwdStr[2]); + snprintf(PasswordBuf4, 2, "%c", puiPara->PwdStr[3]); + snprintf(PasswordBuf5, 2, "%c", puiPara->PwdStr[4]); + snprintf(PasswordBuf6, 2, "%c", puiPara->PwdStr[5]); - // for(int i = 0; i < 6; i++) - // { - // sprintf(result, "%c", puiPara->CamNameStr[i]); - - // CameraNameArray[i] = lv_label_create(obj, NULL); - // lv_obj_set_pos(CameraNameArray[i], 78+32*i, 108); - // lv_obj_set_size(CameraNameArray[i], 14, 24); - // lv_obj_add_style(CameraNameArray[i], 0, &Camera_Name_style); - // lv_obj_set_state(CameraNameArray[i], LV_STATE_DEFAULT); - // lv_label_set_text(CameraNameArray[i], result); - // } - - // lv_obj_set_state(CameraNameArray[CameraNameIndex], LV_STATE_FOCUSED); + PasswordMatrixObj = lv_btnmatrix_create(obj, NULL); + lv_obj_set_hidden(PasswordMatrixObj, false); + lv_obj_set_click(PasswordMatrixObj, true); + lv_obj_set_drag(PasswordMatrixObj, false); + lv_obj_set_pos(PasswordMatrixObj, 92, 58); + lv_obj_set_size(PasswordMatrixObj, 136, 140); + lv_btnmatrix_set_map(PasswordMatrixObj, PasswordMap); + lv_btnmatrix_set_one_check(PasswordMatrixObj, true); + lv_btnmatrix_set_align(PasswordMatrixObj, LV_LABEL_ALIGN_CENTER); + lv_btnmatrix_set_focused_btn(PasswordMatrixObj,0); + lv_btnmatrix_set_one_check(PasswordMatrixObj, false); + lv_obj_add_style(PasswordMatrixObj, 0, &gMatrixStylebg); + lv_obj_add_style(PasswordMatrixObj, 1, &gMatrixStylebtn); } void hidde_Password_page(void) { - PasswordIndex = 0; - for(int i = 0; i < 4; i++) + if(PasswordMatrixObj) { - if(PasswordArray[i]) - { - lv_obj_del(PasswordArray[i]); - } + lv_obj_del(PasswordMatrixObj); } } void Option_Password_Key(lv_obj_t* obj, uint32_t key) { - for(int i = 0; i < 4; i++) + if(PasswordMatrixObj == NULL) { - if(PasswordArray[i] == NULL) - { - printf("CameraNameArray is NULL"); - return; - } + printf("PasswordMatrixObj is NULL"); + return; } - // UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UIMenuStoreInfo *puiPara = sf_ui_para_get(); // char result[2]; // char tmpchar; // char* p; @@ -206,18 +343,33 @@ void Option_Password_Key(lv_obj_t* obj, uint32_t key) { case LV_USER_KEY_NEXT: printf("\033[33m[Option_Password_Key]s\033[0m\n"); + if(PasswordIndex >= 0 && PasswordIndex <= 5) + { + puiPara->PwdStr[PasswordIndex] = (puiPara->PwdStr[PasswordIndex] - '0' + 10 - 1) % 10 + '0'; + } + update_Password_msg(obj); break; case LV_USER_KEY_PREV: printf("\033[33m[Option_Password_Key]w\033[0m\n"); + if(PasswordIndex >= 0 && PasswordIndex <= 5) + { + puiPara->PwdStr[PasswordIndex] = (puiPara->PwdStr[PasswordIndex] - '0' + 1) % 10 + '0'; + } + update_Password_msg(obj); break; case LV_USER_KEY_LEFT: printf("\033[33m[Option_Password_Key]a\033[0m\n"); + PasswordIndex = (PasswordIndex + 6 - 1) % 6; + update_Password_msg(obj); break; case LV_USER_KEY_RIGHT: printf("\033[33m[Option_Password_Key]d\033[0m\n"); + PasswordIndex = (PasswordIndex + 1) % 6; + update_Password_msg(obj); break; case LV_KEY_ENTER: printf("\033[33m[Option_Password_Key]SELECT\033[0m\n"); + puiPara->PwdSwitch = 1; lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); hidde_Password_page(); break; @@ -323,7 +475,7 @@ static void update_Camera_Info_msg(lv_obj_t* obj) } break; case 5: - sprintf(tmpStr, "MOD:\n"); + sprintf(tmpStr, "MOD:%s\n", puiPara->ModuleVer); strcat(CamInfoStr, tmpStr); break; default: @@ -355,7 +507,7 @@ static void update_Camera_Info_msg(lv_obj_t* obj) strcat(CamInfoStr, tmpStr); break; case 4: - sprintf(tmpStr, "BLE:\n"); + sprintf(tmpStr, "BLE:%s\n", puiPara->BluSsid); strcat(CamInfoStr, tmpStr); default: break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c index 55c24b633..c4581b1dc 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c @@ -51,11 +51,11 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) // printf(" ====================================================== \n"); printf("\033[33m[Send_MenuCallback]uiMessage:%d uiParam:%d\033[0m\n", uiMessage, uiParam); UINT16 uwItemId; -// UINT16 uwOption; + UINT16 uwOption; if (uiMessage == TMM_CONFIRM_OPTION) { uwItemId = LO_WORD(uiParam); - // uwOption = HI_WORD(uiParam); + uwOption = HI_WORD(uiParam); switch (uwItemId) { case IDM_MAX_NUM_DAY: @@ -65,7 +65,8 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) } case IDM_SETTINGS_CHECK: { - // printf("\033[33m[Send_MenuCallback]SendMaxNum:%d\033[0m\n", puiPara->SendMaxNum); + puiPara->GprsMode = uwOption; + printf("\033[33m[Send_MenuCallback]GprsMode:%d\033[0m\n", puiPara->GprsMode); break; } case IDM_SEND_TYPE: @@ -80,6 +81,7 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) } case IDM_GPS: { + puiPara->GpsSendFlag = uwOption; printf("\033[33m[Send_MenuCallback]GpsSendFlag:%d\033[0m\n", puiPara->GpsSendFlag); break; } @@ -91,4 +93,215 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) } } return TMF_PROCESSED; -} \ No newline at end of file +} +// -------------------------------------------------------------------------- +// Common Function +// -------------------------------------------------------------------------- +static lv_style_t gMatrixStylebg; +static lv_style_t gMatrixStylebtn; +static void init_Matrix_style(void) +{ + static int isinitialized = 0; + if(isinitialized) + return; + + lv_color_t color = {0}; + lv_style_init(&gMatrixStylebg); + lv_style_set_pad_top(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_bottom(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_left(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_right(&gMatrixStylebg,LV_STATE_DEFAULT,0); + lv_style_set_pad_inner(&gMatrixStylebg,LV_STATE_DEFAULT,0); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebg, LV_STATE_DISABLED, color); + + lv_style_init(&gMatrixStylebtn); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + lv_style_set_value_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + lv_style_set_text_font(&gMatrixStylebtn,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DEFAULT, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_CHECKED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0xc8, 0x00, 0x00, 0x00) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_FOCUSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_EDITED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_HOVERED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_PRESSED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_shadow_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_pattern_recolor(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_value_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_text_sel_bg_color(&gMatrixStylebtn, LV_STATE_DISABLED, color); + + isinitialized = 1; +} + + +// -------------------------------------------------------------------------- +// MaxNum +// -------------------------------------------------------------------------- +static lv_obj_t *MaxNumTitleLabel = NULL; +static lv_obj_t *MaxNumValueLabel = NULL; +void show_MaxNum_page(lv_obj_t* obj) +{ + init_Matrix_style(); + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(!puiPara->SendMaxNum) + { + puiPara->SendMaxNum = 1; + } + + MaxNumTitleLabel = lv_label_create(obj, NULL); + lv_obj_set_pos(MaxNumTitleLabel, 133, 159); + lv_obj_set_size(MaxNumTitleLabel, 54, 24); + lv_obj_add_style(MaxNumTitleLabel, 0, &gMatrixStylebtn); + lv_obj_set_state(MaxNumTitleLabel, LV_STATE_DEFAULT); + lv_label_set_text(MaxNumTitleLabel, "01-99"); + + char result[3]; + sprintf(result, "%02d", puiPara->SendMaxNum); + MaxNumValueLabel = lv_label_create(obj, NULL); + lv_obj_set_pos(MaxNumValueLabel, 145, 93); + lv_obj_set_size(MaxNumValueLabel, 30, 24); + lv_obj_add_style(MaxNumValueLabel, 0, &gMatrixStylebtn); + lv_obj_set_state(MaxNumValueLabel, LV_STATE_DEFAULT); + lv_label_set_text(MaxNumValueLabel, result); +} + +void hidde_MaxNum_page(void) +{ + if(MaxNumTitleLabel) + { + lv_obj_del(MaxNumTitleLabel); + } + if(MaxNumValueLabel) + { + lv_obj_del(MaxNumValueLabel); + } +} + +void Option_MaxNum_Key(lv_obj_t* obj, uint32_t key) +{ + if(MaxNumTitleLabel == NULL || MaxNumValueLabel == NULL) + { + printf("MaxNum is NULL"); + return; + } + + char result[3]; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + printf("key:%d\n",key); + + switch(key) + { + case LV_USER_KEY_NEXT: + printf("\033[33m[Option_MaxNum_Key]s\033[0m\n"); + if(puiPara->SendMaxNum > 1 && puiPara->SendMaxNum <= 99) + puiPara->SendMaxNum--; + else + puiPara->SendMaxNum = 99; + sprintf(result, "%d", puiPara->SendMaxNum); + lv_label_set_text(MaxNumValueLabel, result); + break; + case LV_USER_KEY_PREV: + printf("\033[33m[Option_MaxNum_Key]w\033[0m\n"); + if(puiPara->SendMaxNum >= 1 && puiPara->SendMaxNum < 99) + puiPara->SendMaxNum++; + else + puiPara->SendMaxNum = 1; + sprintf(result, "%d", puiPara->SendMaxNum); + lv_label_set_text(MaxNumValueLabel, result); + break; + case LV_USER_KEY_LEFT: + printf("\033[33m[Option_MaxNum_Key]a\033[0m\n"); + break; + case LV_USER_KEY_RIGHT: + printf("\033[33m[Option_MaxNum_Key]d\033[0m\n"); + break; + case LV_KEY_ENTER: + printf("\033[33m[Option_MaxNum_Key]SELECT\033[0m\n"); + lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); + hidde_MaxNum_page(); + break; + default: + break; + } +} + + diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h index 3eefcf366..623504025 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.h @@ -4,4 +4,9 @@ extern TM_MENU gSendMenu; extern TM_ITEM gTM_ITEMS_SEND[]; +extern void show_MaxNum_page(lv_obj_t* obj); +extern void hidde_MaxNum_page(void); + +extern void Option_MaxNum_Key(lv_obj_t* obj, uint32_t key); + #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c index 38eab9605..758e36aea 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c @@ -81,6 +81,9 @@ static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj) } #endif +// -------------------------------------------------------------------------- +// Secondary interface is other display +// -------------------------------------------------------------------------- #define MESSAGE_ITEM_TRUE 1 #define MESSAGE_ITEM_FALSE 0 static int is_message_item(lv_obj_t* obj) @@ -121,44 +124,11 @@ static int is_message_item(lv_obj_t* obj) } case IDM_CAMERA_MODE: - { - printf("[is_message_item]IDM_CAMERA_MODE\n"); - // for (i = 0; i < pItem->Count; i++) { - // //check option if disable - // TM_CheckOptionStatus(pMenu, &itemIndex, TRUE); - // if(itemIndex > pItem->Count){ - // break; - // } - // enableIndex[i] = itemIndex; - // //DBG_DUMP("%s enableIndex=%d :%d\r\n", __func__,i,enableIndex[i]); - // OptionEN_Num = i; - // if(enableIndex[i] == SelOption){ - // Selindex = i; - // } - // itemIndex++; - // } - return MESSAGE_ITEM_FALSE; - } case IDM_IMAGE_SIZE: - { - printf("[is_message_item]IDM_IMAGE_SIZE\n"); - return MESSAGE_ITEM_FALSE; - } case IDM_VIDEO_SIZE: - { - printf("[is_message_item]IDM_VIDEO_SIZE\n"); - return MESSAGE_ITEM_FALSE; - } case IDM_VIDEA_LENGTH: - { - printf("[is_message_item]IDM_VIDEA_LENGTH\n"); - return MESSAGE_ITEM_FALSE; - } case IDM_FLASH_POWER: - { - printf("[is_message_item]IDM_FLASH_POWER\n"); - return MESSAGE_ITEM_FALSE; - } + break; case IDM_SENSITIVITY: { printf("[is_message_item]IDM_SENSITIVITY\n"); @@ -171,22 +141,23 @@ static int is_message_item(lv_obj_t* obj) return MESSAGE_ITEM_FALSE; } case IDM_OPERATING_TIME: - { - printf("[is_message_item]IDM_OPERATING_TIME\n"); - return MESSAGE_ITEM_FALSE; - } + break; case IDM_FORMAT_SD: { printf("[is_message_item]IDM_FORMAT_SD\n"); return MESSAGE_ITEM_TRUE; } case IDM_DATE_AND_TIME: - { - printf("[is_message_item]IDM_DATE_AND_TIME\n"); - return MESSAGE_ITEM_FALSE; - } + break; + + case IDM_MAX_NUM_DAY: + case IDM_SETTINGS_CHECK: + case IDM_SEND_TYPE: + case IDM_CHECK_IN_PHOTO: + case IDM_GPS: + break; default: - break; + break; } return MESSAGE_ITEM_FALSE; } @@ -226,7 +197,7 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) TM_ITEM *pItem; TM_OPTION *pOption; UINT32 i; - UINT16 startIndex = 0; + // UINT16 startIndex = 0; UINT16 itemIndex = 0; #if 1 UINT16 SelOption = 0; @@ -318,14 +289,14 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) - //find startIndex - TM_FindStartIndex(pMenu, pItem->Count, &startIndex); - DBG_DUMP("%s startIndex=%d\r\n", __func__,startIndex); + // //find startIndex + // TM_FindStartIndex(pMenu, pItem->Count, &startIndex); + // DBG_DUMP("%s startIndex=%d\r\n", __func__,startIndex); - //draw item form startIndex - itemIndex = startIndex; - + // //draw item form startIndex + // itemIndex = startIndex; + itemIndex = 0; #if 1 for (i = 0; i < pItem->Count; i++) { DBG_DUMP("%s enableIndex=%d :%d\r\n", __func__,i,enableIndex[i]); @@ -495,10 +466,10 @@ static void LV_MenuOption_OnNext(lv_obj_t* obj) // DBG_DUMP("%s SelOption=%d\r\n", __func__,SelOption); SelOption++; if (SelOption == pItem->Count){ - // Close current UI Window now - SysSetFlag(pItem->SysFlag, PrevOption); - lv_plugin_scr_close(obj, NULL); -// UIFlowMenuCommonOption_CloseScr(obj); +// // Close current UI Window now +// SysSetFlag(pItem->SysFlag, PrevOption); +// lv_plugin_scr_close(obj, NULL); +// // UIFlowMenuCommonOption_CloseScr(obj); }else{ SysSetFlag(pItem->SysFlag, SelOption); lv_plugin_menu_select_next_item(menu_item); @@ -518,10 +489,10 @@ static void LV_MenuOption_OnPrev(lv_obj_t* obj) pItem = &pPage->pItems[pPage->SelItem]; SelOption = SysGetFlag(pItem->SysFlag); if (SelOption == 0) { - // Close current UI Window now - SysSetFlag(pItem->SysFlag, PrevOption); - lv_plugin_scr_close(obj, NULL); -// UIFlowMenuCommonOption_CloseScr(obj); +// // Close current UI Window now +// SysSetFlag(pItem->SysFlag, PrevOption); +// lv_plugin_scr_close(obj, NULL); +// // UIFlowMenuCommonOption_CloseScr(obj); } else { SelOption--; SysSetFlag(pItem->SysFlag, SelOption); @@ -587,9 +558,18 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) if (pItem->ItemId == IDM_LANGUAGE) { } + // -------------------------------------------------------------------------- + // 3th interface is other display + // -------------------------------------------------------------------------- if((pItem->ItemId == IDM_PASSWORD || - pItem->ItemId == IDM_CAMERA_NAME) - && pOption->TextId == IDS_CAMERA_NAME_ON) + pItem->ItemId == IDM_CAMERA_NAME || + pItem->ItemId == IDM_DELAY || + pItem->ItemId == IDM_OPERATING_TIME || + pItem->ItemId == IDM_DATE_AND_TIME || + pItem->ItemId == IDM_MAX_NUM_DAY) + && (pOption->TextId == IDS_CAMERA_NAME_ON || + pOption->TextId == IDS_DATE_AND_TIME_MANUAL || + pOption->TextId == IDS_MAX_NUM_DAY_NUMBER)) { lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); isSetting = 1; @@ -601,6 +581,17 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) case IDM_CAMERA_NAME: show_Camera_Name_page(obj); break; + case IDM_DELAY: + show_Delay_page(obj); + break; + case IDM_OPERATING_TIME: + show_Operating_Time_page(obj); + break; + case IDM_DATE_AND_TIME: + show_DateTime_page(obj); + break; + case IDM_MAX_NUM_DAY: + show_MaxNum_page(obj); default: break; } @@ -709,18 +700,18 @@ static void UIFlowMenuCommonOption_Key(lv_obj_t* obj, uint32_t key) LV_MenuOption_OnPrev(obj); break; } - case LV_KEY_RIGHT: - { - LV_MenuOption_OnSelected(obj); - break; - } + // case LV_KEY_RIGHT: + // { + // LV_MenuOption_OnSelected(obj); + // break; + // } + + // case LV_USER_KEY_SELECT: + // { + // LV_MenuOption_OnSelected(obj); + // break; + // } - case LV_USER_KEY_SELECT: - { - LV_MenuOption_OnSelected(obj); - break; - } -// case LV_KEY_ENTER: { LV_MenuOption_OnSelected(obj); @@ -783,10 +774,10 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event) lv_plugin_menu_set_selected_item_released(menu_item); break; - case LV_EVENT_CLICKED: - printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_EVENT_CLICKED\033[0m\n"); - // LV_MenuOption_OnSelected(obj); - break; + // case LV_EVENT_CLICKED: + // printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_EVENT_CLICKED\033[0m\n"); + // LV_MenuOption_OnSelected(obj); + // break; case LV_EVENT_KEY: { @@ -835,9 +826,71 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event) Option_Sensitivity_Key(obj, *key); break; case IDM_DELAY: + if(isSetting) + { + Option_Delay_Key(obj, *key); + } + else + { + UIFlowMenuCommonOption_Key(obj, *key); + } + break; case IDM_OPERATING_TIME: + if(isSetting) + { + Option_Operating_Time_Key(obj, *key); + } + else + { + UIFlowMenuCommonOption_Key(obj, *key); + } + break; case IDM_FORMAT_SD: case IDM_DATE_AND_TIME: + if(isSetting) + { + Option_DateTime_Key(obj, *key); + } + else + { + UIFlowMenuCommonOption_Key(obj, *key); + } + break; + + case IDM_MAX_NUM_DAY: + if(isSetting) + { + Option_MaxNum_Key(obj, *key); + } + else + { + UIFlowMenuCommonOption_Key(obj, *key); + } + break; + case IDM_SETTINGS_CHECK: + UIFlowMenuCommonOption_Key(obj, *key); + break; + case IDM_SEND_TYPE: + if(isSetting) + { + // Option_Operating_Time_Key(obj, *key); + } + else + { + UIFlowMenuCommonOption_Key(obj, *key); + } + break; + case IDM_CHECK_IN_PHOTO: + case IDM_GPS: + UIFlowMenuCommonOption_Key(obj, *key); + break; + + case IDM_BATTERY_TYPE: + case IDM_SD_LOOP: + case IDM_CAMERA_FW_UPGRADE: + case IDM_MODULE_FW_UPGRADE: + case IDM_RESET: + UIFlowMenuCommonOption_Key(obj, *key); break; default: break;