From: root Date: Fri, 1 Mar 2024 11:31:58 +0000 (+0800) Subject: 表盘文件读取 X-Git-Tag: release_V1.2.70_20241020_135402~1274^2~38^2~9^2~2 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=bb4c3feafaac4d9ef3dd27377f0f7335734bae5a;p=mirrors%2FFD230.git 表盘文件读取 --- 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