From: SnickerSun Date: Wed, 11 Dec 2024 02:46:51 +0000 (+0800) Subject: patch_602_1009_to_1029 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=16b11bf9e1df727603bebb67c26a9fe0da931571;p=mirrors%2FFD230.git patch_602_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 8f9d306d0..2a69722ef 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 0455b9996..7983d1bd3 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" @@ -36,6 +35,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__; @@ -71,6 +71,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) @@ -152,8 +153,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 947c39b6e..33f161f31 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 9c344734a..8e82f0c8a 100644 --- a/code/sdk/application/brandy/brandy_standard/kernel_init.c +++ b/code/sdk/application/brandy/brandy_standard/kernel_init.c @@ -230,7 +230,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 c527654f8..9b3bb03cd 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" @@ -320,6 +322,19 @@ static void thread_main(const void *unused) nandflash_init(); g_store_init_select = STORE_CLASS_NAND; #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 b26dcc97a..08f7e3021 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 11d8f4c53..1706bb365 100644 --- a/code/sdk/application/wearable/alipay/service/alipay_feature.c +++ b/code/sdk/application/wearable/alipay/service/alipay_feature.c @@ -52,7 +52,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 0b597aad8..f6dc1f9bf 100644 --- a/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp +++ b/code/sdk/application/wearable/nativeabilityfwk/src/Ability.cpp @@ -120,8 +120,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 0f2cd97e7..6ac05da9c 100644 --- a/code/sdk/application/wearable/nativeabilityfwk/src/NativeAbility.cpp +++ b/code/sdk/application/wearable/nativeabilityfwk/src/NativeAbility.cpp @@ -84,10 +84,10 @@ void NativeAbility::OnActive(const Want &want) void NativeAbility::StopSlice() { - GraphicService::GetInstance()->SetNativeUIRunning(false); - NotificationManager::GetInstance()->SetNativeUIRunning(false); Ability::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/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 5b422b8bc..7cf1ae02c 100644 --- a/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainPresenterSample.cpp @@ -256,9 +256,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/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 700ff086e..3fdf6c9d0 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 514f93b39..8b5ee221f 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 c8022217f..af824c773 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 bac548896..e0a00bf03 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 d723971d4..6078e7db8 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 4bf73ca66..8558f6cee 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/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/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/drivers/boards/brandy_evb/product/product_evb4_standard.h b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h index 26783f8d1..2f97ef24b 100644 --- a/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h +++ b/code/sdk/drivers/boards/brandy_evb/product/product_evb4_standard.h @@ -217,6 +217,13 @@ #define TMA525B_I2C_BUS I2C_BUS_1 #define TMA525B_INT_GPIO S_AGPIO_R5 #define TMA525B_RESET_GPIO S_AGPIO_R4 + +// TRACK MODE +#define SND_TRACK_MODE_BT_MUSIC 0 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_STEREO 枚举 +#define SND_TRACK_MODE_BT_SCO 1 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_DOUBLE_MONO 枚举 +#define SND_TRACK_MODE_LOCAL_CAT1 1 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_DOUBLE_MONO 枚举 +#define SND_TRACK_MODE_BT_CAT1 0 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_STEREO 枚举 +#define SND_TRACK_MODE_LOCAL_MUSIC 1 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_DOUBLE_MONO 枚举 /** * @} */ diff --git a/code/sdk/drivers/boards/brandy_evb/product/product_evb_standard.h b/code/sdk/drivers/boards/brandy_evb/product/product_evb_standard.h index 1610048cc..9e89b667e 100644 --- a/code/sdk/drivers/boards/brandy_evb/product/product_evb_standard.h +++ b/code/sdk/drivers/boards/brandy_evb/product/product_evb_standard.h @@ -207,6 +207,13 @@ #define TMA525B_I2C_BUS I2C_BUS_1 #define TMA525B_INT_GPIO S_AGPIO_R5 #define TMA525B_RESET_GPIO S_AGPIO_R4 + +// TRACK MODE +#define SND_TRACK_MODE_BT_MUSIC 0 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_STEREO 枚举 +#define SND_TRACK_MODE_BT_SCO 1 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_DOUBLE_MONO 枚举 +#define SND_TRACK_MODE_LOCAL_CAT1 1 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_DOUBLE_MONO 枚举 +#define SND_TRACK_MODE_BT_CAT1 0 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_STEREO 枚举 +#define SND_TRACK_MODE_LOCAL_MUSIC 1 // 参考 soc_uapi_sound.h 中 UAPI_SND_TRACK_DOUBLE_MONO 枚举 /** * @} */ diff --git a/code/sdk/drivers/chips/brandy/config/pmp_config.c b/code/sdk/drivers/chips/brandy/config/pmp_config.c index 4429a633b..d709c7e14 100644 --- a/code/sdk/drivers/chips/brandy/config/pmp_config.c +++ b/code/sdk/drivers/chips/brandy/config/pmp_config.c @@ -1,151 +1,193 @@ -/* - * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. - * Description: chip pmp init config file. - */ -#include "pmp_config.h" -#include "stdbool.h" -#include "drv_pmp.h" -#include "memory_config.h" -#include "product.h" -#define L2MEM_DSP_ADDR_START 0x60100000 -#define L2MEM_DSP_ADDR_LEN 0x100000 - -#define L2MEM_GPU_ADDR_START 0x60240000 -#define L2MEM_GPU_ADDR_LEN 0x20000 - -#if PSRAM_DENSITY_MB == 16 -#define PSRAM_ADDR_START 0x6C000000 -#define PSRAM_ADDR_LEN 0x800000 -#define PSRAM_SECOND_ADDR_START 0x6C800000 -#define PSRAM_SECOND_ADDR_LEN 0x800000 -#else /* PSRAM_DENSITY_MB == 32 */ -#define PSRAM_ADDR_START 0x6C000000 -#define PSRAM_ADDR_LEN 0x1000000 -#define PSRAM_SECOND_ADDR_START 0x6D000000 -#define PSRAM_SECOND_ADDR_LEN 0x1000000 -#endif - -#define NOR_FLASH_ADDR_START FLASH_START -#define NOR_FLASH_ADDR_LEN FLASH_LENGTH - -#define BOOTROM_PMP_LENGTH 0x10000 -#define ITCM_PMP_LENGTH 0x10000 -#define ITCM_PMP_SECOND_LENGTH 0x20000 -#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, -#ifdef CONFIG_PSRAM_SUPPORT - PSRAM_IDX, - PSRAM_SECOND_IDX, -#endif - NOR_FLASH_IDX, - MAX_REGION_NUM -} region_index_t; - -pmp_conf_t g_region_attr[MAX_REGION_NUM]; - -static void pmp_init_config(void) -{ - /* 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].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; - g_region_attr[BOOTROM_IDX].conf.lock = true; - - /* ITCM 第一段 可读可执行不可写 */ - g_region_attr[ITCM_IDX].idx = ITCM_IDX; - g_region_attr[ITCM_IDX].addr = APP_ITCM_ORIGIN; - g_region_attr[ITCM_IDX].size = ITCM_PMP_LENGTH; - g_region_attr[ITCM_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; - g_region_attr[ITCM_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_READ_ONLY_EXECUTE; - g_region_attr[ITCM_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; - g_region_attr[ITCM_IDX].conf.lock = true; - - /* ITCM 第二段 可读可执行不可写 */ - g_region_attr[ITCM_SECOND_IDX].idx = ITCM_SECOND_IDX; - g_region_attr[ITCM_SECOND_IDX].addr = (APP_ITCM_ORIGIN + ITCM_PMP_LENGTH); - g_region_attr[ITCM_SECOND_IDX].size = ITCM_PMP_SECOND_LENGTH; - g_region_attr[ITCM_SECOND_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; - g_region_attr[ITCM_SECOND_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_READ_ONLY_EXECUTE; - g_region_attr[ITCM_SECOND_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; - g_region_attr[ITCM_SECOND_IDX].conf.lock = true; - - /* DTCM 可读可写不可执行 */ - g_region_attr[DTCM_IDX].idx = DTCM_IDX; - g_region_attr[DTCM_IDX].addr = APP_DTCM_ORIGIN; - g_region_attr[DTCM_IDX].size = DTCM_PMP_LENGTH; - g_region_attr[DTCM_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; - g_region_attr[DTCM_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; - 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; - -#ifdef CONFIG_PSRAM_SUPPORT - /* 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.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; - - /* PSRAM 第二段 可读可写不可执行 关闭cache属性 */ - g_region_attr[PSRAM_SECOND_IDX].idx = PSRAM_SECOND_IDX; - g_region_attr[PSRAM_SECOND_IDX].addr = PSRAM_SECOND_ADDR_START; - g_region_attr[PSRAM_SECOND_IDX].size = PSRAM_SECOND_ADDR_LEN; - g_region_attr[PSRAM_SECOND_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; - g_region_attr[PSRAM_SECOND_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; - g_region_attr[PSRAM_SECOND_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; - g_region_attr[PSRAM_SECOND_IDX].conf.lock = true; -#endif - - /* Flash 可读不可写可执行 打开cache属性 */ - g_region_attr[NOR_FLASH_IDX].idx = NOR_FLASH_IDX; - g_region_attr[NOR_FLASH_IDX].addr = NOR_FLASH_ADDR_START; - g_region_attr[NOR_FLASH_IDX].size = NOR_FLASH_ADDR_LEN; - g_region_attr[NOR_FLASH_IDX].conf.pmp_attr = PMP_ATTR_WRITEBACK_RWALLOCATE; - 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; -} - -void pmp_init(void) -{ - pmp_init_config(); - uapi_pmp_config(g_region_attr, MAX_REGION_NUM); -} +/* + * Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved. + * Description: chip pmp init config file. + */ +#include "pmp_config.h" +#include "stdbool.h" +#include "drv_pmp.h" +#include "memory_config.h" + +#define L2MEM_DSP_ADDR_START 0x60100000 +#define L2MEM_DSP_ADDR_LEN 0x100000 + +#define L2MEM_GPU_ADDR_START 0x60240000 +#define L2MEM_GPU_ADDR_LEN 0x20000 + +#if PSRAM_DENSITY_MB == 16 +#define PSRAM_ADDR_START 0x6C000000 +#define PSRAM_ADDR_LEN 0x800000 +#define PSRAM_SECOND_ADDR_START 0x6C800000 +#define PSRAM_SECOND_ADDR_LEN 0x800000 +#else /* PSRAM_DENSITY_MB == 32 */ +#define PSRAM_ADDR_START 0x6C000000 +#define PSRAM_ADDR_LEN 0x1000000 +#define PSRAM_SECOND_ADDR_START 0x6D000000 +#define PSRAM_SECOND_ADDR_LEN 0x1000000 +#endif + +#define NOR_FLASH_ADDR_START FLASH_START +#define NOR_FLASH_ADDR_LEN FLASH_LENGTH + +#define BOOTROM_PMP_LENGTH 0x10000 +#define ITCM_PMP_LENGTH 0x10000 +#define ITCM_PMP_SECOND_LENGTH 0x20000 +#define DTCM_PMP_LENGTH 0x80000 + +typedef enum { + 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 */ +#ifdef CONFIG_PSRAM_SUPPORT + PSRAM_IDX, + PSRAM_SECOND_IDX, +#endif + NOR_FLASH_IDX, + BACKGROUND_IDX = 15, + MAX_REGION_NUM +} region_index_t; + +pmp_conf_t g_region_attr[MAX_REGION_NUM]; + +static void pmp_init_config(void) +{ + /* bootrom 可读不可写不可执行 */ + g_region_attr[BOOTROM_IDX].idx = BOOTROM_IDX; + g_region_attr[BOOTROM_IDX].addr = ROM_START; + 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; + g_region_attr[BOOTROM_IDX].conf.lock = true; + + /* ITCM 第一段 可读可执行不可写 */ + g_region_attr[ITCM_IDX].idx = ITCM_IDX; + g_region_attr[ITCM_IDX].addr = APP_ITCM_ORIGIN; + g_region_attr[ITCM_IDX].size = ITCM_PMP_LENGTH; + g_region_attr[ITCM_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; + g_region_attr[ITCM_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_READ_ONLY_EXECUTE; + g_region_attr[ITCM_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[ITCM_IDX].conf.lock = true; + + /* ITCM 第二段 可读可执行不可写 */ + g_region_attr[ITCM_SECOND_IDX].idx = ITCM_SECOND_IDX; + g_region_attr[ITCM_SECOND_IDX].addr = (APP_ITCM_ORIGIN + ITCM_PMP_LENGTH); + g_region_attr[ITCM_SECOND_IDX].size = ITCM_PMP_SECOND_LENGTH; + g_region_attr[ITCM_SECOND_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; + g_region_attr[ITCM_SECOND_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_READ_ONLY_EXECUTE; + g_region_attr[ITCM_SECOND_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[ITCM_SECOND_IDX].conf.lock = true; + + /* DTCM 可读可写不可执行 */ + g_region_attr[DTCM_IDX].idx = DTCM_IDX; + g_region_attr[DTCM_IDX].addr = APP_DTCM_ORIGIN; + g_region_attr[DTCM_IDX].size = DTCM_PMP_LENGTH; + g_region_attr[DTCM_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; + g_region_attr[DTCM_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; + g_region_attr[DTCM_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[DTCM_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; + +#ifdef CONFIG_PSRAM_SUPPORT + /* 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_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; + + /* PSRAM 第二段 可读可写不可执行 关闭cache属性 */ + g_region_attr[PSRAM_SECOND_IDX].idx = PSRAM_SECOND_IDX; + g_region_attr[PSRAM_SECOND_IDX].addr = PSRAM_SECOND_ADDR_START; + g_region_attr[PSRAM_SECOND_IDX].size = PSRAM_SECOND_ADDR_LEN; + g_region_attr[PSRAM_SECOND_IDX].conf.pmp_attr = PMP_ATTR_NO_BUFFERABLE_AND_NO_CACHEABLE; + g_region_attr[PSRAM_SECOND_IDX].conf.rwx_permission = (rwx_permission_t)PMPCFG_RW_NEXECUTE; + g_region_attr[PSRAM_SECOND_IDX].conf.addr_match = PMPCFG_ADDR_MATCH_NAPOT; + g_region_attr[PSRAM_SECOND_IDX].conf.lock = true; +#endif + + /* Flash 可读不可写可执行 打开cache属性 */ + g_region_attr[NOR_FLASH_IDX].idx = NOR_FLASH_IDX; + g_region_attr[NOR_FLASH_IDX].addr = NOR_FLASH_ADDR_START; + g_region_attr[NOR_FLASH_IDX].size = NOR_FLASH_ADDR_LEN; + g_region_attr[NOR_FLASH_IDX].conf.pmp_attr = PMP_ATTR_WRITEBACK_RWALLOCATE; + 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) +{ + pmp_init_config(); + uapi_pmp_config(g_region_attr, MAX_REGION_NUM); +} 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 9de2ac143..b34ba3f18 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); + ring_buf_flush(msg_inst->shrb_buf.data_buf); return ERR_SYS_BUF_UNDERFLOW; } diff --git a/code/sdk/drivers/drivers/driver/audio/source/core/common/sys_ctrl/sys_cmd.c b/code/sdk/drivers/drivers/driver/audio/source/core/common/sys_ctrl/sys_cmd.c index 97e934935..6fd77fcdf 100644 --- a/code/sdk/drivers/drivers/driver/audio/source/core/common/sys_ctrl/sys_cmd.c +++ b/code/sdk/drivers/drivers/driver/audio/source/core/common/sys_ctrl/sys_cmd.c @@ -198,11 +198,7 @@ td_void sys_audio_tws_config_reg_init(td_void) } val.bits.product_form = AUDIO_PRODUCT_FORM_NON_TWS; -#if (SAP_CHIP_TYPE == socmn1) val.bits.mono_mode = TD_FALSE; -#else - val.bits.mono_mode = TD_TRUE; -#endif val.bits.tws_mode = AUDIO_TWS_MODE_LISTEN; val.bits.tws_role = AUDIO_TWS_ROLE_FREEMAN; diff --git a/code/sdk/drivers/drivers/driver/audio/source/drv/aoe/drv_proc_ao.c b/code/sdk/drivers/drivers/driver/audio/source/drv/aoe/drv_proc_ao.c index f3c2e38f6..d6b9fd3c0 100644 --- a/code/sdk/drivers/drivers/driver/audio/source/drv/aoe/drv_proc_ao.c +++ b/code/sdk/drivers/drivers/driver/audio/source/drv/aoe/drv_proc_ao.c @@ -123,11 +123,11 @@ static td_char *drv_ao_proc_get_ao_track_mode(ao_track_mode mode) case AO_TRACK_STEREO: return "stereo"; case AO_TRACK_DOUBLE_MONO: - return "double_mono"; + return "dual_mono"; case AO_TRACK_DOUBLE_LEFT: - return "double_left"; + return "dual_left"; case AO_TRACK_DOUBLE_RIGHT: - return "double_right"; + return "dual_right"; case AO_TRACK_EXCHANGE: return "exchange"; case AO_TRACK_ONLY_RIGHT: 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/mmc/host/sdhci/brandy/mmc_sdhci.c b/code/sdk/drivers/drivers/driver/mmc/host/sdhci/brandy/mmc_sdhci.c index 5eec00b93..c03c25226 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 @@ -127,7 +127,7 @@ 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 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 ce35d0d02..f736ac1de 100644 --- a/code/sdk/drivers/drivers/driver/psram/psram_drv.c +++ b/code/sdk/drivers/drivers/driver/psram/psram_drv.c @@ -206,6 +206,7 @@ typedef struct { /*------psram addr value-------*/ // ap #define PSRAM_AP_X16_MR0_READ_LATENCY_166MHZ 0x0D +#define PSRAM_AP_X16_MR0_RL_CODE_MASK 0x1C #define PSRAM_AP_X16_MR4_WRITE_LATENCY_166MHZ 0xD8 // 0.5x self refresh #define PSRAM_AP_X16_MR6_ENTER_HALF_SLEEP 0xF0 #define PSRAM_AP_X16_MR8_EN_X16_2K_WRAP 0x47 @@ -229,7 +230,9 @@ typedef struct { #define PSRAM_REG_RW_TRANSFER_DATA_LEN 1 #define PSRAM_MEMORY_ADDR_REGION 0x0C000000 #define PSRAM_REDUNDANT_DATA 0xFFFFFFFF -#define PSRAM_CE_PULL_UP_WAIT_MIN_TIME 80ULL +#define PSRAM_CE_PULL_UP_WAIT_MIN_TIME 150ULL +#define PSRAM_MAX_WAKE_TIME 3 + #define PSRAM_OPI_DELAY_US_10 10 #define PSRAM_EID_SECOND_PARAM_OFFSET 70 #define PSRAM_EID_LENGTH 8 @@ -707,6 +710,20 @@ errcode_t uapi_psram_read_reg(uint32_t addr, uint32_t *value) return ERRCODE_SUCC; } +static opi_ret_e check_psram_awake(void) +{ + uint8_t wake_times = 0; + while (g_psram_sleeped && wake_times < PSRAM_MAX_WAKE_TIME) { + PRINT("psram is slept, can not enter xip. try to exit sleep.\r\n"); + uapi_psram_exit_sleep(); + wake_times++; + } + if (g_psram_sleeped) { + return OPI_RET_SLEEP; + } + return OPI_RET_OK; +} + errcode_t uapi_psram_enter_xip(void) { opi_config_t opi_config = {g_psram_device_parm[g_psram_device].frame_format, OPI_INST_16BIT, OPI_ADDR_32BIT, @@ -720,6 +737,11 @@ errcode_t uapi_psram_enter_xip(void) if (uapi_psram_xip_enabled()) { return ERRCODE_PSRAM_RET_XIP_EN; } + + if (check_psram_awake() != OPI_RET_OK) { + return OPI_RET_SLEEP; + } + if (g_psram_device == PSRAM_DEVICE_AP_X16) { opi_config.frame_format = OPI_FRAME_FORMAT_SIXT; } @@ -738,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), @@ -1068,7 +1097,16 @@ static errcode_t psram_exit_sleep_device_ap_x16(void) hal_opi_disable(OPI_BUS); uapi_tcxo_delay_us(PSRAM_CE_PULL_UP_WAIT_MIN_TIME); - return ERRCODE_SUCC; + uint32_t reg_value = 0; + g_psram_sleeped = false; + uapi_psram_read_reg(PSRAM_REG_AP_X16_MR0, ®_value); + g_psram_sleeped = true; + // Read variable latency configuration codes MR0[4:2] --- 011 + if (((reg_value >> PSRAM_AP_X16_REG_WRITE_DATA_SHIFT) & PSRAM_AP_X16_MR0_RL_CODE_MASK) == + (PSRAM_AP_X16_MR0_READ_LATENCY_166MHZ & PSRAM_AP_X16_MR0_RL_CODE_MASK)) { + return OPI_RET_OK; + } + return OPI_RET_ERROR; } static errcode_t psram_exit_sleep_device_winbon_x8(void) diff --git a/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c b/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c index f9ffcfc4e..9e7e9fb25 100644 --- a/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c +++ b/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c @@ -151,11 +151,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 88b5026a7..b21c0f913 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 c04a4e341..dfe582c37 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..36ff0e5de 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 1bdf5bd87..90138aad9 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 c3cd9d124..450d37864 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_aop.c.xml b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_aop.c.xml index 6c0305633..7aaeb5ae9 100644 --- a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_aop.c.xml +++ b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_aop.c.xml @@ -13,67 +13,67 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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_effect.c.xml b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_effect.c.xml index f92c67438..d7cd2eb69 100644 --- a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_effect.c.xml +++ b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_effect.c.xml @@ -43,7 +43,7 @@ - - - + + + \ 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/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_sys.c.xml b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_sys.c.xml index c4d854f94..ce751455b 100644 --- a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_sys.c.xml +++ b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/core_sys.c.xml @@ -16,14 +16,14 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/sys_cmd.c.xml b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/sys_cmd.c.xml index f1c70c5bd..7448aeee0 100644 --- a/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/sys_cmd.c.xml +++ b/code/sdk/interim_binary/brandy/audio/build_hso_cfg/hso_database/xml/base/dsp_core/sys_cmd.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/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 e010b28a2..e1f042420 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 aa0fdfb2e..998125c83 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 becd14040..1c2cbe046 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/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 a23ae4624..398a9485a 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 77b32fa61..0e9fc5d89 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 07f39ef6f..5956ff4dc 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/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 636ff18b6..4fe7d6606 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 c4e279d69..b485c2498 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 993e67a35..f00910a5c 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 335c9aaf0..7aecc75b0 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 85a7c63da..0f9621bbf 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 @@ -192,12 +192,6 @@ void pm_core_resume_min(void) ArchDCacheInvAll(); dsb(); - 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); - pin_of_poweroff_resume(); pin_port_recovery_function(); uart_h0_resume_tmp(); @@ -272,6 +266,9 @@ void pm_core_resume(void) clocks_bridging_low_powerp_config(true); system_mcu_clocks_config(); hal_pmu_set_cmu_xo_trim(HAL_PMU_XO_CORE_DS_1_025X); + 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 e0af7a89f..e384e8e61 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 @@ -48,6 +48,10 @@ #define PLL_CLK_VALUE 884736000 #define PM_SDIOM_CLK_REG 0x55000628 #define PM_EMMC_DIV_REG 0x52000120 +#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 static uint32_t g_uart_h0_regs_tmp[UART_SUSPEND_REGS_NUM]; static uint32_t g_uart_h1_regs_tmp[UART_SUSPEND_REGS_NUM]; @@ -382,6 +386,14 @@ void display_resume_tmp(void) void pm_misc_regs_resume(void) { + 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); + #ifdef CFG_DRIVERS_NANDFLASH reg16_clrbit(PM_SD_HOST_CCLK_DIV_REG, 0); // close sd host clock enable. reg16_clrbit(PM_EMMC_CCLK_DIV_REG, 0); // close sd mmc clock enable. 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 4d58f1861..3e2deaa99 100644 --- a/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c +++ b/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c @@ -293,13 +293,18 @@ 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; } if (sleep_ms <= PM_SLEEP_THRESHOLD_WFI_ONLY_MS || pm_get_sleep_veto()) { status = pm_os_irq_lock(); + pm_sleep_info_record(SLP_INFO_TIME_BASE); pm_enter_wfi(); + pm_sleep_info_record(SLP_INFO_LIGHTSLEEP); pm_os_irq_restore(status); return; } @@ -340,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/rm/brandy-auto-ota-cli/libgfx_rm.a b/code/sdk/middleware/services/gpu/api/rm/brandy-auto-ota-cli/libgfx_rm.a index 7f6b27ee9..092677d93 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 38a1bdda1..8786cac43 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 8101de3e8..b6b63fe41 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 18778c101..8b2b0dfa2 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 4d105b6ee..ed958f390 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 8519b170a..c280d0c6e 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 abca2ebe1..f105334cc 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 5c37168f7..845e3f0fd 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 065416358..7d7a1bada 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 79dba85dc..5580c0d26 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 d0791818f..438f33fdd 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 f249d23f3..b35a02b11 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 b8fac2d87..354b20356 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 6f327fd3b..2831b001b 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/dpu/layer/dpu_layer.c b/code/sdk/middleware/services/gpu/drv/dpu/layer/dpu_layer.c index b02f22877..1b9854719 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 @@ -571,6 +571,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); 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 ebde7319c..cc9ec791c 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 @@ -179,4 +179,5 @@ #define DRAW_MAX_CNT 640 #endif +#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 fe56ad63e..d2e5513b2 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 2870cd7ce..66a278136 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 464b21c8c..a9dbb4530 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 d07e16643..6726e6672 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 c32afcc96..bdaac2af8 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 39ebbd227..7eacc042e 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 517fcce86..7fd8f9f11 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 a88b988ec..1f4a4954c 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 37f9bb121..728bf6fe8 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 089e99197..61df03b92 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 69e38e73f..acbd6f027 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 aa7a1f3f6..b35257668 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 30de184b6..f7e6a1640 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 45899dba9..728ec08e8 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 2287b8f57..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. 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 e55563061..75a1ee805 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 9fc837798..08fa7d132 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 0c019c6df..c6481f677 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 @@ -82,6 +82,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. */ @@ -130,14 +135,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_; @@ -146,6 +147,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 3a0c7f944..437145001 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 @@ -42,6 +42,10 @@ 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; @@ -60,8 +64,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; } @@ -71,10 +76,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(); }, @@ -86,6 +91,7 @@ bool GraphicService::AsyncTriggerNativeGraphicTask() void GraphicService::SetNativeUIRunning(bool isRunning) { + switchMutex_.Lock(); if (isRunning) { osal_atomic_set(&isNativeRunning_, 1); } else { @@ -93,6 +99,7 @@ void GraphicService::SetNativeUIRunning(bool isRunning) OHOS::GraphicEventHandler::GetInstance()->ClearGraphicEvent(); osal_atomic_set(&graphicTaskTriggeredCount_, 0); } + switchMutex_.Unlock(); } int GraphicService::IsNativeRunning() const @@ -145,29 +152,29 @@ 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() { rtcEventCond_.Signal(); } -#ifdef ENABLE_CMSIS void GraphicService::RtcEventThread(void* args) -#else -void* GraphicService::RtcEventThread(void* args) -#endif { while (true) { rtcEventMutex_.Lock(); @@ -183,9 +190,6 @@ void* GraphicService::RtcEventThread(void* args) jsVsyncCallback_(); } } -#if !defined(ENABLE_CMSIS) - return nullptr; -#endif } void GraphicService::SetUpRootView(void) @@ -214,9 +218,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__); @@ -226,9 +228,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..87a9237be 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 @@ -29,21 +29,121 @@ void UIListExt::ReMeasure() 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 3c5594d46..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 @@ -36,8 +36,13 @@ static struct { {FrameTraceType::HW_DRAW_SUBMIT, "hw_submit"}, {FrameTraceType::HW_DRAW_FLUSH, "hw_flush"}, {FrameTraceType::HW_DRAW_WAIT, "hw_wait"}, + {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; @@ -116,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() @@ -173,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_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 8b94c250e..6fabc2453 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 @@ -84,6 +84,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 b2f151497..b39b55217 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 @@ -275,6 +275,7 @@ void UILabel::SetAlign(UITextLanguageAlignment horizontalAlign, UITextLanguageAl { InitLabelText(); labelText_->SetAlign(horizontalAlign, verticalAlign); + horAlign_ = horizontalAlign; if (labelText_->IsNeedRefresh()) { RefreshLabel(); } @@ -429,6 +430,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/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 af4e3c7ee..fed4c842c 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 @@ -340,7 +340,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 @@ -444,6 +444,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 0f6a2b5a3..209f7b077 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,10 +23,9 @@ #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) \ - { \ + if (pointer != nullptr) { \ delete pointer; \ pointer = nullptr; \ } @@ -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() { @@ -108,7 +109,8 @@ void AudioPlayerCallback::OnInfo(int type, int extra) TriggerEventListener(audioPlayer_->GetOnLoadedDataListener()); } -void AudioPlayerCallback::OnVideoSizeChanged(int width, int height) {} +void AudioPlayerCallback::OnVideoSizeChanged(int width, int height) +{} void AudioPlayerCallback::OnRewindToComplete() { @@ -124,23 +126,13 @@ 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_(const_cast(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_(const_cast(STATUS_STOP)), + volume_(DEFAULT_VOLUME), autoPlay_(false), muted_(false), isRunning_(false), isSysSrc_(false), + updateTimeProcess_(nullptr) +{} void AudioPlayer::ForkUpdateTimeThread() { @@ -152,7 +144,7 @@ void AudioPlayer::ForkUpdateTimeThread() lock_ = MediaMutexCreate(NULL); 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_ == NULL) { MEDIA_ERR_LOG("fork thread failed."); @@ -196,21 +188,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() @@ -300,7 +292,7 @@ void AudioPlayer::ReleaseSrc() ace_free(src_); src_ = nullptr; } - if (srcInner_ != nullptr && isSysSrc_ == false) { + if (srcInner_ != nullptr) { ace_free(srcInner_); srcInner_ = nullptr; } @@ -636,5 +628,5 @@ void AudioPlayer::SetOnTimeUpdateListener(AudioEventListener *onTimeUpdateListen } onTimeUpdateListener_ = onTimeUpdateListener; } -} // namespace ACELite -} // namespace OHOS +} // namespace ACELite +} // namespace OHOS diff --git a/code/sdk/middleware/services/media/hal/audio/plugins/brandy/bluetooth/bluetooth_sub_port.c b/code/sdk/middleware/services/media/hal/audio/plugins/brandy/bluetooth/bluetooth_sub_port.c index a55f1e716..997f4ba59 100644 --- a/code/sdk/middleware/services/media/hal/audio/plugins/brandy/bluetooth/bluetooth_sub_port.c +++ b/code/sdk/middleware/services/media/hal/audio/plugins/brandy/bluetooth/bluetooth_sub_port.c @@ -19,7 +19,11 @@ #ifdef BT_HAL_SUPPORT #include "bt_audio_hal_interface.h" #endif - +#if defined(BRANDY_PRODUCT_EVB) +#include "product_evb_standard.h" +#elif defined(BRANDY_PRODUCT_EVB4) +#include "product_evb4_standard.h" +#endif #include "plugin_common.h" #include "media_hal_common.h" #include "latm_simple_muxer.h" @@ -520,6 +524,12 @@ static int32_t CastSndOpen(td_handle *sndHandle, uapi_audio_sample_rate sampleRa MediaHalMutexUnLock(g_subPortLock); return ret; } + ret = uapi_snd_set_track_mode(*sndHandle, sndAttr.port_attr[0].out_port, SND_TRACK_MODE_BT_MUSIC); + if (ret != MEDIA_HAL_OK) { + MEDIA_HAL_LOGE(MODULE_NAME, "set track mode failed, ret = %d", ret); + MediaHalMutexUnLock(g_subPortLock); + return ret; + } } g_subPortSndRefCnt++; MediaHalMutexUnLock(g_subPortLock); @@ -2885,11 +2895,14 @@ int32_t AudioBluetoothSubPortDestroyTrack(AudioHandle portHandle, AudioHandle tr SubPortContext *portCtx = (SubPortContext *)portHandle; SubPortTrackContext *portTrackCtx = (SubPortTrackContext *)trackHandle; + MediaHalMutexLock(portCtx->a2dpTrackMutex); bool isValid = BluetoothPortIsValidTrack(portCtx, portTrackCtx); - CHK_FAILED_RETURN(isValid, true, MEDIA_HAL_INVALID_PARAM, "track is invalid"); - + if (!isValid) { + MEDIA_HAL_LOGE(MODULE_NAME, "track is invalid"); + MediaHalMutexUnLock(portCtx->a2dpTrackMutex); + return MEDIA_HAL_INVALID_PARAM; + } int32_t trackCount = -1; - MediaHalMutexLock(portCtx->a2dpTrackMutex); int32_t ret = SubPortFreeTrack(portTrackCtx->trackId, &trackCount); CHK_FAILED_NO_RETURN(ret, MEDIA_HAL_OK, "SubPortFreeTrack failed"); diff --git a/code/sdk/middleware/services/media/hal/audio/plugins/brandy/modem/modem_sub_port.c b/code/sdk/middleware/services/media/hal/audio/plugins/brandy/modem/modem_sub_port.c index 96ce37ad7..35a14a663 100644 --- a/code/sdk/middleware/services/media/hal/audio/plugins/brandy/modem/modem_sub_port.c +++ b/code/sdk/middleware/services/media/hal/audio/plugins/brandy/modem/modem_sub_port.c @@ -519,9 +519,13 @@ static int32_t AODevOpen(SubPortTrackContext *portTrackCtx) } else { if (portTrackCtx->workScene == MODEM_HEADSET_DOWNLINK) { MEDIA_HAL_DOFUNC_TIME(ret = uapi_snd_set_aef_profile(portTrackCtx->downlinkSoundHandle, profile)); + ret = uapi_snd_set_track_mode(portTrackCtx->downlinkSoundHandle, + sndAttr.port_attr[0].out_port, SND_TRACK_MODE_BT_CAT1); } else { profile = UAPI_SND_AEF_PROFILE_VOIP; MEDIA_HAL_DOFUNC_TIME(ret = uapi_snd_set_aef_profile(portTrackCtx->downlinkSoundHandle, profile)); + ret = uapi_snd_set_track_mode(portTrackCtx->downlinkSoundHandle, + sndAttr.port_attr[0].out_port, SND_TRACK_MODE_LOCAL_CAT1); } } CHK_FAILED_NO_RETURN(ret, MEDIA_HAL_OK, "set profile failed"); diff --git a/code/sdk/middleware/services/media/hal/audio/plugins/brandy/primary/primary_sub_port_out.c b/code/sdk/middleware/services/media/hal/audio/plugins/brandy/primary/primary_sub_port_out.c index 285401bc2..3a2e6b359 100644 --- a/code/sdk/middleware/services/media/hal/audio/plugins/brandy/primary/primary_sub_port_out.c +++ b/code/sdk/middleware/services/media/hal/audio/plugins/brandy/primary/primary_sub_port_out.c @@ -334,10 +334,24 @@ static uapi_snd_aef_profile ConvertAudioCategoryToAudioEffectProfile(const enum } #endif +static int32_t SetAefProfile(SubPortOutContext *portOutCtx, const enum AudioCategory audioCategory) +{ + uapi_snd_aef_profile profile = ConvertAudioCategoryToAudioEffectProfile(audioCategory); + if (profile == UAPI_SND_AEF_PROFILE_MAX) { + MEDIA_HAL_LOGE(MODULE_NAME, "invalid audio category %d", audioCategory); + return MEDIA_HAL_INVALID_PARAM; + } + int32_t ret = uapi_snd_set_aef_profile(portOutCtx->sndHandle, profile); + if (ret != MEDIA_HAL_OK) { + MEDIA_HAL_LOGE(MODULE_NAME, "uapi_snd_set_aef_profile(%d) failed: 0x%x", profile, ret); + } + return MEDIA_HAL_OK; +} + static int32_t AODevOpen(SubPortOutContext *portOutCtx, const enum AudioCategory audioCategory) { #ifdef AUDIO_SDK_SUPPORT - MediaHalInitStaticMutexLock(&g_subPortTrackOutLock); + MediaHalInitStaticMutexLock(&g_subPortTrackOutLock); MediaHalMutexLock(g_subPortTrackOutLock); if (g_subPortTrackOutSndRefCount == 0) { int32_t ret = MEDIA_HAL_OK; @@ -357,17 +371,21 @@ static int32_t AODevOpen(SubPortOutContext *portOutCtx, const enum AudioCategory MediaHalMutexUnLock(g_subPortTrackOutLock); return ret; } - - uapi_snd_aef_profile profile = ConvertAudioCategoryToAudioEffectProfile(audioCategory); - if (profile == UAPI_SND_AEF_PROFILE_MAX) { - MEDIA_HAL_LOGE(MODULE_NAME, "invalid audio category %d", audioCategory); + if (audioCategory == AUDIO_IN_COMMUNICATION) { + ret = uapi_snd_set_track_mode(portOutCtx->sndHandle, sndAttr.port_attr[0].out_port, SND_TRACK_MODE_BT_SCO); + } else if (audioCategory == AUDIO_IN_MEDIA) { + ret = uapi_snd_set_track_mode(portOutCtx->sndHandle, + sndAttr.port_attr[0].out_port, SND_TRACK_MODE_LOCAL_MUSIC); + } + if (ret != MEDIA_HAL_OK) { + MEDIA_HAL_LOGE(MODULE_NAME, "set track mode failed, ret = %d", ret); MediaHalMutexUnLock(g_subPortTrackOutLock); return MEDIA_HAL_INVALID_PARAM; } - - MEDIA_HAL_DOFUNC_TIME(ret = uapi_snd_set_aef_profile(portOutCtx->sndHandle, profile)); + ret = SetAefProfile(portOutCtx, audioCategory); if (ret != MEDIA_HAL_OK) { - MEDIA_HAL_LOGE(MODULE_NAME, "uapi_snd_set_aef_profile(%d) failed: 0x%x", profile, ret); + MediaHalMutexUnLock(g_subPortTrackOutLock); + return MEDIA_HAL_INVALID_PARAM; } } g_subPortTrackOutSndRefCount++; @@ -376,8 +394,6 @@ static int32_t AODevOpen(SubPortOutContext *portOutCtx, const enum AudioCategory MEDIA_HAL_UNUSED(portOutCtx); MEDIA_HAL_UNUSED(audioCategory); #endif - - MEDIA_HAL_LOGD(MODULE_NAME, "success"); return MEDIA_HAL_OK; } @@ -554,7 +570,7 @@ int32_t AudioPrimarySubPortOutGetLatency(AudioHandle trackHandle, uint32_t *late return MEDIA_HAL_OK; } #ifdef AUDIO_SDK_SUPPORT -static int32_t AdpEventCB(td_handle adpHandle, uapi_adp_event_type event, const td_void *param, td_void *context) +static int32_t AdpEventCB(td_handle adpHandle, uapi_adp_event_type event, td_void *param, td_void *context) { MEDIA_HAL_UNUSED(adpHandle); MEDIA_HAL_UNUSED(param); 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 fab1f8b3f..db39f8950 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 41190481f..267892cb8 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 423debcc3..9146a5dce 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 e94333adf..2098718fa 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 872b5e663..c16ef2d2a 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 7ac9d5959..8887b3960 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 cf99d9322..28509d7d8 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 aa577d55c..62cc55efa 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 2602c3c0c..1b52c1cab 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 55749991c..52a644215 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 b5e94948f..d72897d9a 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 7f2fb9452..ccd115868 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 207600ee1..676565ccc 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 73796117e..ba6e1a289 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 bc04e2b54..f822bc1fb 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 4a272dfd8..48a9e7223 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 b7524ed21..ab44f1be7 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 b71cd15ce..a2818eef3 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 5d415bd2c..673fa280a 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 83646502d..cdcd1dee1 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 1215af7cb..b63f085ef 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 0501401cf..1f73c2d00 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 c34a14114..310edb4b8 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 97a5e66f3..724d09fde 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 0205ed2a3..e721b85d1 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 7c32b881a..382fb4f70 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 ad5e09d46..01de1d883 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 4a0c3da05..b287371a6 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 a798bdafc..f813e1e24 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 d3ab2f372..d20893e77 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 28359880f..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 { @@ -98,6 +98,7 @@ static errcode_t nv_async_update_attr(nv_key_map_t* cur_key, nv_key_attr_t *attr if (attr == NULL) { return ERRCODE_SUCC; } + /* 保持hash表中数据和传入的属性保持一致 */ if (attr->permanent) { cur_key->permanent = 1; 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 81999822b..92afaee65 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 9bc8af1b2..170ebf3e1 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 911e68a7a..c2cf773f6 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 ff8e68d46..90472024e 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/brandy-auto-ota-cli/libace.a b/code/sdk/open_source/openharmony/foundation/ace/ace_engine_lite/brandy-auto-ota-cli/libace.a index d35625224..1285d7577 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 43b0a6b81..b3f4d3f9f 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 5cd4368ca..d75a78751 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 abc35578d..7360ab4ab 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 c1aae2c9b..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; @@ -313,48 +310,38 @@ static void ExecuteSendMsgToJS(void *data) context = bt_connect_callbackContext; break; default: - HILOG_ERROR(HILOG_MODULE_ACE, "Invalid command type"); - break; - + 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/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 5aa11e829..31498c238 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 985e5b5cb..d117e4c9f 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 2c35a7e5d..3ad0d2547 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 6397f5607..fc9b21e1c 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 541cc4893..3dce671b3 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 @@ -41,6 +41,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 4a119b244..20d9f7dea 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 f236f6e06..6d294cacc 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 4c6839d58..009009cc3 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 ac4a96e33..016f9c8a7 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/dsp/max/dsp_main.bin b/code/sdk/tools/pkg/bin/brandy/dsp/max/dsp_main.bin index 49a443704..da582c2a4 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 76fdbe4fc..6c129fe2c 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 cdb58d6cc..b8cf2ca23 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_602_1009_to_1029.txt b/patch_602_1009_to_1029.txt new file mode 100644 index 000000000..02865c3d3 --- /dev/null +++ b/patch_602_1009_to_1029.txt @@ -0,0 +1,48 @@ +【补丁名称】patch_602_1009_to_1029 +【基础版本】b602 + 0521 + 0626 + 7020 + 0812 + 0911 + 1009 +【修复问题】 +PLT合入内容 + 1、完善pmp配置,已解决nmi xip异常 + 2、psram稳定性增强 + 3、解决低概率rtc异常导致的系统狗超时 +AUDIO&MEDIA合入内容 + 1、配合DSP的修改:同步track mode相关改动,解决CAT1仅单声道有数据时音量变小的问题 + 2、同步track mode相关改动,解决CAT1仅单声道有数据时音量变小的问题 + 3、优化消息模块,解决DSP概率无法下电的问题 +GUI合入内容 + 1、可缩放滑动列表布局方案优化 + 2、一级界面UICrossView快速滑动响应优化 + 3、瀑布流、蜂窝转场动画优化 + 4、多语言频繁切换后文本滑动卡顿优化 + 5、统计图形耗时DFX方案优化,支持打印Task、Event耗时 + 6、解决视频起播过程中快速灭屏导致的后续播放异常问题 + 7、解决Canvas等控件在特殊场景下挂死、绘制异常等问题 + 8、解决JS应用退出到Native概率花屏问题 + 9、解决LVGL圆角矩形矢量数据在异步模式下提前释放的问题 +OHOS合入内容 + 1、支持关签名模式下jsapp覆盖安装 + 2、修改audio src接口重复调用失败问题 + 3、修改原生GetTopAbility释放 + 4、增加跑马灯文本旋转JS Sample + 5、修改百度地图json外部释放 +GPU合入内容: + 1、解决DPU视频层停止送显后进出低功耗后黑屏问题 +NATIVE-JS sample合入内容 + +【修改影响】NA + +【使用方法】 + 1、合入0521补丁 + 2、合入0626补丁 + 3、合入0720补丁 + 4、合入0812补丁 + 5、合入0911补丁 + 6、合入1009补丁 + 6、合入1029补丁(此补丁包含1014单点合入内容) + +【自测情况】 + 自验证范围: + 全功能冒烟 + 自验证target: + Native-js、target3 rc版本 +【是否合入版本】根据测试结果确定