From 40ecae08fd10098daae7728db3e4580ea60798df Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Fri, 15 Mar 2024 16:50:28 +0800 Subject: [PATCH] =?utf8?q?=E4=B8=BB=E7=95=8C=E9=9D=A2=E5=8D=A1=E7=89=87?= =?utf8?q?=EF=BC=9A=E8=A1=80=E6=B0=A7=EF=BC=8C=E8=AE=AD=E7=BB=83=E3=80=82?= =?utf8?q?=E4=B8=8A=E6=8B=89=E7=95=8C=E9=9D=A2=E4=BD=BF=E7=94=A8ImageCache?= =?utf8?q?Manager=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativelauncher/include/UiConfig.h | 5 +- .../include/ui_resource_image.h | 30 +- .../heart_blood/include/BloodCardView.h | 2 + .../heart_blood/src/BloodCardView.cpp | 28 +- .../nativeui/main/src/MainPresenterSample.cpp | 4 +- .../nativeui/main/src/MainViewSample.cpp | 2 +- .../nativeui/message/src/MessageCardView.cpp | 1 + .../nativeui/message/src/MessageModel.cpp | 11 +- .../screensetting/include/ScreenModels.h | 2 +- .../screensetting/src/ScreenModels.cpp | 280 ++++---- .../nativeui/traing/include/TraingView.h | 6 +- .../nativeui/traing/src/TraingView.cpp | 128 ++-- .../fd230/fs/user/res/Blood/BloodOxygen.bin | Bin 0 -> 146056 bytes .../fd230/fs/user/res/Training/Training.bin | Bin 0 -> 47720 bytes .../fd230/fs/user/res/message/Message.bin | Bin 0 -> 11400 bytes .../fd230/fs/user/res/message/QQ-icon.bin | Bin 2840 -> 0 bytes .../fd230/fs/user/res/message/WeChat-icon.bin | Bin 2840 -> 0 bytes .../fs/user/res/message/message-icon.bin | Bin 2840 -> 0 bytes .../fd230/fs/user/res/message/system-icon.bin | Bin 2840 -> 0 bytes .../src/utils/frameworks/mem_check.cpp | 7 + .../components/ui_test_clock_dial/UiConfig.h | 599 +++++++++--------- 21 files changed, 616 insertions(+), 489 deletions(-) create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Blood/BloodOxygen.bin create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/Training.bin create mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/Message.bin delete mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/QQ-icon.bin delete mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/WeChat-icon.bin delete mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/message-icon.bin delete mode 100644 code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/system-icon.bin diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h index 87a4d50c2..80e31f20c 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h @@ -46,6 +46,9 @@ namespace OHOS static constexpr const char *COMPASS_IAMGES = APP_RES_PATH "/compass/compass.bin"; static constexpr const char *DROPDOWN_IAMGES = APP_RES_PATH "/dropdown/dropdown.bin"; static constexpr const char *HEART_IAMGES = APP_RES_PATH "/heart/heart.bin"; + static constexpr const char *BLOOD_IAMGES = APP_RES_PATH "/Blood/BloodOxygen.bin"; + static constexpr const char *TRAINING_IAMGES = APP_RES_PATH "/Training/Training.bin"; + static constexpr const char *MESSAGE_IAMGES = APP_RES_PATH "/Message/Message.bin"; /* ----------------------------------- 打电话图片 ---------------------------------- */ static constexpr const char *PNG_AGREEING_IMAGE_PATH = APP_RES_PATH "/AGREEING.bin"; static constexpr const char *PNG_DISSGREE_IMAGE_PATH = APP_RES_PATH "/DISSGREE.bin"; @@ -356,7 +359,7 @@ namespace OHOS static constexpr const char *B024_009_IMAGE_PATH = APP_RES_PATH "/HOURHAND.bin"; static constexpr const char *B024_010_IMAGE_PATH = APP_RES_PATH "/SECONDHAND.bin"; static constexpr const char *B024_011_IMAGE_PATH = APP_RES_PATH "/MINUTEHAND.bin"; - static constexpr const char *PNG_APPLIST_PHONE_IMAGE = APP_RES_PATH "/phone.bin"; // 电话 + static constexpr const char *PNG_APPLIST_PHONE_IMAGE = APP_RES_PATH "/phone.bin"; // 电话 /* -------------------------------------------------------------------------- */ static constexpr const char *PNG_NEW_WLAN_WIFI = APP_RES_PATH "/FULL_SIGNAL_OPEN.bin"; static constexpr const char *FULL_SIGNAL_ENCRYPTION = APP_RES_PATH "/FULL_SIGNAL_ENCRYPTION.bin"; diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_image.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_image.h index 53562a7e4..85e820047 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_image.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_image.h @@ -1,7 +1,8 @@ #ifndef UI_RESOURCE_IMAGE_H #define UI_RESOURCE_IMAGE_H #include -namespace OHOS { +namespace OHOS +{ static const int DIR_MASK = 0xfff00000; static const int PNG_MASK = 0x000fffff; @@ -50,14 +51,14 @@ namespace OHOS { static const int CLOCK_CLOCK7 = 0x30000e; static const int CLOCK_CLOCK8 = 0x30000f; static const int CLOCK_CLOCK9 = 0x300010; - static const int CLOCK_CLASSIC_GEOMETRY = 0x300011; + static const int CLOCK_CLASSIC_GEOMETRY = 0x300011; static const int CLOCK_CLOCK_HOUR = 0x300012; static const int CLOCK_CLOCK_MINUTE = 0x300013; - static const int CLOCK_CLOCK_SECOND = 0x300014; + static const int CLOCK_CLOCK_SECOND = 0x300014; static const int CLOCK_HOUR = 0x300015; static const int CLOCK_MINUTE = 0x300016; static const int CLOCK_SECOND = 0x300017; - /* -------------------------------------------------------------------------- */ + /* -------------------------------------------------------------------------- */ static const int DROPDOWN_BLUETOOTHCONNECTED = 0x400001; // 蓝牙连接中 static const int DROPDOWN_BLUETOOTHDISCONNECTED = 0x400002; // 蓝牙未连接 static const int DROPDOWN_EARPHONESCONNECTED = 0x400003; // 耳机连接中 @@ -71,9 +72,22 @@ namespace OHOS { static const int DROPDOWN_SAVEPOWER = 0x40000b; // 省电模式 static const int DROPDOWN_SETTING = 0x40000c; // 设置 /* -------------------------------------------------------------------------- */ - static const int COMPASS_COMPASS0 = 0x500001; //背景 - static const int COMPASS_COMPASS1 = 0x500002; //标记点图片 - static const int COMPASS_COMPASS2 = 0x500003; //三角 - + static const int COMPASS_COMPASS0 = 0x500001; // 背景 + static const int COMPASS_COMPASS1 = 0x500002; // 标记点图片 + static const int COMPASS_COMPASS2 = 0x500003; // 三角 + /* -------------------------------------------------------------------------- */ + static const int BLOODOXYGEN_BACKGOUND = 0x600001; + static const int MESSAGE_MESSAGE = 0x700001; + static const int MESSAGE_QQ = 0x700002; + static const int MESSAGE_SYSTEM = 0x700003; + static const int MESSAGE_WECHAT = 0x700004; + static const int TRAINING_BOUTTONGROUND = 0x800001; + static const int TRAINING_BUTTONGROUND2 = 0x800002; + static const int TRAINING_MORE = 0x800003; + static const int TRAINING_RIDING_BIG2 = 0x800004; + static const int TRAINING_RUNNING_BIG = 0x800005; + static const int TRAINING_WALKING_BIG = 0x800006; + /* -------------------------------------------------------------------------- */ + } #endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/include/BloodCardView.h b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/include/BloodCardView.h index b801322c4..071457aea 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/include/BloodCardView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/include/BloodCardView.h @@ -50,7 +50,9 @@ namespace OHOS UILabel *titleLabel = nullptr; UILabel *bloodLabel = nullptr; UILabel *timeLabel = nullptr; + bool viewiInitStatus{false}; + bool resLoadStatus{false}; int bloodoxygen; }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/src/BloodCardView.cpp b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/src/BloodCardView.cpp index b56fe3c4d..da0f00223 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heart_blood/src/BloodCardView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heart_blood/src/BloodCardView.cpp @@ -1,6 +1,5 @@ #include "heart_blood/include/BloodCardView.h" - #include "common/image_cache_manager.h" #include "UiConfig.h" #include "ui_resource_image.h" @@ -12,6 +11,7 @@ #include "DialModelHeartRate.h" #include "BloodOxygenModel.h" #include "BloodOxygenPresenter.h" +#include "UiConfig.h" namespace OHOS { static BloodCardView *g_pBloodCardView{nullptr}; @@ -171,9 +171,6 @@ namespace OHOS background->SetPosition(0, 0); // widget's left position and top position background->Resize(466, 466); // widget's width and height background->SetViewId("image1"); // Set style - // Set additional property - char *image1imagesPath = "/user/res/Blood/beijing.bin"; - background->SetSrc(image1imagesPath); // Add to rootView Add(background); @@ -239,6 +236,7 @@ namespace OHOS titleLabel = nullptr; } } + /* -------------------------------------------------------------------------- */ void BloodCardView::PreLoad(void) { if (!viewiInitStatus) @@ -246,10 +244,30 @@ namespace OHOS InitView(); viewiInitStatus = true; } + if (!resLoadStatus) + { + ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(BLOODOXYGEN_BACKGOUND, BLOOD_IAMGES); + if (image == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingView::LoadTrainingImage fail"); + return; + } + background->SetSrc(image); + resLoadStatus = true; + } } void BloodCardView::UnLoad(void) { +#if 0 + if (resLoadStatus) + { + ImageInfo *img = nullptr; + background->SetSrc(img); + ImageCacheManager::GetInstance().UnloadOneInMultiRes(BLOODOXYGEN_BACKGOUND, BLOOD_IAMGES); + resLoadStatus = false; + } +#endif } - + /* -------------------------------------------------------------------------- */ } diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp index 4d10dc7b6..3e7eb93fc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp @@ -29,7 +29,7 @@ #include "DialViewGroup.h" #endif #include "ui_service.h" - +#define TESTCHECK 0 namespace OHOS { @@ -191,7 +191,7 @@ namespace OHOS void MainPresenterSample::OnSwipe(UISwipeView &view) { -#if 0 +#if TESTCHECK MemCheck::GetInstance()->DumpMemInfo(); printf("total size:%d\n", view_->GetHorCurrentPage()); #endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp index 794edf10a..17e5283b3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp @@ -30,7 +30,7 @@ namespace OHOS {WATCH_FACE, &MainViewSample::InitWatchFacePage}, {HEART_RATE, &MainViewSample::InitHeartRatePage}, {BloodOxygen, &MainViewSample::InitBloodOxygenPage}, - //{TRAINING, &MainViewSample::InitTrainingPage}, + {TRAINING, &MainViewSample::InitTrainingPage}, {COMPASS, &MainViewSample::InitCompassPage}, //{WEATHER, &MainViewSample::InitWeatherPage}, {MUSIC_PLAYER, &MainViewSample::InitMusicPlayerPage}, diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp index 6d921f9d8..79a23575b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp @@ -66,6 +66,7 @@ namespace OHOS void MessageCardView::UnLoad(void) { + } } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp index 0a23d5094..4a387c583 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp @@ -1,7 +1,8 @@ #include "message/include/MessageModel.h" #include "common/image_cache_manager.h" - +#include "UiConfig.h" +#include "ui_resource_image.h" namespace OHOS { @@ -17,10 +18,10 @@ namespace OHOS void MessageModel::InitMessageListItem() { - ImageInfo *imgSystem = ImageCacheManager::GetInstance().LoadSingleRes(PNG_Message_System); - ImageInfo *imgNote = ImageCacheManager::GetInstance().LoadSingleRes(PNG_Message_Note); - ImageInfo *imgWechat = ImageCacheManager::GetInstance().LoadSingleRes(PNG_Message_Wechat); - ImageInfo *imgQQ = ImageCacheManager::GetInstance().LoadSingleRes(PNG_Message_QQ); + ImageInfo *imgSystem = ImageCacheManager::GetInstance().LoadOneInMultiRes(MESSAGE_SYSTEM, MESSAGE_IAMGES); + ImageInfo *imgNote = ImageCacheManager::GetInstance().LoadOneInMultiRes(MESSAGE_MESSAGE, MESSAGE_IAMGES); + ImageInfo *imgWechat = ImageCacheManager::GetInstance().LoadOneInMultiRes(MESSAGE_WECHAT, MESSAGE_IAMGES); + ImageInfo *imgQQ = ImageCacheManager::GetInstance().LoadOneInMultiRes(MESSAGE_QQ, MESSAGE_IAMGES); Messages[0] = {0, imgSystem, "系统", "暂无信息", false}; Messages[1] = {1, imgNote, "信息", "暂无信息", false}; diff --git a/code/sdk/application/wearable/fd230app/nativeui/screensetting/include/ScreenModels.h b/code/sdk/application/wearable/fd230app/nativeui/screensetting/include/ScreenModels.h index 4fa64e759..5804c0465 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/screensetting/include/ScreenModels.h +++ b/code/sdk/application/wearable/fd230app/nativeui/screensetting/include/ScreenModels.h @@ -18,7 +18,7 @@ namespace OHOS { WATCH_FACE = 0, HEART_RATE, - //TRAINING, + TRAINING, BloodOxygen, COMPASS, //WEATHER, diff --git a/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp b/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp index d8970a38f..8b593c13c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/screensetting/src/ScreenModels.cpp @@ -16,162 +16,190 @@ #include "UiConfig.h" #include "ui_resource_image.h" -namespace OHOS { - -ScreenModels::ScreenModels() +namespace OHOS { -} -ScreenModels::~ScreenModels() -{ -} + ScreenModels::ScreenModels() + { + } -ScreenModels *ScreenModels::GetInstance(void) -{ - static ScreenModels screenModel; - return &screenModel; -} + ScreenModels::~ScreenModels() + { + } -bool ScreenModels::SetUpListCase(void) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUpListCase"); - listMainView = new List(); - if (listMainView == nullptr) { - return false; + ScreenModels *ScreenModels::GetInstance(void) + { + static ScreenModels screenModel; + return &screenModel; } - listMainView->Clear(); - return true; -} -bool ScreenModels::InitCardConfig(void) -{ - if (SetUpListCase() == false) { - return false; + bool ScreenModels::SetUpListCase(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetUpListCase"); + listMainView = new List(); + if (listMainView == nullptr) + { + return false; + } + listMainView->Clear(); + return true; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig1"); - int32_t fd = open(CARD_CONFIG_PATH, O_RDWR, S_IRWXU); - ListNode *node; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig2"); - struct CardInfo cardInfoData; - if (fd < 0) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig open fail"); - fd = open(CARD_CONFIG_PATH, O_RDWR | O_CREAT, S_IRWXU); - if (fd < 0) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig open fail 2"); + + bool ScreenModels::InitCardConfig(void) + { + if (SetUpListCase() == false) + { return false; } - SetCardConfigDefault(); - node = listMainView->Begin(); - for (int32_t i = 0; i < maxPage; i++) { - cardInfoData = node->data_; - node = node->next_; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Init write cardInfoData.i:%d ", cardInfoData.cardId); - if (write(fd, &cardInfoData, sizeof(CardInfo)) != sizeof(CardInfo)) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Init SaveGlobalHealthToFile fail"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig1"); + int32_t fd = open(CARD_CONFIG_PATH, O_RDWR, S_IRWXU); + ListNode *node; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig2"); + struct CardInfo cardInfoData; + if (fd < 0) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig open fail"); + fd = open(CARD_CONFIG_PATH, O_RDWR | O_CREAT, S_IRWXU); + if (fd < 0) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig open fail 2"); + return false; + } + SetCardConfigDefault(); + node = listMainView->Begin(); + for (int32_t i = 0; i < maxPage; i++) + { + cardInfoData = node->data_; + node = node->next_; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Init write cardInfoData.i:%d ", cardInfoData.cardId); + if (write(fd, &cardInfoData, sizeof(CardInfo)) != sizeof(CardInfo)) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Init SaveGlobalHealthToFile fail"); + } } + close(fd); + return true; } - close(fd); - return true; - } else { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig3"); - for (int32_t i = 0; i < maxPage; i++) { - if (read(fd, &cardInfoData, sizeof(CardInfo)) != sizeof(CardInfo)) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Init Read GlobalHealthToFile fail"); + else + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitCardConfig3"); + for (int32_t i = 0; i < maxPage; i++) + { + if (read(fd, &cardInfoData, sizeof(CardInfo)) != sizeof(CardInfo)) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Init Read GlobalHealthToFile fail"); + } + listMainView->PushBack(cardInfoData); } - listMainView->PushBack(cardInfoData); + close(fd); + return true; } - close(fd); - return true; + return false; } - return false; -} -bool ScreenModels::SaveCardConfig(void) -{ - int32_t fd = open(CARD_CONFIG_PATH, O_RDWR | O_CREAT, S_IRWXU); - if (fd < 0) { - close(fd); - return false; - } else { - if (write(fd, &listMainView, listMainView->Size()) != listMainView->Size()) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SaveGlobalHealthToFile fail"); + bool ScreenModels::SaveCardConfig(void) + { + int32_t fd = open(CARD_CONFIG_PATH, O_RDWR | O_CREAT, S_IRWXU); + if (fd < 0) + { + close(fd); + return false; + } + else + { + if (write(fd, &listMainView, listMainView->Size()) != listMainView->Size()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SaveGlobalHealthToFile fail"); + } + close(fd); + return true; } - close(fd); - return true; } -} -void ScreenModels::SetCardConfigDefault(void) -{ - int16_t i; - struct CardInfo cardInfoData; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetCardConfigDefault"); - for (i = 0; i < MAX_CARD; i++) { - cardInfoData.cardId = i; - listMainView->PushBack(cardInfoData); + void ScreenModels::SetCardConfigDefault(void) + { + int16_t i; + struct CardInfo cardInfoData; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetCardConfigDefault"); + for (i = 0; i < MAX_CARD; i++) + { + cardInfoData.cardId = i; + listMainView->PushBack(cardInfoData); + } } -} -int16_t ScreenModels::GetCardPage(uint16_t page) -{ - ListNode *node = listMainView->Begin(); - for (uint8_t i = 0; i < page; i++) { - if (node->next_ != NULL) { - node = node->next_; - } else { - return -1; + int16_t ScreenModels::GetCardPage(uint16_t page) + { + ListNode *node = listMainView->Begin(); + for (uint8_t i = 0; i < page; i++) + { + if (node->next_ != NULL) + { + node = node->next_; + } + else + { + return -1; + } } + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetCardPage cardId:%d", node->data_.cardId); + return node->data_.cardId; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetCardPage cardId:%d", node->data_.cardId); - return node->data_.cardId; -} -int16_t ScreenModels::GetLastCardPage(void) -{ - ListNode *node = listMainView->Begin(); - for (uint8_t i = 0; i < MAX_CARD; i++) { - if (node->next_ == NULL) { - node = node->next_; + int16_t ScreenModels::GetLastCardPage(void) + { + ListNode *node = listMainView->Begin(); + for (uint8_t i = 0; i < MAX_CARD; i++) + { + if (node->next_ == NULL) + { + node = node->next_; + } } + return node->data_.cardId; } - return node->data_.cardId; -} -int16_t ScreenModels::GetMaxCard(void) -{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetMaxCard maxPage:%d", maxPage); - return maxPage; -} + int16_t ScreenModels::GetMaxCard(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetMaxCard maxPage:%d", maxPage); + return maxPage; + } -void ScreenModels::LoadAppMultiImages(std::string file, uint32_t startId, uint32_t lastId) -{ - for (uint32_t i = startId; i <= lastId; i++) { - ImageInfo* image = ImageCacheManager::GetInstance().LoadOneInMultiRes(i, file); - if (image == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAppMultiImages %x fail", i); - return; + void ScreenModels::LoadAppMultiImages(std::string file, uint32_t startId, uint32_t lastId) + { + for (uint32_t i = startId; i <= lastId; i++) + { + ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(i, file); + if (image == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAppMultiImages %x fail", i); + return; + } + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LoadAppMultiImages %x", i); } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LoadAppMultiImages %x", i); } -} -bool ScreenModels::LoadAppImages(std::string file, UIImageView *view, uint32_t resId) -{ - ImageInfo* image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file); - if (image == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAppImages %x fail", resId); - return false; + bool ScreenModels::LoadAppImages(std::string file, UIImageView *view, uint32_t resId) + { + ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file); + if (image == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadAppImages %x fail", resId); + return false; + } + view->SetSrc(image); + return true; } - view->SetSrc(image); - return true; -} -void ScreenModels::PreLoadAppimages(void) -{ - LoadAppMultiImages(PLAYER_IAMGES, PLAYER_BACKGROUND, PLAYER_PLAYING); - LoadAppMultiImages(CLOCK_IAMGES, CLOCK_CLOCK0, CLOCK_SECOND); - LoadAppMultiImages(COMPASS_IAMGES, COMPASS_COMPASS0, COMPASS_COMPASS2); - LoadAppMultiImages(DROPDOWN_IAMGES, DROPDOWN_BLUETOOTHCONNECTED, DROPDOWN_SETTING); - LoadAppMultiImages(HEART_IAMGES, HEART_HEARTRATECOOR, HEART_HEARTRATE_TOP); -} + void ScreenModels::PreLoadAppimages(void) + { + LoadAppMultiImages(PLAYER_IAMGES, PLAYER_BACKGROUND, PLAYER_PLAYING); + LoadAppMultiImages(CLOCK_IAMGES, CLOCK_CLOCK0, CLOCK_SECOND); + LoadAppMultiImages(COMPASS_IAMGES, COMPASS_COMPASS0, COMPASS_COMPASS2); + LoadAppMultiImages(DROPDOWN_IAMGES, DROPDOWN_BLUETOOTHCONNECTED, DROPDOWN_SETTING); + LoadAppMultiImages(HEART_IAMGES, HEART_HEARTRATECOOR, HEART_HEARTRATE_TOP); + LoadAppMultiImages(BLOOD_IAMGES, BLOODOXYGEN_BACKGOUND, BLOODOXYGEN_BACKGOUND); + LoadAppMultiImages(TRAINING_IAMGES, TRAINING_BOUTTONGROUND, TRAINING_WALKING_BIG); + LoadAppMultiImages(MESSAGE_IAMGES, MESSAGE_MESSAGE, MESSAGE_WECHAT); + } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingView.h index de0c21c59..e52c83238 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingView.h @@ -1,4 +1,3 @@ - #ifndef _Traing_VIEW_H #define _Traing_VIEW_H @@ -41,6 +40,9 @@ namespace OHOS void PreLoad(void) override; void UnLoad(void) override; + bool LoadImage(UIImageView *view, uint32_t resId); + bool LoadImage(UILabelButtonExt *view, uint32_t resId); + private: UIView::OnDragListener *draglistener{nullptr}; TraingView(TraingView &&) = delete; @@ -56,7 +58,9 @@ namespace OHOS UIImageView *image2 = nullptr; UIImageView *image3 = nullptr; UIImageView *imagemore = nullptr; + bool viewiInitStatus{false}; + bool resLoadStatus{false}; }; } // namespace OHOS #endif // Traing_PRESENTER_H diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp index 835b424e8..86c1c439f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp @@ -7,6 +7,7 @@ #include #include "components/ui_button.h" #include "components/ui_view_group.h" +#include "common/image_cache_manager.h" namespace OHOS { @@ -31,22 +32,78 @@ namespace OHOS { return g_pTraingView; } + bool TraingView::InitLable() + { + // 检查标签指针是否为空 + if (titleLabel == nullptr) + { + titleLabel = new UILabel(); + } + // 设置标签的位置和大小 + titleLabel->SetPosition(173, 52); + titleLabel->Resize(200, 60); + // 设置标签的视图 ID + titleLabel->SetViewId("titleLabel"); + // 设置标签的样式 + titleLabel->SetStyle(STYLE_TEXT_FONT, 30); + titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + // 设置标签的文本和其他属性 + titleLabel->SetText("快速训练"); + titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); + titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + titleLabel->SetRollSpeed(0); + Add(titleLabel); + + return true; + } + /* -------------------------------------------------------------------------- */ + // 加载图片函数(针对UILabelButtonExt) + bool TraingView::LoadImage(UILabelButtonExt *view, uint32_t resId) + { + std::string file = TRAINING_IAMGES; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TrainingView LoadImage: %s, resID=0x%x", TRAINING_IAMGES, resId); + ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file); + if (image == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingView::LoadImage %x fail", resId); + return false; + } + // Assuming SetImageSrc is the correct function for UILabelButtonExt + view->SetImageSrc(image, nullptr); + return true; + } + + // 加载图片函数(针对UIImageView) + bool TraingView::LoadImage(UIImageView *view, uint32_t resId) + { + std::string file = TRAINING_IAMGES; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TrainingView LoadImage: %s, resID=0x%x", TRAINING_IAMGES, resId); + ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file); + if (image == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingView::LoadImage %x fail", resId); + return false; + } + view->SetSrc(image); // Assuming SetSrc is the correct function for UIImageView + return true; + } + bool TraingView::AddButton() { struct ButtonInfo { std::string text; - const char *defaultImgSrc; + uint32_t defaultImgSrc; UILabelButtonExt *button; uint16_t posX; uint16_t posY; }; ButtonInfo buttons[] = { - {"健走", PNG_TRAING_BUTTONGRONG2_IMAGE, Button1, 86, 118}, - {"骑行", PNG_TRAING_BUTTONGRONG_IMAGE, Button2, 236, 118}, - {"跑步", PNG_TRAING_BUTTONGRONG_IMAGE, Button3, 86, 268}, - {"更多", PNG_TRAING_BOUTTONMORE_IMAGE, ButtonMore, 236, 268}}; + {"健走", TRAINING_BUTTONGROUND2, Button1, 86, 118}, + {"骑行", TRAINING_BOUTTONGROUND, Button2, 236, 118}, + {"跑步", TRAINING_BOUTTONGROUND, Button3, 86, 268}, + {"更多", TRAINING_MORE, ButtonMore, 236, 268}}; for (auto &buttonInfo : buttons) { @@ -54,11 +111,15 @@ namespace OHOS { buttonInfo.button = new UILabelButtonExt(); } + + if (!LoadImage(buttonInfo.button, buttonInfo.defaultImgSrc)) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d], triangulation load fail", __LINE__); + return false; + } + buttonInfo.button->SetPosition(buttonInfo.posX, buttonInfo.posY); buttonInfo.button->Resize(140, 140); - - char *triggeredImgSrc = nullptr; - buttonInfo.button->SetImageSrc(buttonInfo.defaultImgSrc, triggeredImgSrc); buttonInfo.button->SetText(buttonInfo.text.c_str()); buttonInfo.button->SetLabelPosition(0, 70); buttonInfo.button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20); @@ -71,46 +132,21 @@ namespace OHOS return true; } - bool TraingView::InitLable() - { - // 检查标签指针是否为空 - if (titleLabel == nullptr) - { - titleLabel = new UILabel(); - } - // 设置标签的位置和大小 - titleLabel->SetPosition(173, 52); - titleLabel->Resize(200, 60); - // 设置标签的视图 ID - titleLabel->SetViewId("titleLabel"); - // 设置标签的样式 - titleLabel->SetStyle(STYLE_TEXT_FONT, 30); - titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); - // 设置标签的文本和其他属性 - titleLabel->SetText("快速训练"); - titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - titleLabel->SetRollSpeed(0); - Add(titleLabel); - - return true; - } - bool TraingView::InitImage() { struct ImageInfo { UIImageView *image; - const char *imagePath; + const int imagePath; uint16_t posX; uint16_t posY; const char *viewId; }; ImageInfo images[] = { - {image1, PNG_TRAING_WALKINGBIG_IMAGE, 126, 298, "image3"}, - {image2, PNG_TRAING_RIDINGBIG_IMAGE, 276, 148, "image2"}, - {image3, PNG_TRAING_RUNNINGBIG_IMAGE, 126, 148, "image1"}}; + {image1, TRAINING_WALKING_BIG, 126, 298, "image3"}, + {image2, TRAINING_RIDING_BIG2, 276, 148, "image2"}, + {image3, TRAINING_RUNNING_BIG, 126, 148, "image1"}}; for (auto &imageInfo : images) { @@ -120,14 +156,18 @@ namespace OHOS } imageInfo.image->SetPosition(imageInfo.posX, imageInfo.posY); imageInfo.image->Resize(100, 100); + if (!LoadImage(imageInfo.image, imageInfo.imagePath)) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d], triangulation load fail", __LINE__); + return false; + } imageInfo.image->SetViewId(imageInfo.viewId); - imageInfo.image->SetSrc(imageInfo.imagePath); Add(imageInfo.image); } return true; } - + /* -------------------------------------------------------------------------- */ bool TraingView::InitView() { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingView::InitView()"); @@ -177,7 +217,6 @@ namespace OHOS delete titleLabel; titleLabel = nullptr; } - } void TraingView::PreLoad(void) @@ -187,9 +226,18 @@ namespace OHOS InitView(); viewiInitStatus = true; } + if (!resLoadStatus) + { + resLoadStatus = true; + } } void TraingView::UnLoad(void) { + if (resLoadStatus) + { + //ImageCacheManager::GetInstance().UnloadAllInMultiRes(TRAINING_IAMGES); + resLoadStatus = false; + } } } diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Blood/BloodOxygen.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Blood/BloodOxygen.bin new file mode 100644 index 0000000000000000000000000000000000000000..61d09ccabeff5afe2968fe9d437cbb04a589d7a4 GIT binary patch literal 146056 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 literal 0 HcmV?d00001 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/Training.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Training/Training.bin new file mode 100644 index 0000000000000000000000000000000000000000..63c845a13a62f7fcd4a0be6a4ff01c37da86dcfd GIT binary patch literal 47720 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 a0-6XsIQ&hC)UVFO_D38Vtc;HzPyatQOo+z- literal 0 HcmV?d00001 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/Message.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/Message.bin new file mode 100644 index 0000000000000000000000000000000000000000..3959e6841e51b48cb29618f69f9a2b9979d109db GIT binary patch literal 11400 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 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/system-icon.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/message/system-icon.bin deleted file mode 100644 index f4674c9ad06ee3cce6cbe6732c12be9dff4cf6e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2840 zcmchZT}&KR6oAjY1N#G|>~^+7Q*eMv0*NhP8bzVN45CHTWCv-|r|uH9{=`JuU_&Z# zW~-^4(5O%nO{%grG@(gN@ktUI8EBeHtO8Y|F)<6l2Shq7V(O+#_jm^~)lNf}Z5!{t z?Ai18-E+^~b3p{CVISmNH8FoNSZnzvuB^4>(c?LMt5o0ssLM2MB#+y}^gHYG;xN})cqKRCe|9~u(%UY7bfd7Oz;*(D}>{E&#oL>QrQDm!)4TzIgWBbo^Jw)0c?? z$NIbUOQN7K`=?+Y$I@dW8AhgNylk=am9!x;|5tAf3RBt3urXzR@ryE_(d#jA%RHfZ zE*j7>HV?#+3?X(N6+ikd8Sit1gtoeAbeotox>u;1_XZ`)tiAcE^;^-Xf*b%cL>@UD>Z6%aS1FYoR5>HJ*9*t9n)wNl-A`jxgLiKM*Z*eEHeis6ESD2y-WS^Kf- zX_s&7j|5^p;llGZEB&J8>JYZ<*WzFOKW|~xJlXwuB69MPu@*jB=wZe6;N=gOt|jxA z`om-*kul=hQhbtj8&*Na~88A7H( z(u`g~$M?52k}Lo<9_c9N`qFwFcKc+q%uO#~6~F;d_mK}uV3Lwhj*F@@PiyTDeYX3_ zWd3%2MTo5SCz~gJHc-CZ-p2RYJ1jU_9;$!xCg4(4%#*kF!c*awg%HpacPZ$VHs5I^>8pqBkw{dK?f@?tHU&s=Ne zCW%l=T~>UP&s=u7N#j}ljlid%Zwx!5>HoQ(aq~`D_V6F`0eg}`0 zZ8{(F_1v{SNI^=ZdDYLrL0@PWyaZ@lb1$=;Oxpnext != nullptr) { total += allocPtr->next->size; @@ -173,8 +178,10 @@ void MemCheck::DumpMemInfo() allocPtr = allocPtr->next; } printf("total size: %d, max: %d, count: %d\n", total, max, count); +#if SUPPRESS_DUMP printf("--------\n"); GrallocEngines::GetInstance()->DumpMem(); +#endif } #ifndef VERSION_IOT diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_clock_dial/UiConfig.h b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_clock_dial/UiConfig.h index c0c5c9b38..3630f9e01 100755 --- a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_clock_dial/UiConfig.h +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_clock_dial/UiConfig.h @@ -19,335 +19,336 @@ #include #include "graphic_config.h" -namespace OHOS { - #ifndef UNUSED - #define UNUSED(x) ((void)(x)) - #endif +namespace OHOS +{ +#ifndef UNUSED +#define UNUSED(x) ((void)(x)) +#endif - #define LA_HORIZONTAL_RESOLUTION 400 // watch width - #define LA_VERTICAL_RESOLUTION 400 // watch height - #define NORMAL_BUTTON_WIDTH 100 // normal button width - #define NORMAL_BUTTON_HEIGHT 50 // normal button height - #define NORMAL_MARGIN 5 // normal margin - #define DIAL_SQUARE 250 // watch plate sauqre - #define SETTING_ITEM_HEIGHT 100 // setting item height - #define UN_OPACITY 255 // UN_OPACITY +#define LA_HORIZONTAL_RESOLUTION 400 // watch width +#define LA_VERTICAL_RESOLUTION 400 // watch height +#define NORMAL_BUTTON_WIDTH 100 // normal button width +#define NORMAL_BUTTON_HEIGHT 50 // normal button height +#define NORMAL_MARGIN 5 // normal margin +#define DIAL_SQUARE 250 // watch plate sauqre +#define SETTING_ITEM_HEIGHT 100 // setting item height +#define UN_OPACITY 255 // UN_OPACITY - #define MILLESECOND 1 - #define SECOND 1000 // 1s 1000ms - #define MINUTE (60 * SECOND) // 1min 60s - #define HOUR (60 * MINUTE) // 1hour 60min +#define MILLESECOND 1 +#define SECOND 1000 // 1s 1000ms +#define MINUTE (60 * SECOND) // 1min 60s +#define HOUR (60 * MINUTE) // 1hour 60min - #define FONT_COMMON 20 // 20px +#define FONT_COMMON 20 // 20px constexpr int16_t SCREEN_HORIZONTAL_RESOLUTION = 454; // watch width - constexpr int16_t SCREEN_VERTICAL_RESOLUTION = 454; // watch width + constexpr int16_t SCREEN_VERTICAL_RESOLUTION = 454; // watch width - constexpr const char *CLOCK_IAMGES = RES_PATH"/clock.bin"; - constexpr const char *PLAYER_IAMGES = RES_PATH"/player/player.bin"; - constexpr const char *COMPASS_IAMGES = RES_PATH"/compass.bin"; - constexpr const char *DROPDOWN_IAMGES = RES_PATH"/dropdown.bin"; - constexpr const char *HEART_IAMGES = RES_PATH"/heart.bin"; - constexpr const char *PNG_BLUETOOTH_HINTS_PATH = RES_PATH"/BLUETOOTH_HINTS.bin"; - constexpr const char *PNG_BLOODOXYGEN_IMAGE_PATH = RES_PATH"/BLOODOXYGEN_VIEW.bin"; + constexpr const char *CLOCK_IAMGES = RES_PATH "/clock.bin"; + constexpr const char *PLAYER_IAMGES = RES_PATH "/player/player.bin"; + constexpr const char *COMPASS_IAMGES = RES_PATH "/compass.bin"; + constexpr const char *DROPDOWN_IAMGES = RES_PATH "/dropdown.bin"; + constexpr const char *HEART_IAMGES = RES_PATH "/heart.bin"; + constexpr const char *PNG_BLUETOOTH_HINTS_PATH = RES_PATH "/BLUETOOTH_HINTS.bin"; + constexpr const char *PNG_BLOODOXYGEN_IMAGE_PATH = RES_PATH "/BLOODOXYGEN_VIEW.bin"; - constexpr const char *PNG_BLOOD_ICON_ENTER = RES_PATH"/BLOOD_ICON_ENTER.bin"; + constexpr const char *PNG_BLOOD_ICON_ENTER = RES_PATH "/BLOOD_ICON_ENTER.bin"; - constexpr const char *PNG_AGREEING_IMAGE_PATH = RES_PATH"/AGREEING.bin"; - constexpr const char *PNG_DISSGREE_IMAGE_PATH = RES_PATH"/DISSGREE.bin"; - constexpr const char *PNG_MICROPHONE_OPEN_IMAGE_PATH = RES_PATH"/MICRO_PHONE_OPEN.bin"; - constexpr const char *PNG_MICROPHONE_CLOSE_IMAGE_PATH = RES_PATH"/MICRO_PHONE_CLOSE.bin"; - constexpr const char *PNG_HANDUP_IMAGE_PATH = RES_PATH"/HANDUP.bin"; - constexpr const char *PNG_ANSWER_TMAGE_PATH = RES_PATH"/ANSWER_PHONE.bin"; - constexpr const char *PNG_CALLING_TMAGE_PATH = RES_PATH"/CALLING_PHONE.bin"; - constexpr const char *PNG_CALLER_TMAGE_PATH = RES_PATH"/CALLER_LOG_IMAGE.bin"; - constexpr const char *PNG_NO_CALLER_LOG_IMAGE = RES_PATH"/NO_CALLER_LOG_IMAGE.bin"; - constexpr const char *PNG_APPLIST_CALLER_IMAGE = RES_PATH"/APPLIST_CALLER_IMAGE.bin"; - constexpr const char *PNG_APPLIST_COMPASS_IMAGE = RES_PATH"/APPLIST_COMPASS_IMAGE.bin"; + constexpr const char *PNG_AGREEING_IMAGE_PATH = RES_PATH "/AGREEING.bin"; + constexpr const char *PNG_DISSGREE_IMAGE_PATH = RES_PATH "/DISSGREE.bin"; + constexpr const char *PNG_MICROPHONE_OPEN_IMAGE_PATH = RES_PATH "/MICRO_PHONE_OPEN.bin"; + constexpr const char *PNG_MICROPHONE_CLOSE_IMAGE_PATH = RES_PATH "/MICRO_PHONE_CLOSE.bin"; + constexpr const char *PNG_HANDUP_IMAGE_PATH = RES_PATH "/HANDUP.bin"; + constexpr const char *PNG_ANSWER_TMAGE_PATH = RES_PATH "/ANSWER_PHONE.bin"; + constexpr const char *PNG_CALLING_TMAGE_PATH = RES_PATH "/CALLING_PHONE.bin"; + constexpr const char *PNG_CALLER_TMAGE_PATH = RES_PATH "/CALLER_LOG_IMAGE.bin"; + constexpr const char *PNG_NO_CALLER_LOG_IMAGE = RES_PATH "/NO_CALLER_LOG_IMAGE.bin"; + constexpr const char *PNG_APPLIST_CALLER_IMAGE = RES_PATH "/APPLIST_CALLER_IMAGE.bin"; + constexpr const char *PNG_APPLIST_COMPASS_IMAGE = RES_PATH "/APPLIST_COMPASS_IMAGE.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_0 = RES_PATH"/COUNTDOWN_IMAGE_01.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_1 = RES_PATH"/COUNTDOWN_IMAGE_02.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_2 = RES_PATH"/COUNTDOWN_IMAGE_03.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_3 = RES_PATH"/COUNTDOWN_IMAGE_04.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_4 = RES_PATH"/COUNTDOWN_IMAGE_05.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_5 = RES_PATH"/COUNTDOWN_IMAGE_06.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_6 = RES_PATH"/COUNTDOWN_IMAGE_07.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_7 = RES_PATH"/COUNTDOWN_IMAGE_08.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_8 = RES_PATH"/COUNTDOWN_IMAGE_09.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_9 = RES_PATH"/COUNTDOWN_IMAGE_10.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_10 = RES_PATH"/COUNTDOWN_IMAGE_11.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_11 = RES_PATH"/COUNTDOWN_IMAGE_12.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_12 = RES_PATH"/COUNTDOWN_IMAGE_13.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_13 = RES_PATH"/COUNTDOWN_IMAGE_14.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_14 = RES_PATH"/COUNTDOWN_IMAGE_15.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_15 = RES_PATH"/COUNTDOWN_IMAGE_16.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_16 = RES_PATH"/COUNTDOWN_IMAGE_17.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_17 = RES_PATH"/COUNTDOWN_IMAGE_18.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_18 = RES_PATH"/COUNTDOWN_IMAGE_19.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_19 = RES_PATH"/COUNTDOWN_IMAGE_20.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_20 = RES_PATH"/COUNTDOWN_IMAGE_21.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_21 = RES_PATH"/COUNTDOWN_IMAGE_22.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_22 = RES_PATH"/COUNTDOWN_IMAGE_23.bin"; - constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_23 = RES_PATH"/COUNTDOWN_IMAGE_24.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_0 = RES_PATH "/COUNTDOWN_IMAGE_01.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_1 = RES_PATH "/COUNTDOWN_IMAGE_02.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_2 = RES_PATH "/COUNTDOWN_IMAGE_03.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_3 = RES_PATH "/COUNTDOWN_IMAGE_04.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_4 = RES_PATH "/COUNTDOWN_IMAGE_05.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_5 = RES_PATH "/COUNTDOWN_IMAGE_06.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_6 = RES_PATH "/COUNTDOWN_IMAGE_07.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_7 = RES_PATH "/COUNTDOWN_IMAGE_08.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_8 = RES_PATH "/COUNTDOWN_IMAGE_09.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_9 = RES_PATH "/COUNTDOWN_IMAGE_10.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_10 = RES_PATH "/COUNTDOWN_IMAGE_11.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_11 = RES_PATH "/COUNTDOWN_IMAGE_12.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_12 = RES_PATH "/COUNTDOWN_IMAGE_13.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_13 = RES_PATH "/COUNTDOWN_IMAGE_14.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_14 = RES_PATH "/COUNTDOWN_IMAGE_15.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_15 = RES_PATH "/COUNTDOWN_IMAGE_16.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_16 = RES_PATH "/COUNTDOWN_IMAGE_17.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_17 = RES_PATH "/COUNTDOWN_IMAGE_18.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_18 = RES_PATH "/COUNTDOWN_IMAGE_19.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_19 = RES_PATH "/COUNTDOWN_IMAGE_20.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_20 = RES_PATH "/COUNTDOWN_IMAGE_21.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_21 = RES_PATH "/COUNTDOWN_IMAGE_22.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_22 = RES_PATH "/COUNTDOWN_IMAGE_23.bin"; + constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_23 = RES_PATH "/COUNTDOWN_IMAGE_24.bin"; - constexpr const char *PNG_PROGRESS_BAR_TMAGE = RES_PATH"/PROGRESS_BAR_TMAGE.bin"; - constexpr const char *TEMP_WAITING = RES_PATH"/TEMP_WAITING.bin"; - constexpr const char *TEMP_REPORT = RES_PATH"/TEMP_REPORT.bin"; - constexpr const char *TEMP_POINT = RES_PATH"/TEMP_POINT.bin"; - constexpr const char *TEMP_REV_POINTER = RES_PATH"/TEMP_REV_POINTER.bin"; + constexpr const char *PNG_PROGRESS_BAR_TMAGE = RES_PATH "/PROGRESS_BAR_TMAGE.bin"; + constexpr const char *TEMP_WAITING = RES_PATH "/TEMP_WAITING.bin"; + constexpr const char *TEMP_REPORT = RES_PATH "/TEMP_REPORT.bin"; + constexpr const char *TEMP_POINT = RES_PATH "/TEMP_POINT.bin"; + constexpr const char *TEMP_REV_POINTER = RES_PATH "/TEMP_REV_POINTER.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_0 = RES_PATH"/BLOOD_FLOW_IMAGE_02.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_1 = RES_PATH"/BLOOD_FLOW_IMAGE_03.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_2 = RES_PATH"/BLOOD_FLOW_IMAGE_04.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_3 = RES_PATH"/BLOOD_FLOW_IMAGE_05.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_4 = RES_PATH"/BLOOD_FLOW_IMAGE_06.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_5 = RES_PATH"/BLOOD_FLOW_IMAGE_07.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_6 = RES_PATH"/BLOOD_FLOW_IMAGE_08.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_7 = RES_PATH"/BLOOD_FLOW_IMAGE_09.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_8 = RES_PATH"/BLOOD_FLOW_IMAGE_10.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_9 = RES_PATH"/BLOOD_FLOW_IMAGE_11.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_10 = RES_PATH"/BLOOD_FLOW_IMAGE_12.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_11 = RES_PATH"/BLOOD_FLOW_IMAGE_13.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_12 = RES_PATH"/BLOOD_FLOW_IMAGE_14.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_13 = RES_PATH"/BLOOD_FLOW_IMAGE_15.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_14 = RES_PATH"/BLOOD_FLOW_IMAGE_16.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_15 = RES_PATH"/BLOOD_FLOW_IMAGE_17.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_16 = RES_PATH"/BLOOD_FLOW_IMAGE_18.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_17 = RES_PATH"/BLOOD_FLOW_IMAGE_19.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_18 = RES_PATH"/BLOOD_FLOW_IMAGE_20.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_19 = RES_PATH"/BLOOD_FLOW_IMAGE_21.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_20 = RES_PATH"/BLOOD_FLOW_IMAGE_22.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_21 = RES_PATH"/BLOOD_FLOW_IMAGE_23.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_22 = RES_PATH"/BLOOD_FLOW_IMAGE_24.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_23 = RES_PATH"/BLOOD_FLOW_IMAGE_25.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_24 = RES_PATH"/BLOOD_FLOW_IMAGE_26.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_25 = RES_PATH"/BLOOD_FLOW_IMAGE_27.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_26 = RES_PATH"/BLOOD_FLOW_IMAGE_28.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_27 = RES_PATH"/BLOOD_FLOW_IMAGE_29.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_28 = RES_PATH"/BLOOD_FLOW_IMAGE_30.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_29 = RES_PATH"/BLOOD_FLOW_IMAGE_31.bin"; - constexpr const char *PNG_BLOOD_FLOW_IMAGE_30 = RES_PATH"/BLOOD_FLOW_IMAGE_32.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_0 = RES_PATH "/BLOOD_FLOW_IMAGE_02.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_1 = RES_PATH "/BLOOD_FLOW_IMAGE_03.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_2 = RES_PATH "/BLOOD_FLOW_IMAGE_04.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_3 = RES_PATH "/BLOOD_FLOW_IMAGE_05.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_4 = RES_PATH "/BLOOD_FLOW_IMAGE_06.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_5 = RES_PATH "/BLOOD_FLOW_IMAGE_07.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_6 = RES_PATH "/BLOOD_FLOW_IMAGE_08.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_7 = RES_PATH "/BLOOD_FLOW_IMAGE_09.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_8 = RES_PATH "/BLOOD_FLOW_IMAGE_10.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_9 = RES_PATH "/BLOOD_FLOW_IMAGE_11.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_10 = RES_PATH "/BLOOD_FLOW_IMAGE_12.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_11 = RES_PATH "/BLOOD_FLOW_IMAGE_13.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_12 = RES_PATH "/BLOOD_FLOW_IMAGE_14.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_13 = RES_PATH "/BLOOD_FLOW_IMAGE_15.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_14 = RES_PATH "/BLOOD_FLOW_IMAGE_16.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_15 = RES_PATH "/BLOOD_FLOW_IMAGE_17.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_16 = RES_PATH "/BLOOD_FLOW_IMAGE_18.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_17 = RES_PATH "/BLOOD_FLOW_IMAGE_19.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_18 = RES_PATH "/BLOOD_FLOW_IMAGE_20.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_19 = RES_PATH "/BLOOD_FLOW_IMAGE_21.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_20 = RES_PATH "/BLOOD_FLOW_IMAGE_22.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_21 = RES_PATH "/BLOOD_FLOW_IMAGE_23.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_22 = RES_PATH "/BLOOD_FLOW_IMAGE_24.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_23 = RES_PATH "/BLOOD_FLOW_IMAGE_25.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_24 = RES_PATH "/BLOOD_FLOW_IMAGE_26.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_25 = RES_PATH "/BLOOD_FLOW_IMAGE_27.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_26 = RES_PATH "/BLOOD_FLOW_IMAGE_28.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_27 = RES_PATH "/BLOOD_FLOW_IMAGE_29.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_28 = RES_PATH "/BLOOD_FLOW_IMAGE_30.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_29 = RES_PATH "/BLOOD_FLOW_IMAGE_31.bin"; + constexpr const char *PNG_BLOOD_FLOW_IMAGE_30 = RES_PATH "/BLOOD_FLOW_IMAGE_32.bin"; - constexpr const char *PNG_BK_FACE_IMAGE = RES_PATH"/BACK_GROUND.bin"; - constexpr const char *PNG_PLAYER_FACE_IMAGE = RES_PATH"/PLAYER.bin"; - constexpr const char *PNG_PLAYER_HL_FACE_IMAGE = RES_PATH"/PLAYERHIGHLIGHT.bin"; - constexpr const char *PNG_NEXTBUTTON_FACE_IMAGE = RES_PATH"/NEXT_BUTTON.bin"; - constexpr const char *PNG_PREBUTTON_FACE_IMAGE = RES_PATH"/PRE_BUTTOW.bin"; - constexpr const char *PNG_PLAYERS_MODE_1 = RES_PATH"/PLAYERSMODEL_LOOP.bin"; - constexpr const char *PNG_PLAYERS_MODE_2 = RES_PATH"/PLAYERSMODEL_REPEATS.bin"; - constexpr const char *PNG_PLAYERS_MODE_3 = RES_PATH"/PLAYERSMODEL_RANDOM.bin"; - constexpr const char *PNG_PLAYERS_MODE_4 = RES_PATH"/PLAYERSMODEL_SEQUENCE.bin"; - constexpr const char *PNG_SOUNDBUTTON2 = RES_PATH"/SOUND_IMAGE.bin"; - constexpr const char *PNG_OPTIONSBUTTON_FACE_IMAGE = RES_PATH"/OPTIONS_IMAGE.bin"; - constexpr const char *PNG_PULLBUTTON_FACE_IMAGE = RES_PATH"/BLOOD_FLOW_IMAGE_01.bin"; - constexpr const char *PNG_MUTE_BUTTON = RES_PATH"/MUTE_BUTTON.bin"; - constexpr const char *PNG_DECREASE_BUTTON = RES_PATH"/DECREASE_BUTTON.bin"; - constexpr const char *PNG_INCREASE_BUTTON = RES_PATH"/INCREASE_BUTTON.bin"; + constexpr const char *PNG_BK_FACE_IMAGE = RES_PATH "/BACK_GROUND.bin"; + constexpr const char *PNG_PLAYER_FACE_IMAGE = RES_PATH "/PLAYER.bin"; + constexpr const char *PNG_PLAYER_HL_FACE_IMAGE = RES_PATH "/PLAYERHIGHLIGHT.bin"; + constexpr const char *PNG_NEXTBUTTON_FACE_IMAGE = RES_PATH "/NEXT_BUTTON.bin"; + constexpr const char *PNG_PREBUTTON_FACE_IMAGE = RES_PATH "/PRE_BUTTOW.bin"; + constexpr const char *PNG_PLAYERS_MODE_1 = RES_PATH "/PLAYERSMODEL_LOOP.bin"; + constexpr const char *PNG_PLAYERS_MODE_2 = RES_PATH "/PLAYERSMODEL_REPEATS.bin"; + constexpr const char *PNG_PLAYERS_MODE_3 = RES_PATH "/PLAYERSMODEL_RANDOM.bin"; + constexpr const char *PNG_PLAYERS_MODE_4 = RES_PATH "/PLAYERSMODEL_SEQUENCE.bin"; + constexpr const char *PNG_SOUNDBUTTON2 = RES_PATH "/SOUND_IMAGE.bin"; + constexpr const char *PNG_OPTIONSBUTTON_FACE_IMAGE = RES_PATH "/OPTIONS_IMAGE.bin"; + constexpr const char *PNG_PULLBUTTON_FACE_IMAGE = RES_PATH "/BLOOD_FLOW_IMAGE_01.bin"; + constexpr const char *PNG_MUTE_BUTTON = RES_PATH "/MUTE_BUTTON.bin"; + constexpr const char *PNG_DECREASE_BUTTON = RES_PATH "/DECREASE_BUTTON.bin"; + constexpr const char *PNG_INCREASE_BUTTON = RES_PATH "/INCREASE_BUTTON.bin"; - constexpr const char *PNG_SETTTING_BUTTON_IMAGE = RES_PATH"/SETTTING_BUTTON.bin"; - constexpr const char *PNG_BLUETOOTH_IMAGE = RES_PATH"/BLUETOOTH_IMAGE.bin"; - constexpr const char *PNG_WATCH_IMAGE = RES_PATH"/WATCH_IMAGE.bin"; - constexpr const char *PNG_PHONE_IMAGE = RES_PATH"/PHONE_IMAGE.bin"; - constexpr const char *PNG_REBOOT_BUTTON_IMAGE = RES_PATH"/REBOOT_BUTTON.bin"; - constexpr const char *PNG_SHUTDOWN_BUTTON_IMAGE = RES_PATH"/SHUTDOWN_BUTTON.bin"; - constexpr const char *PNG_SETTTING_REBOOT_IMAGE = RES_PATH"/SETTTING_REBOOT.bin"; - constexpr const char *PNG_SETTTING_SHUTDOWN_IMAGE = RES_PATH"/SETTTING_SHUTDOWN.bin"; + constexpr const char *PNG_SETTTING_BUTTON_IMAGE = RES_PATH "/SETTTING_BUTTON.bin"; + constexpr const char *PNG_BLUETOOTH_IMAGE = RES_PATH "/BLUETOOTH_IMAGE.bin"; + constexpr const char *PNG_WATCH_IMAGE = RES_PATH "/WATCH_IMAGE.bin"; + constexpr const char *PNG_PHONE_IMAGE = RES_PATH "/PHONE_IMAGE.bin"; + constexpr const char *PNG_REBOOT_BUTTON_IMAGE = RES_PATH "/REBOOT_BUTTON.bin"; + constexpr const char *PNG_SHUTDOWN_BUTTON_IMAGE = RES_PATH "/SHUTDOWN_BUTTON.bin"; + constexpr const char *PNG_SETTTING_REBOOT_IMAGE = RES_PATH "/SETTTING_REBOOT.bin"; + constexpr const char *PNG_SETTTING_SHUTDOWN_IMAGE = RES_PATH "/SETTTING_SHUTDOWN.bin"; - constexpr const char *PNG_CONNECT_PHONE_IMAGE = RES_PATH"/CONNECT_PHONE.bin"; - constexpr const char *PNG_BLUETOOTH_STITLE = RES_PATH"/BLUETOOTH_TITLE.bin"; + constexpr const char *PNG_CONNECT_PHONE_IMAGE = RES_PATH "/CONNECT_PHONE.bin"; + constexpr const char *PNG_BLUETOOTH_STITLE = RES_PATH "/BLUETOOTH_TITLE.bin"; - constexpr const char *PNG_NEW_DEVICE = RES_PATH"/NEW_DEVICE.bin"; - constexpr const char *PNG_BT_LIST = RES_PATH"/BT_LIST.bin"; - constexpr const char *PNG_SELECTION_BOX = RES_PATH"/SELECTION_BOX.bin"; - constexpr const char *PNG_GANTAN = RES_PATH"/GANTAN.bin"; - constexpr const char *PNG_RIGHT = RES_PATH"/RIGHT.bin"; + constexpr const char *PNG_NEW_DEVICE = RES_PATH "/NEW_DEVICE.bin"; + constexpr const char *PNG_BT_LIST = RES_PATH "/BT_LIST.bin"; + constexpr const char *PNG_SELECTION_BOX = RES_PATH "/SELECTION_BOX.bin"; + constexpr const char *PNG_GANTAN = RES_PATH "/GANTAN.bin"; + constexpr const char *PNG_RIGHT = RES_PATH "/RIGHT.bin"; - constexpr const char *PNG_NEW_WLAN_WIFI = RES_PATH"/FULL_SIGNAL_OPEN.bin"; - constexpr const char *FULL_SIGNAL_ENCRYPTION = RES_PATH"/FULL_SIGNAL_ENCRYPTION.bin"; + constexpr const char *PNG_NEW_WLAN_WIFI = RES_PATH "/FULL_SIGNAL_OPEN.bin"; + constexpr const char *FULL_SIGNAL_ENCRYPTION = RES_PATH "/FULL_SIGNAL_ENCRYPTION.bin"; - #define PNG_MAIN_FACE_IMAGE RES_PATH"/MAIN_FACE_IMAGE.bin" - #define B024_009_IMAGE_PATH RES_PATH"/HOURHAND.bin" - #define B024_010_IMAGE_PATH RES_PATH"/SECONDHAND.bin" - #define B024_011_IMAGE_PATH RES_PATH"/MINUTEHAND.bin" - #define ALARM_ADD_BUTTON_PATH RES_PATH"/BLUE_ADD.bin" - #define ALARM_CLOCK_CLOSE_ADD_PATH RES_PATH"/CLOSE_RING_CLOCK.bin" - #define ALARM_CLOCK_ADD_PATH RES_PATH"/POP_UP_CLOCK.bin" - #define ALARM_CLOCK_POP_ADD_PATH RES_PATH"/RING_CLOCK.bin" - #define ALARM_DELETE_ADD_PATH RES_PATH"/DELETE.bin" - #define ALARM_TRUE_ADD_PATH RES_PATH"/TRUE_ADD.bin" - #define TEMP_MEASURE RES_PATH"/TEMP_MEASURE.bin" - #define TEMP_UP_DROP RES_PATH"/TEMP_UP_DROP.bin" - #define TEMP_EXIT RES_PATH"/TEMP_EXIT.bin" - #define TEMP_ROTATE RES_PATH"/TEMP_ROTATE.bin" - #define TEMP_ICON_ENTER RES_PATH"/TEMP_ICON_ENTER.bin" - #define TEMP_BACKGROUND RES_PATH"/TEMP_BACKGROUND.bin" - #define TEMP_WARN RES_PATH"/TEMP_WARN.bin" - #define TEMP_LITTLE_MEASURE RES_PATH"/TEMP_LITTLE_MEASURE.bin" - #define TEMP_HOT RES_PATH"/TEMP_HOT.bin" - #define TEMP_COLD RES_PATH"/TEMP_COLD.bin" - #define TEMP_LIT_TIP RES_PATH"/TEMP_LIT_TIP.bin" - #define TEMP_ABOUT_STUDY RES_PATH"/TEMP_ABOUT_STUDY.bin" - #define TEMP_TRUE RES_PATH"/TEMP_TRUE.bin" - #define TEMP_DELETE RES_PATH"/TEMP_DELETE.bin" +#define PNG_MAIN_FACE_IMAGE RES_PATH "/MAIN_FACE_IMAGE.bin" +#define B024_009_IMAGE_PATH RES_PATH "/HOURHAND.bin" +#define B024_010_IMAGE_PATH RES_PATH "/SECONDHAND.bin" +#define B024_011_IMAGE_PATH RES_PATH "/MINUTEHAND.bin" +#define ALARM_ADD_BUTTON_PATH RES_PATH "/BLUE_ADD.bin" +#define ALARM_CLOCK_CLOSE_ADD_PATH RES_PATH "/CLOSE_RING_CLOCK.bin" +#define ALARM_CLOCK_ADD_PATH RES_PATH "/POP_UP_CLOCK.bin" +#define ALARM_CLOCK_POP_ADD_PATH RES_PATH "/RING_CLOCK.bin" +#define ALARM_DELETE_ADD_PATH RES_PATH "/DELETE.bin" +#define ALARM_TRUE_ADD_PATH RES_PATH "/TRUE_ADD.bin" +#define TEMP_MEASURE RES_PATH "/TEMP_MEASURE.bin" +#define TEMP_UP_DROP RES_PATH "/TEMP_UP_DROP.bin" +#define TEMP_EXIT RES_PATH "/TEMP_EXIT.bin" +#define TEMP_ROTATE RES_PATH "/TEMP_ROTATE.bin" +#define TEMP_ICON_ENTER RES_PATH "/TEMP_ICON_ENTER.bin" +#define TEMP_BACKGROUND RES_PATH "/TEMP_BACKGROUND.bin" +#define TEMP_WARN RES_PATH "/TEMP_WARN.bin" +#define TEMP_LITTLE_MEASURE RES_PATH "/TEMP_LITTLE_MEASURE.bin" +#define TEMP_HOT RES_PATH "/TEMP_HOT.bin" +#define TEMP_COLD RES_PATH "/TEMP_COLD.bin" +#define TEMP_LIT_TIP RES_PATH "/TEMP_LIT_TIP.bin" +#define TEMP_ABOUT_STUDY RES_PATH "/TEMP_ABOUT_STUDY.bin" +#define TEMP_TRUE RES_PATH "/TEMP_TRUE.bin" +#define TEMP_DELETE RES_PATH "/TEMP_DELETE.bin" - #define PNG_COMPASS_FACE_IMAGE RES_PATH"/COMPASS.bin" - #define PNG_COMPASS_DEGREE_IMAGE RES_PATH"/CORRESPONDENCE_DEGREE.bin" - #define PNG_COMPASS_CENTER_IMAGE RES_PATH"/ROTATE_CENTER_IMAGE.bin" - #define COMPASS_CALIBRATE_IMAGE RES_PATH"/COMPASS_CALIBRATE_IMAGE.bin" +#define PNG_COMPASS_FACE_IMAGE RES_PATH "/COMPASS.bin" +#define PNG_COMPASS_DEGREE_IMAGE RES_PATH "/CORRESPONDENCE_DEGREE.bin" +#define PNG_COMPASS_CENTER_IMAGE RES_PATH "/ROTATE_CENTER_IMAGE.bin" +#define COMPASS_CALIBRATE_IMAGE RES_PATH "/COMPASS_CALIBRATE_IMAGE.bin" - #define PNG_HEARTRATE_IMAGE_PATH RES_PATH"/HEARTRATE_IMAGE_PATH.bin" - #define PNG_HAND24HOUR_IMAGE_PATH RES_PATH"/HAND24HOUR_IMAGE_PATH.bin" - #define PNG_PROGRESS_IMAGE_PATH RES_PATH"/PROGRESS_IMAGE_PATH.bin" - #define PNG_BIGCIRCLE_IMAGE_PATH RES_PATH"/BIGCIRCLE_IMAGE_PATH.bin" - #define PNG_MEDCIRCLE_IMAGE_PATH RES_PATH"/MEDCIRCLE_IMAGE_PATH.bin" - #define PNG_SMALLCIRCLE_IMAGE_PATH RES_PATH"/SMALLCIRCLE_IMAGE_PATH.bin" - #define PNG_MONDAY_IMAGE_PATH RES_PATH"/MONDAY_IMAGE_PATH.bin" - #define PNG_TUESDAY_IMAGE_PATH RES_PATH"/TUESDAY_IMAGE_PATH.bin" - #define PNG_WEDNESDAY_IMAGE_PATH RES_PATH"/WEDNESDAY_IMAGE_PATH.bin" - #define PNG_THURSDAY_IMAGE_PATH RES_PATH"/THURSDAY_IMAGE_PATH.bin" - #define PNG_FIRDAY_IMAGE_PATH RES_PATH"/FIRDAY_IMAGE_PATH.bin" - #define PNG_SATURDAY_IMAGE_PATH RES_PATH"/SATURDAY_IMAGE_PATH.bin" - #define PNG_SUNDAY_IMAGE_PATH RES_PATH"/SUNDAY_IMAGE_PATH.bin" - #define PNG_CIRCLE_IMAGE_PATH RES_PATH"/CIRCLE_IMAGE_PATH.bin" +#define PNG_HEARTRATE_IMAGE_PATH RES_PATH "/HEARTRATE_IMAGE_PATH.bin" +#define PNG_HAND24HOUR_IMAGE_PATH RES_PATH "/HAND24HOUR_IMAGE_PATH.bin" +#define PNG_PROGRESS_IMAGE_PATH RES_PATH "/PROGRESS_IMAGE_PATH.bin" +#define PNG_BIGCIRCLE_IMAGE_PATH RES_PATH "/BIGCIRCLE_IMAGE_PATH.bin" +#define PNG_MEDCIRCLE_IMAGE_PATH RES_PATH "/MEDCIRCLE_IMAGE_PATH.bin" +#define PNG_SMALLCIRCLE_IMAGE_PATH RES_PATH "/SMALLCIRCLE_IMAGE_PATH.bin" +#define PNG_MONDAY_IMAGE_PATH RES_PATH "/MONDAY_IMAGE_PATH.bin" +#define PNG_TUESDAY_IMAGE_PATH RES_PATH "/TUESDAY_IMAGE_PATH.bin" +#define PNG_WEDNESDAY_IMAGE_PATH RES_PATH "/WEDNESDAY_IMAGE_PATH.bin" +#define PNG_THURSDAY_IMAGE_PATH RES_PATH "/THURSDAY_IMAGE_PATH.bin" +#define PNG_FIRDAY_IMAGE_PATH RES_PATH "/FIRDAY_IMAGE_PATH.bin" +#define PNG_SATURDAY_IMAGE_PATH RES_PATH "/SATURDAY_IMAGE_PATH.bin" +#define PNG_SUNDAY_IMAGE_PATH RES_PATH "/SUNDAY_IMAGE_PATH.bin" +#define PNG_CIRCLE_IMAGE_PATH RES_PATH "/CIRCLE_IMAGE_PATH.bin" - #define PNG_SETTING_NEXT_IMAGE RES_PATH"/SETTING_NEXT.bin" +#define PNG_SETTING_NEXT_IMAGE RES_PATH "/SETTING_NEXT.bin" - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE01 = RES_PATH"/VOICE_ASSISTANT_01.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE02 = RES_PATH"/VOICE_ASSISTANT_02.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE03 = RES_PATH"/VOICE_ASSISTANT_03.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE04 = RES_PATH"/VOICE_ASSISTANT_04.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE05 = RES_PATH"/VOICE_ASSISTANT_05.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE06 = RES_PATH"/VOICE_ASSISTANT_06.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE07 = RES_PATH"/VOICE_ASSISTANT_07.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE08 = RES_PATH"/VOICE_ASSISTANT_08.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE09 = RES_PATH"/VOICE_ASSISTANT_09.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE10 = RES_PATH"/VOICE_ASSISTANT_10.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE11 = RES_PATH"/VOICE_ASSISTANT_11.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE12 = RES_PATH"/VOICE_ASSISTANT_12.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE13 = RES_PATH"/VOICE_ASSISTANT_13.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE14 = RES_PATH"/VOICE_ASSISTANT_14.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE15 = RES_PATH"/VOICE_ASSISTANT_15.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE16 = RES_PATH"/VOICE_ASSISTANT_16.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE17 = RES_PATH"/VOICE_ASSISTANT_17.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE18 = RES_PATH"/VOICE_ASSISTANT_18.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE19 = RES_PATH"/VOICE_ASSISTANT_19.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE20 = RES_PATH"/VOICE_ASSISTANT_20.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE21 = RES_PATH"/VOICE_ASSISTANT_21.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE22 = RES_PATH"/VOICE_ASSISTANT_22.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE23 = RES_PATH"/VOICE_ASSISTANT_23.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE24 = RES_PATH"/VOICE_ASSISTANT_24.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE25 = RES_PATH"/VOICE_ASSISTANT_25.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE26 = RES_PATH"/VOICE_ASSISTANT_26.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE27 = RES_PATH"/VOICE_ASSISTANT_27.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE28 = RES_PATH"/VOICE_ASSISTANT_28.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE29 = RES_PATH"/VOICE_ASSISTANT_29.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE30 = RES_PATH"/VOICE_ASSISTANT_30.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE31 = RES_PATH"/VOICE_ASSISTANT_31.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE32 = RES_PATH"/VOICE_ASSISTANT_32.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE33 = RES_PATH"/VOICE_ASSISTANT_33.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE34 = RES_PATH"/VOICE_ASSISTANT_34.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE35 = RES_PATH"/VOICE_ASSISTANT_35.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE36 = RES_PATH"/VOICE_ASSISTANT_36.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE37 = RES_PATH"/VOICE_ASSISTANT_37.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE38 = RES_PATH"/VOICE_ASSISTANT_38.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE39 = RES_PATH"/VOICE_ASSISTANT_39.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE40 = RES_PATH"/VOICE_ASSISTANT_40.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE41 = RES_PATH"/VOICE_ASSISTANT_41.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE42 = RES_PATH"/VOICE_ASSISTANT_42.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE43 = RES_PATH"/VOICE_ASSISTANT_43.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE44 = RES_PATH"/VOICE_ASSISTANT_44.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE45 = RES_PATH"/VOICE_ASSISTANT_45.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE46 = RES_PATH"/VOICE_ASSISTANT_46.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE47 = RES_PATH"/VOICE_ASSISTANT_47.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE48 = RES_PATH"/VOICE_ASSISTANT_48.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE49 = RES_PATH"/VOICE_ASSISTANT_49.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE50 = RES_PATH"/VOICE_ASSISTANT_50.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE51 = RES_PATH"/VOICE_ASSISTANT_51.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE52 = RES_PATH"/VOICE_ASSISTANT_52.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE53 = RES_PATH"/VOICE_ASSISTANT_53.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE54 = RES_PATH"/VOICE_ASSISTANT_54.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE55 = RES_PATH"/VOICE_ASSISTANT_55.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE56 = RES_PATH"/VOICE_ASSISTANT_56.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE57 = RES_PATH"/VOICE_ASSISTANT_57.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE58 = RES_PATH"/VOICE_ASSISTANT_58.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE59 = RES_PATH"/VOICE_ASSISTANT_59.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE60 = RES_PATH"/VOICE_ASSISTANT_60.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE61 = RES_PATH"/VOICE_ASSISTANT_61.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE62 = RES_PATH"/VOICE_ASSISTANT_62.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE63 = RES_PATH"/VOICE_ASSISTANT_63.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE64 = RES_PATH"/VOICE_ASSISTANT_64.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE65 = RES_PATH"/VOICE_ASSISTANT_65.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE66 = RES_PATH"/VOICE_ASSISTANT_66.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE67 = RES_PATH"/VOICE_ASSISTANT_67.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE68 = RES_PATH"/VOICE_ASSISTANT_68.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE69 = RES_PATH"/VOICE_ASSISTANT_69.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE70 = RES_PATH"/VOICE_ASSISTANT_70.bin"; - constexpr const char *PNG_VOICE_ASSISTANT_IMAGE71 = RES_PATH"/VOICE_ASSISTANT_71.bin"; - constexpr const char *PNG_APPLIST_VOCASSIST_IMAGE = RES_PATH"/APPLIST_VOCASSIST_IMAGE.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE01 = RES_PATH "/VOICE_ASSISTANT_01.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE02 = RES_PATH "/VOICE_ASSISTANT_02.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE03 = RES_PATH "/VOICE_ASSISTANT_03.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE04 = RES_PATH "/VOICE_ASSISTANT_04.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE05 = RES_PATH "/VOICE_ASSISTANT_05.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE06 = RES_PATH "/VOICE_ASSISTANT_06.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE07 = RES_PATH "/VOICE_ASSISTANT_07.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE08 = RES_PATH "/VOICE_ASSISTANT_08.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE09 = RES_PATH "/VOICE_ASSISTANT_09.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE10 = RES_PATH "/VOICE_ASSISTANT_10.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE11 = RES_PATH "/VOICE_ASSISTANT_11.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE12 = RES_PATH "/VOICE_ASSISTANT_12.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE13 = RES_PATH "/VOICE_ASSISTANT_13.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE14 = RES_PATH "/VOICE_ASSISTANT_14.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE15 = RES_PATH "/VOICE_ASSISTANT_15.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE16 = RES_PATH "/VOICE_ASSISTANT_16.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE17 = RES_PATH "/VOICE_ASSISTANT_17.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE18 = RES_PATH "/VOICE_ASSISTANT_18.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE19 = RES_PATH "/VOICE_ASSISTANT_19.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE20 = RES_PATH "/VOICE_ASSISTANT_20.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE21 = RES_PATH "/VOICE_ASSISTANT_21.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE22 = RES_PATH "/VOICE_ASSISTANT_22.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE23 = RES_PATH "/VOICE_ASSISTANT_23.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE24 = RES_PATH "/VOICE_ASSISTANT_24.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE25 = RES_PATH "/VOICE_ASSISTANT_25.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE26 = RES_PATH "/VOICE_ASSISTANT_26.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE27 = RES_PATH "/VOICE_ASSISTANT_27.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE28 = RES_PATH "/VOICE_ASSISTANT_28.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE29 = RES_PATH "/VOICE_ASSISTANT_29.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE30 = RES_PATH "/VOICE_ASSISTANT_30.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE31 = RES_PATH "/VOICE_ASSISTANT_31.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE32 = RES_PATH "/VOICE_ASSISTANT_32.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE33 = RES_PATH "/VOICE_ASSISTANT_33.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE34 = RES_PATH "/VOICE_ASSISTANT_34.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE35 = RES_PATH "/VOICE_ASSISTANT_35.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE36 = RES_PATH "/VOICE_ASSISTANT_36.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE37 = RES_PATH "/VOICE_ASSISTANT_37.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE38 = RES_PATH "/VOICE_ASSISTANT_38.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE39 = RES_PATH "/VOICE_ASSISTANT_39.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE40 = RES_PATH "/VOICE_ASSISTANT_40.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE41 = RES_PATH "/VOICE_ASSISTANT_41.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE42 = RES_PATH "/VOICE_ASSISTANT_42.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE43 = RES_PATH "/VOICE_ASSISTANT_43.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE44 = RES_PATH "/VOICE_ASSISTANT_44.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE45 = RES_PATH "/VOICE_ASSISTANT_45.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE46 = RES_PATH "/VOICE_ASSISTANT_46.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE47 = RES_PATH "/VOICE_ASSISTANT_47.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE48 = RES_PATH "/VOICE_ASSISTANT_48.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE49 = RES_PATH "/VOICE_ASSISTANT_49.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE50 = RES_PATH "/VOICE_ASSISTANT_50.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE51 = RES_PATH "/VOICE_ASSISTANT_51.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE52 = RES_PATH "/VOICE_ASSISTANT_52.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE53 = RES_PATH "/VOICE_ASSISTANT_53.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE54 = RES_PATH "/VOICE_ASSISTANT_54.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE55 = RES_PATH "/VOICE_ASSISTANT_55.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE56 = RES_PATH "/VOICE_ASSISTANT_56.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE57 = RES_PATH "/VOICE_ASSISTANT_57.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE58 = RES_PATH "/VOICE_ASSISTANT_58.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE59 = RES_PATH "/VOICE_ASSISTANT_59.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE60 = RES_PATH "/VOICE_ASSISTANT_60.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE61 = RES_PATH "/VOICE_ASSISTANT_61.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE62 = RES_PATH "/VOICE_ASSISTANT_62.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE63 = RES_PATH "/VOICE_ASSISTANT_63.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE64 = RES_PATH "/VOICE_ASSISTANT_64.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE65 = RES_PATH "/VOICE_ASSISTANT_65.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE66 = RES_PATH "/VOICE_ASSISTANT_66.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE67 = RES_PATH "/VOICE_ASSISTANT_67.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE68 = RES_PATH "/VOICE_ASSISTANT_68.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE69 = RES_PATH "/VOICE_ASSISTANT_69.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE70 = RES_PATH "/VOICE_ASSISTANT_70.bin"; + constexpr const char *PNG_VOICE_ASSISTANT_IMAGE71 = RES_PATH "/VOICE_ASSISTANT_71.bin"; + constexpr const char *PNG_APPLIST_VOCASSIST_IMAGE = RES_PATH "/APPLIST_VOCASSIST_IMAGE.bin"; - constexpr const char *PNG_STEP_SHOE_IMAGE_PATH = RES_PATH"/SHOE_IMAGE.bin"; + constexpr const char *PNG_STEP_SHOE_IMAGE_PATH = RES_PATH "/SHOE_IMAGE.bin"; - #define PNG_HEARTRATECOOR_IMAGE_PATH RES_PATH"/HEARTRATECOOR.bin" - #define PNG_A004_009_IMAGE_PATH RES_PATH"/HEARTRATE_TOP.bin" - #define PNG_A004_006_IMAGE_PATH RES_PATH"/HEARTRATE_BOTTOM.bin" - #define PNG_A004_070_IMAGE_PATH RES_PATH"/HEARTBEAT_IMAGE_01.bin" - #define PNG_A004_071_IMAGE_PATH RES_PATH"/HEARTBEAT_IMAGE_02.bin" +#define PNG_HEARTRATECOOR_IMAGE_PATH RES_PATH "/HEARTRATECOOR.bin" +#define PNG_A004_009_IMAGE_PATH RES_PATH "/HEARTRATE_TOP.bin" +#define PNG_A004_006_IMAGE_PATH RES_PATH "/HEARTRATE_BOTTOM.bin" +#define PNG_A004_070_IMAGE_PATH RES_PATH "/HEARTBEAT_IMAGE_01.bin" +#define PNG_A004_071_IMAGE_PATH RES_PATH "/HEARTBEAT_IMAGE_02.bin" - constexpr const char *PNG_A019_080_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_01.bin"; - constexpr const char *PNG_A019_081_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_02.bin"; - constexpr const char *PNG_A019_082_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_03.bin"; - constexpr const char *PNG_A019_083_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_04.bin"; - constexpr const char *PNG_A019_084_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_05.bin"; - constexpr const char *PNG_A019_085_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_06.bin"; - constexpr const char *PNG_A019_086_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_07.bin"; - constexpr const char *PNG_A019_087_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_08.bin"; + constexpr const char *PNG_A019_080_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_01.bin"; + constexpr const char *PNG_A019_081_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_02.bin"; + constexpr const char *PNG_A019_082_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_03.bin"; + constexpr const char *PNG_A019_083_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_04.bin"; + constexpr const char *PNG_A019_084_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_05.bin"; + constexpr const char *PNG_A019_085_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_06.bin"; + constexpr const char *PNG_A019_086_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_07.bin"; + constexpr const char *PNG_A019_087_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_08.bin"; - constexpr const char *PNG_A019_088_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_09.bin"; - constexpr const char *PNG_A019_089_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_10.bin"; - constexpr const char *PNG_A019_090_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_11.bin"; - constexpr const char *PNG_A019_091_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_12.bin"; - constexpr const char *PNG_A019_092_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_13.bin"; - constexpr const char *PNG_A019_093_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_14.bin"; - constexpr const char *PNG_A019_094_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_15.bin"; - constexpr const char *PNG_A019_095_IMAGE_PATH = RES_PATH"/BLUETOOTH_IMAGE_16.bin"; - constexpr const char *PNG_BLUETOOTHEAR = RES_PATH"/BLUETOOTHEAR.bin"; - constexpr const char *PNG_STANDBY_DIAL_ANTLERS = RES_PATH"/STANDBY_DIAL_ANTLERS.bin"; + constexpr const char *PNG_A019_088_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_09.bin"; + constexpr const char *PNG_A019_089_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_10.bin"; + constexpr const char *PNG_A019_090_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_11.bin"; + constexpr const char *PNG_A019_091_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_12.bin"; + constexpr const char *PNG_A019_092_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_13.bin"; + constexpr const char *PNG_A019_093_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_14.bin"; + constexpr const char *PNG_A019_094_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_15.bin"; + constexpr const char *PNG_A019_095_IMAGE_PATH = RES_PATH "/BLUETOOTH_IMAGE_16.bin"; + constexpr const char *PNG_BLUETOOTHEAR = RES_PATH "/BLUETOOTHEAR.bin"; + constexpr const char *PNG_STANDBY_DIAL_ANTLERS = RES_PATH "/STANDBY_DIAL_ANTLERS.bin"; // AppList - constexpr const char *PNG_APPLIST_ALARM_IMAGE = RES_PATH"/APPLIST_ALARM.bin"; // 闹钟 - constexpr const char *PNG_APPLIST_SPO2_IMAGE = RES_PATH"/APPLIST_SPO2.bin"; // 血氧 - constexpr const char *PNG_APPLIST_SETTING_IMAGE = RES_PATH"/APPLIST_SETTING.bin"; // 设置 - constexpr const char *PNG_MAIN_DROP_DOWN_DNDISTURB = RES_PATH"/DROPDOWN_DN_DISTURB.bin"; // 勿扰 - constexpr const char *PNG_MAIN_DROP_DOWN_BRISCREEN = RES_PATH"/DROPDOWN_BRI_SCREEN.bin"; // 亮屏 - constexpr const char *PNG_MAIN_DROP_DOWN_FINPHONE = RES_PATH"/DROPDOWN_FIND_PHONE.bin"; // 找手机 - constexpr const char *PNG_MAIN_DROP_DOWN_ALARM = RES_PATH"/DROPDOWN_ALARM.bin"; // 闹钟 - constexpr const char *PNG_MAIN_DROP_DOWN_SETTING = RES_PATH"/DROPDOWN_SETTING.bin"; // 设置 - constexpr const char *PNG_MAIN_DROP_DOWN_BLUETOOTH = RES_PATH"/DROPDOWN_BLUETOOTH.bin"; // 蓝牙状态 - constexpr const char *PNG_MAIN_DROP_DOWN_BATTERY = RES_PATH"/DROPDOWN_BATTERY.bin"; // 电量显示 - constexpr const char *PNG_APPLIST_TEMP_IMAGE = RES_PATH"/TEMP_IMAGE.bin"; // 体温 + constexpr const char *PNG_APPLIST_ALARM_IMAGE = RES_PATH "/APPLIST_ALARM.bin"; // 闹钟 + constexpr const char *PNG_APPLIST_SPO2_IMAGE = RES_PATH "/APPLIST_SPO2.bin"; // 血氧 + constexpr const char *PNG_APPLIST_SETTING_IMAGE = RES_PATH "/APPLIST_SETTING.bin"; // 设置 + constexpr const char *PNG_MAIN_DROP_DOWN_DNDISTURB = RES_PATH "/DROPDOWN_DN_DISTURB.bin"; // 勿扰 + constexpr const char *PNG_MAIN_DROP_DOWN_BRISCREEN = RES_PATH "/DROPDOWN_BRI_SCREEN.bin"; // 亮屏 + constexpr const char *PNG_MAIN_DROP_DOWN_FINPHONE = RES_PATH "/DROPDOWN_FIND_PHONE.bin"; // 找手机 + constexpr const char *PNG_MAIN_DROP_DOWN_ALARM = RES_PATH "/DROPDOWN_ALARM.bin"; // 闹钟 + constexpr const char *PNG_MAIN_DROP_DOWN_SETTING = RES_PATH "/DROPDOWN_SETTING.bin"; // 设置 + constexpr const char *PNG_MAIN_DROP_DOWN_BLUETOOTH = RES_PATH "/DROPDOWN_BLUETOOTH.bin"; // 蓝牙状态 + constexpr const char *PNG_MAIN_DROP_DOWN_BATTERY = RES_PATH "/DROPDOWN_BATTERY.bin"; // 电量显示 + constexpr const char *PNG_APPLIST_TEMP_IMAGE = RES_PATH "/TEMP_IMAGE.bin"; // 体温 - constexpr const char *PNG_MAIN_DROP_DOWN_DNDISTURB_B = RES_PATH"/DROPDOWN_DN_DISTURB_B.bin"; - constexpr const char *PNG_MAIN_DROP_DOWN_BRISCREEN_B = RES_PATH"/DROPDOWN_BRI_SCREEN_B.bin"; - constexpr const char *PNG_MAIN_DROP_DOWN_FINPHONE_B = RES_PATH"/DROPDOWN_FIND_PHONE_B.bin"; - constexpr const char *PNG_MAIN_DROP_DOWN_ALARM_B = RES_PATH"/DROPDOWN_ALARM_B.bin"; - constexpr const char *PNG_MAIN_DROP_DOWN_SETTING_B = RES_PATH"/DROPDOWN_SETTING_B.bin"; - constexpr const char *PNG_MAIN_DROP_DOWN_BLUETOOTH_B = RES_PATH"/DROPDOWN_BLUETOOTH_B.bin"; + constexpr const char *PNG_MAIN_DROP_DOWN_DNDISTURB_B = RES_PATH "/DROPDOWN_DN_DISTURB_B.bin"; + constexpr const char *PNG_MAIN_DROP_DOWN_BRISCREEN_B = RES_PATH "/DROPDOWN_BRI_SCREEN_B.bin"; + constexpr const char *PNG_MAIN_DROP_DOWN_FINPHONE_B = RES_PATH "/DROPDOWN_FIND_PHONE_B.bin"; + constexpr const char *PNG_MAIN_DROP_DOWN_ALARM_B = RES_PATH "/DROPDOWN_ALARM_B.bin"; + constexpr const char *PNG_MAIN_DROP_DOWN_SETTING_B = RES_PATH "/DROPDOWN_SETTING_B.bin"; + constexpr const char *PNG_MAIN_DROP_DOWN_BLUETOOTH_B = RES_PATH "/DROPDOWN_BLUETOOTH_B.bin"; // 室内步行 - constexpr const char *PNG_APPLIST_WALK_IMAGE = RES_PATH"/APPLIST_WALK.bin"; // Applist图标 - constexpr const char *PNG_WALK_BACK_GROUND = RES_PATH"/WALK_BACK_GROUND.bin"; - constexpr const char *PNG_WALK_IMAGE = RES_PATH"/INDOORWALK.bin"; - constexpr const char *PNG_AEROBIC_IMAGE = RES_PATH"/AEROBIC.bin"; - constexpr const char *PNG_ANAEROBIC_IMAGE = RES_PATH"/ANAEROBIC.bin"; - constexpr const char *PNG_OPTIONS_BOX1_IMAGE = RES_PATH"/OPTIONS_BOX1.bin"; - constexpr const char *PNG_OPTIONS_BOX2_IMAGE = RES_PATH"/OPTIONS_BOX2.bin"; - constexpr const char *PNG_OPTIONS_BOX3_IMAGE = RES_PATH"/OPTIONS_BOX3.bin"; - constexpr const char *PNG_OPTIONS_BOX4_IMAGE = RES_PATH"/OPTIONS_BOX4.bin"; - constexpr const char *PNG_WALK_TIME_IMAGE = RES_PATH"/TIME_IMAGE.bin"; - constexpr const char *PNG_WALK_DISTANCES_IMAGE = RES_PATH"/DISTANCES_IMAGE.bin"; - constexpr const char *PNG_WALK_HEART_IMAGE = RES_PATH"/HEART_IMAGE.bin"; - constexpr const char *PNG_WALK_SPEED_IMAGE = RES_PATH"/SPEED_IMAGE.bin"; - constexpr const char *PNG_WALK_STEPS_IMAGE = RES_PATH"/STEPS_IMAGE.bin"; + constexpr const char *PNG_APPLIST_WALK_IMAGE = RES_PATH "/APPLIST_WALK.bin"; // Applist图标 + constexpr const char *PNG_WALK_BACK_GROUND = RES_PATH "/WALK_BACK_GROUND.bin"; + constexpr const char *PNG_WALK_IMAGE = RES_PATH "/INDOORWALK.bin"; + constexpr const char *PNG_AEROBIC_IMAGE = RES_PATH "/AEROBIC.bin"; + constexpr const char *PNG_ANAEROBIC_IMAGE = RES_PATH "/ANAEROBIC.bin"; + constexpr const char *PNG_OPTIONS_BOX1_IMAGE = RES_PATH "/OPTIONS_BOX1.bin"; + constexpr const char *PNG_OPTIONS_BOX2_IMAGE = RES_PATH "/OPTIONS_BOX2.bin"; + constexpr const char *PNG_OPTIONS_BOX3_IMAGE = RES_PATH "/OPTIONS_BOX3.bin"; + constexpr const char *PNG_OPTIONS_BOX4_IMAGE = RES_PATH "/OPTIONS_BOX4.bin"; + constexpr const char *PNG_WALK_TIME_IMAGE = RES_PATH "/TIME_IMAGE.bin"; + constexpr const char *PNG_WALK_DISTANCES_IMAGE = RES_PATH "/DISTANCES_IMAGE.bin"; + constexpr const char *PNG_WALK_HEART_IMAGE = RES_PATH "/HEART_IMAGE.bin"; + constexpr const char *PNG_WALK_SPEED_IMAGE = RES_PATH "/SPEED_IMAGE.bin"; + constexpr const char *PNG_WALK_STEPS_IMAGE = RES_PATH "/STEPS_IMAGE.bin"; } #endif // UI_CONFIG_H -- 2.17.1