From bb4c3feafaac4d9ef3dd27377f0f7335734bae5a Mon Sep 17 00:00:00 2001 From: root Date: Fri, 1 Mar 2024 19:31:58 +0800 Subject: [PATCH] =?utf8?q?=E8=A1=A8=E7=9B=98=E6=96=87=E4=BB=B6=E8=AF=BB?= =?utf8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../dialupdate/include/DialUpdateModel.h | 10 +++ .../dialupdate/src/DialUpdateModel.cpp | 68 +++++++++++++++++++ 2 files changed, 78 insertions(+) diff --git a/code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h b/code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h index 56f090736..9fe931646 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h @@ -4,12 +4,22 @@ #include #define MAX_DIALNUM 4 +#define MAX_DIALNUM_1 10 typedef struct { const char *title; const char *thumbnailPath; const char *dialPath; } DialInfo; + + +typedef struct +{ + const char *title; + const char *dialPath; +} DialInfo_1; + + enum class DialPathType { DIAL_KUMI = 0, diff --git a/code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp index 377a5adcf..60e0c3c9d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp @@ -10,14 +10,80 @@ #include #include "cJSON.h" #include "wearable_log.h" +#include "dirent.h" +#include "DialBinTypes.h" +#include "DialBinParser.h" +#include "image_info.h" +#include "ui_resource_image.h" +#include "common/image_cache_manager.h" + +#define DIAL_DIR "user/res/dials" // 表盘名称||表盘缩约图||表盘路径 +DialInfo_1 dialInfo_1[MAX_DIALNUM_1]; + DialInfo dialInfo[MAX_DIALNUM] = { {"KUMI表盘", "user/res/dialupdate/KUMI.bin", "user/res/dials/KUMI.bin"}, {"星空表盘", "user/res/dialupdate/galaxy.bin", "user/res/dials/galaxy.bin"}, {"小狗表盘", "user/res/dialupdate/dog.bin", "user/res/dials/dog.bin"}, {"招财猫", "user/res/dialupdate/maomao.bin", "user/res/dials/maomao.bin"}}; +int dial_num=0; +void read_dial(void) +{ + DIR *dirp = opendir(DIAL_DIR); + // 遍历文件 + dial_num=0; + if (dirp != NULL) + { + while (dirent * ret=readdir(dirp)) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"file_name %s \r\n",ret->d_name); + if(dialInfo_1[dial_num].dialPath) + { + free((void*)dialInfo_1[dial_num].dialPath); + } + char path[124]={0}; + + sprintf(path,"user/res/dials/%s",ret->d_name); + char * str_1=(char*) malloc(sizeof(path)); + strcpy(str_1,path); + dialInfo_1[dial_num].dialPath=str_1; + if(dialInfo_1[dial_num].title) + { + free((void*)dialInfo_1[dial_num].title); + } + FILE * fp = fopen(path, "rb"); + if (fp == nullptr) + { + return; + } + OHOS::DialHeader* data = static_cast + (OHOS::DialBinParser::GetInstance()->MallocAndReadBuf(fp, sizeof(OHOS::DialHeader))); + + char * str_2=(char*) malloc(sizeof(data->dialName)); + strcpy(str_2,data->dialName); + dialInfo_1[dial_num++].title=str_2; + + fclose(fp); + delete(data); + } + } + + // 关闭目录 + closedir(dirp); +} + +void printf_dial(void) +{ + for(int i=0;i