From: SnickerSun Date: Wed, 27 Nov 2024 08:14:25 +0000 (+0800) Subject: patch_615_1009_to_1029 X-Git-Tag: leiniao_debug_1.0.0_20250922_020716~415 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=refs%2Fchanges%2F1469%2F1;p=mirrors%2FFD230.git patch_615_1009_to_1029 --- diff --git a/code/sdk/application/brandy/brandy_recovery/input_app.c b/code/sdk/application/brandy/brandy_recovery/input_app.c index c842d9e29..087329dd9 100644 --- a/code/sdk/application/brandy/brandy_recovery/input_app.c +++ b/code/sdk/application/brandy/brandy_recovery/input_app.c @@ -20,7 +20,7 @@ #include "soc_lcd_api.h" #endif -static unsigned long g_app_queue; +static unsigned long g_app_queue = 0xFFFFFFFF; /** * @if Eng diff --git a/code/sdk/application/brandy/brandy_standard/chip_init.c b/code/sdk/application/brandy/brandy_standard/chip_init.c index 15dd37469..57e422746 100644 --- a/code/sdk/application/brandy/brandy_standard/chip_init.c +++ b/code/sdk/application/brandy/brandy_standard/chip_init.c @@ -12,7 +12,6 @@ #include "rtc.h" #include "gpio.h" #include "ipc.h" -#include "cpu_trace.h" #include "uart_porting.h" #include "log_memory_region.h" #include "clocks_core_common.h" @@ -35,6 +34,7 @@ #define XIP_CACHE_INTR_MASK 0xa3006128 #define XIP_CACHE_WRITE_DATA_DELAY_INTR_MASK 0x8 #define XIP_CACHE_ENABLE_WRITE_INTR_MASK 0x1 +#define XIP_CACHE_2AHBM_INTR_MASK 0x2 #if ENABLE_LOW_POWER == YES extern uint32_t __sys_pm_start__; @@ -70,6 +70,7 @@ static void chip_xip_init(void) // Mask interrupts caused by CACHE2AHBM module state machine timeout reg16_clrbit(XIP_CACHE_INTR_MASK, XIP_CACHE_WRITE_DATA_DELAY_INTR_MASK); reg16_clrbit(XIP_CACHE_INTR_MASK, XIP_CACHE_ENABLE_WRITE_INTR_MASK); + reg16_clrbit(XIP_CACHE_INTR_MASK, XIP_CACHE_2AHBM_INTR_MASK); } static void chip_enable_ulp_ram(void) @@ -151,8 +152,6 @@ void chip_init(void) uapi_dma_init(); uapi_dma_open(); - cpu_trace_enable_mcpu_repeat(); - ipc_init(); log_memory_region_init(); diff --git a/code/sdk/application/brandy/brandy_standard/input_app.c b/code/sdk/application/brandy/brandy_standard/input_app.c index 0af1268bd..bcc6ec85f 100644 --- a/code/sdk/application/brandy/brandy_standard/input_app.c +++ b/code/sdk/application/brandy/brandy_standard/input_app.c @@ -20,7 +20,7 @@ #include "soc_lcd_api.h" #endif -static unsigned long g_app_queue; +static unsigned long g_app_queue = 0xFFFFFFFF; uint8_t g_long_press_flag = 0; /** * @if Eng diff --git a/code/sdk/application/brandy/brandy_standard/kernel_init.c b/code/sdk/application/brandy/brandy_standard/kernel_init.c index 58f17ccae..32d4861f1 100644 --- a/code/sdk/application/brandy/brandy_standard/kernel_init.c +++ b/code/sdk/application/brandy/brandy_standard/kernel_init.c @@ -235,7 +235,7 @@ void kernel_init(void) /* os kernel adapt config */ ArchSetExcHook((EXC_PROC_FUNC)do_fault_handler); - ArchSetNMIHook((NMI_PROC_FUNC)do_hard_fault_handler); + ArchSetNMIHook((NMI_PROC_FUNC)nmi_fault_handler); OsSetMainTask(); OsCurrTaskSet((LosTaskCB*)OsGetMainTask()); g_os_init_select = OS_CLASS_LITEOS; diff --git a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c index 09efc52b5..34da5674b 100644 --- a/code/sdk/application/brandy/brandy_standard/thread_pri_init.c +++ b/code/sdk/application/brandy/brandy_standard/thread_pri_init.c @@ -9,6 +9,8 @@ #include "common_def.h" #include "pm.h" #include "watchdog.h" +#include "cpu_trace.h" +#include "non_os_reboot.h" /* after reboot system emmc need write exc info to the file system from sector */ #if defined(SAVE_EXC_INFO) && defined(CFG_DRIVERS_MMC) #include "exception.h" @@ -330,6 +332,19 @@ static void thread_main(const void *unused) #ifdef CFG_DRIVERS_NANDFLASH nandflash_init_handle(); #endif + + reboot_cause_t cause = get_cpu_utils_reset_cause(); + if ((cause != REBOOT_CAUSE_APPLICATION_STD_CHIP_WDT_FRST) && + (cause != REBOOT_CAUSE_APPLICATION_XIP_CTRL) && + (cause != REBOOT_CAUSE_APPLICATION_XIP_CACHE)) { + cpu_trace_enable_mcpu_repeat(); + } else { + PRINT("nmi reboot cause: 0x%x, reason: 0x%x"NEWLINE, cause, get_fault_reason()); + // save cputrace memory if chip watchdog reset + hal_cpu_trace_clock_enable(); + panic(PANIC_ASSERT, cause); + } + uapi_pm_control(PM_DISPLAY_POWER_UP_AND_RUN); (void)osDelay(TICK_TEN_MS); diff --git a/code/sdk/application/brandy/brandy_testsuite/input_app.c b/code/sdk/application/brandy/brandy_testsuite/input_app.c index d8d95785d..2cbdc52ba 100644 --- a/code/sdk/application/brandy/brandy_testsuite/input_app.c +++ b/code/sdk/application/brandy/brandy_testsuite/input_app.c @@ -19,7 +19,7 @@ #include "soc_lcd_api.h" #endif -static unsigned long g_app_queue; +static unsigned long g_app_queue = 0xFFFFFFFF; /** * @if Eng diff --git a/code/sdk/application/wearable/alipay/service/alipay_feature.c b/code/sdk/application/wearable/alipay/service/alipay_feature.c index cd5d9f049..f05c1d10d 100644 --- a/code/sdk/application/wearable/alipay/service/alipay_feature.c +++ b/code/sdk/application/wearable/alipay/service/alipay_feature.c @@ -54,7 +54,7 @@ typedef struct { static osSemaphoreId_t g_alipay_sem_id; semaphoreex_t g_alipay_sem = { { "AlipaySem", 0, NULL, 0 }, 1, 1 }; static bool g_alipay_init_flag = false; -static unsigned long g_alipay_queue_id = 0; +static unsigned long g_alipay_queue_id = 0xFFFFFFFF; static uint32_t *g_alipay_task_handle = NULL; static uint32_t g_alipay_alow_read_write = 0; diff --git a/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp b/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp index 4cbe171c0..1cf68aef9 100644 --- a/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp +++ b/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp @@ -118,8 +118,10 @@ void Ability::PostChangeSlice(const uint16_t targetSliceId, TransitionType type, if (type != TransitionType::TRANSITION_INVALID) { osal_atomic_dec(&transitionCount_); } + FreeElement(elementName); return; } + FreeElement(elementName); #endif bool useTransition = sliceTransition_.SetTransitionType(type); diff --git a/code/sdk/application/wearable/nativeabilityfwk/src/NativeAbility.cpp b/code/sdk/application/wearable/nativeabilityfwk/src/NativeAbility.cpp index fccb32483..83463294e 100644 --- a/code/sdk/application/wearable/nativeabilityfwk/src/NativeAbility.cpp +++ b/code/sdk/application/wearable/nativeabilityfwk/src/NativeAbility.cpp @@ -104,11 +104,11 @@ void NativeAbility::OnActive(const Want &want) void NativeAbility::StopAbility() { - GraphicService::GetInstance()->SetNativeUIRunning(false); - NotificationManager::GetInstance()->SetNativeUIRunning(false); PauseSlice(); StopSlice(); nativeAbilityState_ = STATE_INACTIVE; + GraphicService::GetInstance()->SetNativeUIRunning(false); + NotificationManager::GetInstance()->SetNativeUIRunning(false); #ifdef JS_ENABLE SliteAbility::OnBackground(); #endif diff --git a/code/sdk/application/wearable/nativeabilityfwk/src/transition/HexagonsTransition.cpp b/code/sdk/application/wearable/nativeabilityfwk/src/transition/HexagonsTransition.cpp index 57c30703e..45ebd7616 100644 --- a/code/sdk/application/wearable/nativeabilityfwk/src/transition/HexagonsTransition.cpp +++ b/code/sdk/application/wearable/nativeabilityfwk/src/transition/HexagonsTransition.cpp @@ -42,14 +42,16 @@ void HexagonsTransition::OnTransitionStart(UIViewGroup* current, UIImageView* ta current_->GetCurrentPosition(focusIndex_); opaStart_ = focusView_->GetOpaScale(); scaleStart_ = current_->GetGlobalScale(); - Rect rect = focusView_->GetRect(); - float xScale = target_->GetWidth() * 1.0f / rect.GetWidth(); - float yScale = target_->GetHeight() * 1.0f / rect.GetHeight(); + float xScale = target_->GetWidth() * 1.0f / focusView_->GetWidth(); + float yScale = target_->GetHeight() * 1.0f / focusView_->GetHeight(); scaleEnd_ = FloatLessEqual(xScale, yScale) ? xScale : yScale; + Rect rect = focusView_->GetRect(); targetXStart_ = rect.GetX(); targetYStart_ = rect.GetY(); - targetScaleStart_ = 1.0f / scaleEnd_; + float targetXScale = rect.GetWidth() * 1.0f / target_->GetWidth(); + float targetYScale = rect.GetHeight() * 1.0f / target_->GetHeight(); + targetScaleStart_ = FloatMoreEqual(targetXScale, targetYScale) ? targetXScale : targetYScale; uint32_t offsetTime = static_cast((scaleStart_ - HEXAGONS_SCALE_INIT) / (scaleEnd_ - HEXAGONS_SCALE_INIT) * duration_); diff --git a/code/sdk/application/wearable/nativeapp/nativeui/applist/include/ApplistView.h b/code/sdk/application/wearable/nativeapp/nativeui/applist/include/ApplistView.h index cdbc2d1e7..aedb6381d 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/applist/include/ApplistView.h +++ b/code/sdk/application/wearable/nativeapp/nativeui/applist/include/ApplistView.h @@ -117,6 +117,7 @@ public: void ClearAppItemToList(); void RefreshAppList(void); void StartFootBallAnimator(); + void ResumeWaterFallDraggable(); private: /* for list style */ diff --git a/code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistPresenter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistPresenter.cpp index 5033bd7f3..f73e438fa 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistPresenter.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistPresenter.cpp @@ -43,6 +43,8 @@ namespace OHOS { Presenter::OnResume(); if (GetCurrentStyle() == AppListStyle::FOOTBALL_STYLE) { view_->StartFootBallAnimator(); + } else if (GetCurrentStyle() == AppListStyle::WATERFALL_STYLE) { + view_->ResumeWaterFallDraggable(); } } diff --git a/code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistView.cpp b/code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistView.cpp index 0163330f6..2bfd89579 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistView.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistView.cpp @@ -136,6 +136,8 @@ void ApplistView::WaterfallStyleOnStart() waterfallList_->RequestFocus(); waterfallList_->SetRotateFactor(10); // 10, empirical coefficient waterfallList_->SetOnRotateListener(presenter_); + waterfallList_->SetTouchable(false); + waterfallList_->SetDraggable(false); // ensure that it can't be dragged during animation to avoid error display AddViewToRootContainer(waterfallList_); } @@ -171,6 +173,14 @@ void ApplistView::ListStyleOnStart() AddViewToRootContainer(contentList_); } +void ApplistView::ResumeWaterFallDraggable() +{ + if (waterfallList_ != nullptr) { + waterfallList_->SetTouchable(true); + waterfallList_->SetDraggable(true); // resume touchable after transition animation + } +} + void ApplistView::StartFootBallAnimator() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistView::StartFootBallAnimator"); diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainModel.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainModel.cpp index 7cd3c937d..737e038b4 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainModel.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainModel.cpp @@ -63,7 +63,7 @@ namespace OHOS { memset_s(cardSettings, CARD_SETTING_COUNT_MAX, 0, CARD_SETTING_COUNT_MAX); len = UtilsGetValue("card_setting", temp, CARD_SETTING_VALUE_LEN); - if (len >= 0) { + if (len >= 0 && strlen(temp) > 0) { /* 读取用户card配置 */ char *setBuffer = nullptr; char *setValue = strtok_s(temp, ",", &setBuffer); diff --git a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp index fad63095e..f6b7bbf72 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp @@ -260,9 +260,15 @@ void MainPresenterSample::Notify(void) DialSetting &setting = GetDialSetting(); if (setting.dialFlag) { DialModelTime::GetInstance()->UpdateTime(); - dynamic_cast(view_->GetViewById(WATCH_FACE))->UpdateViewsByPeriodicUpdateData(); + DialViewGroup* group = dynamic_cast(view_->GetViewById(WATCH_FACE)); + if (group != nullptr) { + group->UpdateViewsByPeriodicUpdateData(); + } } else { - dynamic_cast(view_->GetViewById(WATCH_FACE))->UpdateTime(); + MainClockView* clock = dynamic_cast(view_->GetViewById(WATCH_FACE)); + if (clock != nullptr) { + clock->UpdateTime(); + } } } } diff --git a/code/sdk/application/wearable/ohos_deps/ohos_types.h b/code/sdk/application/wearable/ohos_deps/ohos_types.h index 8c4074f41..8b913e361 100644 --- a/code/sdk/application/wearable/ohos_deps/ohos_types.h +++ b/code/sdk/application/wearable/ohos_deps/ohos_types.h @@ -10,7 +10,7 @@ #if !defined(_WIN32) #include "los_typedef.h" #else -#include +#include #endif #ifdef __cplusplus diff --git a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a index 995991220..69b5ffbb8 100644 Binary files a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-cli/libmsg_center.a differ diff --git a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a index 7857ebd49..e4d13c492 100644 Binary files a/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-auto-ota-ser/libmsg_center.a differ diff --git a/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a index e2d640b67..a5c504239 100644 Binary files a/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-native-js/libmsg_center.a differ diff --git a/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a b/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a index 88bf7c863..240b7f402 100644 Binary files a/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a and b/code/sdk/application/wearable/service/msg_center/brandy-xts/libmsg_center.a differ diff --git a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp index 4dca29565..147a22581 100644 --- a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp @@ -220,8 +220,10 @@ void StartJsApp(char *bundleName) if (strcmp(topAbility->bundleName, bundleName) == 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s is active", bundleName); + FreeElement(topAbility); return; } + FreeElement(topAbility); // If the alarm notification is being processed, we need to disable the alarm notification first. if (OHOS::NotificationManager::GetInstance()->GetNotifyPriority() == PRIORITY_TWO && OHOS::NotificationManager::GetInstance()->HasNotifyShowing()) { @@ -254,9 +256,10 @@ void StopJsApp(char *bundleName) if (strcmp(topAbility->bundleName, bundleName) != 0) { WEARABLE_LOGE(HILOG_MODULE_AAFWK, "%s is not top active", bundleName); + FreeElement(topAbility); return; } - + FreeElement(topAbility); int token = 0; OHOS::AbilityMsClient::GetInstance().TerminateAbility(token); } @@ -266,9 +269,10 @@ void MsgCenterReportBtStatusToJS(uint16_t msgId) ElementName *elementName = OHOS::AbilityMsClient::GetInstance().GetTopAbility(); if (!(elementName != nullptr && strcmp(elementName->bundleName, "com.huawei.launcher") != 0)) { WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "JS is not on top, ignore report"); + FreeElement(elementName); return; } - + FreeElement(elementName); if (msgId == BT_DISCONNECTED_TO_MSGCENTER) { BaidumapSendMsgToJS("0", MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_DISCONNECTED); } else if (msgId == BT_CONNECTED_TO_MSGCENTER) { diff --git a/code/sdk/application/wearable/service/msg_center/src/vendor_app/baidu/baidu_app.cpp b/code/sdk/application/wearable/service/msg_center/src/vendor_app/baidu/baidu_app.cpp index 570ae7214..33edb7ecd 100644 --- a/code/sdk/application/wearable/service/msg_center/src/vendor_app/baidu/baidu_app.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/vendor_app/baidu/baidu_app.cpp @@ -21,6 +21,7 @@ #include "baidumap.h" #include "soc_osal.h" #include "watchdog.h" +#include "js_ability.h" #ifdef __cplusplus extern "C" { @@ -88,7 +89,7 @@ errcode_t msg_center_navigation_recv(uint8_t cmd_id, uint8_t type, void *usr_dat (void)memcpy_s(data, payload_len, tlv_payload, payload_len); data[payload_len] = '\0'; - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv navigate info--> %s\r\n", tlv_payload); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv navigate info--> %s\r\n", data); DmsLiteSendMsgToJS(data); free(data); data = nullptr; @@ -243,7 +244,7 @@ errcode_t msg_center_xiaodu_recv_xiaodu_info(uint8_t cmd_id, uint8_t type, void (void)memcpy_s(data, payload_len, tlv_payload, payload_len); data[payload_len] = '\0'; - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv xiaodu info--> %s\r\n", tlv_payload); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv xiaodu info--> %s\r\n", data); DmsLiteSendMsgToJS(data); free(data); data = nullptr; @@ -272,7 +273,7 @@ errcode_t msg_center_xiaodu_recv_wenxin_info(uint8_t cmd_id, uint8_t type, void (void)memcpy_s(data, payload_len, tlv_payload, payload_len); data[payload_len] = '\0'; - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv wenxin info--> %s\r\n", tlv_payload); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv wenxin info--> %s\r\n", data); DmsLiteSendMsgToJS(data); free(data); data = nullptr; @@ -464,7 +465,7 @@ static void msg_center_transfer_longbuf(char *data, uint8_t type) fp = fopen(data, "rb"); if (fp == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "%s: open %s fail.\r\n", vector_navi_get_str(type), data); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "open %s fail.\r\n", data); return; } @@ -472,21 +473,23 @@ static void msg_center_transfer_longbuf(char *data, uint8_t type) long file_len = ftell(fp); char *file_content = (char *)malloc(sizeof(char) * (file_len + 1)); if (file_content == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "%s: malloc fail, file_len = %d.\r\n", vector_navi_get_str(type), file_len); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, " malloc fail, file_len = %d.\r\n", file_len); + fclose(fp); return; } fseek(fp, 0L, SEEK_SET); if (fread(file_content, file_len, 1, fp) != 1) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "%s: fread fail, file_len = %d.\r\n", vector_navi_get_str(type), file_len); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "fread fail, file_len = %d.\r\n", file_len); free(file_content); file_content = nullptr; + fclose(fp); return; } fclose(fp); file_content[file_len] = '\0'; - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s: file_len = %d.\r\n", vector_navi_get_str(type), file_len); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "file_len = %d.\r\n", file_len); /* send to JSI */ BaidumapSendMsgToJS(file_content, type); @@ -533,16 +536,28 @@ errcode_t msg_center_vector_navi_recv_svg(uint8_t cmd_id, uint8_t type, void *us uint8_t tl_len = msg_center_get_tlv_tl_len(usr_data); uint16_t payload_len = usr_len - tl_len; uint8_t *tlv_payload = (uint8_t *)msg_center_get_tlv_payload(usr_data); - uint8_t ack = 1; + uint8_t ack = 1; /* recv流程的协议ack做保活判断,1 -- JS onLine, 0 -- JS offLine */ errcode_t ret = ERRCODE_SUCC; uint8_t res; /* ack */ + const char *bundleName = OHOS::ACELite::JSAbility::GetPackageName(); + if (bundleName != nullptr && strcmp(bundleName, "com.baidu.BaiduMap") == 0) { + ack = 1; + } else { + ack = 0; + } + ret = msg_center_send_data(cmd_id, type, &ack, sizeof(ack)); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } + if (ack == 0) { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "JS offline\r\n"); + return ERRCODE_SUCC; + } + /* svg json */ char *svg_json = (char *)malloc(payload_len + 1); if (svg_json == nullptr) { @@ -587,7 +602,7 @@ errcode_t msg_center_vector_navi_req_svg(uint8_t cmd_id, uint8_t type, void *usr return ERRCODE_FAIL; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_MSG_CENTER, "usr_data = %s\r\n", usr_data); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_MSG_CENTER, "req svg succ\r\n"); return ERRCODE_SUCC; } @@ -628,7 +643,7 @@ errcode_t msg_center_vector_navi_recv_dst_list(uint8_t cmd_id, uint8_t type, voi (void)memcpy_s(data, payload_len, tlv_payload, payload_len); data[payload_len] = '\0'; - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv vector navi info--> %s\r\n", tlv_payload); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv vector navi info--> %s\r\n", data); /* send to baiduSDK */ free(data); data = nullptr; @@ -663,7 +678,7 @@ errcode_t msg_center_vector_navi_recv_navi_info(uint8_t cmd_id, uint8_t type, vo (void)memcpy_s(data, payload_len, tlv_payload, payload_len); data[payload_len] = '\0'; - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv vector navi info--> %s\r\n", tlv_payload); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv vector navi info--> %s\r\n", data); /* send data to js */ free(data); data = nullptr; @@ -707,11 +722,23 @@ errcode_t msg_center_vector_navi_recv_poi(uint8_t cmd_id, uint8_t type, void *us errcode_t ret = ERRCODE_SUCC; /* ack */ + const char *bundleName = OHOS::ACELite::JSAbility::GetPackageName(); + if (bundleName != nullptr && strcmp(bundleName, "com.baidu.BaiduMap") == 0) { + ack = 1; + } else { + ack = 0; + } + ret = msg_center_send_data(cmd_id, type, &ack, sizeof(ack)); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } + if (ack == 0) { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "JS offline\r\n"); + return ERRCODE_SUCC; + } + char *data = (char *)malloc(payload_len + 1); if (data == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "recv poi: malloc failed.\r\n"); @@ -721,7 +748,7 @@ errcode_t msg_center_vector_navi_recv_poi(uint8_t cmd_id, uint8_t type, void *us (void)memcpy_s(data, payload_len, tlv_payload, payload_len); data[payload_len] = '\0'; - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv poi info -- > %s, usr_len = %d\r\n", tlv_payload, usr_len); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "recv poi info -- > %s, usr_len = %d\r\n", data, usr_len); msg_center_transfer_longbuf(data, type); free(data); @@ -764,8 +791,6 @@ static errcode_t msg_center_vector_navi_req_common_proc(uint8_t cmd_id, uint8_t return ERRCODE_FAIL; } - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s, usr_data = %s, usr_len = %d\r\n", vector_navi_get_str(type), - usr_data == NULL ? NULL : usr_data, usr_len); return ERRCODE_SUCC; } @@ -820,11 +845,23 @@ static errcode_t msg_center_vector_navi_rec_common_proc(uint8_t cmd_id, uint8_t uint8_t ack = 1; /* ack */ + const char *bundleName = OHOS::ACELite::JSAbility::GetPackageName(); + if (bundleName != nullptr && strcmp(bundleName, "com.baidu.BaiduMap") == 0) { + ack = 1; + } else { + ack = 0; + } + ret = msg_center_send_data(cmd_id, type, &ack, sizeof(ack)); if (ret != ERRCODE_SUCC) { return ERRCODE_FAIL; } + if (ack == 0) { + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "JS offline\r\n"); + return ERRCODE_SUCC; + } + #if defined(SUPPORT_POWER_MANAGER) const power_display_svr_api_t *display_api = power_display_svr_get_api(); if (display_api->get_screen_state() != SCREEN_ON) { @@ -843,7 +880,7 @@ static errcode_t msg_center_vector_navi_rec_common_proc(uint8_t cmd_id, uint8_t (void)memcpy_s(data, payload_len, tlv_payload, payload_len); data[payload_len] = '\0'; - WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s -- > %s\r\n", vector_navi_get_str(type), tlv_payload); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s -- > %s\r\n", vector_navi_get_str(type), data); if (is_vector_navi_longbuf(type) && payload_len != 1) { if (payload_len == 2) { // 2,长距离的协议优化,限制为 ROUTE_TRANS_MAX_SIZE, app先读文件过滤,减少无效带宽损耗 diff --git a/code/sdk/application/wearable/service/power_manager/src/power_display_service.c b/code/sdk/application/wearable/service/power_manager/src/power_display_service.c index bb5228362..5deec976b 100644 --- a/code/sdk/application/wearable/service/power_manager/src/power_display_service.c +++ b/code/sdk/application/wearable/service/power_manager/src/power_display_service.c @@ -56,7 +56,7 @@ void power_display_gui_cmd_handle_ext(void *data); void power_display_timer_cmd_handle_ext(void *data); #endif -static unsigned long g_power_display_queue_id = 0; +static unsigned long g_power_display_queue_id = 0xFFFFFFFF; static uint32_t g_power_recv_msg_num = 0; bool g_discard_all_events = false; static uint32_t g_power_tp_press_num = false; diff --git a/code/sdk/application/wstp/at_service/app/app_msg_manager.c b/code/sdk/application/wstp/at_service/app/app_msg_manager.c index 9a846d7cc..0ae7a6988 100644 --- a/code/sdk/application/wstp/at_service/app/app_msg_manager.c +++ b/code/sdk/application/wstp/at_service/app/app_msg_manager.c @@ -15,7 +15,7 @@ #define APP_AT_MSG_COUNT 16 -static unsigned long g_app_at_queue; +static unsigned long g_app_at_queue = 0xFFFFFFFF; void app_at_task_queue_init(void) { diff --git a/code/sdk/application/wstp/at_service/audio/audio_msg_manager.c b/code/sdk/application/wstp/at_service/audio/audio_msg_manager.c index 41abbbbab..0a4db1450 100644 --- a/code/sdk/application/wstp/at_service/audio/audio_msg_manager.c +++ b/code/sdk/application/wstp/at_service/audio/audio_msg_manager.c @@ -16,7 +16,7 @@ #define AUDIO_AT_MSG_COUNT 16 -static unsigned long g_audio_at_queue; +static unsigned long g_audio_at_queue = 0xFFFFFFFF; void audio_at_task_queue_init(void) { diff --git a/code/sdk/application/wstp/at_service/bt/bt_manager_msg_manager.c b/code/sdk/application/wstp/at_service/bt/bt_manager_msg_manager.c index 8183319f1..e93bdaa70 100644 --- a/code/sdk/application/wstp/at_service/bt/bt_manager_msg_manager.c +++ b/code/sdk/application/wstp/at_service/bt/bt_manager_msg_manager.c @@ -16,7 +16,7 @@ #define BT_CMD_MSG_COUNT 16 -static unsigned long g_bt_manager_msg_queue; +static unsigned long g_bt_manager_msg_queue = 0xFFFFFFFF; void bt_manager_at_task_queue_init(void) { diff --git a/code/sdk/application/wstp/at_service/graphic/CMakeLists.txt b/code/sdk/application/wstp/at_service/graphic/CMakeLists.txt index 0193d21ac..0e620ba11 100644 --- a/code/sdk/application/wstp/at_service/graphic/CMakeLists.txt +++ b/code/sdk/application/wstp/at_service/graphic/CMakeLists.txt @@ -27,6 +27,8 @@ set(PRIVATE_HEADER ${ROOT_DIR}/middleware/services/gui/lvgl/sample ${ROOT_DIR}/middleware/services/gui/lvgl/proprietary ${ROOT_DIR}/middleware/services/gui/lvgl/proprietary/include/dfx + ${ROOT_DIR}/middleware/services/gpu/drv/include + ${ROOT_DIR}/middleware/services/gpu/drv/dpu/dfx ) set(PRIVATE_DEFINES diff --git a/code/sdk/application/wstp/at_service/graphic/graphic_msg_manager.c b/code/sdk/application/wstp/at_service/graphic/graphic_msg_manager.c index 37181447d..fd47b7e0d 100644 --- a/code/sdk/application/wstp/at_service/graphic/graphic_msg_manager.c +++ b/code/sdk/application/wstp/at_service/graphic/graphic_msg_manager.c @@ -16,7 +16,7 @@ #define GRAPHIC_MSG_COUNT 16 -static unsigned long g_graphic_at_queue; +static unsigned long g_graphic_at_queue = 0xFFFFFFFF; void graphic_at_task_queue_init(void) { diff --git a/code/sdk/application/wstp/at_service/graphic/sample/gpu_sample.c b/code/sdk/application/wstp/at_service/graphic/sample/gpu_sample.c index 4f1a92d11..c17e91146 100644 --- a/code/sdk/application/wstp/at_service/graphic/sample/gpu_sample.c +++ b/code/sdk/application/wstp/at_service/graphic/sample/gpu_sample.c @@ -16,6 +16,7 @@ #include "soc_vau_api.h" #include "soc_dpu_api.h" #include "soc_mipi_tx.h" +#include "dpu_dfx.h" #ifdef SUPPORT_GPU_TEST #include "test_gpu_comm.h" @@ -29,12 +30,9 @@ #define TEST_DPU_LAYER_WHITE 0xffffffff #define TEST_DPU_LAYER_YELLOW 0xffffff00 -extern td_s32 dfx_get_proc_info(int argc, const char *argv[]); -extern td_s32 dfx_dpu_print(int argc, const char *argv[]); extern td_s32 vau_dfx_proc_read(int argc, const char *argv[]); extern td_s32 jpeg_dfx_proc_read(int argc, const char *argv[]); extern td_s32 gmmu_dfx_print_proc_info(int argc, const char *argv[]); -extern td_s32 dfx_dpu_save_fb_enable(int argc, const char *argv[]); static td_void wstp_draw_box(ext_rect *rect, td_u32 stride, td_char *mem_start, td_u32 color, td_u32 bpp) { @@ -190,12 +188,11 @@ static td_void wstp_gpu_dpu_cbar(int argc, const char *argv[]) static td_void wstp_dpu_screen_cap_g0(td_void) { td_u32 addr, stride, height; - uapi_reg_read(0x56030e54, addr); - uapi_reg_read(0x56030e60, stride); - uapi_reg_read(0x56030e44, height); + dpu_dfx_info *dfx_info = dpu_dfx_get_info(); - height = (height >> 16) + 1; // 16:index - stride = stride & 0xFFFF; + addr = dfx_info->layer_info[0].phy_addr; + height = dfx_info->layer_info[0].height; + stride = dfx_info->layer_info[0].stride; int fd = open("/user/dpu_screen_cap_g0.bin", O_RDWR | O_CREAT, 0666); if (fd < 0) { @@ -209,31 +206,90 @@ static td_void wstp_dpu_screen_cap_g0(td_void) printf("save /user/dpu_screen_cap_g0.bin stride[%u] height[%u] success!\n", stride, height); } -static td_void wstp_dpu_screen_cap_g1(td_void) +static td_void wstp_dpu_screen_cap_g1_yuv_sp420(td_u32 y_addr, td_u32 y_h, td_u32 y_s) { - td_u32 y_addr, stride, w_h, height; - uapi_reg_read(0x56031054, y_addr); - uapi_reg_read(0x56031060, stride); - uapi_reg_read(0x56031044, w_h); - - height = (w_h >> 16) + 1; // 16:index - stride = stride & 0xFFFF; - td_u32 y_size = stride * height; - td_u32 uv_size = stride * uapi_byte_align(height, 16) / 2; // 16:index, 2:index + td_u32 y_size = y_s * y_h; + td_u32 uv_size = y_s * uapi_byte_align(y_h, 16) / 2; // 16:index, 2:index td_u32 total_size = y_size + uv_size; - int fd = open("/user/dpu_screen_cap_g1.yuv", O_RDWR | O_CREAT, 0666); + int fd = open("/user/dpu_g1_sp420.yuv", O_RDWR | O_CREAT, 0666); if (fd < 0) { - printf("open file failure!\n"); + printf("open file dpu_g1_sp420 failure!\n"); return; } write(fd, (td_void *)(uintptr_t)y_addr, total_size); close(fd); + printf("save /user/dpu_g1_sp420.yuv stride[%u] height[%u] success!\n", y_s, y_h); +} + +static td_void wstp_dpu_screen_cap_g1_yuv_p420(td_u32 y_addr, td_u32 y_w, td_u32 y_h, td_u32 y_s) +{ + td_u32 uv_addr = y_addr + y_s * y_h; + td_u32 uv_w, uv_h, uv_s; + uv_w = y_w / 2; // 2:index + uv_h = uapi_byte_align(y_h, 16) / 2; // 16: index 2:index + uv_s = y_s; + + int fd = open("/user/dpu_g1_planar420.yuv", O_RDWR | O_CREAT, 0666); + if (fd < 0) { + printf("open file dpu_g1_planar420 failure!\n"); + return; + } + + // save_y_data + td_char *addr = (td_char *)(uintptr_t)y_addr; + for (td_u32 i = 0; i < y_h; i++) { + write(fd, addr, y_w); + addr += y_s; + } + + // save_u_data + const td_u32 uv_max_len = 640; + char *uv_data = malloc(uv_w); + if (uv_data == NULL) { + printf("malloc fail for screen_cap g1 size = %u", uv_w); + return; + } + + addr = (char *)(uintptr_t)uv_addr; + for (td_u32 i = 0; i < uv_h; i++) { + for (td_u32 j = 0; j < uv_w; j++) { + uv_data[j] = addr[2 * j + 1]; /* 2 is index */ + } + write(fd, uv_data, uv_w); + addr += uv_s; + } + + // save_v_data + addr = (char *)(uintptr_t)uv_addr; + for (td_u32 i = 0; i < uv_h; i++) { + for (td_u32 j = 0; j < uv_w; j++) { + uv_data[j] = addr[2 * j + 0]; /* 2 is index */ + } + write(fd, uv_data, uv_w); + addr += uv_s; + } - printf("save /user/dpu_screen_cap_g1.yuv stride[%u] height[%u] success!\n", stride, height); + close(fd); + free(uv_data); + printf("save /user/dpu_g1_planar420.yuv y_w/h/s:[%u/%u/%u] uv_w/h/s:[%u/%u/%u]success!\n", + y_w, y_h, y_s, uv_w, uv_h, uv_s); } +static td_void wstp_dpu_screen_cap_g1(td_void) +{ + td_u32 y_addr, y_w, y_h, y_s; + dpu_dfx_info *dfx_info = dpu_dfx_get_info(); + + y_addr = dfx_info->layer_info[1].phy_addr; + y_w = dfx_info->layer_info[1].width; + y_h = dfx_info->layer_info[1].height; + y_s = dfx_info->layer_info[1].stride; + + wstp_dpu_screen_cap_g1_yuv_sp420(y_addr, y_h, y_s); + wstp_dpu_screen_cap_g1_yuv_p420(y_addr, y_w, y_h, y_s); +} static td_void wstp_gpu_screen_cap(int argc, const char *argv[]) { @@ -292,10 +348,14 @@ td_void wstp_gpu_sample_process(int argc, char *argv[]) dfx_show_layer_proc(argc - 1, argv + 1); } else if (strcmp((char *)argv[0], "dpu_print") == 0) { dfx_dpu_print(argc - 1, argv + 1); + } else if (strcmp((char *)argv[0], "dpu_print_reg") == 0) { + print_mipi_and_dpu_reg(argc - 1, argv + 1); } else if (strcmp((char *)argv[0], "dpu_save_fb") == 0) { dfx_dpu_save_fb_enable(argc - 1, argv + 1); } else if (strcmp((char *)argv[0], "vau_proc") == 0) { vau_dfx_proc_read(argc - 1, argv + 1); + } else if (strcmp((char *)argv[0], "vau_api_print") == 0) { + vau_dfx_enable_api_print(argc - 1, argv + 1); } else if (strcmp((char *)argv[0], "jpeg_proc") == 0) { #ifdef SUPPORT_GPU_JPEG jpeg_dfx_proc_read(argc - 1, argv + 1); diff --git a/code/sdk/application/wstp/at_service/media/media_msg_manager.c b/code/sdk/application/wstp/at_service/media/media_msg_manager.c index aedd9412a..aba814c26 100644 --- a/code/sdk/application/wstp/at_service/media/media_msg_manager.c +++ b/code/sdk/application/wstp/at_service/media/media_msg_manager.c @@ -16,7 +16,7 @@ #define MEDIA_AT_MSG_COUNT 16 -static unsigned long g_media_at_queue; +static unsigned long g_media_at_queue = 0xFFFFFFFF; void media_at_task_queue_init(void) { diff --git a/code/sdk/application/wstp/at_service/ohosfwk/ohosfwk_at_process.cpp b/code/sdk/application/wstp/at_service/ohosfwk/ohosfwk_at_process.cpp index 59498929f..217a764d7 100644 --- a/code/sdk/application/wstp/at_service/ohosfwk/ohosfwk_at_process.cpp +++ b/code/sdk/application/wstp/at_service/ohosfwk/ohosfwk_at_process.cpp @@ -91,7 +91,7 @@ static uint32_t OhosfwkATCmdAmExitJsApp(uint8_t *para, uint32_t paraLen, char *s ElementName *elementName = OHOS::AbilityMsClient::GetInstance().GetTopAbility(); WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "OHOSFWK ATCMD Stop %s\n", elementName->bundleName); OHOS::AbilityMsClient::GetInstance().ForceStop(elementName->bundleName); - + FreeElement(elementName); return ERRCODE_SUCC; } @@ -107,12 +107,14 @@ static uint32_t OhosfwkATCmdBmInstall(uint8_t *para, uint32_t paraLen, char *str return ERRCODE_FAIL; } - if (argc != 1) { + if (argc > 2) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OHOSFWK ATCMD Installing Package Failed\n"); return ERRCODE_FAIL; } - - InstallParam installParam = { .installLocation = 1, .keepData = false }; + InstallParam installParam = { .installLocation = 1, .keepData = true }; + if (strcmp("rmdata", (char*)argv[1]) == 0) { + installParam.keepData = false; + } OHOS::BundleMsClient::GetInstance().Install((char*)argv[0], &installParam, ReceiveCallback); return ERRCODE_SUCC; @@ -146,7 +148,7 @@ static uint32_t OhosfwkATCmdBmUninstall(uint8_t *para, uint32_t paraLen, char *s InstallParam installParam = { .installLocation = 1, .keepData = false }; OHOS::BundleMsClient::GetInstance().Uninstall(bundleName, &installParam, ReceiveCallback); - + FreeElement(topAbility); return ERRCODE_SUCC; } diff --git a/code/sdk/build/config/target_config/brandy/config.py b/code/sdk/build/config/target_config/brandy/config.py index c184fd3ea..4c1d02928 100644 --- a/code/sdk/build/config/target_config/brandy/config.py +++ b/code/sdk/build/config/target_config/brandy/config.py @@ -302,7 +302,6 @@ target_group = { 'pack_brandy_native_js': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js'], 'pack_brandy_native_js_user': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-user'], 'pack_brandy_xts': ['brandy-ssb', 'brandy-xts-r', 'brandy-xts'], - 'brandy_all': ['brandy-ssb', 'brandy-target1', 'brandy-target3', 'brandy-target4', 'brandy-target5', 'brandy-native-js', 'brandy-native-js-user', 'brandy-xts', 'brandy-target1-r', 'brandy-target3-r', 'brandy-target4-r', 'brandy-target5-r', 'brandy-native-js-r', 'brandy-xts-r', diff --git a/code/sdk/drivers/chips/brandy/config/pmp_config.c b/code/sdk/drivers/chips/brandy/config/pmp_config.c index 7097a8840..d94ab5886 100644 --- a/code/sdk/drivers/chips/brandy/config/pmp_config.c +++ b/code/sdk/drivers/chips/brandy/config/pmp_config.c @@ -38,18 +38,23 @@ #define DTCM_PMP_LENGTH 0x80000 typedef enum { - BOOTROM_IDX = 0, - ITCM_IDX = 1, - ITCM_SECOND_IDX = 2, - DTCM_IDX = 3, - L2RAM_DSP_IDX = 4, - L2RAM_GPU_IDX = 5, + BOOTROM_IDX = 0, + ITCM_IDX = 1, + ITCM_SECOND_IDX = 2, + DTCM_IDX = 3, + L2RAM_IDX = 4, + SHARE_MEM_IDX = 5, + BT_RAM_APP_MAPPING_IDX = 6, + REG_ADDR_0_IDX = 7, /* reg 0x5x */ + REG_ADDR_1_IDX = 8, /* reg 0xa3 */ + CPU_ADDR_IDX = 9, /* reg 0xa3 */ #if defined(CONFIG_PSRAM_SUPPORT) || defined(TEST_SUITE) PSRAM_IDX, PSRAM_GPU_IDX, PSRAM_SECOND_IDX, #endif NOR_FLASH_IDX, + BACKGROUND_IDX = 15, MAX_REGION_NUM } region_index_t; @@ -57,10 +62,10 @@ pmp_conf_t g_region_attr[MAX_REGION_NUM]; static void pmp_init_config(void) { - /* bootrom 不可读不可写不可执行 */ + /* bootrom 可读不可写不可执行 */ g_region_attr[BOOTROM_IDX].idx = BOOTROM_IDX; g_region_attr[BOOTROM_IDX].addr = ROM_START; - g_region_attr[BOOTROM_IDX].size = BOOTROM_PMP_LENGTH; + g_region_attr[BOOTROM_IDX].size = 0x100; g_region_attr[BOOTROM_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; g_region_attr[BOOTROM_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_READ_ONLY_NEXECUTE; g_region_attr[BOOTROM_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; @@ -93,38 +98,66 @@ static void pmp_init_config(void) g_region_attr[DTCM_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; g_region_attr[DTCM_IDX].conf.lock = true; - /* DSP L2MEM 可读可执行可写 打开cache属性 */ - g_region_attr[L2RAM_DSP_IDX].idx = L2RAM_DSP_IDX; - g_region_attr[L2RAM_DSP_IDX].addr = L2MEM_DSP_ADDR_START; - g_region_attr[L2RAM_DSP_IDX].size = L2MEM_DSP_ADDR_LEN; -#ifdef MEMORY_MINI - g_region_attr[L2RAM_DSP_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; -#else - g_region_attr[L2RAM_DSP_IDX].conf.pmp_attr = PMP_ATTR_WRITEBACK_RWALLOCATE; -#endif - g_region_attr[L2RAM_DSP_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_EXECUTE; - g_region_attr[L2RAM_DSP_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; - g_region_attr[L2RAM_DSP_IDX].conf.lock = true; - - /* GPU L2MEM 可读可执行可写 打开cache属性 */ - g_region_attr[L2RAM_GPU_IDX].idx = L2RAM_GPU_IDX; - g_region_attr[L2RAM_GPU_IDX].addr = L2MEM_GPU_ADDR_START; - g_region_attr[L2RAM_GPU_IDX].size = L2MEM_GPU_ADDR_LEN; -#ifdef MEMORY_MINI - g_region_attr[L2RAM_GPU_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; -#else - g_region_attr[L2RAM_GPU_IDX].conf.pmp_attr = PMP_ATTR_WRITEBACK_RWALLOCATE; -#endif - g_region_attr[L2RAM_GPU_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_EXECUTE; - g_region_attr[L2RAM_GPU_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; - g_region_attr[L2RAM_GPU_IDX].conf.lock = true; + /* L2MEM 可读可执行可写 no cache属性 */ + g_region_attr[L2RAM_IDX].idx = L2RAM_IDX; + g_region_attr[L2RAM_IDX].addr = 0x60000000; + g_region_attr[L2RAM_IDX].size = 0x2000000; + g_region_attr[L2RAM_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; + g_region_attr[L2RAM_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_EXECUTE; + g_region_attr[L2RAM_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[L2RAM_IDX].conf.lock = true; + + /* SHARE_MEM_IDX 可读可写不可执行 不打开cache属性 */ + g_region_attr[SHARE_MEM_IDX].idx = SHARE_MEM_IDX; + g_region_attr[SHARE_MEM_IDX].addr = 0x87000000; + g_region_attr[SHARE_MEM_IDX].size = 0x20000; + g_region_attr[SHARE_MEM_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; + g_region_attr[SHARE_MEM_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_EXECUTE; + g_region_attr[SHARE_MEM_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[SHARE_MEM_IDX].conf.lock = true; + + /* BT_RAM_APP_MAPPING_IDX 可读可写不可执行 不打开cache属性 */ + g_region_attr[BT_RAM_APP_MAPPING_IDX].idx = BT_RAM_APP_MAPPING_IDX; + g_region_attr[BT_RAM_APP_MAPPING_IDX].addr = 0xA6000000; + g_region_attr[BT_RAM_APP_MAPPING_IDX].size = 0x200000; + g_region_attr[BT_RAM_APP_MAPPING_IDX].conf.pmp_attr = PMP_ATTR_DEVICE_NO_BUFFERABLE; + g_region_attr[BT_RAM_APP_MAPPING_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; + g_region_attr[BT_RAM_APP_MAPPING_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[BT_RAM_APP_MAPPING_IDX].conf.lock = true; + + /* REG_ADDR_0_IDX 可读可写不可执行 不打开cache属性 */ + g_region_attr[REG_ADDR_0_IDX].idx = REG_ADDR_0_IDX; + g_region_attr[REG_ADDR_0_IDX].addr = 0x50000000; + g_region_attr[REG_ADDR_0_IDX].size = 0x10000000; + g_region_attr[REG_ADDR_0_IDX].conf.pmp_attr = PMP_ATTR_DEVICE_NO_BUFFERABLE; + g_region_attr[REG_ADDR_0_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; + g_region_attr[REG_ADDR_0_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[REG_ADDR_0_IDX].conf.lock = true; + + /* REG_ADDR_1_IDX 可读可写不可执行 不打开cache属性 */ + g_region_attr[REG_ADDR_1_IDX].idx = REG_ADDR_1_IDX; + g_region_attr[REG_ADDR_1_IDX].addr = 0xA3000000; + g_region_attr[REG_ADDR_1_IDX].size = 0x10000; + g_region_attr[REG_ADDR_1_IDX].conf.pmp_attr = PMP_ATTR_DEVICE_NO_BUFFERABLE; + g_region_attr[REG_ADDR_1_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; + g_region_attr[REG_ADDR_1_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[REG_ADDR_1_IDX].conf.lock = true; + + /* CPU_ADDR_IDX 可读可写不可执行 不打开cache属性 */ + g_region_attr[CPU_ADDR_IDX].idx = CPU_ADDR_IDX; + g_region_attr[CPU_ADDR_IDX].addr = 0xB0000000; + g_region_attr[CPU_ADDR_IDX].size = 0x10000000; + g_region_attr[CPU_ADDR_IDX].conf.pmp_attr = PMP_ATTR_DEVICE_NO_BUFFERABLE; + g_region_attr[CPU_ADDR_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; + g_region_attr[CPU_ADDR_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[CPU_ADDR_IDX].conf.lock = true; #if defined(CONFIG_PSRAM_SUPPORT) || defined(TEST_SUITE) /* PSRAM 第一段 可读可写不可执行 打开cache属性 */ g_region_attr[PSRAM_IDX].idx = PSRAM_IDX; g_region_attr[PSRAM_IDX].addr = PSRAM_ADDR_START; g_region_attr[PSRAM_IDX].size = PSRAM_ADDR_LEN; - g_region_attr[PSRAM_IDX].conf.pmp_attr = PMP_ATTR_WRITEBACK_NO_ALLOCATE; + g_region_attr[PSRAM_IDX].conf.pmp_attr = PMP_ATTR_WRITEBACK_RWALLOCATE; g_region_attr[PSRAM_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; g_region_attr[PSRAM_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; g_region_attr[PSRAM_IDX].conf.lock = true; @@ -147,6 +180,15 @@ static void pmp_init_config(void) g_region_attr[NOR_FLASH_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_READ_ONLY_EXECUTE; g_region_attr[NOR_FLASH_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; g_region_attr[NOR_FLASH_IDX].conf.lock = true; + + /* BACKGROUND_IDX 不可读不可写不可执行 */ + g_region_attr[BACKGROUND_IDX].idx = BACKGROUND_IDX; + g_region_attr[BACKGROUND_IDX].addr = 0x0; + g_region_attr[BACKGROUND_IDX].size = 0xFFFFFFFF; /* 4GB */ + g_region_attr[BACKGROUND_IDX].conf.pmp_attr = PMP_ATTR_DEVICE_NO_BUFFERABLE; + g_region_attr[BACKGROUND_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_NO_ACCESS; + g_region_attr[BACKGROUND_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[BACKGROUND_IDX].conf.lock = true; } void pmp_init(void) diff --git a/code/sdk/drivers/drivers/driver/audio/source/core/common/share_mem/core_msg.c b/code/sdk/drivers/drivers/driver/audio/source/core/common/share_mem/core_msg.c index 61f8d7b82..a7bd030ea 100644 --- a/code/sdk/drivers/drivers/driver/audio/source/core/common/share_mem/core_msg.c +++ b/code/sdk/drivers/drivers/driver/audio/source/core/common/share_mem/core_msg.c @@ -325,6 +325,7 @@ static td_s32 msg_fifo_acquire_pkt(const core_msg_inst *msg_inst, core_msg_head msg_size = msg_pkt_align_up(msg_size); if (buf_size < msg_size) { sap_err_log_u32(msg_size); + (td_void)ring_buf_flush(msg_inst->shrb_buf.data_buf); return ERR_SYS_BUF_UNDERFLOW; } diff --git a/code/sdk/drivers/drivers/driver/audio/source/drv/arch/drv_sap_msg.c b/code/sdk/drivers/drivers/driver/audio/source/drv/arch/drv_sap_msg.c index ea3a32725..02dae9cae 100644 --- a/code/sdk/drivers/drivers/driver/audio/source/drv/arch/drv_sap_msg.c +++ b/code/sdk/drivers/drivers/driver/audio/source/drv/arch/drv_sap_msg.c @@ -35,7 +35,7 @@ extern "C" { #define SAP_MSG_TASK_SIZE 0xB00 #define SAP_MSG_TASK_NAME "sap_msg" -#define SAP_MSG_EVENT_NUM 64 +#define SAP_MSG_EVENT_NUM 128 #define SAP_MSG_EVENT_SIZE sizeof(td_u16) #define SAP_MSG_QUEUE_TIMEOUT 0 /* Set 0 for ISR */ #define SAP_MSG_WAIT_FOREVER 0xFFFFFFFF diff --git a/code/sdk/drivers/drivers/driver/mipi/shared/mipi_tx.c b/code/sdk/drivers/drivers/driver/mipi/shared/mipi_tx.c index ba37abe75..44a17da06 100644 --- a/code/sdk/drivers/drivers/driver/mipi/shared/mipi_tx.c +++ b/code/sdk/drivers/drivers/driver/mipi/shared/mipi_tx.c @@ -877,6 +877,26 @@ uint32_t uapi_mipi_tx_clear_exit_ulps(void) return EXT_ERR_SUCCESS; } +bool uapi_mipi_tx_is_in_ulps(void) +{ + mipi_tx_lane_state_t clk_lane = {}; + mipi_tx_lane_state_t data_lane0 = {}; + mipi_tx_hal_get_lane_state(MIPI_TX_LANE_DATA0, &data_lane0); + mipi_tx_hal_get_lane_state(MIPI_TX_LANE_CLK, &clk_lane); + mipi_tx_lane_status clk_stat = mipi_tx_get_lane_state(&clk_lane); + mipi_tx_lane_status data0_stat = mipi_tx_get_lane_state(&data_lane0); + + bool is_in_ulps_status = false; + + char *lane_mode[] = {"non_idle", "idle", "sdlp", "ulps"}; + if ((clk_stat == MIPI_TX_LANE_STATE_ULPS) || (data0_stat == MIPI_TX_LANE_STATE_ULPS)) { + printf("clk_stat: %s data0_stat: %s\n", lane_mode[clk_stat], lane_mode[data0_stat]); + is_in_ulps_status = true; + } + + return is_in_ulps_status; +} + #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/drivers/drivers/driver/mipi/shared/mipi_tx.h b/code/sdk/drivers/drivers/driver/mipi/shared/mipi_tx.h index 3d71d3424..f8af2ca86 100644 --- a/code/sdk/drivers/drivers/driver/mipi/shared/mipi_tx.h +++ b/code/sdk/drivers/drivers/driver/mipi/shared/mipi_tx.h @@ -65,5 +65,6 @@ void mipi_tx_drv_set_partial_refresh(combo_dev_cfg_t *dev_cfg); uint32_t mipi_tx_partial_refresh(sync_info_t *dev_sync); uint32_t mipi_tx_proc_show(uint32_t s); +bool uapi_mipi_tx_is_in_ulps(void); #endif diff --git a/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c b/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c index 06ccffa67..1c0f7d712 100644 --- a/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c +++ b/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c @@ -128,9 +128,10 @@ void emmc_save_info(void) g_mmc_cur_info.emmc_cclk_reg = readw(EMMC_CCLK_DIV_REG); g_mmc_cur_info.emmc_div_reg = readw(EMMC_DIV_REG); g_mmc_cur_info.sd_bus_reg = readw(SDIO_BUS_CGDIV_REG); - g_mmc_cur_info.mbiu_ctrl = readw(SDHCI_AXI_MBIIU_CTRL); + g_mmc_cur_info.mbiu_ctrl = readw(MBIIU_CTRL); g_mmc_cur_info.host_ctrl1 = readb(HOST_CTRL1); g_mmc_cur_info.host_ctrl2 = readw(HOST_CTRL2); + #if EMMC_BOARD_DEBUG_ON PRINT("emmc save sdiom_reg=%x, emmc_cclk_reg=%x, emmc_div_reg=%x, timing=%d, phase=%d, bus_width=%d\r\n", g_mmc_cur_info.sdiom_clk_reg, g_mmc_cur_info.emmc_cclk_reg, g_mmc_cur_info.emmc_div_reg, diff --git a/code/sdk/drivers/drivers/driver/pmp/pmp.c b/code/sdk/drivers/drivers/driver/pmp/pmp.c index 7543ac097..d782aed1e 100644 --- a/code/sdk/drivers/drivers/driver/pmp/pmp.c +++ b/code/sdk/drivers/drivers/driver/pmp/pmp.c @@ -17,6 +17,9 @@ static uint32_t get_pmp_napot_size(uint32_t value) { + if (value == 0xFFFFFFFF) { + return 0x7FFFFFFF; + } return ((value >> 1) - 1); } diff --git a/code/sdk/drivers/drivers/driver/psram/psram_drv.c b/code/sdk/drivers/drivers/driver/psram/psram_drv.c index 0c60fc050..02b72983c 100644 --- a/code/sdk/drivers/drivers/driver/psram/psram_drv.c +++ b/code/sdk/drivers/drivers/driver/psram/psram_drv.c @@ -760,6 +760,13 @@ errcode_t uapi_psram_enter_xip(void) isb(); reg16_write(CFG_CACHE2HABM_OVER_TIME_H_REG, XIP_CACHE_OVER_TIME); + reg16_write(CFG_XIP_OPI_READ_OVER_TIME_L_REG, 0xFFFF); + reg16_write(CFG_XIP_OPI_READ_OVER_TIME_H_REG, 0xFFFF); + reg16_write(CFG_XIP_WRITE_OVER_TIME_L_REG, 0xFFFF); + reg16_write(CFG_XIP_WRITE_OVER_TIME_H_REG, 0xFFFF); + + reg16_setbit(XIP_WRITE_READ_ERROR_RESP_MASK_REG, 0x1); + for (uint32_t i = 0 ; i < g_psram_device_parm[g_psram_device].xip_param_num; i++) { psram_device_e psramdevice = g_psram_device; reg32_write((uintptr_t)((g_psram_device_parm[psramdevice].xip_param)[i].addr), diff --git a/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c b/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c index 191a6bd4a..851f58908 100644 --- a/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c +++ b/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c @@ -145,11 +145,13 @@ STATIC bool rtc_update_rtcs_rtc(rtc_index_t index, uint64_t update_amount_cycle) uint32_t irq_sts = osal_irq_lock(); uint8_t soft_rtc_num = g_rtcs_manager[index].soft_rtc_num; for (uint32_t i = 0; i < soft_rtc_num; i++) { + if (g_rtcs_manager[index].rtcs[i].is_run == false) { + continue; + } + if (g_rtcs_manager[index].rtcs[i].cycle <= update_amount_cycle) { g_rtcs_manager[index].rtcs[i].cycle = 0; - if (g_rtcs_manager[index].rtcs[i].is_run == true) { - has_new_rtc = true; - } + has_new_rtc = true; } else { g_rtcs_manager[index].rtcs[i].cycle -= update_amount_cycle; } diff --git a/code/sdk/drivers/drivers/hal/xip/hal_xip.c b/code/sdk/drivers/drivers/hal/xip/hal_xip.c index 8b5444367..6ed412bee 100644 --- a/code/sdk/drivers/drivers/hal/xip/hal_xip.c +++ b/code/sdk/drivers/drivers/hal/xip/hal_xip.c @@ -74,7 +74,7 @@ void hal_xip_enable(xip_id_t xip_index, uint8_t xip_mode_code, bool enable_addr_ } else { hal_xip_reg_cfg_flash_sel_set_flash_sel(xip_index, 0); } - hal_xip_reg_xip_read_error_resp_mask_set_all(xip_index, 0); + hal_xip_reg_xip_read_error_resp_mask_set_all(xip_index, 0xF); /* chip_libra */ #if defined(CONFIG_XIP_ENABLE_READ_OVERTIME) hal_xip_reg_cfg_xip_read_over_time_l_set_data(xip_index, 0xFFFF); @@ -94,12 +94,16 @@ void hal_xip_enable(xip_id_t xip_index, uint8_t xip_mode_code, bool enable_addr_ void hal_xip_disable(xip_id_t xip_index) { uint32_t irqs = osal_irq_lock(); + osal_dsb(); + osal_isb(); hal_xip_reg_xip_read_qspi_enable_set_read_qspi_enable(xip_index, 0); while (hal_xip_reg_xip_read_qspi_enable_get_read_qspi_enable(xip_index) != 0) { } if ((hal_xip_reg_xip_read_qspi_enable_get_read_qspi_enable(0) || hal_xip_reg_xip_read_qspi_enable_get_read_qspi_enable(1)) == 0) { hal_xip_reg_xip_cache_en_set_cache_en(0); } + osal_dsb(); + osal_isb(); osal_irq_restore(irqs); } diff --git a/code/sdk/drivers/drivers/hal/xip/hal_xip_v150_regs_op.h b/code/sdk/drivers/drivers/hal/xip/hal_xip_v150_regs_op.h index e636f28c9..e6a4e6c2e 100644 --- a/code/sdk/drivers/drivers/hal/xip/hal_xip_v150_regs_op.h +++ b/code/sdk/drivers/drivers/hal/xip/hal_xip_v150_regs_op.h @@ -481,7 +481,7 @@ static inline void hal_xip_reg_xip_write_read_error_resp_mask_set_all(uint32_t v { xip_write_read_error_resp_mask_data_t xip_write_read_error_resp_mask; xip_write_read_error_resp_mask.d32 = val; - g_xip_regs->xip_cache_error_resp_mask = xip_write_read_error_resp_mask.d32; + g_xip_regs->xip_write_read_error_resp_mask = xip_write_read_error_resp_mask.d32; } /** diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ability_service.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ability_service.cpp.xml index b21c0f913..558d5e248 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ability_service.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/ability_service.cpp.xml @@ -28,8 +28,8 @@ - - - - + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/appsys_ams_cmd.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/appsys_ams_cmd.cpp.xml index 2260a92b4..ba0cc1104 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/appsys_ams_cmd.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/appsys_ams_cmd.cpp.xml @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bundlems_slite_client.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bundlems_slite_client.cpp.xml index 06794b0c6..8e8c701dd 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bundlems_slite_client.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/bundlems_slite_client.cpp.xml @@ -1,3 +1,3 @@ - - + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/display_vau.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/display_vau.c.xml index 3a1531925..cead6b9c0 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/display_vau.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/display_vau.c.xml @@ -31,20 +31,20 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_installer.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_installer.cpp.xml index 6c735f040..85db15016 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_installer.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_installer.cpp.xml @@ -3,31 +3,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_manager_service.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_manager_service.cpp.xml index bdf50b7f8..7cb7033a3 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_manager_service.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_manager_service.cpp.xml @@ -9,24 +9,24 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_parser.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_parser.cpp.xml index a5c808a32..a591e4055 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_parser.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/gt_bundle_parser.cpp.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lite_m_gfx_engine.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lite_m_gfx_engine.cpp.xml index a7ee87dff..143cdc177 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lite_m_gfx_engine.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lite_m_gfx_engine.cpp.xml @@ -1,33 +1,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lv_draw_vgu.c.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lv_draw_vgu.c.xml index eb6b0a044..40874769a 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lv_draw_vgu.c.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/lv_draw_vgu.c.xml @@ -1,20 +1,20 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/text_ext.cpp.xml b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/text_ext.cpp.xml index a5b416e57..673f2b37d 100644 --- a/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/text_ext.cpp.xml +++ b/code/sdk/interim_binary/brandy/acore/build_hso_cfg/hso_database/xml/base/closed_comp/text_ext.cpp.xml @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_msg.c.xml b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_msg.c.xml index 4deeda727..fa3a789bc 100644 --- a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_msg.c.xml +++ b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_msg.c.xml @@ -6,48 +6,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml index 7ec607218..c2a5f943c 100644 --- a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml +++ b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hdb/hdbcfg/mss_prim_db.xml @@ -1975,11 +1975,11 @@ - - - - - + + + + + @@ -2660,8 +2660,8 @@ - - + + @@ -2715,13 +2715,13 @@ - - - - - - - + + + + + + + diff --git a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/gdk_cmsis.c.xml b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/gdk_cmsis.c.xml index 728ac59a9..be49d5722 100644 --- a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/gdk_cmsis.c.xml +++ b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/gdk_cmsis.c.xml @@ -4,6 +4,6 @@ - - + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/osdep.c.xml b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/osdep.c.xml index 5e43d0a97..641bf76fa 100644 --- a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/osdep.c.xml +++ b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/osdep.c.xml @@ -1,9 +1,9 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/patch_bth.c.xml b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/patch_bth.c.xml index f880ec070..fc93e1590 100644 --- a/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/patch_bth.c.xml +++ b/code/sdk/interim_binary/brandy/bt/build_hso_cfg/hso_database/xml/base/bt_core/patch_bth.c.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_brandy_service.a index 8048ad46c..01a4a5d5e 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_sdk.a index 24eae2d72..7431d8d01 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/ble/libbt_host_sdk.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a index 1f484a512..f776f74cb 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_audio_manager_wrapper.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a index 7f13b8d03..b52dba1c3 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a index 47ab7bdc5..ac5d4758f 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/freertos/br/libbt_host_sdk.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_brandy_service.a index d0aa94a2b..ccbd601a8 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_sdk.a index e699b732a..7a1c78087 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/ble/libbt_host_sdk.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a index dc0cecb99..8b569b616 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_audio_manager_wrapper.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a index a165c9f8a..9a9308f2f 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a index 3674322bf..516879508 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/br/libbt_host_sdk.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_brandy_service.a index de6c012d9..f08233b4d 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_sdk.a index d9daa25f1..4c2d713af 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/ble/libbt_host_sdk.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_audio_manager_wrapper.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_audio_manager_wrapper.a index 53a055ead..114819095 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_audio_manager_wrapper.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_audio_manager_wrapper.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a index 76035d906..b78256b5f 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_brandy_service.a differ diff --git a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a index 46d41c5b4..5f089622d 100644 Binary files a/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a and b/code/sdk/interim_binary/brandy/libs/bt/evb_standard/liteos/mini/br/libbt_host_sdk.a differ diff --git a/code/sdk/middleware/chips/brandy/exception/exception.h b/code/sdk/middleware/chips/brandy/exception/exception.h index 77b5f48fd..30db11110 100644 --- a/code/sdk/middleware/chips/brandy/exception/exception.h +++ b/code/sdk/middleware/chips/brandy/exception/exception.h @@ -441,6 +441,7 @@ typedef void (*hal_exception_dump_callback)(uint32_t id, uint32_t reason, uint32 void do_hard_fault_handler(exc_context_t *exc_buf_addr); #if defined(__LITEOS__) void do_fault_handler(uint32_t exc_type, exc_context_t *exc_buff_addr); +void nmi_fault_handler(uint32_t exc_type, exc_context_t *exc_buff_addr); #endif #if defined(__FREERTOS__) void do_fault_handler_freertos(void); diff --git a/code/sdk/middleware/chips/brandy/exception/exception_riscv.c b/code/sdk/middleware/chips/brandy/exception/exception_riscv.c index 812600014..5c5c54af8 100644 --- a/code/sdk/middleware/chips/brandy/exception/exception_riscv.c +++ b/code/sdk/middleware/chips/brandy/exception/exception_riscv.c @@ -933,9 +933,7 @@ void do_hard_fault_handler(exc_context_t *exc_buf_addr) /* Do not need to manually set false at the end. */ g_is_repeat_exc = true; #endif -#if defined(BUILD_APPLICATION_STANDARD) && !defined(BUILD_RECOVERY_IMAGE) - (void)uapi_nv_flush(); -#endif + uint32_t exc_type = exc_buf_addr->mcause; #if (ARCH == RISCV70) exc_type &= MCAUSE_MASK; @@ -953,6 +951,11 @@ void do_hard_fault_handler(exc_context_t *exc_buf_addr) } #endif } + +#if defined(BUILD_APPLICATION_STANDARD) && !defined(BUILD_RECOVERY_IMAGE) + (void)uapi_nv_flush(); +#endif + #if (SLAVE_BY_BS25_ONLY || SLAVE_BY_WS53_ONLY) && (!defined(NO_TIMEOUT)) g_bt_nmi_reboot = non_os_get_bnmi_mask_status(); g_bt_nmi_mask = non_os_get_bnmi_mask_value(); @@ -1096,8 +1099,36 @@ void do_fault_handler_freertos(void) void do_fault_handler(uint32_t exc_type, exc_context_t *exc_buff_addr) { UNUSED(exc_type); + g_taskScheduled = 0; do_hard_fault_handler(exc_buff_addr); } + +void nmi_fault_handler(uint32_t exc_type, exc_context_t *exc_buff_addr) +{ + UNUSED(exc_type); + g_taskScheduled = 0; + uint16_t nmi_raw_status = non_os_get_nmi_raw_status(); + uint16_t xip_cache_int_sts = readw(XIP_CACHE_CTL_INTR_STS); + uint16_t xip_int_sts = readw(XIP_CTL_INTR_STS); + + PRINT("nmi fault reg is 0x%x 0x%x 0x%x"NEWLINE, nmi_raw_status, xip_cache_int_sts, xip_int_sts); + + if (nmi_raw_status & NON_OS_NMI_CWDT_INT_FLAG) { + do_hard_fault_handler(exc_buff_addr); + } else { + cpu_trace_disable(); + + reboot_cause_t reset_cause = hal_set_reset_cause(NMI_INTERRUPT); + if (reset_cause == REBOOT_CAUSE_APPLICATION_XIP_CACHE) { + set_fault_reason(readw(XIP_CACHE_CTL_INTR_STS)); + } else if (reset_cause == REBOOT_CAUSE_APPLICATION_XIP_CTRL) { + set_fault_reason(readw(XIP_CTL_INTR_STS)); + } + + cpu_utils_reset_chip_with_log((cores_t)MASTER_BY_ALL, reset_cause); + } +} + #endif void hal_register_exception_dump_callback(hal_exception_dump_callback callback) diff --git a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c index b0700e463..46c29f6a0 100644 --- a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c +++ b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_core.c @@ -233,6 +233,9 @@ void pm_core_resume(void) cpu_trace_enable_mcpu_repeat(); storage_device_resume(); display_resume(); + if (non_os_get_nmi_raw_status() == 0x2) { + uapi_watchdog_kick(); + } pm_misc_regs_resume(); pm_core_restore_reset_pc(); } diff --git a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_lp_stub.c b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_lp_stub.c index 66af43325..7b33a9ef3 100644 --- a/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_lp_stub.c +++ b/code/sdk/middleware/chips/brandy/pm/pm_adapt/pm_lp_stub.c @@ -43,6 +43,7 @@ #define XIP_CACHE_INTR_MASK 0xa3006128 #define XIP_CACHE_WRITE_DATA_DELAY_INTR_MASK 0x8 #define XIP_CACHE_ENABLE_WRITE_INTR_MASK 0x1 +#define XIP_CACHE_2AHBM_INTR_MASK 0x2 #define PM_DISPLAY_LOGIC_CRG_RESET 0x570000c0 #define PM_DISPLAY_PWR_EN_CFG 0x57004034 #define PM_DISPLAY_PWR_CLOSE_POWER 0x100 @@ -168,17 +169,14 @@ void display_resume(void) int ret = bus_api->bus_resume(); if (ret != 0) { PRINT("bus resume ret =%d\n", ret); } #ifndef QSPI_DISPLAY - ret = drv_dpu_resume(NULL); - if (ret != 0) { PRINT("drv dpu resume ret =%d\n", ret); } + (void)drv_dpu_resume(NULL); #endif #ifdef SUPPORT_GPU_JPEG (void)drv_jpeg_resume(NULL); #endif - ret = drv_vau_resume(NULL); - if (ret != 0) { PRINT("drv vau resume ret =%d\n", ret); } + (void)drv_vau_resume(NULL); #ifdef SUPPORT_GPU_GMMU - ret = drv_gmmu_resume(NULL); - if (ret != 0) { PRINT("drv_gmmu_resume ret =%d\n", ret); } + (void)drv_gmmu_resume(NULL); #endif if (g_resume_touch_flag != 0) { touch_resume_for_i2c(); } } @@ -186,13 +184,14 @@ void display_resume(void) } void pm_misc_regs_resume(void) { - // xip config param needs to re-config - non_os_nmi_config(NMI_CWDT, true); - non_os_nmi_config(NMI_XIP_CTRL, true); - non_os_nmi_config(NMI_XIP_CACHE, true); reg16_clrbit(XIP_CACHE_INTR_MASK, XIP_CACHE_WRITE_DATA_DELAY_INTR_MASK); reg16_clrbit(XIP_CACHE_INTR_MASK, XIP_CACHE_ENABLE_WRITE_INTR_MASK); - + reg16_clrbit(XIP_CACHE_INTR_MASK, XIP_CACHE_2AHBM_INTR_MASK); + + // xip config param needs to re-config + non_os_nmi_config(NMI_CWDT, true); + hal_xip_config_interrupt_type(XIP_0, XIP_INTR_NMI); + // set l2ram for dsp pmu1_dsp_l2ram_config(DSP_L2RAM_AREA_SIZE); diff --git a/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c b/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c index 56d17c3fe..2d7d18b56 100644 --- a/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c +++ b/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c @@ -293,6 +293,9 @@ void pm_enter_sleep(uint32_t sleep_ms_val) return; } uapi_rtc_get_current_time_us(0, &rtc_times); + if (rtc_times < PM_OS_US_TO_MS && rtc_times > 0) { + return; + } rtc_times /= PM_OS_US_TO_MS; if (sleep_ms > rtc_times && rtc_times != 0 && sleep_ms <= g_pm_sleep_threshold) { sleep_ms = rtc_times; @@ -342,6 +345,8 @@ void pm_set_mcu_dynamic_power_flag(uint8_t flag) void uapi_pm_enter_sleep(void) { + uint32_t status = pm_os_irq_lock(); uint32_t sleep_ms = pm_os_get_sleep_ms(); pm_enter_sleep(sleep_ms); + pm_os_irq_restore(status); } diff --git a/code/sdk/middleware/services/gpu/api/jpeg/inc/jpeg_struct.h b/code/sdk/middleware/services/gpu/api/jpeg/inc/jpeg_struct.h index 61c8fd9af..887e0f824 100644 --- a/code/sdk/middleware/services/gpu/api/jpeg/inc/jpeg_struct.h +++ b/code/sdk/middleware/services/gpu/api/jpeg/inc/jpeg_struct.h @@ -55,7 +55,7 @@ extern "C" { #ifdef NO_UART_DEBUG #define jpeg_err(fmt, args...) uapi_diag_error_log(0, fmt, ##args) #else -#define jpeg_err(info) printf("[ERR-JPEG]:%s[%d] %s\n", __FUNCTION__, __LINE__, info) +#define jpeg_err(fmt, args...) printf("[JPEG_ERROR][%s %d]"#fmt"\n", __func__, __LINE__, ##args) #endif /*-------------------------------- struct define ------------------------------------------*/ diff --git a/code/sdk/middleware/services/gpu/api/jpeg/src/jpeg_mem.c b/code/sdk/middleware/services/gpu/api/jpeg/src/jpeg_mem.c index f209bceab..13a94e10c 100644 --- a/code/sdk/middleware/services/gpu/api/jpeg/src/jpeg_mem.c +++ b/code/sdk/middleware/services/gpu/api/jpeg/src/jpeg_mem.c @@ -9,6 +9,7 @@ #include "securec.h" #include "soc_osal.h" #include "psram.h" +#include "jpeg_struct.h" /*-------------------------------------- macro define -------------------------------------*/ @@ -26,16 +27,19 @@ td_s32 jpeg_mem_alloc_small(jpeg_mem_ptr mem) errno_t ret; if (mem->size == 0) { + jpeg_err("mem->size = 0\n"); return EXT_FAILURE; } mem->vir_buf = (td_char *)malloc(mem->size); if (mem->vir_buf == TD_NULL) { + jpeg_err("mem alloc fail, size = %u\n", mem->size); return EXT_FAILURE; } ret = memset_s(mem->vir_buf, mem->size, 0x0, mem->size); if (ret != EOK) { + jpeg_err("memset_s fail, mem size = %u\n", mem->size); free(mem->vir_buf); return EXT_FAILURE; } @@ -55,11 +59,13 @@ td_s32 jpeg_mem_alloc_large(jpeg_mem_ptr mem) errno_t ret; if ((mem->size < JPEG_MEM_SIZE_MIN) || (mem->size > JPEG_MEM_SIZE_MAX)) { + jpeg_err("mem size = %u is invalid, need in range[%u, %u]\n", mem->size, JPEG_MEM_SIZE_MIN, JPEG_MEM_SIZE_MAX); return EXT_FAILURE; } mem->phy_buf = PSRAM_RESERVE_ADDR; if (mem->phy_buf == 0) { + jpeg_err("mem->phy_buf = 0, addr = %#X\n", PSRAM_RESERVE_ADDR); return EXT_FAILURE; } diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a index 080a8fdaf..14858f9ea 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a index 761d39b97..f5187426a 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-ser/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a index 314013d3a..3882fd869 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a index 8c61a0c35..f74e03335 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-native-js/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a index 29dbc2b5e..6b573544f 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target1-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a index 1514f1778..a35b38ef7 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target1/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a index 3af32e58a..fc2f5ba13 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target3-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a index 7e686025d..c8cf64a39 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target3/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a index 25c7b757d..ea0fcc715 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target4-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a index 4cc121243..fad81d7f3 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target4/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a index 159cc6657..892e432f2 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target5-r/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a index e6206e903..0a5933bea 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-target5/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a index 6ff3279f6..650d29692 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/brandy-xts/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a index b8f702bb2..b309e7daf 100644 Binary files a/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a and b/code/sdk/middleware/services/gpu/api/rm/testsuite-brandy-sdk/libgfx_rm.a differ diff --git a/code/sdk/middleware/services/gpu/drv/comm/gpu_mem_config.h b/code/sdk/middleware/services/gpu/drv/comm/gpu_mem_config.h index 98f7dad21..702249463 100644 --- a/code/sdk/middleware/services/gpu/drv/comm/gpu_mem_config.h +++ b/code/sdk/middleware/services/gpu/drv/comm/gpu_mem_config.h @@ -30,11 +30,11 @@ extern "C" { #define GPU_SRAM_PRE_SIZE (1 * 1024) /* 1K for vau ip tmp dcmp */ #define GPU_SRAM_PRE_ADDR (GPU_SRAM_END + 1 - GPU_SRAM_PRE_SIZE) /* 0x6039FC00 ~ 0x6039FFFF */ -#define GPU_SRAM_DRAW_SIZE (63 * 1024) /* 63K for cmd/data */ -#define GPU_SRAM_DRAW_ADDR (GPU_SRAM_PRE_ADDR - GPU_SRAM_DRAW_SIZE) /* 0x60390000 ~ 0x6039FC00 */ +#define GPU_SRAM_DRAW_SIZE (127 * 1024) /* 127K for cmd/data */ +#define GPU_SRAM_DRAW_ADDR (GPU_SRAM_PRE_ADDR - GPU_SRAM_DRAW_SIZE) /* 0x60380000 ~ 0x6039FC00 */ #define GPU_SRAM_NODE_SIZE (80 * 1024) /* 80K for node/handle */ -#define GPU_SRAM_NODE_ADDR (GPU_SRAM_DRAW_ADDR - GPU_SRAM_NODE_SIZE) /* 0x6037C000 ~ 0x60390000 */ +#define GPU_SRAM_NODE_ADDR (GPU_SRAM_DRAW_ADDR - GPU_SRAM_NODE_SIZE) /* 0x6036C000 ~ 0x60380000 */ #define GPU_SRAM_CMD_SIZE (GPU_SRAM_PRE_SIZE + GPU_SRAM_DRAW_SIZE + GPU_SRAM_NODE_SIZE) diff --git a/code/sdk/middleware/services/gpu/drv/dpu/dfx/dpu_dfx.c b/code/sdk/middleware/services/gpu/drv/dpu/dfx/dpu_dfx.c index 9d0b4f0fb..15e66c1a6 100644 --- a/code/sdk/middleware/services/gpu/drv/dpu/dfx/dpu_dfx.c +++ b/code/sdk/middleware/services/gpu/drv/dpu/dfx/dpu_dfx.c @@ -13,6 +13,7 @@ #include "dpu_disp.h" #include "dpu_layer.h" #include "dpu_hal.h" +#include "drv_dpu.h" #define SAVE_FILE_DIR "/user" @@ -42,13 +43,8 @@ td_void dpu_dfx_print_info(void) #if defined(SUPPORT_AT_CMD) || defined(SUPPORT_TEST_COMMON) || defined(CONFIG_DIAG_GPU_PROC_SUPPORT) static td_void dfx_disp_proc_read(void) { - td_u32 chksum_y = 0; - td_u32 chksum_u = 0; - td_u32 chksum_v = 0; dpu_disp_info *disp_dev = dpu_disp_get_info(); - dpu_hal_disp_get_chksum(&chksum_y, &chksum_u, &chksum_v); - dpu_print("\n-----------DISP proc-----------\n"); dpu_print("work_mode :%-6d\n", disp_dev->timing.is_cmd_mode ? 1 : 0); dpu_print("disp_open :%-6d\n", disp_dev->is_open ? 1 : 0); @@ -74,6 +70,15 @@ static td_void dfx_disp_proc_read(void) g_dpu_dfx_info.frm_done_cnt, g_dpu_dfx_info.te_signal_cnt); dpu_print("suspend/resume :%-6u/%-6u\n", g_dpu_dfx_info.suspend_cnt, g_dpu_dfx_info.resume_cnt); + + td_u32 chksum_y = 0; + td_u32 chksum_u = 0; + td_u32 chksum_v = 0; + if (drv_dpu_get_suspend_flag() == TD_FALSE) { + dpu_hal_disp_get_chksum(&chksum_y, &chksum_u, &chksum_v); + } else { + dpu_print("dpu is in lowpower state, chksum_out is invalid!"); + } dpu_print("chksum[RGB] :%#x/%#x/%#x\n", chksum_y, chksum_u, chksum_v); return; @@ -81,8 +86,6 @@ static td_void dfx_disp_proc_read(void) static td_void dfx_layer_proc_read(td_u32 layer_id) { - td_u32 chksum_ar = 0; - td_u32 chksum_gb = 0; dpu_layer_dev *layer_dev = TD_NULL; if (layer_id < DRV_DPU_LAYER_ID1 || layer_id > DRV_DPU_MAX_LAYER_ID) { @@ -90,8 +93,6 @@ static td_void dfx_layer_proc_read(td_u32 layer_id) return; } - dpu_hal_layer_get_fdr_chksum(layer_id, &chksum_ar, &chksum_gb); - layer_dev = dpu_layer_get_dev(layer_id); if (layer_dev != TD_NULL) { dpu_print("-----------LAYER%u proc---------\n", layer_id); @@ -105,7 +106,6 @@ static td_void dfx_layer_proc_read(td_u32 layer_id) dpu_print("format :%-6u\n", layer_dev->run_info.fmt); dpu_print("cmp_mode :%-6u\n", layer_dev->run_info.compress_mode); dpu_print("vblank :%-6d\n", layer_dev->vblank ? 1 : 0); - dpu_print("chksum[ar/gb] :%#x/%#x\n", chksum_ar, chksum_gb); dpu_print("disp_rect :%-6d/%-6d/%-6u/%-6u\n", layer_dev->run_info.disp_rect.x, layer_dev->run_info.disp_rect.y, @@ -115,6 +115,15 @@ static td_void dfx_layer_proc_read(td_u32 layer_id) layer_dev->run_info.crop_rect.width, layer_dev->run_info.crop_rect.height); } + td_u32 chksum_ar = 0; + td_u32 chksum_gb = 0; + if (drv_dpu_get_suspend_flag() == TD_FALSE) { + dpu_hal_layer_get_fdr_chksum(layer_id, &chksum_ar, &chksum_gb); + } else { + dpu_print("dpu is in lowpower state, chksum_in is invalid!"); + } + dpu_print("chksum[ar/gb] :%#x/%#x\n", chksum_ar, chksum_gb); + return; } @@ -162,6 +171,15 @@ td_s32 dfx_dpu_save_fb_enable(int argc, const char *argv[]) } #endif +td_void dpu_dfx_proc_read(td_void) +{ +#if defined(SUPPORT_AT_CMD) || defined(SUPPORT_TEST_COMMON) || defined(CONFIG_DIAG_GPU_PROC_SUPPORT) + dfx_layer_proc_read(0); + dfx_layer_proc_read(1); + dfx_disp_proc_read(); +#endif +} + static td_void dpu_dfx_save_fb_data_all(const drv_dpu_surface *surface) { if (surface == TD_NULL) { @@ -255,3 +273,40 @@ td_void dfx_dpu_save_fb_to_file(drv_dpu_layer_id layer_id, drv_dpu_surface *surf dpu_dfx_save_fb_data_part(surface); } } + +static td_void read_reg_with_cnt(td_u32 addr, td_u32 cnt) +{ + for (uint32_t i = 0; i < cnt; i++) { + volatile uint32_t value; + uapi_reg_read(addr + i * 4, value); // 4: 4byte + if (i % 4 == 0) { // 4: 4byte + if (i != 0) { + dpu_print("\n"); + } + dpu_print("%X =", addr + i * 4); // 4: 4byte + } + dpu_print(" %08X", value); + if (i == cnt - 1) { + dpu_print("\n"); + } + } +} + +td_void print_mipi_and_dpu_reg(int argc, const char *argv[]) +{ + uapi_unused(argc); + uapi_unused(argv); + + printf("----------------mipi reg--------------------\n"); + read_reg_with_cnt(0x56000000, 0x100); + printf("----------------dpu reg--------------------\n"); + read_reg_with_cnt(0x56020000, 0x24); + read_reg_with_cnt(0x56020300, 0x10); + read_reg_with_cnt(0x56020400, 0x20); + read_reg_with_cnt(0x56020c00, 0x10); + read_reg_with_cnt(0x56027000, 0x50); + read_reg_with_cnt(0x56027800, 0x50); + read_reg_with_cnt(0x5602d000, 0x100); + read_reg_with_cnt(0x56030e00, 0x100); + read_reg_with_cnt(0x56031000, 0x100); +} diff --git a/code/sdk/middleware/services/gpu/drv/dpu/dfx/dpu_dfx.h b/code/sdk/middleware/services/gpu/drv/dpu/dfx/dpu_dfx.h index e088a8628..ef65ea96a 100644 --- a/code/sdk/middleware/services/gpu/drv/dpu/dfx/dpu_dfx.h +++ b/code/sdk/middleware/services/gpu/drv/dpu/dfx/dpu_dfx.h @@ -67,6 +67,13 @@ enum { #define dpu_dbg(fmt, args...) #endif +typedef struct { + td_u32 phy_addr; + td_u32 width; + td_u32 height; + td_u32 stride; +} dpu_dfx_layer_info; + typedef struct { td_bool print_en; td_bool save_en; @@ -99,6 +106,8 @@ typedef struct { td_u32 last_te_time_us; td_u32 one_sec_ago; /* for fps calculate */ + + dpu_dfx_layer_info layer_info[DRV_DPU_MAX_LAYER_ID + 1]; } dpu_dfx_info; td_void dpu_dfx_print_info(void); @@ -107,6 +116,8 @@ td_s32 dfx_get_proc_info(int argc, const char *argv[]); td_s32 dfx_dpu_print(int argc, const char *argv[]); td_s32 dfx_dpu_save_fb_enable(int argc, const char *argv[]); td_void dfx_dpu_save_fb_to_file(drv_dpu_layer_id layer_id, drv_dpu_surface *surface); +td_void dpu_dfx_proc_read(td_void); +td_void print_mipi_and_dpu_reg(int argc, const char *argv[]); static inline td_void dpu_dfx_get_time_us(td_u32 *time_us) { diff --git a/code/sdk/middleware/services/gpu/drv/dpu/intf/drv_dpu_intf.c b/code/sdk/middleware/services/gpu/drv/dpu/intf/drv_dpu_intf.c index 76d758040..0fd088887 100644 --- a/code/sdk/middleware/services/gpu/drv/dpu/intf/drv_dpu_intf.c +++ b/code/sdk/middleware/services/gpu/drv/dpu/intf/drv_dpu_intf.c @@ -42,6 +42,18 @@ static td_void drv_dpu_set_suspend_flag(td_bool flag) osal_spin_unlock_irqrestore(&disp_info->disp_lock, &flags); } +td_bool drv_dpu_get_suspend_flag(td_void) +{ + unsigned long flags = 0; + dpu_disp_info *disp_info = dpu_disp_get_info(); + + osal_spin_lock_irqsave(&disp_info->disp_lock, &flags); + td_bool suspend_flag = g_dpu_suspend_flag; + osal_spin_unlock_irqrestore(&disp_info->disp_lock, &flags); + return suspend_flag; +} + + td_s32 drv_dpu_suspend(td_void *private_data) { uapi_unused(private_data); diff --git a/code/sdk/middleware/services/gpu/drv/dpu/isr/dpu_isr.c b/code/sdk/middleware/services/gpu/drv/dpu/isr/dpu_isr.c index 03446a407..8aaac9b47 100644 --- a/code/sdk/middleware/services/gpu/drv/dpu/isr/dpu_isr.c +++ b/code/sdk/middleware/services/gpu/drv/dpu/isr/dpu_isr.c @@ -151,18 +151,22 @@ td_void dpu_isr_deinit(void) td_void dpu_isr_wait_finish(void) { td_s32 ret; + static td_u32 dpu_timeout_cnt = 0; dpu_dfx_info *dfx_info = dpu_dfx_get_info(); ret = osal_wait_timeout_interruptible(&g_dpu_isr_info.finish_event, isr_get_finish_done, TD_NULL, 500); /* 500 ms */ if (ret <= 0) { + if (dpu_timeout_cnt < 0x3) { + dpu_dfx_proc_read(); + print_mipi_and_dpu_reg(0, TD_NULL); + } + dpu_timeout_cnt++; dfx_info->refresh_total = 0; dfx_info->frm_done_total = 0; dpu_err("osal_wait_timeout!!!!"); return; } - - return; } td_void dpu_isr_wait_te_signal(void) @@ -192,6 +196,7 @@ td_s32 dpu_wait_all_finish(td_void) dpu_dfx_info *dfx_info = dpu_dfx_get_info(); const td_u32 wait_time = 200; td_u32 cnt = 0; + static td_u32 dpu_timeout_cnt = 0; while (cnt++ < wait_time) { osal_spin_lock_irqsave(&g_dpu_isr_info.isr_lock, &flag); @@ -204,6 +209,11 @@ td_s32 dpu_wait_all_finish(td_void) } if (cnt >= wait_time) { dpu_err("dpu_wait_all_finish timeout!!!!"); + if (dpu_timeout_cnt < 0x2) { + dpu_dfx_proc_read(); + print_mipi_and_dpu_reg(0, TD_NULL); + } + dpu_timeout_cnt++; return EXT_FAILURE; } return EXT_SUCCESS; diff --git a/code/sdk/middleware/services/gpu/drv/dpu/layer/dpu_layer.c b/code/sdk/middleware/services/gpu/drv/dpu/layer/dpu_layer.c index b02f22877..706ccc6a1 100644 --- a/code/sdk/middleware/services/gpu/drv/dpu/layer/dpu_layer.c +++ b/code/sdk/middleware/services/gpu/drv/dpu/layer/dpu_layer.c @@ -9,6 +9,7 @@ #include "dpu_hal.h" #include "dpu_dfx.h" #include "pm.h" +#include "mipi_tx.h" #define DRV_DPU_MAX_LAYER_WIDTH 640 #define DRV_DPU_MAX_LAYER_HEIGHT 640 @@ -571,6 +572,7 @@ td_s32 dpu_layer_create(const drv_dpu_layer_info *layer_info) layer_dev->create_cnt++; layer_dev->is_create = TD_TRUE; + layer_dev->update_flag = TD_TRUE; osal_spin_unlock_irqrestore(&layer_dev->layer_lock, &flag); @@ -785,6 +787,12 @@ td_s32 dpu_layer_set_info(drv_dpu_layer_id layer_id, const drv_dpu_surface *surf dpu_layer_update_layer_info(layer_dev, surface); osal_spin_unlock_irqrestore(&layer_dev->layer_lock, &flag); + dpu_dfx_info *dfx_info = dpu_dfx_get_info(); + dfx_info->layer_info[layer_id].phy_addr = surface->phy_addr; + dfx_info->layer_info[layer_id].width = surface->width; + dfx_info->layer_info[layer_id].height = surface->height; + dfx_info->layer_info[layer_id].stride = surface->stride; + return EXT_SUCCESS; } @@ -893,6 +901,10 @@ td_s32 dpu_layer_refresh(void) dpu_disp_set_timing_and_screen_region(); dpu_disp_set_chnl_reg_up(); dpu_isr_clear_finish_flag(); + + if (uapi_mipi_tx_is_in_ulps() == true) { + dpu_err("mipi_tx_is_not_exit_ulps, can not flush\n"); + } dpu_hal_disp_set_frame_ready(); if (need_cur_done == TD_TRUE) { diff --git a/code/sdk/middleware/services/gpu/drv/include/drv_dpu.h b/code/sdk/middleware/services/gpu/drv/include/drv_dpu.h index a55638fac..7b2fd68f6 100644 --- a/code/sdk/middleware/services/gpu/drv/include/drv_dpu.h +++ b/code/sdk/middleware/services/gpu/drv/include/drv_dpu.h @@ -16,6 +16,7 @@ extern "C" { td_s32 drv_dpu_suspend(td_void *private_data); td_s32 drv_dpu_resume(td_void *private_data); +td_bool drv_dpu_get_suspend_flag(td_void); td_s32 uapi_dpu_module_init(void); td_void uapi_dpu_module_exit(void); diff --git a/code/sdk/middleware/services/gpu/drv/include/drv_vau.h b/code/sdk/middleware/services/gpu/drv/include/drv_vau.h index 6ae9e5b7d..3175790fd 100644 --- a/code/sdk/middleware/services/gpu/drv/include/drv_vau.h +++ b/code/sdk/middleware/services/gpu/drv/include/drv_vau.h @@ -16,6 +16,7 @@ extern "C" { td_s32 drv_vau_suspend(td_void *private_data); td_s32 drv_vau_resume(td_void *private_data); +td_bool drv_vau_get_suspend_flag(td_void); td_s32 uapi_vau_module_init(td_void); td_void uapi_vau_module_exit(td_void); diff --git a/code/sdk/middleware/services/gpu/drv/vau/dfx/vau_dfx.c b/code/sdk/middleware/services/gpu/drv/vau/dfx/vau_dfx.c index d2ea85af5..e1dd9833d 100644 --- a/code/sdk/middleware/services/gpu/drv/vau/dfx/vau_dfx.c +++ b/code/sdk/middleware/services/gpu/drv/vau/dfx/vau_dfx.c @@ -8,6 +8,7 @@ #include "soc_osal.h" #include "vau_list.h" #include "vau_mem.h" +#include "drv_vau.h" /*-------------------------------- macro define -------------------------------------------*/ @@ -81,8 +82,6 @@ static inline td_void vau_dfx_print_func_info(td_void) static td_void vau_dfx_print_func_time_info(td_void) { - uapi_reg_read(HAL_VAU_LIST_PFCNT, g_vau_dfx_info.func_info.time_info.list_pfcnt); - vau_print("-----------time info-----------\n"); vau_print("create_cost(us) :%u\n", (td_u32)(g_vau_dfx_info.func_info.time_info.create_cost)); vau_print("destroy_cost(us) :%u\n", (td_u32)(g_vau_dfx_info.func_info.time_info.destroy_cost)); @@ -90,20 +89,20 @@ static td_void vau_dfx_print_func_time_info(td_void) vau_print("compose_cost(us) :%u\n", (td_u32)(g_vau_dfx_info.func_info.time_info.compose_cost)); vau_print("submit_cost(us) :%u\n", (td_u32)(g_vau_dfx_info.func_info.time_info.submit_cost)); vau_print("wait done cose(us) :%u\n", (td_u32)(g_vau_dfx_info.func_info.time_info.wait_for_done_cost)); + vau_print("suspend/resume :%u/%u\n", g_vau_dfx_info.suspend_cnt, g_vau_dfx_info.resume_cnt); + + if (drv_vau_get_suspend_flag() == TD_FALSE) { + uapi_reg_read(HAL_VAU_LIST_PFCNT, g_vau_dfx_info.func_info.time_info.list_pfcnt); + } else { + vau_print("vau is in lowpower state, list pfcnt is invalid!"); + } vau_print("list pfcnt/time_us :%u/%u\n", g_vau_dfx_info.func_info.time_info.list_pfcnt, g_vau_dfx_info.func_info.time_info.list_pfcnt / 176); /* 0.9V AXI 176M */ - vau_print("suspend/resume :%u/%u\n", g_vau_dfx_info.suspend_cnt, g_vau_dfx_info.resume_cnt); } static td_void vau_dfx_print_func_cnt_info(td_void) { td_u32 cnt = g_vau_dfx_info.func_info.func_cnt.submit_cnt - g_vau_dfx_info.func_info.func_cnt.submit_usr_cnt; - td_u32 hard_start_cnt; - td_u32 hard_list_finish_cnt; - td_u32 hard_int_cnt; - uapi_reg_read(HAL_VAU_START_CNT, hard_start_cnt); - uapi_reg_read(HAL_VAU_LIST_FINISH_CNT, hard_list_finish_cnt); - uapi_reg_read(HAL_VAU_INT_CNT, hard_int_cnt); vau_print("-----------call count info-----------\n"); vau_print("create_cnt :%u\n", g_vau_dfx_info.func_info.func_cnt.create_cnt); @@ -128,6 +127,18 @@ static td_void vau_dfx_print_func_cnt_info(td_void) vau_print(" isr zero value :%u)\n", g_vau_dfx_info.func_info.isr_cnt.isr_status_zero_value_cnt); vau_print("tasklet_func_cnt :%u\n", g_vau_dfx_info.func_info.func_cnt.tasklet_func_cnt); vau_print("execute_node_cnt :%u\n", g_vau_dfx_info.func_info.func_cnt.execute_node_cnt); + + td_u32 hard_start_cnt = 0; + td_u32 hard_list_finish_cnt = 0; + td_u32 hard_int_cnt = 0; + if (drv_vau_get_suspend_flag() == TD_FALSE) { + uapi_reg_read(HAL_VAU_START_CNT, hard_start_cnt); + uapi_reg_read(HAL_VAU_LIST_FINISH_CNT, hard_list_finish_cnt); + uapi_reg_read(HAL_VAU_INT_CNT, hard_int_cnt); + } else { + vau_print("vau is in lowpower state, hard_int_cnt/hard_start_cnt/hard_list_finish_cnt is invalid!"); + } + // hard int count vau_print("hard int cnt :%u ", hard_int_cnt); vau_print("(hard start cnt :%u", hard_start_cnt); @@ -241,3 +252,20 @@ vau_dfx_info *vau_dfx_get_info(td_void) { return &g_vau_dfx_info; } + +td_s32 vau_dfx_enable_api_print(int argc, const char *argv[]) +{ + if (argc < 1) { + vau_print("should input enable switch 0/1\n"); + return EXT_FAILURE; + } + + g_vau_dfx_info.is_print_vau_api = (td_bool)strtoul(argv[0x0], TD_NULL, 10); /* 10: index */ + if (g_vau_dfx_info.is_print_vau_api) { + vau_print("open vau_api_print\n"); + } else { + vau_print("close vau_api_print\n"); + } + + return EXT_SUCCESS; +} diff --git a/code/sdk/middleware/services/gpu/drv/vau/dfx/vau_dfx.h b/code/sdk/middleware/services/gpu/drv/vau/dfx/vau_dfx.h index cf17148b3..63ca89ea3 100644 --- a/code/sdk/middleware/services/gpu/drv/vau/dfx/vau_dfx.h +++ b/code/sdk/middleware/services/gpu/drv/vau/dfx/vau_dfx.h @@ -172,6 +172,7 @@ typedef struct { td_u32 resume_cnt; dfx_mem_info mem_info; dfx_func_info func_info; + td_bool is_print_vau_api; } vau_dfx_info; /*-------------------------------- func declares ------------------------------------------*/ diff --git a/code/sdk/middleware/services/gpu/drv/vau/hal/vau_hal_apb.c b/code/sdk/middleware/services/gpu/drv/vau/hal/vau_hal_apb.c index 2cfaf1082..61c63ecf5 100644 --- a/code/sdk/middleware/services/gpu/drv/vau/hal/vau_hal_apb.c +++ b/code/sdk/middleware/services/gpu/drv/vau/hal/vau_hal_apb.c @@ -286,7 +286,6 @@ td_void vau_hal_apb_sram_ctrl(td_bool lp_en) return; } -#ifdef CONFIG_VAU_DFX_DEBUG td_void vau_hal_apb_print_reg(td_u32 base, td_u32 start, td_u32 end) { volatile td_u32 value; @@ -298,16 +297,14 @@ td_void vau_hal_apb_print_reg(td_u32 base, td_u32 start, td_u32 end) addr[i * 4], addr[i * 4 + 1], addr[i * 4 + 2], addr[i * 4 + 3]); /* 2,3,4:index */ } - if (vau_dfx_check_mask(VAU_DBG_MASK_PRINT_PATH)) { - uapi_reg_read(HAL_VAU_DRAW_PATH_CMD_ADDR, value); - td_u8 *cmds = (td_u8 *)(uintptr_t)value; - uapi_reg_read(HAL_VAU_DRAW_PATH_DATA_ADDR, value); - td_float *datas = (td_float *)(uintptr_t)value; - uapi_reg_read(HAL_VAU_DRAW_PATH_NUM_ADDR, value); - u_vau_draw_path_num num = { .u32 = value }; + uapi_reg_read(HAL_VAU_DRAW_PATH_CMD_ADDR, value); + td_u8 *cmds = (td_u8 *)(uintptr_t)value; + uapi_reg_read(HAL_VAU_DRAW_PATH_DATA_ADDR, value); + td_float *datas = (td_float *)(uintptr_t)value; + uapi_reg_read(HAL_VAU_DRAW_PATH_NUM_ADDR, value); + u_vau_draw_path_num num = { .u32 = value }; - vau_dfx_print_path(cmds, datas, num.bits.cmd_num, num.bits.data_num); - } + vau_dfx_print_path(cmds, datas, num.bits.cmd_num, num.bits.data_num); return; } @@ -317,6 +314,3 @@ td_void vau_hal_apb_print_all_reg(td_void) vau_hal_apb_print_reg(HAL_VAU_REG_BASEADDR, 0, 0x40AC); return; } - -#endif - diff --git a/code/sdk/middleware/services/gpu/drv/vau/intf/drv_vau_intf.c b/code/sdk/middleware/services/gpu/drv/vau/intf/drv_vau_intf.c index 99b9c5df8..784391a66 100644 --- a/code/sdk/middleware/services/gpu/drv/vau/intf/drv_vau_intf.c +++ b/code/sdk/middleware/services/gpu/drv/vau/intf/drv_vau_intf.c @@ -15,6 +15,7 @@ #include "vau_dfx.h" #include "vau_pre_process.h" #include "vau_handle.h" +#include "drv_vau_struct.h" #define DRV_VAU_IOCTL_CMD_NUM 20 @@ -44,6 +45,17 @@ static td_void drv_vau_set_suspend_flag(td_bool flag) osal_spin_unlock_irqrestore(&vau_handle_list->lock, &flags); } +td_bool drv_vau_get_suspend_flag(td_void) +{ + unsigned long flags = 0; + vau_handle_mgr *vau_handle_list = vau_handle_list_get(); + + osal_spin_lock_irqsave(&vau_handle_list->lock, &flags); + td_bool suspend_flag = g_vau_suspend_flag; + osal_spin_unlock_irqrestore(&vau_handle_list->lock, &flags); + return suspend_flag; +} + td_s32 drv_vau_suspend(td_void *private_data) { uapi_unused(private_data); @@ -128,6 +140,37 @@ static osal_dev g_vau_register_data = { .pmops = &g_vau_ops, }; +static td_void vau_print_api(td_u32 ioctl_cmd, td_void *para) +{ + td_handle handle = *(td_handle *)para; + + if (ioctl_cmd == DRV_VAU_CMD_CREATE) { + vau_err("uapi_vau_create:handle = %u", handle); + } else if (ioctl_cmd == DRV_VAU_CMD_DESTROY) { + vau_err("uapi_vau_destroy:handle = %u", handle); + } else if (ioctl_cmd == DRV_VAU_CMD_CANCEL) { + vau_err("uapi_vau_cancel:handle = %u", handle); + } else if (ioctl_cmd == DRV_VAU_CMD_WAIT_FOR_DONE) { + vau_err("uapi_vau_wait_for_done:handle = %u", handle); + } else if (ioctl_cmd == DRV_VAU_CMD_FILL) { + drv_vau_blit_cmd *blit_cmd = (drv_vau_blit_cmd *)para; + handle = blit_cmd->hanlde; + vau_err("uapi_vau_fill:handle = %u", handle); + } else if (ioctl_cmd == DRV_VAU_CMD_BLIT) { + drv_vau_blit_cmd *blit_cmd = (drv_vau_blit_cmd *)para; + handle = blit_cmd->hanlde; + vau_err("uapi_vau_render:handle = %u", handle); + } else if (ioctl_cmd == DRV_VAU_CMD_COMPOSE) { + drv_vau_blit_cmd *blit_cmd = (drv_vau_blit_cmd *)para; + handle = blit_cmd->hanlde; + vau_err("uapi_vau_compose:handle = %u", handle); + } else if (ioctl_cmd == DRV_VAU_CMD_SUBMIT) { + drv_vau_submit_cmd *submit_cmd = (drv_vau_submit_cmd *)para; + handle = submit_cmd->handle; + vau_err("uapi_vau_submit:handle = %u", handle); + } else { + } +} td_s32 vau_ioctl(td_s32 module_idx, td_ulong ioctl_cmd, td_void *para) { uapi_unused(module_idx); @@ -142,7 +185,13 @@ td_s32 vau_ioctl(td_s32 module_idx, td_ulong ioctl_cmd, td_void *para) return EXT_FAILURE; } - return (td_s32)g_vau_ioctl_cmd_list[ioctl_cmd].handler((td_u32)ioctl_cmd, para, TD_NULL); + td_s32 ret = (td_s32)g_vau_ioctl_cmd_list[ioctl_cmd].handler((td_u32)ioctl_cmd, para, TD_NULL); + + vau_dfx_info *vau_info = vau_dfx_get_info(); + if (vau_info->is_print_vau_api) { + vau_print_api((td_u32)ioctl_cmd, para); + } + return ret; } static td_s32 vau_register_device(td_void) diff --git a/code/sdk/middleware/services/gpu/drv/vau/list/vau_list.c b/code/sdk/middleware/services/gpu/drv/vau/list/vau_list.c index 61021a3a7..61e957fd8 100644 --- a/code/sdk/middleware/services/gpu/drv/vau/list/vau_list.c +++ b/code/sdk/middleware/services/gpu/drv/vau/list/vau_list.c @@ -9,6 +9,7 @@ #include "vau_handle.h" #include "vau_hal.h" #include "vau_hal_apb.h" +#include "drv_vau.h" static osal_wait g_vau_block_job_wq; /* wait queue used to block */ static vau_sw_job_mgr *g_vau_sw_job_list; @@ -345,11 +346,7 @@ static td_void vau_list_timeout_resume(td_void) vau_mem_check_psram_addr(); vau_dfx_proc_read(0, TD_NULL); -#ifdef CONFIG_VAU_DFX_DEBUG - if (vau_dfx_check_mask(VAU_DBG_MASK_PRINT_ERROR_REG)) { - vau_hal_apb_print_all_reg(); - } -#endif + vau_hal_apb_print_all_reg(); if (!g_vau_sw_job_list->dbg.no_reset) { vau_hal_init(); } else { diff --git a/code/sdk/middleware/services/gui/hal/common/include/graphic_hardware_config.h b/code/sdk/middleware/services/gui/hal/common/include/graphic_hardware_config.h index d7600008a..f17058a96 100644 --- a/code/sdk/middleware/services/gui/hal/common/include/graphic_hardware_config.h +++ b/code/sdk/middleware/services/gui/hal/common/include/graphic_hardware_config.h @@ -180,5 +180,6 @@ #endif #define CAPABILITY_HW_SUPPORT_EMOJI 1 +#define CAPABILITY_SW_DFX_FRAME_TRACE 1 #endif // GRAPHIC_HARDWARE_CONFIG_H diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a index 27157881b..8669dfe77 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-cli/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a index 0350cd3e4..270e21e26 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-auto-ota-ser/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a index 59bc0edf7..19047e880 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-native-js/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a index 0837f3f48..11ca32e68 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target1/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a index 720c006b8..a3d1483c7 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target3/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a index 5c4300bc9..2d58be448 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-target5/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a b/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a index 61eca72d2..36e4f2d2d 100644 Binary files a/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a and b/code/sdk/middleware/services/gui/hal/display/brandy-xts/libdisplay_gfx.a differ diff --git a/code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a b/code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a index 88f5cde6a..7695c175e 100644 Binary files a/code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a and b/code/sdk/middleware/services/gui/lvgl/brandy-target1/liblvgl_proprietary_mini.a differ diff --git a/code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a b/code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a index b9c415911..185a1b411 100644 Binary files a/code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a and b/code/sdk/middleware/services/gui/lvgl/brandy-target5/liblvgl_proprietary.a differ diff --git a/code/sdk/middleware/services/gui/lvgl/proprietary/src/dfx/lv_key_injector.c b/code/sdk/middleware/services/gui/lvgl/proprietary/src/dfx/lv_key_injector.c index 269afb732..4b0bc4e82 100644 --- a/code/sdk/middleware/services/gui/lvgl/proprietary/src/dfx/lv_key_injector.c +++ b/code/sdk/middleware/services/gui/lvgl/proprietary/src/dfx/lv_key_injector.c @@ -7,6 +7,7 @@ #if LV_USE_LOW_POWER_MANAGER #include "lv_low_power_manager.h" #endif +#include "misc/lv_assert.h" static lv_ll_t g_keyInjectorDataLL; diff --git a/code/sdk/middleware/services/gui/lvgl/proprietary/src/porting/lv_input_device.c b/code/sdk/middleware/services/gui/lvgl/proprietary/src/porting/lv_input_device.c index 02e9b1b34..4c5042a14 100644 --- a/code/sdk/middleware/services/gui/lvgl/proprietary/src/porting/lv_input_device.c +++ b/code/sdk/middleware/services/gui/lvgl/proprietary/src/porting/lv_input_device.c @@ -3,10 +3,11 @@ */ #include "lv_input_device.h" -#include "input_manager.h" #if LV_USE_LOW_POWER_MANAGER #include "lv_low_power_manager.h" #endif +#include "input_manager.h" +#include "stdlib.h" static lv_indev_data_t g_curTouchData = {0}; static bool g_isPendingTouchData = false; diff --git a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a index 6e0a9d68a..1666ee2ed 100644 Binary files a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-cli/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a index b5452d09c..04e7a6a01 100644 Binary files a/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-auto-ota-ser/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a index 6624747c4..a163d4e29 100644 Binary files a/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-native-js/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a index 2f4a90cf3..97a2fe0c3 100644 Binary files a/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-target3/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a b/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a index fbe92fbbb..a3bd2052c 100644 Binary files a/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a and b/code/sdk/middleware/services/gui/uikit/brandy-xts/libuikit_ext.a differ diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/common/text_ext.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/common/text_ext.h index f29ad3b61..d4c923382 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/common/text_ext.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/common/text_ext.h @@ -55,13 +55,15 @@ public: */ ~TextExt() override; + void SetText(const char* text) override; + #if ENABLE_FONT_VECTOR_GLOBAL /** * @brief Set the text string by text id. * * @param textId Index of text array. */ - void SetText(uint16_t textId); + void SetTextId(uint16_t textId); /** * @brief Reset text string by text id. @@ -93,7 +95,6 @@ protected: #endif private: - using Text::SetText; uint16_t textId_ = FontGlobalManager::INVALID_TEXT_ID; #if ENABLE_SHAPING bool isNeedShaping_ = 0; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_cross_view.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_cross_view.h index 29a95862b..3643000ee 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_cross_view.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_cross_view.h @@ -218,6 +218,15 @@ public: blurRadius_ = radius; } + /** + * @brief Set the compensation distance after a finger lifts the screen. + * @param value Indicates the compensation distance to set. + * @param direction The target direction: 0 means horizontal direction, 1 means vertical direction. + * @since 1.0 + * @version 1.0 + */ + void SetSwipeACCLevel(uint8_t value, uint8_t direction = 0); + private: using UIViewGroup::Remove; uint16_t blurRadius_ = 10; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_list_ext.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_list_ext.h index f39d0bf37..32d1006d5 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_list_ext.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_list_ext.h @@ -36,6 +36,7 @@ #define GRAPHIC_UI_LIST_EXT_H #include "graphic_config.h" #include "components/ui_list.h" +#include "gfx_utils/vector.h" namespace OHOS { /** @@ -83,10 +84,24 @@ public: scaleFactor_ = value; } + /** + * @brief Sets the spacing between items. + * + * @param value Indicates spacing between items. + */ + void SetItemSpace(uint16_t value) + { + space_ = value; + } + void ReMeasure() override; private: + void ModifyItemSpace(int16_t centerIndex); + void ModifyMidAdjSpace(int16_t centerIndex, int16_t& prevIndex, int16_t& nextIndex); int16_t scaleFactor_ = 400; // 400: default scale factor. + uint16_t space_ = 0; + Graphic::Vector items_; }; } // OHOS #endif // GRAPHIC_UI_LIST_EXT_H diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_menu_item.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_menu_item.h index 4a4cd6183..29c4c2890 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_menu_item.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_menu_item.h @@ -294,10 +294,7 @@ public: * @since 1.0 * @version 1.0 */ - Vector2 GetScaleCenter() - { - return itemScaleCenter_; - } + Vector2 GetScaleCenter(); void ReMeasure() override; void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override; @@ -306,19 +303,13 @@ public: private: void InitUILabelExt(); void InitUIImageView(); - void SetScaleCenter(); UIImageView* image_; UILabelExt* label_; - Rect textOrigRect_; - Rect imgOrigRect_; uint8_t labelLineBreakMode_; bool needRefresh_; int16_t imgOffset_ = 0; int16_t textOffset_ = 20; // 20: default text offset. - Vector2 textScaleCenter_ = {0.0, 0.0}; - Vector2 imgScaleCenter_ = {0.0, 0.0}; - Vector2 itemScaleCenter_ = {0.0, 0.0}; ScaleAlignMode transAlignMode_ = ScaleAlignMode::ALIGN_ITEM_CENTER; UIImageView::ImageResizeMode resizeMode_ = UIImageView::CONTAIN; }; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_transform_list.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_transform_list.h index 863756e71..1727e0101 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_transform_list.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/components/ui_transform_list.h @@ -94,6 +94,7 @@ protected: void ReMeasure() override; private: + void ModifyMidAdjSpace(int16_t centerIndex, int16_t& prevIndex, int16_t& nextIndex); TransformFunc transformFunc_; uint16_t space_; Graphic::Vector items_; diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/dfx/dfx_frame_trace.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/dfx/dfx_frame_trace.h index c2519d10f..9e1d45094 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/dfx/dfx_frame_trace.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/dfx/dfx_frame_trace.h @@ -18,7 +18,6 @@ #include #include "tcxo.h" #include "graphic_config.h" -#include "gfx_utils/vector.h" #include "components/ui_view.h" #include "components/root_view.h" #include "common/graphic_utils.h" @@ -37,6 +36,10 @@ #define FRAME_TRACE_SET_RECT(rect) DfxFrameTrace::GetInstance().SetDrawRect(rect) #define FRAME_TRACE_END_TRACE() DfxFrameTrace::GetInstance().EndTrace() #define FRAME_TRACE_SHOW() DfxFrameTrace::GetInstance().ShowFrameTrace() +#define EVENT_TRACE_START() DfxFrameTrace::GetInstance().EventTraceStart() +#define EVENT_TRACE_END() DfxFrameTrace::GetInstance().EventTraceEnd() +#define TASK_TRACE_START() DfxFrameTrace::GetInstance().TaskTraceStart() +#define TASK_TRACE_END() DfxFrameTrace::GetInstance().TaskTraceEnd() #else #define FRAME_TRACE_START(type) #define FRAME_TRACE_END(type, prect) @@ -45,6 +48,10 @@ #define FRAME_TRACE_SET_RECT(rect) #define FRAME_TRACE_END_TRACE() #define FRAME_TRACE_SHOW() +#define EVENT_TRACE_START() +#define EVENT_TRACE_END() +#define TASK_TRACE_START() +#define TASK_TRACE_END() #endif namespace OHOS { @@ -76,16 +83,16 @@ public: DfxFrameTrace& operator=(DfxFrameTrace&) = delete; void EnableFrameTrace(int enable) { - enableTrace_ = enable; + traceCount_ = enable; } void BeginTrace() { - beginTrace_ = enableTrace_ > 0 ? true : false; + beginTrace_ = traceCount_ > 0 ? true : false; if (beginTrace_) { isNativeRunning_ = IsNativeRunning(); freq_ = GetFrequence(); - --enableTrace_; + --traceCount_; } } @@ -103,7 +110,12 @@ public: void FrameTraceStart(FrameTraceType type); void FrameTraceEnd(FrameTraceType type, const Rect *rect = nullptr); - void ShowFrameTrace() const; + void ShowFrameTrace(); + + void EventTraceStart(); + void EventTraceEnd(); + void TaskTraceStart(); + void TaskTraceEnd(); private: DfxFrameTrace() @@ -123,12 +135,85 @@ private: void RecordStart(FrameTraceType type); void RecordEnd(FrameTraceType type, const Rect *rect); static constexpr int32_t DRAW_RECORD_MAX = 128; - struct { + struct FrameTrace { FrameTraceType cmd; uint64_t preTime; uint64_t costTime; bool isNeedWait; } trace_[DRAW_RECORD_MAX]; + + struct FrameRecord { + FrameRecord() : totalTime(0), isNativeRunning(0), freq(0), pathCnt(0), + drawCount(0), trace(nullptr), rect(nullptr) + { + ++frmCnt_; + } + + ~FrameRecord() + { + if (trace != nullptr) { + delete []trace; + trace = nullptr; + } + if (rect != nullptr) { + delete []rect; + rect = nullptr; + } + --frmCnt_; + } + uint64_t totalTime; + int isNativeRunning; + int freq; + int pathCnt; + int drawCount; + Rect drawRect; + FrameTrace *trace; + Rect *rect; + }; + + struct TaskRecord { + TaskRecord() : startTime(0), endTime(0), frameInfo(nullptr), next(nullptr) + { + ++tskCnt_; + } + ~TaskRecord() + { + if (frameInfo != nullptr) { + delete frameInfo; + frameInfo = nullptr; + } + --tskCnt_; + } + uint64_t startTime; + uint64_t endTime; + FrameRecord *frameInfo; + TaskRecord *next; + }; + + struct EventRecord { + EventRecord() : startTime(0), endTime(0), tasks(nullptr), tailTsk(nullptr), next(nullptr) + { + ++evtCnt_; + } + ~EventRecord() + { + --evtCnt_; + } + uint64_t startTime; + uint64_t endTime; + TaskRecord *tasks; + TaskRecord *tailTsk; + EventRecord *next; + }; + + void WriteFrameRecord(FrameRecord *frame) const; + void ShowFrameRecord(FrameRecord *frame) const; + void ShowEventRecord() const; + void ClearEvents(); + + static int evtCnt_; + static int tskCnt_; + static int frmCnt_; Rect rect_[DRAW_RECORD_MAX]; int pathCnt_ = 0; int pathIndex_ = -1; @@ -138,10 +223,14 @@ private: uint64_t endTime_ = 0; int32_t drawCount_ = 0; int32_t drawStack_ = 0; - int enableTrace_ = 0; + int traceCount_ = 0; bool beginTrace_ = false; int isNativeRunning_ = 0; int freq_ = 0; + EventRecord *events_ = nullptr; + EventRecord *tailEvt_ = nullptr; + bool eventRecording_ = false; + bool taskRecording_ = false; }; } // OHOS #endif // GRAPHIC_LITE_DFX_FRAME_TRACE_H diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h index 2171f6c51..99a4eb58e 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/include/service/graphic_service.h @@ -78,6 +78,11 @@ public: */ int IsNativeRunning() const; + /** + * @brief Return whether current task is native ui task + */ + static bool IsNativeUITask(); + /** * @brief Return whether screen is on or not. */ @@ -126,14 +131,10 @@ public: */ void GpuResetEnd(void); -#ifdef ENABLE_CMSIS static void NativeMainThread(void* args); static void RtcEventThread(void* args); -#else - static void* NativeMainThread(void* args); - static void* RtcEventThread(void* args); -#endif + OHOS::GraphicMutex switchMutex_; // ensure that js syncHwDraw and native SetNativeUIRunning run in sync private: friend class GraphicEventHandler; static VsyncCallback jsVsyncCallback_; @@ -142,6 +143,7 @@ private: static osal_atomic isScreenOn_; static OHOS::GraphicMutex rtcEventMutex_; static OHOS::GraphicCond rtcEventCond_; + static bool isJsTaskFinished_; // ensure that native task run after js task is finished bool isGpuReseting = false; void DecreaseTriggerCount(); void SetUpRootView(); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_event_handler.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_event_handler.cpp index 1a1559fb4..eacb14266 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_event_handler.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_event_handler.cpp @@ -15,6 +15,7 @@ #include "graphic_event_handler.h" #include "dfx/dfx_record.h" +#include "dfx/dfx_frame_trace.h" #include "common/low_power_manager.h" #include "gfx_utils/graphic_log.h" @@ -34,7 +35,9 @@ void GraphicEventHandler::Run() GraphicEvent event = std::move(eventQueue_.front()); eventQueue_.pop(); queueMutex_.Unlock(); + EVENT_TRACE_START(); event(); + EVENT_TRACE_END(); DfxRecordShow(); } } diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp index 79f569bd5..9b9d8f7b2 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service.cpp @@ -38,6 +38,7 @@ #ifdef SUPPORT_GPU_JPEG #include "drv_jpeg_intf.h" #endif +#include "cmsis_os2.h" VsyncCallback GraphicService::jsVsyncCallback_; osal_atomic GraphicService::isNativeRunning_{1}; @@ -45,9 +46,12 @@ osal_atomic GraphicService::graphicTaskTriggeredCount_{0}; osal_atomic GraphicService::isScreenOn_{0}; OHOS::GraphicMutex GraphicService::rtcEventMutex_; OHOS::GraphicCond GraphicService::rtcEventCond_; +bool GraphicService::isJsTaskFinished_ = true; +#ifdef _WIN32 +static uint32_t nativeUITaskId_ = 0xFFFFFFFF; +#endif static ThreadId g_rtcEventThreadId; static ThreadId g_mainThreadId; - GraphicService::GraphicService() {} GraphicService::~GraphicService() {} @@ -63,8 +67,9 @@ bool GraphicService::SyncTriggerJSGraphicTask() GRAPHIC_LOGI("Trigger JS Task failed. Native is running or Graphic Task is already triggered."); return false; } - + isJsTaskFinished_ = false; OHOS::TaskManager::GetInstance()->TaskHandler(); + isJsTaskFinished_ = true; return true; } @@ -74,10 +79,10 @@ bool GraphicService::AsyncTriggerNativeGraphicTask() osal_atomic_inc(&graphicTaskTriggeredCount_); OHOS::GraphicEventHandler::GetInstance()->PostGraphicEvent( [] { - if (GraphicService::GetInstance()->IsScreenOn()) { + if (GraphicService::GetInstance()->IsScreenOn() && isJsTaskFinished_) { OHOS::TaskManager::GetInstance()->TaskHandler(); } else { - GRAPHIC_LOGW("ignore redundant task when screen is off\n"); + GRAPHIC_LOGW("ignore redundant task when screen is off or js task is not finished\n"); } GraphicService::GetInstance()->DecreaseTriggerCount(); }, @@ -89,6 +94,7 @@ bool GraphicService::AsyncTriggerNativeGraphicTask() void GraphicService::SetNativeUIRunning(bool isRunning) { + switchMutex_.Lock(); if (isRunning) { osal_atomic_set(&isNativeRunning_, 1); } else { @@ -96,6 +102,7 @@ void GraphicService::SetNativeUIRunning(bool isRunning) OHOS::GraphicEventHandler::GetInstance()->ClearGraphicEvent(); osal_atomic_set(&graphicTaskTriggeredCount_, 0); } + switchMutex_.Unlock(); } int GraphicService::IsNativeRunning() const @@ -163,18 +170,22 @@ void GraphicService::EnableAsyncMode(bool enable) OHOS::LiteMGfxEngine::GetInstance()->EnableAsyncMode(enable); } -#ifdef ENABLE_CMSIS -void GraphicService::NativeMainThread(void* args) +bool GraphicService::IsNativeUITask() { - OHOS::GraphicEventHandler::GetInstance()->Run(); -} +#ifdef _WIN32 + return nativeUITaskId_ == GetCurrentThreadId(); #else -void* GraphicService::NativeMainThread(void* args) + return (strcmp(osThreadGetName(osThreadGetId()), "GuiMainThread") == 0); +#endif +} + +void GraphicService::NativeMainThread(void* args) { +#ifdef _WIN32 + nativeUITaskId_ = GetCurrentThreadId(); +#endif OHOS::GraphicEventHandler::GetInstance()->Run(); - return nullptr; } -#endif void GraphicService::UpdateGraphicEvent() { @@ -184,11 +195,7 @@ void GraphicService::UpdateGraphicEvent() rtcEventCond_.Signal(); } -#ifdef ENABLE_CMSIS void GraphicService::RtcEventThread(void* args) -#else -void* GraphicService::RtcEventThread(void* args) -#endif { while (true) { rtcEventMutex_.Lock(); @@ -204,9 +211,6 @@ void* GraphicService::RtcEventThread(void* args) jsVsyncCallback_(); } } -#if !defined(ENABLE_CMSIS) - return nullptr; -#endif } void GraphicService::SetUpRootView(void) @@ -235,9 +239,7 @@ bool GraphicService::InitGraphicService() UIThreadAttr rtcAttr; rtcAttr.name = "RtcEventThread"; rtcAttr.stackSize = 0x800u; -#ifdef ENABLE_CMSIS rtcAttr.priority = static_cast(osPriorityAboveNormal2); -#endif g_rtcEventThreadId = (ThreadId)ThreadCreate((Runnable)GraphicService::RtcEventThread, nullptr, &rtcAttr); if (g_rtcEventThreadId == nullptr) { GRAPHIC_LOGE("%s: create thread fail\n", __func__); @@ -247,9 +249,7 @@ bool GraphicService::InitGraphicService() UIThreadAttr mainAttr; mainAttr.name = "GuiMainThread"; mainAttr.stackSize = 0x6000u; -#ifdef ENABLE_CMSIS mainAttr.priority = static_cast(osPriorityAboveNormal2); -#endif g_mainThreadId = (ThreadId)ThreadCreate((Runnable)GraphicService::NativeMainThread, nullptr, &mainAttr); if (g_mainThreadId == nullptr) { GRAPHIC_LOGE("create thread fail\n"); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_list_ext.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_list_ext.cpp index 628788d7d..71ee16487 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_list_ext.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_list_ext.cpp @@ -1,49 +1,149 @@ -/* - * Copyright (c) 2023 CompanyNameMagicTag. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "components/ui_list_ext.h" -#include "animator/easing_equation.h" -#include "components/ui_menu_item.h" - -namespace OHOS { -void UIListExt::ReMeasure() -{ - UIMenuItem* view = static_cast(GetChildrenHead()); - if (view == nullptr) { - return; - } - - int16_t x; - int16_t y; - int16_t midX = GetX() + GetWidth() / 2; - int16_t midY = GetY() + GetHeight() / 2; - do { - x = view->GetX(); - y = view->GetY(); - if (direction_ == VERTICAL) { - int offset = (y + view->GetHeight() / 2 - midY); - int temp = EasingEquation::SineEaseIn(0, scaleFactor_, abs(offset), scaleFactor_); - float scale = 1.0 - (static_cast(temp) / scaleFactor_); - view->Scale(Vector2(scale, scale), view->GetScaleCenter()); - } else { - int offset = (x + view->GetWidth() / 2 - midX); - int temp = EasingEquation::SineEaseIn(0, scaleFactor_, abs(offset), scaleFactor_); - float scale = 1.0 - (static_cast(temp) / scaleFactor_); - view->Scale(Vector2(scale, scale), view->GetScaleCenter()); - } - view = static_cast(view->GetNextSibling()); - } while (view != nullptr); -} -} // namespace OHOS +/* + * Copyright (c) 2023 CompanyNameMagicTag. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "components/ui_list_ext.h" +#include "animator/easing_equation.h" +#include "components/ui_menu_item.h" + +namespace OHOS { +void UIListExt::ReMeasure() +{ + UIMenuItem* view = static_cast(GetChildrenHead()); + if (view == nullptr) { + return; + } + + int16_t x; + int16_t y; + int16_t midX = GetX() + GetWidth() / 2; + int16_t midY = GetY() + GetHeight() / 2; + items_.Clear(); + int16_t centerIndex; + do { + x = view->GetX(); + y = view->GetY(); + items_.PushBack(view); + view->Translate(Vector2(0, 0)); // ignore previous translate to set right transform + if (direction_ == VERTICAL) { + int offset = (y + view->GetHeight() / 2 - midY); + int temp = EasingEquation::SineEaseIn(0, scaleFactor_, abs(offset), scaleFactor_); + float scale = 1.0 - (static_cast(temp) / scaleFactor_); + view->Scale(Vector2(scale, scale), view->GetScaleCenter()); + if ((y <= midY) && (y + view->GetHeight() > midY)) { + centerIndex = items_.Size() - 1; + } + } else { + int offset = (x + view->GetWidth() / 2 - midX); + int temp = EasingEquation::SineEaseIn(0, scaleFactor_, abs(offset), scaleFactor_); + float scale = 1.0 - (static_cast(temp) / scaleFactor_); + view->Scale(Vector2(scale, scale), view->GetScaleCenter()); + if ((x <= midX) && (x + view->GetWidth() > midX)) { + centerIndex = items_.Size() - 1; + } + } + view = static_cast(view->GetNextSibling()); + } while (view != nullptr); + ModifyItemSpace(centerIndex); +} + +void UIListExt::ModifyMidAdjSpace(int16_t centerIndex, int16_t& prevIndex, int16_t& nextIndex) +{ + Rect centerRect = items_[centerIndex]->GetRect(); + if (direction_ == VERTICAL) { + int16_t centerY = centerRect.GetTop() + (centerRect.GetHeight() >> 1); + int16_t midY = GetHeight() / 2; + if (centerY == midY) { + return; + } + if (centerY > midY) { + prevIndex = centerIndex - 1; + } else { + nextIndex = centerIndex + 1; + } + if ((prevIndex >= 0) && (nextIndex < items_.Size())) { + Rect prevRect = items_[prevIndex]->GetRect(); + Rect nextRect = items_[nextIndex]->GetRect(); + int16_t prevMidY = prevRect.GetTop() + (prevRect.GetHeight() >> 1); + int16_t nextMidY = nextRect.GetTop() + (nextRect.GetHeight() >> 1); + int16_t delta = space_ - (nextRect.GetTop() - prevRect.GetBottom()); + int16_t prevOffst = (midY - prevMidY) * delta * 1.0f / (nextMidY - prevMidY); + int16_t nextOffst = (nextMidY - midY) * delta * 1.0f / (nextMidY - prevMidY); + items_[prevIndex]->Translate(Vector2(0, -prevOffst)); + items_[nextIndex]->Translate(Vector2(0, nextOffst)); + } + } else { + int16_t centerX = centerRect.GetLeft() + (centerRect.GetWidth() >> 1); + int16_t midX = GetWidth() / 2; + if (centerX == midX) { + return; + } + if (centerX > midX) { + prevIndex = centerIndex - 1; + } else { + nextIndex = centerIndex + 1; + } + if ((prevIndex >= 0) && (nextIndex < items_.Size())) { + Rect prevRect = items_[prevIndex]->GetRect(); + Rect nextRect = items_[nextIndex]->GetRect(); + int16_t prevMidX = prevRect.GetLeft() + (prevRect.GetWidth() >> 1); + int16_t nextMidX = nextRect.GetLeft() + (nextRect.GetWidth() >> 1); + int16_t delta = space_ - (nextRect.GetLeft() - prevRect.GetRight()); + int16_t prevOffst = (midX - prevMidX) * delta * 1.0f / (nextMidX - prevMidX); + int16_t nextOffst = (nextMidX - midX) * delta * 1.0f / (nextMidX - prevMidX); + items_[prevIndex]->Translate(Vector2(-prevOffst, 0)); + items_[nextIndex]->Translate(Vector2(nextOffst, 0)); + } + } +} + +void UIListExt::ModifyItemSpace(int16_t centerIndex) +{ + int16_t prevIndex = centerIndex; + int16_t nextIndex = centerIndex; + // Step 1. only modify two neighboring items in the middle to ensure smoothly scrolling + ModifyMidAdjSpace(centerIndex, prevIndex, nextIndex); + Rect curRect; + Rect preRect; + int16_t diff = 0; + // Step 2. modify other items space + if (direction_ == VERTICAL) { + for (int16_t i = prevIndex - 1; i >= 0; i--) { + curRect = items_[i]->GetRect(); + preRect = items_[i + 1]->GetRect(); + diff = preRect.GetTop() - space_ - curRect.GetBottom(); + items_[i]->Translate(Vector2(0, diff)); + } + for (int16_t i = nextIndex + 1; i < items_.Size(); i++) { + curRect = items_[i]->GetRect(); + preRect = items_[i - 1]->GetRect(); + diff = preRect.GetBottom() + space_ - curRect.GetTop(); + items_[i]->Translate(Vector2(0, diff)); + } + } else { + for (int16_t i = prevIndex - 1; i >= 0; i--) { + curRect = items_[i]->GetRect(); + preRect = items_[i + 1]->GetRect(); + diff = preRect.GetLeft() - space_ - curRect.GetRight(); + items_[i]->SetX(items_[i]->GetX() + diff); + } + for (int16_t i = nextIndex + 1; i < items_.Size(); i++) { + curRect = items_[i]->GetRect(); + preRect = items_[i - 1]->GetRect(); + diff = preRect.GetRight() + space_ - curRect.GetLeft(); + items_[i]->SetX(items_[i]->GetX() + diff); + } + } +} +} // namespace OHOS diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_lite_surface_view.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_lite_surface_view.cpp index 1c93fb728..b1aba5c57 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_lite_surface_view.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_lite_surface_view.cpp @@ -350,6 +350,10 @@ void UILiteSurfaceView::OnBufferAvailable() GraphicService::GetInstance()->PostGraphicEvent( [&, ws] { if (!ws.expired()) { + if (!GraphicService::GetInstance()->IsScreenOn()) { + isStopped_ = true; // Do not process video frame, when screen off and dpu suspended. + return; + } LiteMGfxEngine::GetInstance()->EnableAsyncMode(false); LiteMGfxEngine::GetInstance()->AddHardwareLayer(this); DisplayDev::GetInstance()->SetLayerColorKey(LAYER_0, true, colorKey_.full); diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_menu_item.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_menu_item.cpp index 9bd12fbec..165921993 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_menu_item.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/components/ui_menu_item.cpp @@ -38,34 +38,21 @@ UIMenuItem::~UIMenuItem() } } -void UIMenuItem::SetScaleCenter() +Vector2 UIMenuItem::GetScaleCenter() { - int16_t itemOrigX = GetContentRect().GetX(); - int16_t itemOrigY = GetContentRect().GetY(); + int16_t itemOrigX = GetOrigRect().GetX(); + int16_t itemOrigY = GetOrigRect().GetY(); if (transAlignMode_ == ScaleAlignMode::ALIGN_TEXT_LEFT) { - textScaleCenter_ = Vector2{0.0, textOrigRect_.GetHeight() / 2.0f}; - imgScaleCenter_ = Vector2{textOrigRect_.GetLeft() - imgOrigRect_.GetLeft(), - textOrigRect_.GetTop() + textScaleCenter_.y_ - imgOrigRect_.GetTop()}; - itemScaleCenter_ = Vector2{textOrigRect_.GetLeft() - itemOrigX, - textOrigRect_.GetTop() + textScaleCenter_.y_ - itemOrigY}; + return Vector2{label_->GetX(), label_->GetHeight() / 2.0f}; } else if (transAlignMode_ == ScaleAlignMode::ALIGN_IMAGE_LEFT) { - imgScaleCenter_ = Vector2{0.0, imgOrigRect_.GetHeight() / 2.0f}; - textScaleCenter_ = Vector2{imgOrigRect_.GetLeft() - textOrigRect_.GetLeft(), - imgOrigRect_.GetTop() + imgScaleCenter_.y_ - textOrigRect_.GetTop()}; - itemScaleCenter_ = Vector2{imgOrigRect_.GetLeft() - itemOrigX, - imgOrigRect_.GetTop() + imgScaleCenter_.y_ - itemOrigY}; - } else if (transAlignMode_ == ScaleAlignMode::ALIGN_ITEM_CENTER) { - itemScaleCenter_ = Vector2{GetWidth() / 2.0f, GetHeight() / 2.0f}; - textScaleCenter_ = Vector2{itemOrigX + itemScaleCenter_.x_ - textOrigRect_.GetLeft(), - itemOrigY + itemScaleCenter_.y_ - textOrigRect_.GetTop()}; - imgScaleCenter_ = Vector2{itemOrigX + itemScaleCenter_.x_ - imgOrigRect_.GetLeft(), - itemOrigY + itemScaleCenter_.y_ - imgOrigRect_.GetTop()}; + return Vector2{image_->GetX(), image_->GetHeight() / 2.0f}; + } else { + return Vector2{GetWidth() / 2.0f, GetHeight() / 2.0f}; } } void UIMenuItem::ReMeasure() { - Rect contentRect = GetContentRect(); if (needRefresh_) { if (image_ != nullptr) { image_->SetPosition(imgOffset_, 0, GetHeight(), GetHeight()); @@ -81,29 +68,15 @@ void UIMenuItem::ReMeasure() } } needRefresh_ = false; - if (image_ != nullptr) { - imgOrigRect_ = contentRect; - imgOrigRect_.SetX(contentRect.GetX() + imgOffset_); - imgOrigRect_.SetWidth(GetHeight()); - } - - if (label_ != nullptr) { - textOrigRect_ = contentRect; - textOrigRect_.SetLeft(imgOrigRect_.GetRight() + textOffset_); - } - - SetScaleCenter(); - TransformMap transMap = GetTransformMap(); + TransformMap transMap; if (image_ != nullptr) { - transMap.SetTransMapRect(imgOrigRect_); - transMap.Scale(transMap.GetScaleCoef(), Vector3{imgScaleCenter_.x_, imgScaleCenter_.y_, 0.0}); + transMap.SetMatrix(GetTransformMap().GetOrigTransformMatrix()); image_->SetTransformMap(transMap); } if (label_ != nullptr) { - transMap.SetTransMapRect(textOrigRect_); - transMap.Scale(transMap.GetScaleCoef(), Vector3{textScaleCenter_.x_, textScaleCenter_.y_, 0.0}); + transMap.SetMatrix(GetTransformMap().GetOrigTransformMatrix()); label_->SetTransformMap(transMap); } } diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_frame_trace.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_frame_trace.cpp index 5e8bdd1b9..06b7cf607 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_frame_trace.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/dfx/dfx_frame_trace.cpp @@ -39,6 +39,10 @@ static struct { {FrameTraceType::HW_DRAW_ARC_RECT, "hw_arc_rect"}, }; +int DfxFrameTrace::evtCnt_ = 0; +int DfxFrameTrace::tskCnt_ = 0; +int DfxFrameTrace::frmCnt_ = 0; + uint64_t DfxFrameTrace::GetDuration(uint64_t start, uint64_t end) const { uint64_t dur = end >= start ? end - start : UINT64_MAX - start + end + 1; @@ -117,35 +121,27 @@ void DfxFrameTrace::RecordEnd(FrameTraceType type, const Rect *rect) ++drawCount_; } -void DfxFrameTrace::ShowFrameTrace() const +void DfxFrameTrace::ShowFrameTrace() { if (!beginTrace_) { return; } - uint64_t totalTime = GetDuration(firstDrawTime_, endTime_); - printf("\nisNativeRunning %d, freq %d", isNativeRunning_, freq_); - printf("\nCmd count: %d time: %llu, {%d %d %d %d}\n", drawCount_, totalTime, - drawRect_.GetLeft(), drawRect_.GetTop(), drawRect_.GetRight(), drawRect_.GetBottom()); - for (int32_t i = 0; i < drawCount_; ++i) { - if (trace_[i].cmd == FrameTraceType::HW_DRAW_PATH) { - printf("%d. %s: %llu, %llu, %d\n", - i, ToString(trace_[i].cmd).c_str(), trace_[i].preTime, trace_[i].costTime, pathCnt_); - continue; - } - if (trace_[i].cmd == FrameTraceType::HW_DRAW_SUBMIT) { - printf("%d. %s: %llu, %llu, %d\n", - i, ToString(trace_[i].cmd).c_str(), trace_[i].preTime, trace_[i].costTime, trace_[i].isNeedWait); - continue; - } - if (!rect_[i].IsValid()) { - printf("%d. %s: %llu, %llu\n", i, ToString(trace_[i].cmd).c_str(), trace_[i].preTime, trace_[i].costTime); - continue; - } - printf("%d. %s: %llu, %llu, {%d, %d, %d, %d}\n", - i, ToString(trace_[i].cmd).c_str(), trace_[i].preTime, trace_[i].costTime, - rect_[i].GetLeft(), rect_[i].GetTop(), rect_[i].GetRight(), rect_[i].GetBottom()); + if (events_ == nullptr || !eventRecording_ || !taskRecording_) { + return; + } + EventRecord &curEvt = *tailEvt_; + if (curEvt.tasks == nullptr) { + return; } + + FrameRecord *record = new (std::nothrow) FrameRecord; + if (record == nullptr) { + return; + } + WriteFrameRecord(record); + TaskRecord &curTask = *curEvt.tailTsk; + curTask.frameInfo = record; } void DfxFrameTrace::ClearState() @@ -174,4 +170,172 @@ std::string DfxFrameTrace::ToString(FrameTraceType type) const } return ""; } + +void DfxFrameTrace::WriteFrameRecord(FrameRecord *frame) const +{ + if (frame == nullptr) { + return; + } + uint64_t totalTime = GetDuration(firstDrawTime_, endTime_); + frame->totalTime = totalTime; + frame->isNativeRunning = isNativeRunning_; + frame->freq = freq_; + frame->pathCnt = pathCnt_; + frame->drawRect = drawRect_; + if (drawCount_ <= 0) { + return; + } + frame->drawCount = drawCount_; + frame->trace = new (std::nothrow) FrameTrace[drawCount_]; + frame->rect = new (std::nothrow) Rect[drawCount_]; + if (frame->trace == nullptr || frame->rect == nullptr) { + return; + } + for (int i = 0; i < drawCount_; ++i) { + frame->trace[i] = trace_[i]; + frame->rect[i] = rect_[i]; + } +} + +void DfxFrameTrace::ShowFrameRecord(FrameRecord *frame) const +{ + if (frame == nullptr) { + return; + } + int drawCnt = frame->drawCount; + printf(" isNativeRunning %d, freq %d\n", frame->isNativeRunning, frame->freq); + printf(" Cmd count: %d time: %llu, {%d %d %d %d}\n", drawCnt, frame->totalTime, + frame->drawRect.GetLeft(), frame->drawRect.GetTop(), frame->drawRect.GetRight(), frame->drawRect.GetBottom()); + if (frame->trace == nullptr || frame->rect == nullptr) { + return; + } + for (int32_t i = 0; i < drawCnt; ++i) { + if (frame->trace[i].cmd == FrameTraceType::HW_DRAW_PATH) { + printf(" %d. %s: %llu, %llu, %d\n", + i, ToString(frame->trace[i].cmd).c_str(), + frame->trace[i].preTime, frame->trace[i].costTime, frame->pathCnt); + continue; + } + if (frame->trace[i].cmd == FrameTraceType::HW_DRAW_SUBMIT) { + printf(" %d. %s: %llu, %llu, %d\n", + i, ToString(frame->trace[i].cmd).c_str(), + frame->trace[i].preTime, frame->trace[i].costTime, frame->trace[i].isNeedWait); + continue; + } + if (!frame->rect[i].IsValid()) { + printf(" %d. %s: %llu, %llu\n", i, ToString(frame->trace[i].cmd).c_str(), + frame->trace[i].preTime, frame->trace[i].costTime); + continue; + } + printf(" %d. %s: %llu, %llu, {%d, %d, %d, %d}\n", + i, ToString(frame->trace[i].cmd).c_str(), frame->trace[i].preTime, frame->trace[i].costTime, + frame->rect[i].GetLeft(), frame->rect[i].GetTop(), frame->rect[i].GetRight(), frame->rect[i].GetBottom()); + } +} + +void DfxFrameTrace::ShowEventRecord() const +{ + int evtIndex = 0; + int taskIndex = 0; + printf("Total: E %d, T %d, F %d\n", evtCnt_, tskCnt_, frmCnt_); + for (EventRecord *it = events_; it != nullptr; it = it->next) { + EventRecord &evt = *it; + printf("\nE %d: %llu\n", evtIndex, GetDuration(evt.startTime, evt.endTime)); + taskIndex = 0; + for (TaskRecord *it1 = evt.tasks; it1 != nullptr; it1 = it1->next) { + TaskRecord &tsk = *it1; + printf(" T %d: %llu\n", taskIndex, GetDuration(tsk.startTime, tsk.endTime)); + if (tsk.frameInfo != nullptr) { + ShowFrameRecord(tsk.frameInfo); + } + taskIndex++; + } + evtIndex++; + } +} + +void DfxFrameTrace::ClearEvents() +{ + for (EventRecord *it = events_; it != nullptr;) { + EventRecord &evt = *it; + for (TaskRecord *it1 = evt.tasks; it1 != nullptr;) { + TaskRecord *tskTmp = it1; + it1 = it1->next; + delete tskTmp; + } + EventRecord *tmp = it; + it = it->next; + delete tmp; + } + tailEvt_ = nullptr; + events_ = nullptr; +} + +void DfxFrameTrace::EventTraceStart() +{ + if (traceCount_ <= 0) { + return; + } + EventRecord *event = new (std::nothrow) EventRecord; + if (event == nullptr) { + return; + } + event->startTime = uapi_tcxo_get_us(); + if (events_ != nullptr) { + tailEvt_->next = event; + } else { + events_ = event; + } + tailEvt_ = event; + eventRecording_ = true; +} + +void DfxFrameTrace::EventTraceEnd() +{ + if (events_ == nullptr || !eventRecording_) { + return; + } + EventRecord &curEvt = *tailEvt_; + curEvt.endTime = uapi_tcxo_get_us(); + eventRecording_ = false; + if (traceCount_ == 0) { + ShowEventRecord(); + ClearEvents(); + } +} + +void DfxFrameTrace::TaskTraceStart() +{ + if (events_ == nullptr || !eventRecording_) { + return; + } + EventRecord &curEvt = *tailEvt_; + TaskRecord *task = new (std::nothrow) TaskRecord; + if (task == nullptr) { + return; + } + task->startTime = uapi_tcxo_get_us(); + if (curEvt.tasks != nullptr) { + curEvt.tailTsk->next = task; + } else { + curEvt.tasks = task; + } + curEvt.tailTsk = task; + taskRecording_ = true; +} + +void DfxFrameTrace::TaskTraceEnd() +{ + if (events_ == nullptr || !eventRecording_ || !taskRecording_) { + return; + } + EventRecord &curEvt = *tailEvt_; + if (curEvt.tasks == nullptr) { + return; + } + TaskRecord &task = *curEvt.tailTsk; + task.endTime = uapi_tcxo_get_us(); + taskRecording_ = false; +} + } // OHOS diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_list_ext/ui_test_list_ext.cpp b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_list_ext/ui_test_list_ext.cpp index 873dae387..6c7e62351 100644 --- a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_list_ext/ui_test_list_ext.cpp +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_list_ext/ui_test_list_ext.cpp @@ -160,7 +160,7 @@ void UITestListExt::UIListScrollTestFPS() list_->SetThrowDrag(true); list_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); list_->SetMaxScrollDistance(1000); // 1000: max scroll distance - list_->SetSwipeACCLevel(800); // 800: compensation distance + list_->SetSwipeACCLevel(200); // 200: compensation distance list_->SetDragACCLevel(5); // 5: drag acceleration list_->SetYScrollBarVisible(true); if (animator_ == nullptr) { diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_list_fps/ui_test_list_fps.cpp b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_list_fps/ui_test_list_fps.cpp index 2d65099df..d9c9e5872 100644 --- a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_list_fps/ui_test_list_fps.cpp +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_list_fps/ui_test_list_fps.cpp @@ -160,7 +160,7 @@ void UITestListFPS::UIListScrollTestFPS() list_->SetThrowDrag(true); list_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); list_->SetMaxScrollDistance(1000); // 1000: max scroll distance - list_->SetSwipeACCLevel(800); // 800: compensation distance + list_->SetSwipeACCLevel(200); // 200: compensation distance list_->SetDragACCLevel(5); // 5: drag acceleration list_->SetYScrollBarVisible(true); if (animator_ == nullptr) { diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.cpp b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.cpp index 04491eb4f..836bba03b 100644 --- a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.cpp +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_slipflow/ui_test_slipflow.cpp @@ -201,13 +201,13 @@ bool UITestSlipflow::OnScroll(int16_t distance) int16_t x1 = rect.GetRight(); int16_t xMid = static_cast(x + (x1 - x + 1) / DIVISOR_TWO); int16_t distance = MATH_ABS(xMid - contMidX); - newCenterIndex = i; - minOffset = distance; - } - if (newCenterIndex != lastIndex_) { - lastIndex_ = newCenterIndex; - label_->SetText(slipflow_->GetViewByIndex(lastIndex_)->GetViewId()); + if (distance < minOffset) { + newCenterIndex = i; + minOffset = distance; + } } + lastIndex_ = newCenterIndex; + label_->SetText(slipflow_->GetViewByIndex(lastIndex_)->GetViewId()); Rect curViewRect = slipflow_->GetViewByIndex(lastIndex_)->GetOrigRect(); int16_t centerMid = curViewRect.GetLeft() + curViewRect.GetWidth() / DIVISOR_TWO; diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_text_fps/ui_test_text_fps.cpp b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_text_fps/ui_test_text_fps.cpp index 339f3f151..3ef076614 100644 --- a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_text_fps/ui_test_text_fps.cpp +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_text_fps/ui_test_text_fps.cpp @@ -82,7 +82,7 @@ void UITestTextFPS::SetUp() list_->SetThrowDrag(true); list_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); list_->SetMaxScrollDistance(1000); // 1000: max scroll distance - list_->SetSwipeACCLevel(800); // 800: compensation distance + list_->SetSwipeACCLevel(200); // 200: compensation distance list_->SetDragACCLevel(5); // 5: drag acceleration if (animator_ == nullptr) { animator_ = new Animator(&callback_, list_, DEFAULT_TASK_PERIOD, true); diff --git a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_transform_list/ui_test_scale_list.cpp b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_transform_list/ui_test_scale_list.cpp index 1e0005abe..ffa80c2ca 100644 --- a/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_transform_list/ui_test_scale_list.cpp +++ b/code/sdk/middleware/services/gui/uikit/sample/uitest/components/ui_test_transform_list/ui_test_scale_list.cpp @@ -128,7 +128,7 @@ void UITestScaleList::UIScaleListTest() list_->SetThrowDrag(true); list_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); list_->SetMaxScrollDistance(1000); // 1000: max scroll distance - list_->SetSwipeACCLevel(800); // 800: compensation distance + list_->SetSwipeACCLevel(200); // 200: compensation distance list_->SetDragACCLevel(5); // 5: drag acceleration list_->SetYScrollBarVisible(true); } diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/text.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/text.cpp index 498d6dadb..585ad39d7 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/text.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/common/text.cpp @@ -85,6 +85,10 @@ void Text::SetText(const char* text) void Text::SetFont(const char* name, uint8_t size) { if (name == nullptr) { + if (UIFont::GetInstance()->IsVectorFont() && (fontSize_ != size)) { + fontSize_ = size; + needRefresh_ = true; + } return; } if (UIFont::GetInstance()->IsVectorFont()) { diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_label.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_label.cpp index 03dcbe8e6..ce6eacf80 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_label.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/components/ui_label.cpp @@ -276,6 +276,7 @@ void UILabel::SetAlign(UITextLanguageAlignment horizontalAlign, UITextLanguageAl { InitLabelText(); labelText_->SetAlign(horizontalAlign, verticalAlign); + horAlign_ = horizontalAlign; if (labelText_->IsNeedRefresh()) { RefreshLabel(); } @@ -437,6 +438,7 @@ void UILabel::RemeasureForAnimation(int16_t textWidth, LineBreakMode mode) animator_.animator->Start(); } else { offsetX_ = 0; + labelText_->SetAlign(horAlign_, labelText_->GetVerAlign()); if (hasAnimator_) { animator_.animator->Stop(); } diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/core/task_manager.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/core/task_manager.cpp index 61f4f6ed6..c4198fb3d 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/core/task_manager.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/core/task_manager.cpp @@ -14,6 +14,9 @@ */ #include "common/task_manager.h" +#if CAPABILITY_SW_DFX_FRAME_TRACE +#include "dfx/dfx_frame_trace.h" +#endif #include "gfx_utils/graphic_log.h" #include "hal_tick.h" @@ -72,7 +75,13 @@ void TaskManager::TaskHandler() while (node != list_.End()) { Task* currentTask = node->data_; +#if CAPABILITY_SW_DFX_FRAME_TRACE + TASK_TRACE_START(); +#endif currentTask->TaskExecute(); +#if CAPABILITY_SW_DFX_FRAME_TRACE + TASK_TRACE_END(); +#endif node = node->next_; } diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/draw/draw_utils.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/draw/draw_utils.cpp index 113cc9230..2d11481c2 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/draw/draw_utils.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/draw/draw_utils.cpp @@ -411,7 +411,7 @@ static void DrawEmoji(BufferInfo &gfxDstBuffer, const ImageInfo &info, const Lab } else { // to avoid vau error (srcRect is not euqal to dstRect) when no scale int16_t srcLeft = mask.GetLeft() - posX; int16_t srcTop = mask.GetTop() - posY; - src.rect = {srcLeft, srcTop, srcLeft + mask.GetWidth() - 1, srcTop + mask.GetWidth() - 1}; + src.rect = {srcLeft, srcTop, srcLeft + mask.GetWidth() - 1, srcTop + mask.GetHeight() - 1}; } if (!mask.IsValid()) { diff --git a/code/sdk/middleware/services/gui/uikit/ui/frameworks/font/ui_font_vector.cpp b/code/sdk/middleware/services/gui/uikit/ui/frameworks/font/ui_font_vector.cpp index e6ed9e8d5..1527516b2 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/frameworks/font/ui_font_vector.cpp +++ b/code/sdk/middleware/services/gui/uikit/ui/frameworks/font/ui_font_vector.cpp @@ -181,7 +181,7 @@ bool UIFontVector::GetEmoji(uint32_t unicode, ImageInfo &unicodeInfo) } } if (index == -1) { - index = len - 1; + return false; } ImageInfo *info = ImageCacheManager::GetInstance().LoadOneInMultiRes(EMOJI_TABLE[index].resId, EMOJI_PATH); if (info == nullptr) { diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h index 57e7a5c1d..b9fb42fbf 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h @@ -205,7 +205,7 @@ public: * @since 1.0 * @version 1.0 */ - void SetDragACCLevel(uint16_t value) + void SetDragACCLevel(uint8_t value) { if (value != 0) { dragAccCoefficient_ = value; @@ -231,7 +231,7 @@ public: * @since 1.0 * @version 1.0 */ - void SetSwipeACCLevel(uint16_t value) + void SetSwipeACCLevel(uint8_t value) { swipeAccCoefficient_ = value; } diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label.h index 80bae845d..df83008fc 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label.h @@ -345,7 +345,7 @@ public: /** * @brief Sets the font for this label. * - * @param name Indicates the pointer to the font name. + * @param name Indicates the pointer to the font name, name can be nullptr in order to only config font size * @param size Indicates the font size to set. * @since 1.0 * @version 1.0 @@ -450,6 +450,8 @@ private: int16_t pos; }; } animator_; + + UITextLanguageAlignment horAlign_ = TEXT_ALIGNMENT_LEFT; }; } // namespace OHOS #endif // GRAPHIC_LITE_UI_LABEL_H diff --git a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label_button.h b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label_button.h index 62c5ec2a4..4f0ff5b8a 100644 --- a/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label_button.h +++ b/code/sdk/middleware/services/gui/uikit/ui/interfaces/kits/components/ui_label_button.h @@ -252,7 +252,7 @@ public: /** * @brief Sets the font for this text. * - * @param name Indicates the pointer to the font name. + * @param name Indicates the pointer to the font name, name can be nullptr in order to only config font size * @param size Indicates the font size to set. * @since 1.0 * @version 1.0 diff --git a/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player_lite/js/builtin/src/audio_player.cpp b/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player_lite/js/builtin/src/audio_player.cpp index 4b08624d5..5df5ed0fd 100644 --- a/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player_lite/js/builtin/src/audio_player.cpp +++ b/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player_lite/js/builtin/src/audio_player.cpp @@ -23,12 +23,11 @@ #include "audio_manager.h" #include "bundlems_slite_client.h" #include "abilityms_slite_client.h" - +#include "js_ability.h" #define DELETE_NOT_NULL(pointer) \ - if ((pointer) != nullptr) \ - { \ - delete (pointer); \ - (pointer) = nullptr; \ + if ((pointer) != nullptr) { \ + delete (pointer); \ + (pointer) = nullptr; \ } namespace OHOS { @@ -43,7 +42,7 @@ constexpr uint32_t MICROSECONDS_PER_SECOND = 1000 * 1000; constexpr uint32_t MAX_PATH_LEN = 128; char absPath[MAX_PATH_LEN] = {0}; -static Audio::AudioManager& g_amInstance = Audio::AudioManager::GetInstance(); +static Audio::AudioManager &g_amInstance = Audio::AudioManager::GetInstance(); void TriggerEventListener(const AudioEventListener *listener) { @@ -66,7 +65,8 @@ void AsyncExecuteCallback(void *arg) listener->OnTrigger(); } -AudioEventListener::AudioEventListener(JSIValue callback) : callback_(JSI::AcquireValue(callback)) {} +AudioEventListener::AudioEventListener(JSIValue callback) : callback_(JSI::AcquireValue(callback)) +{} AudioEventListener::~AudioEventListener() { @@ -87,7 +87,8 @@ void AudioEventListener::OnTrigger() const } } -AudioPlayerCallback::AudioPlayerCallback(AudioPlayer *audioPlayer) : PlayerCallback(), audioPlayer_(audioPlayer) {} +AudioPlayerCallback::AudioPlayerCallback(AudioPlayer *audioPlayer) : PlayerCallback(), audioPlayer_(audioPlayer) +{} void AudioPlayerCallback::OnPlaybackComplete() { @@ -132,23 +133,12 @@ AudioPlayer *AudioPlayer::GetInstance() return &audioPlayer; } -AudioPlayer::AudioPlayer() : player_(nullptr), - onPlayListener_(nullptr), - onPauseListener_(nullptr), - onStopListener_(nullptr), - onLoadedDataListener_(nullptr), - onEndedListener_(nullptr), - onErrorListener_(nullptr), - onTimeUpdateListener_(nullptr), - src_(nullptr), - srcInner_(nullptr), - status_(STATUS_STOP), - volume_(DEFAULT_VOLUME), - autoPlay_(false), - muted_(false), - isRunning_(false), - isSysSrc_(false), - updateTimeProcess_(nullptr) {} +AudioPlayer::AudioPlayer() + : player_(nullptr), onPlayListener_(nullptr), onPauseListener_(nullptr), onStopListener_(nullptr), + onLoadedDataListener_(nullptr), onEndedListener_(nullptr), onErrorListener_(nullptr), + onTimeUpdateListener_(nullptr), src_(nullptr), srcInner_(nullptr), status_(STATUS_STOP), volume_(DEFAULT_VOLUME), + autoPlay_(false), muted_(false), isRunning_(false), isSysSrc_(false), updateTimeProcess_(nullptr) +{} void AudioPlayer::ForkUpdateTimeThread() { @@ -160,7 +150,7 @@ void AudioPlayer::ForkUpdateTimeThread() lock_ = MediaMutexCreate(nullptr); condition_ = MediaThreadCondCreate(); - MediaThreadattr attr = { "UpdateTimeHandler", 0x1000, THREAD_SCHED_INVALID, 0, false }; + MediaThreadattr attr = {"UpdateTimeHandler", 0x1000, THREAD_SCHED_INVALID, 0, false}; updateTimeProcess_ = MediaThreadCreate(AudioPlayer::UpdateTimeHandler, this, &attr); if (updateTimeProcess_ == nullptr) { MEDIA_ERR_LOG("fork thread failed."); @@ -204,21 +194,21 @@ void *AudioPlayer::UpdateTimeHandler(void *arg) int AudioPlayer::GetSrcInnerPrefix(char *src, char *dest) { - int ret; - ElementName* topAbility = OHOS::AbilityMsClient::GetInstance().GetTopAbility(); - if (topAbility != nullptr) { + int ret = -1; + const char *bundleName = OHOS::ACELite::JSAbility::GetPackageName(); + if (bundleName != nullptr) { BundleInfo bundleInfo; - ret = BundleMsClient::GetInstance().GetBundleInfo(topAbility->bundleName, 0, &bundleInfo); + ret = BundleMsClient::GetInstance().GetBundleInfo(bundleName, 0, &bundleInfo); if (ret == 0) { - (void)sprintf_s(dest, MAX_PATH_LEN - 1, "%s/assets/entry/%s", bundleInfo.codePath, src); - return 0; + int size = sprintf_s(dest, MAX_PATH_LEN - 1, "%s/assets/entry/%s", bundleInfo.codePath, src); + ret = (size < 0) ? -1 : 0; } else { MEDIA_ERR_LOG("failed to get bundleInfo!"); } } else { - MEDIA_ERR_LOG("failed to get top ability!"); + MEDIA_ERR_LOG("failed to get jsapp's bundleName!"); } - return -1; + return ret; } void AudioPlayer::StopUpdateTimeThread() @@ -308,7 +298,7 @@ void AudioPlayer::ReleaseSrc() ace_free(src_); src_ = nullptr; } - if (srcInner_ != nullptr && isSysSrc_ == false) { + if (srcInner_ != nullptr) { ace_free(srcInner_); srcInner_ = nullptr; } @@ -644,5 +634,5 @@ void AudioPlayer::SetOnTimeUpdateListener(AudioEventListener *onTimeUpdateListen } onTimeUpdateListener_ = onTimeUpdateListener; } -} // namespace ACELite -} // namespace OHOS +} // namespace ACELite +} // namespace OHOS diff --git a/code/sdk/middleware/utils/at/wstp_at/src/at_cmd_task.c b/code/sdk/middleware/utils/at/wstp_at/src/at_cmd_task.c index 2fd7bc218..fa62bb815 100644 --- a/code/sdk/middleware/utils/at/wstp_at/src/at_cmd_task.c +++ b/code/sdk/middleware/utils/at/wstp_at/src/at_cmd_task.c @@ -37,7 +37,7 @@ typedef struct { uint8_t data[AT_CMD_BUFSIZE]; } ipc_payload_atcmd_t; -static unsigned long g_at_cmd_msg_queue; +static unsigned long g_at_cmd_msg_queue = 0xFFFFFFFF; static at_cmd_set_t g_at_cmd_module_list[AT_CMD_MODULE_MAX_NUM]; static uint8_t g_at_cmd_module_index = 0; diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a index 42ce360a1..9a69c8c79 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-cli/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a index ca7f0c475..f242a63ad 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-auto-ota-ser/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a index 9aed488f0..814210a82 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a index 51ffe9cfc..30cef4023 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-native-js/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a index 252771bb4..415030818 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target1-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a index 76633284b..aca09f535 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target1/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a index 44d6d0278..cbe84bd7b 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target3-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a index 4c549776e..195b52223 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target3/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a index e444a6554..63124010f 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target4-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a index d33506a7e..8d53d7986 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target4/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a index c2b99518f..cacbfe1fa 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target5-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a index e64dff65e..145ef37fb 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-target5/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a index 3d8f5b069..70d8f4781 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-xts-r/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a index cf94b9970..5a8e9fa7e 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/brandy-xts/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a b/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a index be57dc3d8..f0d211ee4 100644 Binary files a/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a and b/code/sdk/middleware/utils/fs/vfs/testsuite-brandy-sdk/libx_vfs_private.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a index 0358ef5a9..a2b09214d 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-cli/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a index 7fec4106f..29f78ced8 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-auto-ota-ser/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a index b27fa339e..5702adb2d 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a index 36c25afda..d8ea3497d 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-native-js/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a index a7567f177..55f51b21c 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a index 6b10c1323..0d4a77c6f 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target1/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a index 20d170be8..548842ca6 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a index cb931824e..2ca681e20 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target3/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a index e2f90762f..f82ffffc5 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a index d231b42d6..224049d55 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target4/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a index 2fb30e0be..e9e4ba9e4 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a index a4271e5e3..b8fb6fb18 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-target5/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a index d3333348b..22f84d39b 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts-r/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a index 5e8602dec..ae19d6ab3 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/brandy-xts/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a b/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a index 619178495..36634269f 100644 Binary files a/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a and b/code/sdk/middleware/utils/fs/yaffs2/testsuite-brandy-sdk/libfs_yaffs2.a differ diff --git a/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.c b/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.c index b81901ed8..c77a44b4f 100644 --- a/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.c +++ b/code/sdk/middleware/utils/nv/nv_storage_lib/nv_async_store.c @@ -79,7 +79,7 @@ static uint16_t nv_async_calculate_flash_size(uint16_t kvlaue_length, nv_key_att kv_attributes_t attributes = {0}; uint16_t hash_crc_size; - if (attr->encrypted) { + if ((attr != NULL) && (attr->encrypted)) { hash_crc_size = KV_CRYPTO_HASH_SIZE; attributes = KV_ATTRIBUTE_ENCRYPTED; } else { @@ -108,7 +108,7 @@ static errcode_t nv_async_update_attr(nv_key_map_t* cur_key, nv_key_attr_t *attr cur_key->encrypted = 1; cur_key->non_upgrade = 1; } - + /* 可升级属性支持属性更改 */ if (attr->non_upgrade) { cur_key->non_upgrade = 1; diff --git a/code/sdk/open_source/openharmony/base/startup/syspara_lite/src/parameter_common.c b/code/sdk/open_source/openharmony/base/startup/syspara_lite/src/parameter_common.c index e20e12fc7..39724f2dd 100644 --- a/code/sdk/open_source/openharmony/base/startup/syspara_lite/src/parameter_common.c +++ b/code/sdk/open_source/openharmony/base/startup/syspara_lite/src/parameter_common.c @@ -41,7 +41,7 @@ #define OS_FULL_NAME_LEN 128 static char g_roBuildOs[] = {"OpenHarmony-4.1.7.5"}; -static char g_roBuildVerShow[] = {"OpenHarmony-4.1.7.5"}; +static char g_roBuildVerShow[] = {"1.0.0"}; static char g_roSdkApiLevel[] = {"11"}; static char g_roFirstApiLevel[] = {"1"}; static const char OHOS_OS_NAME[] = { "OpenHarmony" }; diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a index f7dd7f4ed..af06f6ad3 100644 Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-cli/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a index ef6525571..687c70a81 100644 Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-auto-ota-ser/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a index c3d93e527..acde21e35 100644 Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-native-js/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a index 4b6acdc80..05db49135 100644 Binary files a/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a and b/code/sdk/open_source/openharmony/foundation/aafwk/aafwk_lite/brandy-xts/libams.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/CMakeLists.txt b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/CMakeLists.txt index a73ba5a2d..d82fd7363 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/CMakeLists.txt +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/CMakeLists.txt @@ -66,7 +66,6 @@ set(PRIVATE_HEADER ${ROOT_DIR}/open_source/openharmony/third_party/jerryscript/jerry-ext/include/jerryscript-ext ${ROOT_DIR}/open_source/openharmony/third_party/jerryscript/jerry-port/default/include ${ROOT_DIR}/open_source/openharmony/third_party/jerryscript/jerry-libm/include - ${ROOT_DIR}/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput ) if("JS_ENABLE" IN_LIST DEFINES) @@ -115,7 +114,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/stylemgr/app_style_sheet.cpp ${CMAKE_CURRENT_SOURCE_DIR}/targets/platform_adapter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/wrapper/js.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/modules/keyinput/keyinput.cpp ) else() set(SOURCES @@ -224,6 +222,7 @@ set(PRIVATE_HEADER ${ROOT_DIR}/open_source/openharmony/base/global/i18n_lite/interfaces/kits/i18n/include ${ROOT_DIR}/open_source/openharmony/base/global/resmgr_lite/frameworks/resmgr_lite/include ${ROOT_DIR}/open_source/openharmony/base/global/resmgr_lite/interfaces/innerkits/include + ${ROOT_DIR}/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput ) if("JS_ENABLE" IN_LIST DEFINES) @@ -289,6 +288,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/modules/presets/version_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/router_module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modules/sample_module.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/modules/keyinput/keyinput.cpp ) endif() diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a index 5c5020f36..156b3701f 100644 Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a index 5c8e4864d..59c8f2fd7 100644 Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-ser/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a index 81544df79..04b5b7401 100644 Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-native-js/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a index a5b879f3a..f1f1a1a50 100644 Binary files a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a and b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-xts/libace.a differ diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/baidu_map_component.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/baidu_map_component.cpp index 250506576..25e6daa43 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/baidu_map_component.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/components/baidu_map_component.cpp @@ -170,6 +170,7 @@ JSValue BaiduMapComponent::SetMapBackgroundColor(const jerry_value_t func, const #ifdef SUPPORT_BAIDU char *json_color = MallocStringOf(args[0]); MapComponentApi::getInstance().set_map_background_color(json_color); + ACE_FREE(json_color); #endif return UNDEFINED; } @@ -226,6 +227,7 @@ JSValue BaiduMapComponent::NewLatLng(const jerry_value_t func, const jerry_value #ifdef SUPPORT_BAIDU char *json_lat_lng = MallocStringOf(args[0]); MapComponentApi::getInstance().new_lat_lng(json_lat_lng); + ACE_FREE(json_lat_lng); #endif return UNDEFINED; } @@ -238,6 +240,7 @@ JSValue BaiduMapComponent::NewLatLngZoom(const jerry_value_t func, const jerry_v char *json_lat_lng = MallocStringOf(args[0]); int zoom = IntegerOf(args[1]); MapComponentApi::getInstance().new_lat_lng_zoom(json_lat_lng,zoom); + ACE_FREE(json_lat_lng); #endif return UNDEFINED; } @@ -259,6 +262,7 @@ JSValue BaiduMapComponent::DrawMarker(const jerry_value_t func, const jerry_valu #ifdef SUPPORT_BAIDU char *json_marker = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_marker(json_marker); + ACE_FREE(json_marker); #endif return UNDEFINED; } @@ -270,6 +274,7 @@ JSValue BaiduMapComponent::DrawNaviMarker(const jerry_value_t func, const jerry_ #ifdef SUPPORT_BAIDU char *json_navi_marker = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_navi_marker(json_navi_marker); + ACE_FREE(json_navi_marker); #endif return UNDEFINED; } @@ -281,6 +286,7 @@ JSValue BaiduMapComponent::DrawPolygon(const jerry_value_t func, const jerry_val #ifdef SUPPORT_BAIDU char *json_polygon = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_polygon(json_polygon); + ACE_FREE(json_polygon); #endif return UNDEFINED; } @@ -292,6 +298,7 @@ JSValue BaiduMapComponent::DrawPath(const jerry_value_t func, const jerry_value_ #ifdef SUPPORT_BAIDU char *json_path = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_path(json_path); + ACE_FREE(json_path); #endif return UNDEFINED; } @@ -303,6 +310,7 @@ JSValue BaiduMapComponent::DrawCircle(const jerry_value_t func, const jerry_valu #ifdef SUPPORT_BAIDU char *json_circle = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_circle(json_circle); + ACE_FREE(json_circle); #endif return UNDEFINED; } @@ -314,6 +322,7 @@ JSValue BaiduMapComponent::DrawText(const jerry_value_t func, const jerry_value_ #ifdef SUPPORT_BAIDU char *json_text = MallocStringOf(args[0]); MapComponentApi::getInstance().draw_text(json_text); + ACE_FREE(json_text); #endif return UNDEFINED; } diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp index 4f4180a22..c166a79cf 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.cpp @@ -31,110 +31,110 @@ typedef struct : public OHOS::HeapBase { } BaiduMapAsyncMsgParams; typedef struct : public OHOS::HeapBase { - double lon; - double lat; + double lon; + double lat; } BaiduMapJSCoordinate; constexpr char LON[] = "lon"; constexpr char LAT[] = "lat"; -//BT_CONNECT +// BT_CONNECT constexpr char CONNECT[] = "connectcallback"; constexpr char DISCONNECT[] = "disconnectcallback"; namespace OHOS { namespace ACELite { -static int32_t DmsLiteCpoyStr(char **destStr, const char *srcStr); +static int32_t DmsLiteCopyStr(char **destStr, const char *srcStr); static void ExecuteSendMsgToJS(void *data); static bool CheckIsJsValueFunction(OHOS::ACELite::JSIValue jsValue); -//poi_nearby_search +// poi_nearby_search OHOS::ACELite::JSIValue poi_successCallback = nullptr; OHOS::ACELite::JSIValue poi_failCallback = nullptr; OHOS::ACELite::JSIValue poi_callbackContext = nullptr; -//route_riding_search +// route_riding_search OHOS::ACELite::JSIValue route_riding_successCallback = nullptr; OHOS::ACELite::JSIValue route_riding_failCallback = nullptr; OHOS::ACELite::JSIValue route_riding_callbackContext = nullptr; -//route_walking_search +// route_walking_search OHOS::ACELite::JSIValue route_walking_successCallback = nullptr; OHOS::ACELite::JSIValue route_walking_failCallback = nullptr; OHOS::ACELite::JSIValue route_walking_callbackContext = nullptr; -//route_transit_search +// route_transit_search OHOS::ACELite::JSIValue route_transit_successCallback = nullptr; OHOS::ACELite::JSIValue route_transit_failCallback = nullptr; OHOS::ACELite::JSIValue route_transit_callbackContext = nullptr; -//auth_license +// auth_license OHOS::ACELite::JSIValue auth_successCallback = nullptr; OHOS::ACELite::JSIValue auth_failCallback = nullptr; OHOS::ACELite::JSIValue auth_callbackContext = nullptr; -//naviInit +// naviInit OHOS::ACELite::JSIValue nav_successCallback = nullptr; OHOS::ACELite::JSIValue nav_failCallback = nullptr; OHOS::ACELite::JSIValue nav_callbackContext = nullptr; -//getGeolocation +// getGeolocation OHOS::ACELite::JSIValue geo_location_Callback = nullptr; OHOS::ACELite::JSIValue geo_location_callbackContext = nullptr; -//onRoutePlanStart +// onRoutePlanStart OHOS::ACELite::JSIValue route_plan_start_Callback = nullptr; OHOS::ACELite::JSIValue route_plan_start_callbackContext = nullptr; -//onRoutePlanSuccess +// onRoutePlanSuccess OHOS::ACELite::JSIValue route_plan_success_Callback = nullptr; OHOS::ACELite::JSIValue route_plan_success_callbackContext = nullptr; -//onRoutePlanFail +// onRoutePlanFail OHOS::ACELite::JSIValue route_plan_fail_Callback = nullptr; OHOS::ACELite::JSIValue route_plan_fail_callbackContext = nullptr; -//onNaviStart +// onNaviStart OHOS::ACELite::JSIValue navi_start_Callback = nullptr; OHOS::ACELite::JSIValue navi_start_callbackContext = nullptr; -//onNaviDestroy +// onNaviDestroy OHOS::ACELite::JSIValue navi_destroy_Callback = nullptr; OHOS::ACELite::JSIValue navi_destroy_callbackContext = nullptr; -//onRoadGuideTextUpdate +// onRoadGuideTextUpdate OHOS::ACELite::JSIValue road_guide_text_update_Callback = nullptr; OHOS::ACELite::JSIValue road_guide_text_update_callbackContext = nullptr; -//onRouteGuideIconUpdate +// onRouteGuideIconUpdate OHOS::ACELite::JSIValue road_guide_icon_update_Callback = nullptr; OHOS::ACELite::JSIValue road_guide_icon_update_callbackContext = nullptr; -//onRemainTimeUpdate +// onRemainTimeUpdate OHOS::ACELite::JSIValue remain_time_Callback = nullptr; OHOS::ACELite::JSIValue remain_time_callbackContext = nullptr; -//onRemainDistanceUpdate +// onRemainDistanceUpdate OHOS::ACELite::JSIValue remain_distance_Callback = nullptr; OHOS::ACELite::JSIValue remain_distance_callbackContext = nullptr; -//onRemainRouteUpdate +// onRemainRouteUpdate OHOS::ACELite::JSIValue remain_route_Callback = nullptr; OHOS::ACELite::JSIValue remain_route_callbackContext = nullptr; -//onGpsStatusChange +// onGpsStatusChange OHOS::ACELite::JSIValue gps_status_Callback = nullptr; OHOS::ACELite::JSIValue gps_status_callbackContext = nullptr; -//onRouteFarAway +// onRouteFarAway OHOS::ACELite::JSIValue route_far_Callback = nullptr; OHOS::ACELite::JSIValue route_far_callbackContext = nullptr; -//onRoutePlanYawing +// onRoutePlanYawing OHOS::ACELite::JSIValue route_plan_yawing_Callback = nullptr; OHOS::ACELite::JSIValue route_plan_yawing_callbackContext = nullptr; -//onReRouteComplete +// onReRouteComplete OHOS::ACELite::JSIValue reroute_Callback = nullptr; OHOS::ACELite::JSIValue reroute_callbackContext = nullptr; -//onArriveDest +// onArriveDest OHOS::ACELite::JSIValue arrivedest_Callback = nullptr; OHOS::ACELite::JSIValue arrivedest_callbackContext = nullptr; -//poi_sug_search +// poi_sug_search OHOS::ACELite::JSIValue poi_sug_successCallback = nullptr; OHOS::ACELite::JSIValue poi_sug_failCallback = nullptr; OHOS::ACELite::JSIValue poi_sug_callbackContext = nullptr; -//geocode_search +// geocode_search OHOS::ACELite::JSIValue geocode_search_successCallback = nullptr; OHOS::ACELite::JSIValue geocode_search_failCallback = nullptr; OHOS::ACELite::JSIValue geocode_search_callbackContext = nullptr; -//regeocode_search +// regeocode_search OHOS::ACELite::JSIValue regeocode_search_successCallback = nullptr; OHOS::ACELite::JSIValue regeocode_search_failCallback = nullptr; OHOS::ACELite::JSIValue regeocode_search_callbackContext = nullptr; -//BT_connect +// BT_connect OHOS::ACELite::JSIValue bt_connect_successCallback = nullptr; OHOS::ACELite::JSIValue bt_connect_failCallback = nullptr; OHOS::ACELite::JSIValue bt_connect_callbackContext = nullptr; @@ -152,8 +152,7 @@ static bool CheckIsJsValueDefined(OHOS::ACELite::JSIValue jsValue) return true; } - -static int32_t DmsLiteCpoyStr(char **destStr, const char *srcStr) +static int32_t DmsLiteCopyStr(char **destStr, const char *srcStr) { if (destStr == nullptr || srcStr == nullptr) { return -1; @@ -180,8 +179,6 @@ static int32_t DmsLiteCpoyStr(char **destStr, const char *srcStr) return 0; } - - static void ExecuteSendMsgToJS(void *data) { BaiduMapAsyncMsgParams *params = static_cast(data); @@ -216,7 +213,7 @@ static void ExecuteSendMsgToJS(void *data) context = route_transit_callbackContext; break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_POI_SUG_SEARCH: - success = poi_sug_successCallback; + success = poi_sug_successCallback; fail = poi_sug_failCallback; context = poi_sug_callbackContext; break; @@ -315,46 +312,36 @@ static void ExecuteSendMsgToJS(void *data) default: HILOG_ERROR(HILOG_MODULE_ACE, "Invalid command type"); break; - } char *msgBody = params->msgBody; delete params; params = nullptr; - OHOS::ACELite::JSIValue dataInfo = OHOS::ACELite::JSI::CreateObject(); OHOS::ACELite::JSI::SetBooleanProperty(dataInfo, "isFileType", false); OHOS::ACELite::JSI::SetBooleanProperty(dataInfo, "isRegister", false); OHOS::ACELite::JSI::SetStringProperty(dataInfo, "message", msgBody); - if (flag) { - if ((!CheckIsJsValueFunction(success)) || (!CheckIsJsValueDefined(context))) { + HILOG_INFO(HILOG_MODULE_ACE, "ExecuteSendMsgToJS type = %d flag = %d", type, flag); + if (!flag) { + if ((!CheckIsJsValueFunction(fail)) || (!CheckIsJsValueDefined(context))) { HILOG_ERROR(HILOG_MODULE_ACE, "Error in ExecuteSendMsgToJS. Invalid params detected!"); - if (msgBody != nullptr) { - AdapterFree(msgBody); - msgBody = nullptr; - } + AdapterFree(msgBody); return; } - OHOS::ACELite::JSIValue successArgv[OHOS::ACELite::ARGC_ONE] = { dataInfo }; - OHOS::ACELite::JSI::CallFunction(success, context, successArgv, OHOS::ACELite::ARGC_ONE); + OHOS::ACELite::JSIValue failArgv[OHOS::ACELite::ARGC_ONE] = {dataInfo}; + OHOS::ACELite::JSI::CallFunction(fail, context, failArgv, OHOS::ACELite::ARGC_ONE); OHOS::ACELite::JSI::ReleaseValue(dataInfo); } else { - if ((!CheckIsJsValueDefined(context)) || (!CheckIsJsValueFunction(fail))) { + if ((!CheckIsJsValueDefined(context)) || (!CheckIsJsValueFunction(success))) { HILOG_ERROR(HILOG_MODULE_ACE, "Error in ExecuteSendMsgToJS. Invalid params detected!"); - if (msgBody != nullptr) { - AdapterFree(msgBody); - msgBody = nullptr; - } + AdapterFree(msgBody); return; } - OHOS::ACELite::JSIValue failArgv[OHOS::ACELite::ARGC_ONE] = { dataInfo }; - OHOS::ACELite::JSI::CallFunction(fail, context, failArgv, OHOS::ACELite::ARGC_ONE); + OHOS::ACELite::JSIValue successArgv[OHOS::ACELite::ARGC_ONE] = {dataInfo}; + OHOS::ACELite::JSI::CallFunction(success, context, successArgv, OHOS::ACELite::ARGC_ONE); OHOS::ACELite::JSI::ReleaseValue(dataInfo); } - if (msgBody != nullptr) { - AdapterFree(msgBody); - msgBody = nullptr; - } + AdapterFree(msgBody); return; } @@ -379,7 +366,7 @@ static void ReleaseJsValue(OHOS::ACELite::JSIValue &jsValue) static void ReleaseMsgJsValue(uint8_t type) { - HILOG_INFO(HILOG_MODULE_ACE,"ReleasePoiMsgJsValue"); + HILOG_INFO(HILOG_MODULE_ACE, "ReleaseMsgJsValue"); switch (type) { case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI: ReleaseJsValue(poi_callbackContext); @@ -401,7 +388,7 @@ static void ReleaseMsgJsValue(uint8_t type) ReleaseJsValue(route_plan_start_Callback); break; case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH: - ReleaseJsValue(poi_sug_callbackContext); + ReleaseJsValue(poi_sug_callbackContext); ReleaseJsValue(poi_sug_successCallback); ReleaseJsValue(poi_sug_failCallback); break; @@ -502,141 +489,142 @@ static void ReleaseMsgJsValue(uint8_t type) return; } -bool setCallbackFunction(OHOS::ACELite::JSIValue callback,uint8_t type,bool isSuccess) +bool setCallbackFunction(OHOS::ACELite::JSIValue callback, uint8_t type, bool isSuccess) { if (!OHOS::ACELite::JSI::ValueIsUndefined(callback)) { - if (!OHOS::ACELite::JSI::ValueIsFunction(callback)) { - HILOG_ERROR(HILOG_MODULE_ACE, "Success callback value is not a function"); - ReleaseJsValue(callback); - return false; - } else { - switch (type) { - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI: - if (isSuccess) { - poi_successCallback = callback; - } else { - poi_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE: - if (isSuccess) { - auth_successCallback = callback; - } else { - auth_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT: - if (isSuccess) { - nav_successCallback = callback; - } else { - nav_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH: - if (isSuccess) { - poi_sug_successCallback = callback; - } else { - poi_sug_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION: - geo_location_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_START: - route_plan_start_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_SUCC: - route_plan_success_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_FAIL: - route_plan_fail_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_START: - navi_start_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_DESTROY: - navi_destroy_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_TEXT_UPDATE: - road_guide_text_update_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_ICON_UPDATE: - road_guide_icon_update_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_TIME_UPDATE: - remain_time_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_DISTANCE_UPDATE: - remain_distance_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_ROUTE_UPDATE: - remain_route_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GPS_STATUS_CHANGE: - gps_status_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_FARAWAY: - route_far_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING: - route_plan_yawing_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_RE_ROUTE_COMPLETE: - reroute_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ARRIVE_DSTINATION: - arrivedest_Callback = callback; - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH: - if (isSuccess) { - geocode_search_successCallback = callback; - } else { - geocode_search_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH: - if (isSuccess) { - regeocode_search_successCallback = callback; - } else { - regeocode_search_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH: - if (isSuccess) { - route_riding_successCallback = callback; - } else { - route_riding_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH: - if (isSuccess) { - route_walking_successCallback = callback; - } else { - route_walking_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH: - if (isSuccess) { - route_transit_successCallback = callback; - } else { - route_transit_failCallback = callback; - } - break; - case MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED: - if (isSuccess) { - bt_connect_successCallback = callback; - } else { - bt_connect_failCallback = callback; - } - break; - default: - HILOG_ERROR(HILOG_MODULE_ACE, "setCallbackFunction Invalid command type"); - return false; + if (!OHOS::ACELite::JSI::ValueIsFunction(callback)) { + HILOG_INFO(HILOG_MODULE_ACE, "callback is not a function will release function"); + ReleaseJsValue(callback); + callback = nullptr; + return false; + } else { + switch (type) { + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI: + if (isSuccess) { + poi_successCallback = callback; + } else { + poi_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE: + if (isSuccess) { + auth_successCallback = callback; + } else { + auth_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT: + if (isSuccess) { + nav_successCallback = callback; + } else { + nav_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH: + if (isSuccess) { + poi_sug_successCallback = callback; + } else { + poi_sug_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION: + geo_location_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_START: + route_plan_start_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_SUCC: + route_plan_success_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_FAIL: + route_plan_fail_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_START: + navi_start_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_DESTROY: + navi_destroy_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_TEXT_UPDATE: + road_guide_text_update_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_ICON_UPDATE: + road_guide_icon_update_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_TIME_UPDATE: + remain_time_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_DISTANCE_UPDATE: + remain_distance_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_ROUTE_UPDATE: + remain_route_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GPS_STATUS_CHANGE: + gps_status_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_FARAWAY: + route_far_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING: + route_plan_yawing_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_RE_ROUTE_COMPLETE: + reroute_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ARRIVE_DSTINATION: + arrivedest_Callback = callback; + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH: + if (isSuccess) { + geocode_search_successCallback = callback; + } else { + geocode_search_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH: + if (isSuccess) { + regeocode_search_successCallback = callback; + } else { + regeocode_search_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH: + if (isSuccess) { + route_riding_successCallback = callback; + } else { + route_riding_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH: + if (isSuccess) { + route_walking_successCallback = callback; + } else { + route_walking_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH: + if (isSuccess) { + route_transit_successCallback = callback; + } else { + route_transit_failCallback = callback; + } + break; + case MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED: + if (isSuccess) { + bt_connect_successCallback = callback; + } else { + bt_connect_failCallback = callback; + } + break; + default: + HILOG_ERROR(HILOG_MODULE_ACE, "setCallbackFunction Invalid command type"); + return false; } - } + } } else { - HILOG_ERROR(HILOG_MODULE_ACE, "Success callback value is undefined"); - return false; + HILOG_ERROR(HILOG_MODULE_ACE, "callback value is undefined"); + return false; } return true; @@ -648,18 +636,19 @@ bool setCallbackFunction(OHOS::ACELite::JSIValue callback,uint8_t type,bool isSu JSIValue BaiduMapComponentModule::poi_nearby_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"poi_nearby_search"); + HILOG_INFO(HILOG_MODULE_ACE, "poi_nearby_search"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"poi_nearby_search : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "poi_nearby_search : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI); poi_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,false); + bool hasSuccessCallback = setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI, true); + bool hasFailCallback = setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vector_navi_req_poi(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI,data,strlen(data)); + msg_center_vector_navi_req_poi( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI, data, strlen(data)); } ace_free(data); return JSI::CreateBoolean(true); @@ -667,18 +656,21 @@ JSIValue BaiduMapComponentModule::poi_nearby_search(const JSIValue thisVal, cons JSIValue BaiduMapComponentModule::route_riding_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"route_riding_search"); + HILOG_INFO(HILOG_MODULE_ACE, "route_riding_search"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"route_riding_search : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "route_riding_search : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH); route_riding_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,false); + bool hasSuccessCallback = + setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH, true); + bool hasFailCallback = + setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vector_navi_req_route_riding_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,data,strlen(data)); + msg_center_vector_navi_req_route_riding_search( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH, data, strlen(data)); } ace_free(data); return JSI::CreateBoolean(true); @@ -686,18 +678,21 @@ JSIValue BaiduMapComponentModule::route_riding_search(const JSIValue thisVal, co JSIValue BaiduMapComponentModule::route_walking_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"route_walking_search"); + HILOG_INFO(HILOG_MODULE_ACE, "route_walking_search"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"route_walking_search : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "route_walking_search : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH); route_walking_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,false); + bool hasSuccessCallback = + setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH, true); + bool hasFailCallback = + setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vector_navi_req_route_walking_search(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,data,strlen(data)); + msg_center_vector_navi_req_route_walking_search( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH, data, strlen(data)); } ace_free(data); return JSI::CreateBoolean(true); @@ -705,18 +700,21 @@ JSIValue BaiduMapComponentModule::route_walking_search(const JSIValue thisVal, c JSIValue BaiduMapComponentModule::route_transit_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"route_transit_search"); + HILOG_INFO(HILOG_MODULE_ACE, "route_transit_search"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"route_transit_search : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "route_transit_search : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH); route_transit_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,false); + bool hasSuccessCallback = + setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH, true); + bool hasFailCallback = + setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vector_navi_req_route_transit_search(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,data,strlen(data)); + msg_center_vector_navi_req_route_transit_search( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH, data, strlen(data)); } ace_free(data); return JSI::CreateBoolean(true); @@ -724,18 +722,20 @@ JSIValue BaiduMapComponentModule::route_transit_search(const JSIValue thisVal, c JSIValue BaiduMapComponentModule::auth_license(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"auth_license"); + HILOG_INFO(HILOG_MODULE_ACE, "auth_license"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"auth_license : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "auth_license : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE); auth_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,false); + bool hasSuccessCallback = + setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE, true); + bool hasFailCallback = setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vector_navi_req_auth_license(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE,data,strlen(data)); + msg_center_vector_navi_req_auth_license( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_AUTH_LICENSE, data, strlen(data)); } ace_free(data); return JSI::CreateBoolean(true); @@ -743,15 +743,16 @@ JSIValue BaiduMapComponentModule::auth_license(const JSIValue thisVal, const JSI JSIValue BaiduMapComponentModule::getGeolocation(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"getGeolocation"); + HILOG_INFO(HILOG_MODULE_ACE, "getGeolocation"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"getGeolocation : %s \n",data); + HILOG_INFO(HILOG_MODULE_ACE, "getGeolocation : %s \n", data); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION); geo_location_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); - bool hasCallback = setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION,true); + bool hasCallback = setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION, true); if (hasCallback) { - msg_center_vector_navi_req_geo_location(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION,data,strlen(data)); + msg_center_vector_navi_req_geo_location( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEO_LOCATION, data, strlen(data)); } ace_free(data); return JSI::CreateBoolean(true); @@ -759,18 +760,19 @@ JSIValue BaiduMapComponentModule::getGeolocation(const JSIValue thisVal, const J JSIValue BaiduMapComponentModule::naviInit(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"naviInit"); + HILOG_INFO(HILOG_MODULE_ACE, "naviInit"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"naviInit : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "naviInit : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT); nav_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,false); + bool hasSuccessCallback = setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT, true); + bool hasFailCallback = setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vector_navi_req_navi_init(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT,data,strlen(data)); + msg_center_vector_navi_req_navi_init( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_INIT, data, strlen(data)); } ace_free(data); return JSI::CreateBoolean(true); @@ -778,169 +780,172 @@ JSIValue BaiduMapComponentModule::naviInit(const JSIValue thisVal, const JSIValu JSIValue BaiduMapComponentModule::onRoutePlanStart(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRoutePlanStart"); + HILOG_INFO(HILOG_MODULE_ACE, "onRoutePlanStart"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_START); route_plan_start_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_START,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_START, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoutePlanSuccess(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRoutePlanSuccess"); + HILOG_INFO(HILOG_MODULE_ACE, "onRoutePlanSuccess"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_SUCC); route_plan_success_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_SUCC,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_SUCC, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoutePlanFail(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRoutePlanFail"); + HILOG_INFO(HILOG_MODULE_ACE, "onRoutePlanFail"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_FAIL); route_plan_fail_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_FAIL,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_FAIL, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onNaviStart(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onNaviStart"); + HILOG_INFO(HILOG_MODULE_ACE, "onNaviStart"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_START); navi_start_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_START,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_START, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onNaviDestroy(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onNaviDestroy"); + HILOG_INFO(HILOG_MODULE_ACE, "onNaviDestroy"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_DESTROY); navi_destroy_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_DESTROY,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_NAVI_DESTROY, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoadGuideTextUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRoadGuideTextUpdate"); + HILOG_INFO(HILOG_MODULE_ACE, "onRoadGuideTextUpdate"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_TEXT_UPDATE); road_guide_text_update_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_TEXT_UPDATE,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_TEXT_UPDATE, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRouteGuideIconUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRouteGuideIconUpdate"); + HILOG_INFO(HILOG_MODULE_ACE, "onRouteGuideIconUpdate"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_ICON_UPDATE); road_guide_icon_update_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_ICON_UPDATE,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROAD_GUIDE_ICON_UPDATE, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRemainTimeUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRemainTimeUpdate"); + HILOG_INFO(HILOG_MODULE_ACE, "onRemainTimeUpdate"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_TIME_UPDATE); remain_time_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_TIME_UPDATE,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_TIME_UPDATE, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRemainDistanceUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRemainDistanceUpdate"); + HILOG_INFO(HILOG_MODULE_ACE, "onRemainDistanceUpdate"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_DISTANCE_UPDATE); remain_distance_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_DISTANCE_UPDATE,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_DISTANCE_UPDATE, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRemainRouteUpdate(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRemainRouteUpdate"); + HILOG_INFO(HILOG_MODULE_ACE, "onRemainRouteUpdate"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_ROUTE_UPDATE); remain_route_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_ROUTE_UPDATE,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REMAIN_ROUTE_UPDATE, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onGpsStatusChange(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onGpsStatusChange"); + HILOG_INFO(HILOG_MODULE_ACE, "onGpsStatusChange"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GPS_STATUS_CHANGE); gps_status_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GPS_STATUS_CHANGE,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GPS_STATUS_CHANGE, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRouteFarAway(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRouteFarAway"); + HILOG_INFO(HILOG_MODULE_ACE, "onRouteFarAway"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_FARAWAY); route_far_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_FARAWAY,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_FARAWAY, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onRoutePlanYawing(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onRoutePlanYawing"); + HILOG_INFO(HILOG_MODULE_ACE, "onRoutePlanYawing"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING); route_plan_yawing_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING,true); - //msg_center_vector_navi_req_route_plan_yawing(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING,Callback,1); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING, true); + // msg_center_vector_navi_req_route_plan_yawing(MSGCENTER_CMD_VECTOR_NAVI, + // MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_PLAN_YAWING,Callback,1); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onReRouteComplete(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onReRouteComplete"); + HILOG_INFO(HILOG_MODULE_ACE, "onReRouteComplete"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_RE_ROUTE_COMPLETE); reroute_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_RE_ROUTE_COMPLETE,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_RE_ROUTE_COMPLETE, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::onArriveDest(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onArriveDest"); + HILOG_INFO(HILOG_MODULE_ACE, "onArriveDest"); OHOS::ACELite::JSIValue Callback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ARRIVE_DSTINATION); arrivedest_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); - setCallbackFunction(Callback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ARRIVE_DSTINATION,true); + setCallbackFunction(Callback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ARRIVE_DSTINATION, true); return JSI::CreateBoolean(true); } JSIValue BaiduMapComponentModule::poi_sug_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"poi_sug_search"); + HILOG_INFO(HILOG_MODULE_ACE, "poi_sug_search"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"poi_sug_search : %s \n",data); + HILOG_INFO(HILOG_MODULE_ACE, "poi_sug_search : %s \n", data); ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH); poi_sug_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,false); + bool hasSuccessCallback = + setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH, true); + bool hasFailCallback = setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vertor_navi_req_poi_sug_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH,data,strlen(data)); + msg_center_vertor_navi_req_poi_sug_search( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_POI_SUG_SEARCH, data, strlen(data)); } ace_free(data); return JSI::CreateBoolean(true); @@ -951,16 +956,16 @@ JSIValue BaiduMapComponentModule::poi_sug_search(const JSIValue thisVal, const J */ JSIValue BaiduMapComponentModule::Location_WGS84ToGCJ02(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToGCJ02"); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToGCJ02"); double lon = OHOS::ACELite::JSI::GetNumberProperty(args[0], LON); double lat = OHOS::ACELite::JSI::GetNumberProperty(args[0], LAT); - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToGCJ02 befor lon: %lf \s",lon); - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToGCJ02 befor lat: %lf \s",lat); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToGCJ02 befor lon: %lf \s", lon); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToGCJ02 befor lat: %lf \s", lat); JSCoordinate params = {0}; WGS84ToGCJ02(lon, lat, params); - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToGCJ02 after lon: %lf \s",params.lon); - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToGCJ02 after lat: %lf \s",params.lat); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToGCJ02 after lon: %lf \s", params.lon); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToGCJ02 after lat: %lf \s", params.lat); JSIValue result = JSI::CreateObject(); JSI::SetNumberProperty(result, "lon", params.lon); JSI::SetNumberProperty(result, "lat", params.lat); @@ -969,16 +974,16 @@ JSIValue BaiduMapComponentModule::Location_WGS84ToGCJ02(const JSIValue thisVal, JSIValue BaiduMapComponentModule::Location_GCJ02ToBD09(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"GCJ02ToBD09"); + HILOG_INFO(HILOG_MODULE_ACE, "GCJ02ToBD09"); double lon = OHOS::ACELite::JSI::GetNumberProperty(args[0], LON); double lat = OHOS::ACELite::JSI::GetNumberProperty(args[0], LAT); - HILOG_INFO(HILOG_MODULE_ACE,"GCJ02ToBD09 befor lon: %lf \s",lon); - HILOG_INFO(HILOG_MODULE_ACE,"GCJ02ToBD09 befor lat: %lf \s",lat); + HILOG_INFO(HILOG_MODULE_ACE, "GCJ02ToBD09 befor lon: %lf \s", lon); + HILOG_INFO(HILOG_MODULE_ACE, "GCJ02ToBD09 befor lat: %lf \s", lat); JSCoordinate params = {0}; GCJ02ToBD09(lon, lat, params); - HILOG_INFO(HILOG_MODULE_ACE,"GCJ02ToBD09 after lon: %lf \s",params.lon); - HILOG_INFO(HILOG_MODULE_ACE,"GCJ02ToBD09 after lat: %lf \s",params.lat); + HILOG_INFO(HILOG_MODULE_ACE, "GCJ02ToBD09 after lon: %lf \s", params.lon); + HILOG_INFO(HILOG_MODULE_ACE, "GCJ02ToBD09 after lat: %lf \s", params.lat); JSIValue result = JSI::CreateObject(); JSI::SetNumberProperty(result, "lon", params.lon); JSI::SetNumberProperty(result, "lat", params.lat); @@ -987,16 +992,16 @@ JSIValue BaiduMapComponentModule::Location_GCJ02ToBD09(const JSIValue thisVal, c JSIValue BaiduMapComponentModule::Location_WGS84ToBD09(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToBD09"); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToBD09"); double lon = OHOS::ACELite::JSI::GetNumberProperty(args[0], LON); double lat = OHOS::ACELite::JSI::GetNumberProperty(args[0], LAT); - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToBD09 befor lon: %lf \s",lon); - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToBD09 befor lat: %lf \s",lat); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToBD09 befor lon: %lf \s", lon); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToBD09 befor lat: %lf \s", lat); JSCoordinate params = {0}; WGS84ToBD09(lon, lat, params); - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToBD09 after lon: %lf \s",params.lon); - HILOG_INFO(HILOG_MODULE_ACE,"WGS84ToBD09 after lat: %lf \s",params.lat); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToBD09 after lon: %lf \s", params.lon); + HILOG_INFO(HILOG_MODULE_ACE, "WGS84ToBD09 after lat: %lf \s", params.lat); JSIValue result = JSI::CreateObject(); JSI::SetNumberProperty(result, "lon", params.lon); JSI::SetNumberProperty(result, "lat", params.lat); @@ -1005,16 +1010,16 @@ JSIValue BaiduMapComponentModule::Location_WGS84ToBD09(const JSIValue thisVal, c JSIValue BaiduMapComponentModule::Location_BD09ToGCJ02(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"BD09ToGCJ02"); + HILOG_INFO(HILOG_MODULE_ACE, "BD09ToGCJ02"); double lon = OHOS::ACELite::JSI::GetNumberProperty(args[0], LON); double lat = OHOS::ACELite::JSI::GetNumberProperty(args[0], LAT); - HILOG_INFO(HILOG_MODULE_ACE,"BD09ToGCJ02 befor lon: %lf \s",lon); - HILOG_INFO(HILOG_MODULE_ACE,"BD09ToGCJ02 befor lat: %lf \s",lat); + HILOG_INFO(HILOG_MODULE_ACE, "BD09ToGCJ02 befor lon: %lf \s", lon); + HILOG_INFO(HILOG_MODULE_ACE, "BD09ToGCJ02 befor lat: %lf \s", lat); JSCoordinate params = {0}; BD09ToGCJ02(lon, lat, params); - HILOG_INFO(HILOG_MODULE_ACE,"BD09ToGCJ02 after lon: %lf \s",params.lon); - HILOG_INFO(HILOG_MODULE_ACE,"BD09ToGCJ02 after lat: %lf \s",params.lat); + HILOG_INFO(HILOG_MODULE_ACE, "BD09ToGCJ02 after lon: %lf \s", params.lon); + HILOG_INFO(HILOG_MODULE_ACE, "BD09ToGCJ02 after lat: %lf \s", params.lat); JSIValue result = JSI::CreateObject(); JSI::SetNumberProperty(result, "lon", params.lon); JSI::SetNumberProperty(result, "lat", params.lat); @@ -1026,40 +1031,43 @@ JSIValue BaiduMapComponentModule::Location_BD09ToGCJ02(const JSIValue thisVal, c */ JSIValue BaiduMapComponentModule::Geocode_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"Geocode_search"); + HILOG_INFO(HILOG_MODULE_ACE, "Geocode_search"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"Geocode_search : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "Geocode_search : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH); geocode_search_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,false); + bool hasSuccessCallback = + setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH, true); + bool hasFailCallback = setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vector_navi_req_geocode_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH,data,strlen(data)); + msg_center_vector_navi_req_geocode_search( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_GEOCODE_SEARCH, data, strlen(data)); } - ace_free(data); + ace_free(data); return JSI::CreateBoolean(true); - } JSIValue BaiduMapComponentModule::Regeocode_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"Regeocode_search"); + HILOG_INFO(HILOG_MODULE_ACE, "Regeocode_search"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"Regeocode_search : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "Regeocode_search : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH); regeocode_search_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS); OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL); - bool hasSuccessCallback = setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,true); - bool hasFailCallback = setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,false); + bool hasSuccessCallback = + setCallbackFunction(successCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH, true); + bool hasFailCallback = setCallbackFunction(failCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH, false); if (hasSuccessCallback || hasFailCallback) { - msg_center_vector_navi_req_regeocode_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,data,strlen(data)); + msg_center_vector_navi_req_regeocode_search( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH, data, strlen(data)); } - ace_free(data); + ace_free(data); return JSI::CreateBoolean(true); } @@ -1068,11 +1076,12 @@ JSIValue BaiduMapComponentModule::Regeocode_search(const JSIValue thisVal, const */ JSIValue BaiduMapComponentModule::Destroy_page(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"Destroy_page"); + HILOG_INFO(HILOG_MODULE_ACE, "Destroy_page"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"Destroy_page : %s \n",data); - msg_center_vector_navi_req_destroy_page(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_PAGE,data,strlen(data)); - ace_free(data); + HILOG_INFO(HILOG_MODULE_ACE, "Destroy_page : %s \n", data); + msg_center_vector_navi_req_destroy_page( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_PAGE, data, strlen(data)); + ace_free(data); return JSI::CreateBoolean(true); } @@ -1081,17 +1090,17 @@ JSIValue BaiduMapComponentModule::Destroy_page(const JSIValue thisVal, const JSI */ JSIValue BaiduMapComponentModule::onBTConnect(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"onBTConnect"); + HILOG_INFO(HILOG_MODULE_ACE, "onBTConnect"); char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"onBTConnect : %s \n",data); - //success Callback & failed Callback + HILOG_INFO(HILOG_MODULE_ACE, "onBTConnect : %s \n", data); + // success Callback & failed Callback ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED); bt_connect_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); OHOS::ACELite::JSIValue connectCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CONNECT); OHOS::ACELite::JSIValue disconnectCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], DISCONNECT); - setCallbackFunction(connectCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED,true); - setCallbackFunction(disconnectCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED,false); - ace_free(data); + setCallbackFunction(connectCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED, true); + setCallbackFunction(disconnectCallback, MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED, false); + ace_free(data); return JSI::CreateBoolean(true); } @@ -1100,12 +1109,13 @@ JSIValue BaiduMapComponentModule::onBTConnect(const JSIValue thisVal, const JSIV */ JSIValue BaiduMapComponentModule::NaviDestroy(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"exitNavigation"); - char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"exitNavigation : %s \n",data); - msg_center_vector_navi_req_destroy_from_watch(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_FROM_WATCH,data,strlen(data)); - ace_free(data); - return JSI::CreateBoolean(true); + HILOG_INFO(HILOG_MODULE_ACE, "exitNavigation"); + char *data = JSI::JsonStringify(args[0]); + HILOG_INFO(HILOG_MODULE_ACE, "exitNavigation : %s \n", data); + msg_center_vector_navi_req_destroy_from_watch( + MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_FROM_WATCH, data, strlen(data)); + ace_free(data); + return JSI::CreateBoolean(true); } /** @@ -1113,104 +1123,248 @@ JSIValue BaiduMapComponentModule::NaviDestroy(const JSIValue thisVal, const JSIV */ JSIValue BaiduMapComponentModule::StopAnswer(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) { - HILOG_INFO(HILOG_MODULE_ACE,"StopAnswer"); - char *data = JSI::JsonStringify(args[0]); - HILOG_INFO(HILOG_MODULE_ACE,"StopAnswer : %s \n",data); - msg_center_xiaodu_send_stop_answer(MSGCENTER_CMD_XIAODU,MSGCENTER_TYPE_ID_XIAODU_SEND_JS_EXIT,data,strlen(data)); - ace_free(data); - return JSI::CreateBoolean(true); + HILOG_INFO(HILOG_MODULE_ACE, "StopAnswer"); + char *data = JSI::JsonStringify(args[0]); + HILOG_INFO(HILOG_MODULE_ACE, "StopAnswer : %s \n", data); + msg_center_xiaodu_send_stop_answer(MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_SEND_JS_EXIT, data, strlen(data)); + ace_free(data); + return JSI::CreateBoolean(true); +} + +JSIValue BaiduMapComponentModule::MapInit(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize) +{ + HILOG_INFO(HILOG_MODULE_ACE, "MapInit"); + // poi_nearby_search + poi_successCallback = nullptr; + poi_failCallback = nullptr; + poi_callbackContext = nullptr; + // route_riding_search + route_riding_successCallback = nullptr; + route_riding_failCallback = nullptr; + route_riding_callbackContext = nullptr; + // route_walking_search + route_walking_successCallback = nullptr; + route_walking_failCallback = nullptr; + route_walking_callbackContext = nullptr; + // route_transit_search + route_transit_successCallback = nullptr; + route_transit_failCallback = nullptr; + route_transit_callbackContext = nullptr; + // auth_license + auth_successCallback = nullptr; + auth_failCallback = nullptr; + auth_callbackContext = nullptr; + // naviInit + nav_successCallback = nullptr; + nav_failCallback = nullptr; + nav_callbackContext = nullptr; + // getGeolocation + geo_location_Callback = nullptr; + geo_location_callbackContext = nullptr; + // onRoutePlanStart + route_plan_start_Callback = nullptr; + route_plan_start_callbackContext = nullptr; + // onRoutePlanSuccess + route_plan_success_Callback = nullptr; + route_plan_success_callbackContext = nullptr; + // onRoutePlanFail + route_plan_fail_Callback = nullptr; + route_plan_fail_callbackContext = nullptr; + // onNaviStart + navi_start_Callback = nullptr; + navi_start_callbackContext = nullptr; + // onNaviDestroy + navi_destroy_Callback = nullptr; + navi_destroy_callbackContext = nullptr; + // onRoadGuideTextUpdate + road_guide_text_update_Callback = nullptr; + road_guide_text_update_callbackContext = nullptr; + // onRouteGuideIconUpdate + road_guide_icon_update_Callback = nullptr; + road_guide_icon_update_callbackContext = nullptr; + // onRemainTimeUpdate + remain_time_Callback = nullptr; + remain_time_callbackContext = nullptr; + // onRemainDistanceUpdate + remain_distance_Callback = nullptr; + remain_distance_callbackContext = nullptr; + // onRemainRouteUpdate + remain_route_Callback = nullptr; + remain_route_callbackContext = nullptr; + // onGpsStatusChange + gps_status_Callback = nullptr; + gps_status_callbackContext = nullptr; + // onRouteFarAway + route_far_Callback = nullptr; + route_far_callbackContext = nullptr; + // onRoutePlanYawing + route_plan_yawing_Callback = nullptr; + route_plan_yawing_callbackContext = nullptr; + // onReRouteComplete + reroute_Callback = nullptr; + reroute_callbackContext = nullptr; + // onArriveDest + arrivedest_Callback = nullptr; + arrivedest_callbackContext = nullptr; + // poi_sug_search + poi_sug_successCallback = nullptr; + poi_sug_failCallback = nullptr; + poi_sug_callbackContext = nullptr; + // geocode_search + geocode_search_successCallback = nullptr; + geocode_search_failCallback = nullptr; + geocode_search_callbackContext = nullptr; + // regeocode_search + regeocode_search_successCallback = nullptr; + regeocode_search_failCallback = nullptr; + regeocode_search_callbackContext = nullptr; + // BT_connect + bt_connect_successCallback = nullptr; + bt_connect_failCallback = nullptr; + bt_connect_callbackContext = nullptr; + return JSI::CreateBoolean(true); } void BaiduMapComponentModule::OnDestroy() { HILOG_INFO(HILOG_MODULE_ACE, "BaiduMapComponent OnDestroy\n"); - //poi_nearby_search + // poi_nearby_search ReleaseJsValue(poi_successCallback); ReleaseJsValue(poi_failCallback); ReleaseJsValue(poi_callbackContext); - //route_riding_search + poi_successCallback = nullptr; + poi_failCallback = nullptr; + poi_callbackContext = nullptr; + // route_riding_search ReleaseJsValue(route_riding_successCallback); ReleaseJsValue(route_riding_failCallback); ReleaseJsValue(route_riding_callbackContext); - //route_walking_search + route_riding_successCallback = nullptr; + route_riding_failCallback = nullptr; + route_riding_callbackContext = nullptr; + // route_walking_search ReleaseJsValue(route_walking_successCallback); ReleaseJsValue(route_walking_failCallback); ReleaseJsValue(route_walking_callbackContext); - //route_transit_search + route_walking_successCallback = nullptr; + route_walking_failCallback = nullptr; + route_walking_callbackContext = nullptr; + // route_transit_search ReleaseJsValue(route_transit_successCallback); ReleaseJsValue(route_transit_failCallback); ReleaseJsValue(route_transit_callbackContext); - //auth_license + route_transit_successCallback = nullptr; + route_transit_failCallback = nullptr; + route_transit_callbackContext = nullptr; + // auth_license ReleaseJsValue(auth_successCallback); ReleaseJsValue(auth_failCallback); ReleaseJsValue(auth_callbackContext); - //onRoutePlanStart + auth_successCallback = nullptr; + auth_failCallback = nullptr; + auth_callbackContext = nullptr; + // onRoutePlanStart ReleaseJsValue(route_plan_start_Callback); ReleaseJsValue(route_plan_start_callbackContext); - //onRoutePlanSuccess + route_plan_start_Callback = nullptr; + route_plan_start_callbackContext = nullptr; + // onRoutePlanSuccess ReleaseJsValue(route_plan_success_Callback); ReleaseJsValue(route_plan_success_callbackContext); - //onRoutePlanFail + route_plan_success_Callback = nullptr; + route_plan_success_callbackContext = nullptr; + // onRoutePlanFail ReleaseJsValue(route_plan_fail_Callback); ReleaseJsValue(route_plan_fail_callbackContext); - //onNaviStart + route_plan_fail_Callback = nullptr; + route_plan_fail_callbackContext = nullptr; + // onNaviStart ReleaseJsValue(navi_start_Callback); ReleaseJsValue(navi_start_callbackContext); - //onNaviDestroy + navi_start_Callback = nullptr; + navi_start_callbackContext = nullptr; + // onNaviDestroy ReleaseJsValue(navi_destroy_Callback); ReleaseJsValue(navi_destroy_callbackContext); - //onRoadGuideTextUpdate + navi_destroy_Callback = nullptr; + navi_destroy_callbackContext = nullptr; + // onRoadGuideTextUpdate ReleaseJsValue(road_guide_text_update_Callback); ReleaseJsValue(road_guide_text_update_callbackContext); - //onRouteGuideIconUpdate + road_guide_text_update_Callback = nullptr; + road_guide_text_update_callbackContext = nullptr; + // onRouteGuideIconUpdate ReleaseJsValue(road_guide_icon_update_Callback); ReleaseJsValue(road_guide_icon_update_callbackContext); - //onRemainTimeUpdate + road_guide_icon_update_Callback = nullptr; + road_guide_icon_update_callbackContext = nullptr; + // onRemainTimeUpdate ReleaseJsValue(remain_time_Callback); ReleaseJsValue(remain_time_callbackContext); - //onRemainDistanceUpdate + remain_time_Callback = nullptr; + remain_time_callbackContext = nullptr; + // onRemainDistanceUpdate ReleaseJsValue(remain_distance_Callback); ReleaseJsValue(remain_distance_callbackContext); - //onRemainRouteUpdate + remain_distance_Callback = nullptr; + remain_distance_callbackContext = nullptr; + // onRemainRouteUpdate ReleaseJsValue(remain_route_Callback); ReleaseJsValue(remain_route_callbackContext); - //onGpsStatusChange + remain_route_Callback = nullptr; + remain_route_callbackContext = nullptr; + // onGpsStatusChange ReleaseJsValue(gps_status_Callback); ReleaseJsValue(gps_status_callbackContext); - //onRouteFarAway + gps_status_Callback = nullptr; + gps_status_callbackContext = nullptr; + // onRouteFarAway ReleaseJsValue(route_far_Callback); ReleaseJsValue(route_far_callbackContext); - //onRoutePlanYawing + route_far_Callback = nullptr; + route_far_callbackContext = nullptr; + // onRoutePlanYawing ReleaseJsValue(route_plan_yawing_Callback); ReleaseJsValue(route_plan_yawing_callbackContext); - //onReRouteComplete + route_plan_yawing_Callback = nullptr; + route_plan_yawing_callbackContext = nullptr; + // onReRouteComplete ReleaseJsValue(reroute_Callback); ReleaseJsValue(reroute_callbackContext); - //onArriveDest + reroute_Callback = nullptr; + reroute_callbackContext = nullptr; + // onArriveDest ReleaseJsValue(arrivedest_Callback); ReleaseJsValue(arrivedest_callbackContext); - //poi_sug_search + arrivedest_Callback = nullptr; + arrivedest_callbackContext = nullptr; + // poi_sug_search ReleaseJsValue(poi_sug_successCallback); ReleaseJsValue(poi_sug_failCallback); ReleaseJsValue(poi_sug_callbackContext); - //geocode_search + poi_sug_successCallback = nullptr; + poi_sug_failCallback = nullptr; + poi_sug_callbackContext = nullptr; + // geocode_search ReleaseJsValue(geocode_search_successCallback); ReleaseJsValue(geocode_search_failCallback); ReleaseJsValue(geocode_search_callbackContext); - //regeocode_search + geocode_search_successCallback = nullptr; + geocode_search_failCallback = nullptr; + geocode_search_callbackContext = nullptr; + // regeocode_search ReleaseJsValue(regeocode_search_successCallback); ReleaseJsValue(regeocode_search_failCallback); ReleaseJsValue(regeocode_search_callbackContext); - //BT_connect - ReleaseJsValue(bt_connect_successCallback); - ReleaseJsValue(bt_connect_failCallback); - ReleaseJsValue(bt_connect_callbackContext); + regeocode_search_successCallback = nullptr; + regeocode_search_failCallback = nullptr; + regeocode_search_callbackContext = nullptr; } void InitBaiduMapComponentModule(JSIValue exports) { - HILOG_INFO(HILOG_MODULE_ACE,"InitBaiduMapComponentModule"); + HILOG_INFO(HILOG_MODULE_ACE, "InitBaiduMapComponentModule"); /** * MsgCenter interface */ @@ -1270,35 +1424,41 @@ void InitBaiduMapComponentModule(JSIValue exports) */ JSI::SetModuleAPI(exports, "stopAnswer", BaiduMapComponentModule::StopAnswer); /** + * mapInit + */ + JSI::SetModuleAPI(exports, "mapInit", BaiduMapComponentModule::MapInit); + /** * destroy */ JSI::SetOnDestroy(exports, BaiduMapComponentModule::OnDestroy); } -} // namespace ACELite -} // namespace OHOS +} // namespace ACELite +} // namespace OHOS -int32_t BaidumapSendMsgToJS(const char *msgBody,uint8_t type) +int32_t BaidumapSendMsgToJS(const char *msgBody, uint8_t type) { BaiduMapAsyncMsgParams *params = new BaiduMapAsyncMsgParams(); if (params == nullptr) { - HILOG_ERROR(HILOG_MODULE_ACE,"Failed to allocate memory for params"); + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to allocate memory for params"); return -1; } params->type = type; params->flag = true; - int32_t copyRet = OHOS::ACELite::DmsLiteCpoyStr(¶ms->msgBody, msgBody); + int32_t copyRet = OHOS::ACELite::DmsLiteCopyStr(¶ms->msgBody, msgBody); if (copyRet != 0) { - HILOG_ERROR(HILOG_MODULE_ACE,"Failed to copy msgBody"); + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to copy msgBody"); delete params; params = nullptr; return copyRet; } - bool ret = OHOS::ACELite::JsAsyncWork::DispatchAsyncWork(OHOS::ACELite::ExecuteSendMsgToJS,static_cast(params)); + bool ret = + OHOS::ACELite::JsAsyncWork::DispatchAsyncWork(OHOS::ACELite::ExecuteSendMsgToJS, static_cast(params)); if (!ret) { HILOG_ERROR(HILOG_MODULE_ACE, "Failed to dispatch async work"); + AdapterFree(params->msgBody); delete params; params = nullptr; return -1; @@ -1307,27 +1467,29 @@ int32_t BaidumapSendMsgToJS(const char *msgBody,uint8_t type) return 0; } -int32_t BaidumapFailSendMsgToJS(const char *msgBody,uint8_t type) +int32_t BaidumapFailSendMsgToJS(const char *msgBody, uint8_t type) { BaiduMapAsyncMsgParams *params = new BaiduMapAsyncMsgParams(); if (params == nullptr) { - HILOG_ERROR(HILOG_MODULE_ACE,"Failed to allocate memory for params"); + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to allocate memory for params"); return -1; } params->type = type; params->flag = false; - int32_t copyRet = OHOS::ACELite::DmsLiteCpoyStr(¶ms->msgBody, msgBody); + int32_t copyRet = OHOS::ACELite::DmsLiteCopyStr(¶ms->msgBody, msgBody); if (copyRet != 0) { - HILOG_ERROR(HILOG_MODULE_ACE,"Failed to copy msgBody"); + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to copy msgBody"); delete params; params = nullptr; return copyRet; } - bool ret = OHOS::ACELite::JsAsyncWork::DispatchAsyncWork(OHOS::ACELite::ExecuteSendMsgToJS, static_cast(params)); + bool ret = + OHOS::ACELite::JsAsyncWork::DispatchAsyncWork(OHOS::ACELite::ExecuteSendMsgToJS, static_cast(params)); if (!ret) { HILOG_ERROR(HILOG_MODULE_ACE, "Failed to dispatch async work"); + AdapterFree(params->msgBody); delete params; params = nullptr; return -1; @@ -1337,21 +1499,13 @@ int32_t BaidumapFailSendMsgToJS(const char *msgBody,uint8_t type) } __attribute__((weak)) void WGS84ToGCJ02(double lon, double lat, JSCoordinate &output) -{ - -} +{} __attribute__((weak)) void GCJ02ToBD09(double lon, double lat, JSCoordinate &output) -{ - -} +{} __attribute__((weak)) void WGS84ToBD09(double lon, double lat, JSCoordinate &output) -{ - -} +{} __attribute__((weak)) void BD09ToGCJ02(double bd_lon, double bd_lat, JSCoordinate &output) -{ - -} +{} diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h index f3d0e4599..8e498b5bd 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/baidumapcomponent/baidumap.h @@ -1,9 +1,9 @@ /* -* Copyright (c) CompanyNameMagicTag. 2021-2021. All rights reserved. -* Description: audio capture wrapper -* Author: Media Software Group -* Create: 2021-09-13 -*/ + * Copyright (c) CompanyNameMagicTag. 2024-2025. All rights reserved. + * Description: baidumap sdk wrapper + * Author: SoftwarePlatform Group + * Create: 2024-03-02 + */ #ifndef BAIDUMAPCOMPONENT_MODULE_H #define BAIDUMAPCOMPONENT_MODULE_H @@ -112,6 +112,11 @@ public: */ static JSIValue StopAnswer(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize); + /** + * mapInit + */ + static JSIValue MapInit(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize); + /** * destroy */ @@ -119,9 +124,9 @@ public: }; void InitBaiduMapComponentModule(JSIValue exports); -} -} -int32_t BaidumapSendMsgToJS(const char *msgBody,uint8_t type); -int32_t BaidumapFailSendMsgToJS(const char *msgBody,uint8_t type); +} // namespace ACELite +} // namespace OHOS +int32_t BaidumapSendMsgToJS(const char *msgBody, uint8_t type); +int32_t BaidumapFailSendMsgToJS(const char *msgBody, uint8_t type); #endif diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput/keyinput.cpp b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput/keyinput.cpp new file mode 100644 index 000000000..6019eed54 --- /dev/null +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput/keyinput.cpp @@ -0,0 +1,292 @@ +/* + * Copyright (c) 2020 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "keyinput.h" +#include "js_async_work.h" +#include "adapter.h" +#include "js_ability_impl.h" +#include "ace_log.h" + +typedef struct : public OHOS::HeapBase { + char *msgBody; + uint16_t status; +} KeyMsgParams; + +typedef struct : public OHOS::HeapBase { + int16_t rotate; +} RotateMsgParams; + +namespace OHOS { +namespace ACELite { + +OHOS::ACELite::JSIValue key_successCallback = nullptr; +OHOS::ACELite::JSIValue key_callbackContext = nullptr; +OHOS::ACELite::JSIValue rotate_successCallback = nullptr; +OHOS::ACELite::JSIValue rotate_callbackContext = nullptr; + +static bool CheckIsJsValueDefined(OHOS::ACELite::JSIValue jsValue) +{ + if (jsValue == nullptr) { + return false; + } + + if (OHOS::ACELite::JSI::ValueIsUndefined(jsValue)) { + return false; + } + + return true; +} + +static void ReleaseJsValue(OHOS::ACELite::JSIValue &jsValue) +{ + if (CheckIsJsValueDefined(jsValue)) { + OHOS::ACELite::JSI::ReleaseValue(jsValue); + jsValue = OHOS::ACELite::JSI::CreateUndefined(); + } + return; +} + +static int32_t ACECopyStr(char **destStr, const char *srcStr) +{ + if (destStr == nullptr || srcStr == nullptr) { + return -1; + } + + uint32_t length = strlen(srcStr) + 1; + *destStr = static_cast(AdapterMalloc(length)); + if (*destStr == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to allocate memory for destination string"); + return -1; + } + + if (memset_s(*destStr, length, 0, length) != EOK) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to set memory for destination string"); + AdapterFree(*destStr); + return -1; + } + if (memcpy_s(*destStr, length, srcStr, length) != EOK) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to copy source string to destination string"); + AdapterFree(*destStr); + return -1; + } + + return 0; +} + +static void ExecuteSendKeyMsgToJS(void *data) +{ + KeyMsgParams *params = static_cast(data); + if (params == nullptr) { + return; + } + + char *msgBody = params->msgBody; + uint16_t status = params->status; + OHOS::ACELite::JSIValue callback = key_successCallback; + OHOS::ACELite::JSIValue context = key_callbackContext; + + OHOS::ACELite::JSIValue dataInfo = OHOS::ACELite::JSI::CreateObject(); + OHOS::ACELite::JSI::SetStringProperty(dataInfo, "button", msgBody); + OHOS::ACELite::JSI::SetNumberProperty(dataInfo, "status", status); + OHOS::ACELite::JSIValue callbackArgv[OHOS::ACELite::ARGC_ONE] = {dataInfo}; + OHOS::ACELite::JSI::CallFunction(callback, context, callbackArgv, OHOS::ACELite::ARGC_ONE); + OHOS::ACELite::JSI::ReleaseValue(dataInfo); + + AdapterFree(msgBody); + delete params; + params = nullptr; + return; +} + +static void ExecuteSendRotateMsgToJS(void *data) +{ + RotateMsgParams *params = static_cast(data); + if (params == nullptr) { + return; + } + + int16_t rotate = params->rotate; + delete params; + params = nullptr; + OHOS::ACELite::JSIValue callback = rotate_successCallback; + OHOS::ACELite::JSIValue context = rotate_callbackContext; + OHOS::ACELite::JSIValue dataInfo = OHOS::ACELite::JSI::CreateObject(); + OHOS::ACELite::JSI::SetNumberProperty(dataInfo, "rotate", rotate); + OHOS::ACELite::JSIValue callbackArgv[OHOS::ACELite::ARGC_ONE] = {dataInfo}; + OHOS::ACELite::JSI::CallFunction(callback, context, callbackArgv, OHOS::ACELite::ARGC_ONE); + OHOS::ACELite::JSI::ReleaseValue(dataInfo); + return; +} + +JSIValue KeyInputModule::setKeyListener(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum) +{ + ReleaseJsValue(key_callbackContext); + ReleaseJsValue(key_successCallback); + if (argsNum > 0) { + key_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); + key_successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); + KeyListener::GetInstance()->SetRegister(true); + } else { + key_callbackContext = nullptr; + key_successCallback = nullptr; + } + return JSI::CreateBoolean(true); +} + +JSIValue KeyInputModule::setRotateListener(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum) +{ + ReleaseJsValue(rotate_successCallback); + ReleaseJsValue(rotate_callbackContext); + if (argsNum > 0) { + rotate_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal); + rotate_successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_CALLBACK); + RotateListener::GetInstance()->SetRegister(true); + } else { + key_callbackContext = nullptr; + key_successCallback = nullptr; + } + return JSI::CreateBoolean(true); +} + +void KeyInputModule::OnDestroy() +{ + OHOS::ACELite::KeyListener::GetInstance()->SetRegister(false); + OHOS::ACELite::RotateListener::GetInstance()->SetRegister(false); +} + +void InitKeyInputModule(JSIValue exports) +{ + JSI::SetModuleAPI(exports, "setKeyListener", KeyInputModule::setKeyListener); + JSI::SetModuleAPI(exports, "setRotateListener", KeyInputModule::setRotateListener); + JSI::SetOnDestroy(exports, KeyInputModule::OnDestroy); +} + +} // namespace ACELite +} // namespace OHOS + +void OHOS::ACELite::KeyListener::OnKeyEvent(const KeyEvent &event) +{ + if (OHOS::ACELite::KeyListener::hasRegister()) { + char *type; + switch (event.GetKeyId()) { + case static_cast(ZliteKeyCode::ZLITE_KEY_POWER): + type = "POWER"; + break; + default: + type = "UNKNOWN"; + break; + } + int32_t ret = KeySendMsgToJS(type, event.GetState()); + if (ret != 0) { + HILOG_ERROR(HILOG_MODULE_ACE, "KeyListener: OnKeyEvent send event error"); + } + } else { + switch (event.GetState()) { + case InputDevice::STATE_PRESS: + isPress_ = true; + break; + case InputDevice::STATE_LONG_PRESS: + isLongPress_ = true; + OnKeyLongPress(event); + break; + case InputDevice::STATE_RELEASE: + onRelease(event); + break; + default: + break; + } + } +} + +void OHOS::ACELite::KeyListener::onRelease(const KeyEvent &event) +{ + if (isPress_ && !isLongPress_) { + if (event.GetKeyId() == static_cast(ZliteKeyCode::ZLITE_KEY_POWER)) { + JsAppContext::GetInstance()->TerminateAbility(); + } + } + isPress_ = false; +} + +void OHOS::ACELite::KeyListener::OnKeyLongPress(const KeyEvent &event) +{ + if (isLongPress_) { + if (event.GetKeyId() == static_cast(ZliteKeyCode::ZLITE_KEY_POWER)) { + NativeAbility::GetInstance().ChangeSlice(VIEW_REBOOT); + } + } + // we don't handle isLongPress & isRelease, so reset isLongPress_ to false here. + isLongPress_ = false; +} + +void OHOS::ACELite::RotateListener::OnRotateEvent(const RotateEvent &event) +{ + if (OHOS::ACELite::RotateListener::hasRegister()) { + int ret = RotateSendMsgToJS(event.GetRotate()); + if (ret != 0) { + HILOG_ERROR(HILOG_MODULE_ACE, "RotateListener: OnRotateEvent send event error"); + } + } +} + +int32_t KeySendMsgToJS(const char *msgBody, uint16_t status) +{ + KeyMsgParams *params = new KeyMsgParams(); + if (params == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to allocate memory for params"); + return -1; + } + params->status = status; + int32_t copyRet = OHOS::ACELite::ACECopyStr(¶ms->msgBody, msgBody); + + if (copyRet != 0) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to copy msgBody"); + AdapterFree(params->msgBody); + delete params; + params = nullptr; + return copyRet; + } + + bool ret = OHOS::ACELite::JsAsyncWork::DispatchAsyncWork( + OHOS::ACELite::ExecuteSendKeyMsgToJS, static_cast(params)); + if (!ret) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to dispatch async work"); + AdapterFree(params->msgBody); + delete params; + params = nullptr; + return -1; + } + + return 0; +} + +int32_t RotateSendMsgToJS(int16_t rotate) +{ + RotateMsgParams *params = new RotateMsgParams(); + if (params == nullptr) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to allocate memory for params"); + return -1; + } + params->rotate = rotate; + bool ret = OHOS::ACELite::JsAsyncWork::DispatchAsyncWork( + OHOS::ACELite::ExecuteSendRotateMsgToJS, static_cast(params)); + if (!ret) { + HILOG_ERROR(HILOG_MODULE_ACE, "Failed to dispatch async work"); + delete params; + params = nullptr; + return -1; + } + return 0; +} diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput/keyinput.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput/keyinput.h index 526762557..76d595aa9 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput/keyinput.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/keyinput/keyinput.h @@ -1,16 +1,8 @@ /* - * Copyright (c) 2020 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright (c) CompanyNameMagicTag. 2024-2025. All rights reserved. + * Description: keyinput wrapper + * Author: SoftwarePlatform Group + * Create: 2024-09-29 */ #ifndef OHOS_ACELITE_KEYINPUT_MODULE_H @@ -26,7 +18,6 @@ namespace OHOS { namespace ACELite { class KeyInputModule : public MemoryHeap { public: - KeyInputModule() = default; ~KeyInputModule() = default; static JSIValue setKeyListener(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum); @@ -38,7 +29,7 @@ void InitKeyInputModule(JSIValue exports); class KeyListener { public: - static KeyListener* GetInstance() + static KeyListener *GetInstance() { static KeyListener instance; return &instance; @@ -46,16 +37,17 @@ public: void OnKeyEvent(const KeyEvent &event); - bool hasRegister() + bool hasRegister() { return isRegister_; } - void SetRegister(bool isRegister) + void SetRegister(bool isRegister) { isRegister_ = isRegister; } + private: - KeyListener():isRegister_(false),isPress_(false),isLongPress_(false){}; + KeyListener() : isRegister_(false), isPress_(false), isLongPress_(false){}; ~KeyListener() = default; void onRelease(const KeyEvent &event); void OnKeyLongPress(const KeyEvent &event); @@ -66,7 +58,7 @@ private: class RotateListener { public: - static RotateListener* GetInstance() + static RotateListener *GetInstance() { static RotateListener instance; return &instance; @@ -74,22 +66,23 @@ public: void OnRotateEvent(const RotateEvent &event); - bool hasRegister() + bool hasRegister() { return isRegister_; } - void SetRegister(bool isRegister) + void SetRegister(bool isRegister) { isRegister_ = isRegister; } + private: - RotateListener():isRegister_(false){}; + RotateListener() : isRegister_(false){}; ~RotateListener() = default; bool isRegister_; }; -} // namespace ACELite -} // namespace OHOS -int32_t KeySendMsgToJS(const char *msgBody,uint16_t type); +} // namespace ACELite +} // namespace OHOS +int32_t KeySendMsgToJS(const char *msgBody, uint16_t type); int32_t RotateSendMsgToJS(int16_t rotate); #endif diff --git a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.h b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.h index f7e8733f8..176cf91ce 100644 --- a/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.h +++ b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/modules/network_module.h @@ -1,9 +1,9 @@ /* -* Copyright (c) CompanyNameMagicTag. 2021-2021. All rights reserved. -* Description: audio capture wrapper -* Author: Media Software Group -* Create: 2021-09-13 -*/ + * Copyright (c) CompanyNameMagicTag. 2024-2025. All rights reserved. + * Description: network wrapper + * Author: SoftwarePlatform Group + * Create: 2024-08-10 + */ #ifndef NET_CONNECT_MODULE_H #define NET_CONNECT_MODULE_H @@ -19,7 +19,7 @@ #ifdef __cplusplus extern "C" { #endif -void net_connect_status_change(uint8_t netConnectStatus,uint8_t type); +void net_connect_status_change(uint8_t netConnectStatus, uint8_t type); #ifdef __cplusplus }; #endif @@ -28,7 +28,7 @@ namespace OHOS { namespace ACELite { #define MAX_STATUS_LENGTH 128 // 网络类型枚举 -typedef enum { +typedef enum { NETWORK_TYPE_WIFI = 0, NETWORK_TYPE_BLUETOOTH, NETWORK_TYPE_UNKNOWN @@ -47,7 +47,7 @@ struct NetParam { uint8_t net_type = -1; }; -struct NetCallBack { +struct NetCallBack { JSIValue net_connect_callback = nullptr; JSIValue net_connect_thisVal = nullptr; NetParam netParam; @@ -73,9 +73,7 @@ void InitNetWorkModule(JSIValue exports) JSI::SetModuleAPI(exports, "getConnectState", NetWorkModule::GetConnectState); } - -} -} - +} // namespace ACELite +} // namespace OHOS #endif diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a index 57749f7c4..d31affb9d 100644 Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-cli/libbms.a differ diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a index 18572f93a..f39f40fed 100644 Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-auto-ota-ser/libbms.a differ diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a index f17ae8226..fefcdf2e3 100644 Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-native-js/libbms.a differ diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a index 3d102fa80..ea35faa18 100644 Binary files a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a and b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/brandy-xts/libbms.a differ diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/frameworks/bundle_lite/include/bundlems_slite_client.h b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/frameworks/bundle_lite/include/bundlems_slite_client.h index ad90fa314..d2cfe7a70 100644 --- a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/frameworks/bundle_lite/include/bundlems_slite_client.h +++ b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/frameworks/bundle_lite/include/bundlems_slite_client.h @@ -43,6 +43,8 @@ public: uint8_t QueryAbilityInfo(const Want *want, AbilityInfo *abilityInfo) const; + bool ScanPackages (InstallerCallback installerCallback) const; + uint8_t GetBundleInfo(const char *bundleName, int32_t flags, BundleInfo *bundleInfo) const; uint8_t GetBundleInfos(int32_t flags, BundleInfo **bundleInfos, int32_t *len) const; diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/interfaces/kits/bundle_lite/element_name.h b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/interfaces/kits/bundle_lite/element_name.h index 8feb4ab1f..fa76c55e5 100644 --- a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/interfaces/kits/bundle_lite/element_name.h +++ b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/interfaces/kits/bundle_lite/element_name.h @@ -80,6 +80,7 @@ extern "C" { */ void ClearElement(ElementName *element); +void FreeElement(ElementName *element); /** * @brief Sets the device ID used to query {@link AbilityInfo}. * diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/interfaces/kits/bundle_lite/slite/bundle_manager.h b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/interfaces/kits/bundle_lite/slite/bundle_manager.h index 54db94d6f..76e8db8ae 100644 --- a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/interfaces/kits/bundle_lite/slite/bundle_manager.h +++ b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/interfaces/kits/bundle_lite/slite/bundle_manager.h @@ -94,6 +94,20 @@ bool Install(const char *hapPath, const InstallParam *installParam, InstallerCal */ bool Uninstall(const char *bundleName, const InstallParam *installParam, InstallerCallback installerCallback); +/** + * @brief Scans all installed packages in the system and triggers the provided callback with the result. + * + * This function initiates a scan of all installed packages, and the result is returned through the specified + * {@link InstallerCallback}. The callback will receive the result status of the package scanning operation. + * + * @param installerCallback Indicates the callback to be invoked for notifying the package scan result. + * @return Returns true if the scan operation is successfully initiated; returns false otherwise. + * + * @since 1.0 + * @version 1.0 + */ +bool ScanPackages(InstallerCallback installerCallback); + /** * @brief Queries the {@link AbilityInfo} of an ability based on the information carried in the {@link Want} * structure. diff --git a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/services/bundlemgr_lite/include/gt_bundle_installer.h b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/services/bundlemgr_lite/include/gt_bundle_installer.h index f30418e2e..7afeaf57d 100644 --- a/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/services/bundlemgr_lite/include/gt_bundle_installer.h +++ b/code/sdk/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/services/bundlemgr_lite/include/gt_bundle_installer.h @@ -41,6 +41,7 @@ public: ~GtBundleInstaller() = default; uint8_t Install(const char *path, InstallerCallback installerCallback); + uint8_t Install(const char *path, const InstallParam *installParam, InstallerCallback installerCallback); uint8_t Uninstall(const char *bundleName); private: uint8_t PreCheckBundle(const char *path, int32_t &fp, SignatureInfo &signatureInfo, uint32_t &fileSize, diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a index e296fe27a..251087f83 100644 Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-cli/libjerryscript.a differ diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a index 267114c07..19c5bebed 100644 Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-auto-ota-ser/libjerryscript.a differ diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a index 3622bd81d..6c7862789 100644 Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-native-js/libjerryscript.a differ diff --git a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a index 5e8891509..22d22434f 100644 Binary files a/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a and b/code/sdk/open_source/openharmony/third_party/jerryscript/brandy-xts/libjerryscript.a differ diff --git a/code/sdk/tools/pkg/bin/brandy/bt.bin b/code/sdk/tools/pkg/bin/brandy/bt.bin index fdc53beef..e16c47678 100644 Binary files a/code/sdk/tools/pkg/bin/brandy/bt.bin and b/code/sdk/tools/pkg/bin/brandy/bt.bin differ diff --git a/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin b/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin index 8ac7eaa16..c9f67c2cb 100644 Binary files a/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin and b/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin differ diff --git a/code/sdk/tools/pkg/bin/brandy/dsp/mini/dsp_main.bin b/code/sdk/tools/pkg/bin/brandy/dsp/mini/dsp_main.bin index 6b9f03750..e2a59ab88 100644 Binary files a/code/sdk/tools/pkg/bin/brandy/dsp/mini/dsp_main.bin and b/code/sdk/tools/pkg/bin/brandy/dsp/mini/dsp_main.bin differ diff --git a/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin b/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin index 29e6059cc..f86e85d0c 100644 Binary files a/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin and b/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin differ diff --git a/patch_615_1009_to_1029.txt b/patch_615_1009_to_1029.txt new file mode 100644 index 000000000..21f0fbe3c --- /dev/null +++ b/patch_615_1009_to_1029.txt @@ -0,0 +1,48 @@ +【补丁名称】patch_615_1009_to_1029 +【基础版本】b615 + 0906 + 1009 +【修复问题】 +BT合入内容 + 1、增强dfx信息 +PLT合入内容 + 1、完善pmp配置,已解决nmi xip异常 + 2、psram稳定性增强 + 3、解决低概率rtc异常导致的系统狗超时 +AUDIO&MEDIA合入内容 + 1、优化消息模块,解决DSP概率无法下电的问题 +GUI合入内容 + 1、可缩放滑动列表布局方案优化 + 2、一级界面UICrossView快速滑动响应优化 + 3、瀑布流、蜂窝转场动画优化 + 4、多语言频繁切换后文本滑动卡顿优化 + 5、统计图形耗时DFX方案优化,支持打印Task、Event耗时 + 6、解决JS应用退出到Native概率花屏问题 + 7、解决视频起播过程中快速灭屏导致的后续播放异常问题 + 8、解决Canvas、roller、蜂窝等控件在特殊或者异常场景下挂死、绘制异常等问题 + 9、解决LVGL圆角矩形矢量数据在异步模式下提前释放的问题 +OHOS合入内容 + 1、支持关签名模式下jsapp覆盖安装 + 2、修改audio src接口重复调用失败问题 + 3、修改原生GetTopAbility释放 + 4、增加跑马灯文本旋转JS Sample + 5、修改百度地图json外部释放 + 6、修改XTS GetDisplayVersion默认值1.0.0 + 7、支持KeyInput按键/编码器事件监听 +GPU合入内容: + 1、DFX优化 + 2、解决DPU视频层停止送显后进出低功耗后黑屏问题 + +NATIVE-JS sample合入内容 + +【修改影响】NA + +【使用方法】 + 1、合入0906补丁 + 2、合入1009补丁 + 3、合入1029补丁(此补丁包含1014单点合入内容) + +【自测情况】 + 自验证范围: + 全功能冒烟 + 自验证target: + Native-js、target3 rc版本 +【是否合入版本】根据测试结果确定