void OnSwipe(UISwipeView &view) override;
void SetPage(int8_t id);
void SetTaskPeroid(CardId cardId);
- void setCallback(ZoomEffect *callback) { callback_ = callback; }
void InitCardSettings(void);
uint8_t GetCardSettingCount(void);
void SetCircleProgress(void);
void SetCompassRotate(void);
KeyInputListener *keyActListener_{nullptr};
- ZoomEffect *callback_{nullptr};
uint8_t state_ = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;
int64_t playerCurrentTime_{0};
int64_t playerMusicDuration_{0};
bool IsPaused();
bool IsPlayed();
bool IsStopped();
+ MediaVideoPlay* GetVideoPlay();
private:
FILE* fp_ = nullptr;
void OnActive(void) override;
void OnInactive(void) override;
-
+
+ MediaVideoPlay* GetVideoPlay();
+
private:
bool resLoadStatus{false};
/* -------------------------------------------------------------------------- */
CardId cardId = view_->GetHorCurrentCard();
- callback_->OnSwipe(view);
+
SetTaskPeroid(cardId);
if (cardId == COMPASS)
{
}
}
callback->isNeedClip_ = true;
+ callback->SetContainer(mainSwipeGroup);
HorizontalViewInit();
HorViewLoad();
VerticalViewInit(); // 初始化上下拉界面
}
}
}
- presenter_->setCallback(callback);
+
mainSwipeGroup->SetOnSwipeListener(presenter_);
mainSwipeGroup->SetOnLongPressListener(presenter_);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitPage over");
}
return videoPlayer_->isExited_;
}
+
+MediaVideoPlay* DialVideoView::GetVideoPlay()
+{
+ return videoPlayer_;
+}
}
kaleidoscope_->StopRotateAnimator();
kaleidoscope_->ClearFocus();
}
+}
+MediaVideoPlay* DialViewGroup::GetVideoPlay()
+{
+ if (video_ != nullptr) {
+ return video_->GetVideoPlay();
}
+ return nullptr;
}
+}
\ No newline at end of file
// }
ScoStatusCb(HFP_SCO_STATE_DISCONNECTED);
- if (g_currCallState == HFP_HF_CALL_STATE_ACTIVE && g_scoFlag == HFP_SCO_STATE_DISCONNECTED) {
+ if ((g_currCallState == HFP_HF_CALL_STATE_ACTIVE && g_scoFlag == HFP_SCO_STATE_DISCONNECTED) ||
+ (g_scoFlag == HFP_SCO_STATE_CONNECT_FAILURE)) {
// The call is transferred from the watch to the phone. Need to close the call notification view.
hfp_hf_calls_info_t call = {0};
HfpIncomingEventPublish(TOPIC_EVENT_HFP_WATCH_TO_PHONE, call);
PhoneServiceScreenCtr(0);
break;
+ case HFP_SCO_STATE_CONNECT_FAILURE:
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO connect failure!");
+ ScoDisconnectPro();
+ PhoneServiceScreenCtr(0);
+ break;
+
default:
break;
}
virtual ~ApplistModel();
ApplistPresenter *presenter{nullptr};
- AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr, nullptr };
+ AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr, nullptr, nullptr };
BundleInfo *bundleInfos = nullptr;
int32 bundleLen = 0;
uint8 appLen = 0;
void OnSwipe(UISwipeView& view) override;
void SetPage(int8_t id);
void SetTaskPeroid(CardId cardId);
- void setCallback(ZoomEffect* callback)
- {
- callback_ = callback;
- }
void InitCardSettings(void);
uint8_t GetCardSettingCount(void);
void SetCircleProgress(void);
void SetCompassRotate(void);
KeyInputListener *keyActListener_{nullptr};
- ZoomEffect* callback_{nullptr};
uint8_t state_ = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;
int64_t playerCurrentTime_{0};
int64_t playerMusicDuration_{0};
bool IsPaused();
bool IsPlayed();
bool IsStopped();
+ MediaVideoPlay* GetVideoPlay();
private:
FILE* fp_ = nullptr;
void OnInactive(void) override;
+ MediaVideoPlay* GetVideoPlay();
+
private:
void ProcessData(DialDataType type, DialView* view);
std::unordered_map<int16_t, DialView*> dataTypeMap_;
{
UNUSED(view);
CardId cardId = view_->GetHorCurrentCard();
- callback_->OnSwipe(view);
SetTaskPeroid(cardId);
if (cardId == COMPASS) {
if (!isCompassSensorOpened_) {
return;
}
}
+ callback->SetContainer(mainSwipeGroup);
HorizontalViewInit();
HorViewLoad();
}
}
}
- presenter_->setCallback(callback);
mainSwipeGroup->SetOnSwipeListener(presenter_);
mainSwipeGroup->SetOnLongPressListener(presenter_);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitPage over");
}
return videoPlayer_->isExited_;
}
+
+MediaVideoPlay* DialVideoView::GetVideoPlay()
+{
+ return videoPlayer_;
+}
}
kaleidoscope_->ClearFocus();
}
}
+
+MediaVideoPlay* DialViewGroup::GetVideoPlay()
+{
+ if (video_ != nullptr) {
+ return video_->GetVideoPlay();
+ }
+ return nullptr;
}
+}
\ No newline at end of file
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[ScoDisconnectPro] start CallState:%d", g_currCallState);
ScoStatusCb(HFP_SCO_STATE_DISCONNECTED);
- if (g_currCallState == HFP_HF_CALL_STATE_ACTIVE && g_scoFlag == HFP_SCO_STATE_DISCONNECTED) {
+ if ((g_currCallState == HFP_HF_CALL_STATE_ACTIVE && g_scoFlag == HFP_SCO_STATE_DISCONNECTED) ||
+ (g_scoFlag == HFP_SCO_STATE_CONNECT_FAILURE)) {
// The call is transferred from the watch to the phone. Need to close the call notification view.
hfp_hf_calls_info_t call = {0};
HfpIncomingEventPublish(TOPIC_EVENT_HFP_WATCH_TO_PHONE, call);
PhoneServiceScreenCtr(0);
break;
+ case HFP_SCO_STATE_CONNECT_FAILURE:
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO connect failure!");
+ ScoDisconnectPro();
+ PhoneServiceScreenCtr(0);
+ break;
+
default:
break;
}
fclose(fp);\r
file_content[file_len] = '\0';\r
\r
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "file_len = %d.\r\n", file_len);\r
- /* send to JSI */\r
- if (file_len <= ROUTE_TRANS_MAX_SIZE) {\r
- BaidumapSendMsgToJS(file_content, type);\r
- free(file_content);\r
- file_content = nullptr;\r
- } else {\r
- BaidumapFailSendMsgToJS("long distance", type);\r
- }\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s: file_len = %d.\r\n", vector_navi_get_str(type), file_len);\r
\r
+ /* send to JSI */\r
+ BaidumapSendMsgToJS(file_content, type);\r
+ free(file_content);\r
+ file_content = nullptr;\r
+ return;\r
}\r
\r
errcode_t msg_center_vector_navi_pull_up(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len)\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s -- > %s\r\n", vector_navi_get_str(type), tlv_payload);\r
\r
if (is_vector_navi_longbuf(type) && payload_len != 1) {\r
- msg_center_transfer_longbuf(data, type);\r
+ if (payload_len == 2) { // 2,长距离的协议优化,限制为 ROUTE_TRANS_MAX_SIZE, app先读文件过滤,减少无效带宽损耗\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "type(%d) exceeds long distance, send fail to JS.\r\n", type);\r
+ BaidumapFailSendMsgToJS(data, type);\r
+ } else {\r
+ msg_center_transfer_longbuf(data, type);\r
+ }\r
} else if (has_two_callback(type) && payload_len == 1) {\r
if (strcmp(data, "1") == 0) {\r
BaidumapSendMsgToJS(data, type);\r
${ROOT_DIR}/open_source/openharmony/third_party/cJSON
${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits
${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/innerkits
+ ${ROOT_DIR}/open_source/openharmony/base/global/resmgr_lite/interfaces/innerkits/include
+ ${ROOT_DIR}/open_source/openharmony/foundation/appexecfwk/appexecfwk_lite/include/appexecfwk/appexecfwk_lite/services/bundlemgr_lite/include
+ ${ROOT_DIR}/application/wearable/nativeapp/nativeui/applist/include
)
set(PRIVATE_DEFINES
#include "NativeAbility.h"
#include "ability_manager.h"
#include "js_fwk_common.h"
+#include "global.h"
+#include "gt_bundle_manager_service.h"
+#include "ApplistModel.h"
#define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0]))
#define OHOSFWK_MAX_ARGC 8
return ERRCODE_SUCC;
}
+static uint32_t OhosfwkATCmdChangeLanguage(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ unused(strCommonCmd);
+
+ uint8_t argv[OHOSFWK_MAX_ARGC][OHOSFWK_MAX_ARGV_LEN] = { 0 };
+ uint32_t argc = 0;
+ int ret = ConvertCmdToParam(para, paraLen, argv, &argc);
+
+ if (ret != OHOSFWK_SUCCESS) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OHOSFWK ATCMD Convert Command Failed\n");
+ return ERRCODE_FAIL;
+ }
+
+ if (argc != 1) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OHOSFWK ATCMD Language Setting Failed\n");
+ return ERRCODE_FAIL;
+ }
+
+ char *languageRegion = (char *)argv[0];
+ GLOBAL_ConfigLanguage(languageRegion);
+
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Language changed to %s\n", languageRegion);
+
+ return ERRCODE_SUCC;
+}
+
static const at_cmd_table_t g_ohosfwk_cmd[] = {
{ (char *)"AT^OHOSFWK_AM_EXIT_JSAPP", OhosfwkATCmdAmExitJsApp, (char *)"00 00 00 00" },
{ (char *)"AT^OHOSFWK_BM_INSTALL", OhosfwkATCmdBmInstall, (char *)"00 00 00 01" },
{ (char *)"AT^OHOSFWK_AM_CHANGENATIVESLICE", OhosfwkATCmdAmChangeNativeSlice, (char *)"00 00 00 04" },
{ (char *)"AT^OHOSFWK_AM_START_JS_APP", OhosfwkATCmdAmStartJsApp, (char *)"00 00 00 05" },
{ (char *)"AT^OHOSFWK_DFX_JS_MEMORY_INFO", OhosfwkATCmdDfxJsMemoryInfo, (char *)"00 00 00 06" },
+ { (char *)"AT^OHOSFWK_CHANGE_LANGUAGE", OhosfwkATCmdChangeLanguage, (char *)"00 00 00 07" },
};
at_cmd_table_t *get_ohosfwk_cmd_table(uint32_t *cmd_count)
#include "pmu_cmu.h"
#include "clocks_config_priv.h"
#include "hal_pmu_vdd.h"
+#include "chip_io.h"
+#if defined(BUILD_APPLICATION_STANDARD) && !defined(BUILD_RECOVERY_IMAGE)
+#ifdef __LITEOS__
+#include "los_exc.h"
+#endif
+#endif
+#include "errcode.h"
+#include "panic.h"
clocks_pll_src_t clocks_pll_veto_type_translation(clocks_clk_src_t clk_src)
{
void clocks_pll_power_on(clocks_pll_src_t pll_src)
{
cmu_pll_config_t pll_cfg;
+ uint32_t sucess_flag = 0;
+ uint32_t left_reinit_times = MAX_PLL_REINIT_TIMES;
switch (pll_src) {
case CLOCKS_PLL_SRC_TCXO_COM_DLL2:
hal_clocks_ccrg_xo_dll2_clk_en((switch_type_t)true);
break;
case CLOCKS_PLL_SRC_PLL:
- pmu_vdd1p0_request_switch(TURN_ON);
- pll_cfg = clocks_pll_cfg_get();
- pmu_cmu_pll_reinit(PMU_CMU_PLL, pll_cfg);
+ while (left_reinit_times--) {
+ pmu_vdd1p0_request_switch(TURN_ON);
+ pll_cfg = clocks_pll_cfg_get();
+ errcode_t ret = pmu_cmu_pll_reinit(PMU_CMU_PLL, pll_cfg);
+ if (ret == 0) {
+ sucess_flag = 1;
+ break;
+ } else {
+ clocks_pll_power_off(CLOCKS_PLL_SRC_PLL);
+ }
+ }
+
+ if (sucess_flag != 1) {
+#if defined(BUILD_APPLICATION_STANDARD) && !defined(BUILD_RECOVERY_IMAGE)
+#ifdef __LITEOS__
+ LOS_PANIC("clocks_pll_power_on fail reg_ip0 = %x bit 1\n", hal_pmu_get_simo2_buck_reg());
+#else
+ panic(PANIC_PMU_LDO, hal_pmu_get_simo2_buck_reg());
+#endif
+#else
+ panic(PANIC_PMU_LDO, hal_pmu_get_simo2_buck_reg());
+#endif
+ }
break;
default:
break;
* @{
*/
#define PLL_I2S_CODEC_CLKDIV 36UL
+#define MAX_PLL_REINIT_TIMES 3
/**
* @brief Modules in the common crg.
g_pll_used = true;
}
-void pmu_cmu_pll_reinit(pmu_cmu_core_t pll, cmu_pll_config_t pll_cfg)
+errcode_t pmu_cmu_pll_reinit(pmu_cmu_core_t pll, cmu_pll_config_t pll_cfg)
{
UNUSED(pll);
+ errcode_t ret = 0;
if (g_pll_used) {
- return;
+ return ret;
}
uint32_t irq = osal_irq_lock();
uapi_tcxo_delay_us(120ULL);
hal_pmu_cmu_core_pll_cfg_control(CMU_DAC_PD, TURN_OFF);
hal_pmu_cmu_core_pll_cfg_control(CMU_DSM_PD, TURN_OFF);
hal_clocks_pll_module_clken(TURN_ON);
- hal_pmu2_cmu_pll_lock_check();
+ ret = hal_pmu2_cmu_pll_lock_check();
g_pll_used = true;
osal_irq_restore(irq);
uapi_tcxo_delay_us(100ULL);
+ return ret;
}
void pmu_cmu_pll_deinit(pmu_cmu_core_t pll)
#include "chip_definitions.h"
#include "platform_core.h"
#include "hal_pmu_cmu.h"
+#include "errcode.h"
/** @defgroup connectivity_drivers_non_os_pmu_cmu PMU CMU
* @ingroup connectivity_drivers_non_os_pmu
* @brief Cmu pll reinit.
* @param pll_cfg PLL config.
*/
-void pmu_cmu_pll_reinit(pmu_cmu_core_t pll, cmu_pll_config_t pll_cfg);
+errcode_t pmu_cmu_pll_reinit(pmu_cmu_core_t pll, cmu_pll_config_t pll_cfg);
/**
* @brief Cmu pll power off.
hal_reg_config_bit(PMU2_PLL_FRAC_SEL_REG, manual_control, (REG16_POS)PMU2_FRAC_SEL_BIT);
}
-void hal_pmu2_cmu_pll_lock_check(void)
+errcode_t hal_pmu2_cmu_pll_lock_check(void)
{
- hal_reg_status_check_timeout(PMU2_PLL_LOCK_STS_REG, PMU2_PLL_LOCK_STS_BIT, TURN_ON, PMU_CMU_PLL_LOCK_DELAY_US);
+ return hal_reg_status_check_timeout_no_panic(
+ PMU2_PLL_LOCK_STS_REG, PMU2_PLL_LOCK_STS_BIT, TURN_ON, PMU_CMU_PLL_LOCK_DELAY_US);
}
void hal_pmu2_cmu_pll_cfg_valid(switch_type_t valid)
#include <stdint.h>
#include "chip_io.h"
#include "chip_definitions.h"
+#include "errcode.h"
/** @defgroup connectivity_drivers_hal_pmu_cmu PMU CMU
* @ingroup connectivity_drivers_hal_pmu
/**
* @brief Get PLL lock status.
*/
-void hal_pmu2_cmu_pll_lock_check(void);
+errcode_t hal_pmu2_cmu_pll_lock_check(void);
/**
* @brief PLL fbdiv/frac config valid or not.
#include "soc_osal.h"
#include "hal_reg_config.h"
#include "platform_core.h"
+#include "chip_io.h"
#ifdef USE_CMSIS_OS
#include "cmsis_os2.h"
#ifdef __LITEOS__
reg16_write(PMU_SIMO2_CFG10_REG, 0x644); /* vdd1p3: 0.9V */
}
+uint16_t hal_pmu_get_simo2_buck_reg(void)
+{
+ return readw(PMU_SIMO2_CFG3_REG);
+}
+
void hal_pmu_vdd_enable(hal_pmu_vdd_t vdd, switch_type_t type)
{
if (vdd == HAL_PMU_VDD0P8 || vdd == HAL_PMU_VDD1P9) {
*/
void hal_ulp_wakeup_time_config(ulp_aon_wakeup_t ulp_wakeup, uint16_t time_value);
+/**
+ * @brief simo2 buck reg value
+ * @return reg value
+ */
+uint16_t hal_pmu_get_simo2_buck_reg(void);
/**
* @}
*/
* 2022-08-01, Create file. \n
*/
#include "systick_porting.h"
+#include "systick.h"
#include "hal_systick_v150.h"
#include "platform_core.h"
volatile uint64_t now_count = 0;
volatile uint64_t ret_time = 0;
volatile uint64_t cost_msec = 0;
- uint64_t pre_count = g_pre_systick_count;
+ uint32_t irq_sts = osal_irq_lock();
+ uint64_t pre_count = g_pre_systick_count;
+ uint64_t pre_msec = g_pre_systick_msec;
+ uint64_t rc_clk = CLOCK_32K_CALI_FREQ;
if (g_pre_systick_count == 0) {
pre_count = uapi_systick_get_count();
- g_pre_systick_msec = (pre_count * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ;
+ pre_msec = (pre_count * OS_SYS_MS_PER_SECOND) / rc_clk;
+ g_pre_systick_count = pre_count;
} else {
now_count = uapi_systick_get_count();
- cost_msec = ((now_count - pre_count) * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ;
+ cost_msec = ((now_count - pre_count) * OS_SYS_MS_PER_SECOND) / rc_clk;
+ pre_msec = pre_msec + cost_msec;
- g_pre_systick_count = now_count;
- g_pre_systick_msec = g_pre_systick_msec + cost_msec;
+ g_pre_systick_msec = pre_msec;
+ g_pre_systick_count += (cost_msec * rc_clk / OS_SYS_MS_PER_SECOND);
}
+ osal_irq_restore(irq_sts);
switch (time_type) {
case SYSTICK_TIME_S:
- ret_time = (uint64_t)(g_pre_systick_msec / OS_SYS_MS_PER_SECOND);
+ ret_time = (uint64_t)(pre_msec / OS_SYS_MS_PER_SECOND);
break;
case SYSTICK_TIME_US:
- ret_time = (uint64_t)(g_pre_systick_msec * OS_SYS_US_PER_MS);
+ ret_time = (uint64_t)(pre_msec * OS_SYS_US_PER_MS);
break;
default:
- ret_time = (uint64_t)(g_pre_systick_msec);
+ ret_time = (uint64_t)(pre_msec);
break;
}
#define EMMC_MSLEEP_20 20
#define EMMC_ACCESS_OFFSET 20
#define EMMC_SECTOR_TO_KB 2
-#define FF_VOLUME_NAME_STRS "/system/", "/user/", "/update/", "/music/"
+#define FF_VOLUME_NAME_STRS "/user/", "/system/", "/update/", "/music/"
uint32_t g_volume_percent[FF_VOLUMES_NUM] = { 11, 11, 8, 70 };
static const char * const g_volume_names[FF_VOLUMES_NUM] = { FF_VOLUME_NAME_STRS };
+int32_t g_fail_mount_index = 0;
static struct dpal_resource sdmmc0_resources[] = {
{
ret = mount(dev_name, g_volume_names[index], "vfat", 0, NULL);
if (ret != OK) {
+ g_fail_mount_index = index;
printf("%s, mount failed, partition:[%d]\r\n", __FUNCTION__, index);
return -ENODEV;
}
int emmc_drv_format(void)
{
int ret;
- int index;
+ int index = g_fail_mount_index;
+ g_fail_mount_index = 0;
char dev_name[64] = { 0 };
- for (index = 0; index < FF_VOLUMES_NUM; ++index) {
+ for (; index < FF_VOLUMES_NUM; ++index) {
ret = sprintf_s(dev_name, sizeof(dev_name), "/dev/mmcblk0p%d", index);
if (ret <= 0) {
continue;
#include "systick.h"
#include "debug_print.h"
#include "panic.h"
+#include "hal_pmu_vdd.h"
+#if defined(BUILD_APPLICATION_STANDARD) && !defined(BUILD_RECOVERY_IMAGE)
+#ifdef __LITEOS__
+#include "los_exc.h"
+#endif
+#endif
+#include "chip_io.h"
#define CHECK_FREQUENCY 1000
+#define SYSTICK_COUNT_PER_MS 32
uint32_t g_pmu_check_reg = 0;
uint32_t g_pmu_check_reg_value = 0;
void hal_reg_status_check_timeout(uint32_t addr, uint16_t offset, switch_type_t on, uint32_t timeout)
{
- uint64_t time = uapi_systick_get_ms();
+ uint64_t time = uapi_systick_get_count();
uint64_t check_frq = CHECK_FREQUENCY;
-
+ uint64_t current_time;
g_pmu_check_reg = addr;
g_pmu_check_reg_bit = offset;
while (reg16_getbit((void *)((uintptr_t)addr), offset) != on) {
check_frq--;
if (check_frq == 0) {
- if ((time + timeout) < uapi_systick_get_ms()) {
+ current_time = uapi_systick_get_count();
+ if ((time + (timeout * SYSTICK_COUNT_PER_MS)) < current_time) {
g_pmu_check_reg_value = readl((void *)((uintptr_t)g_pmu_check_reg));
- PRINT("pmu status timeout!! pmu addr is %x, with value %x\r\n", g_pmu_check_reg, g_pmu_check_reg_value);
+ PRINT("pmu status timeout!! pmu addr is %x, with value %x and ldp power reg readw(0x57004148) %x\r\n",
+ g_pmu_check_reg,
+ g_pmu_check_reg_value,
+ hal_pmu_get_simo2_buck_reg());
+ PRINT("time = %llu , timeout = %d, current_time = %llu \r\n", time, timeout, current_time);
+#if defined(BUILD_APPLICATION_STANDARD) && !defined(BUILD_RECOVERY_IMAGE)
+#ifdef __LITEOS__
+ LOS_PANIC("PANIC_PMU_LDO panic ,reg = %x\n", g_pmu_check_reg);
+#else
+ panic(PANIC_PMU_LDO, g_pmu_check_reg);
+#endif
+#else
panic(PANIC_PMU_LDO, g_pmu_check_reg);
+#endif
} else {
check_frq = CHECK_FREQUENCY;
}
}
}
-
g_pmu_check_reg = 0;
g_pmu_check_reg_value = 0;
g_pmu_check_reg_bit = 0;
}
+errcode_t hal_reg_status_check_timeout_no_panic(uint32_t addr, uint16_t offset, switch_type_t on, uint32_t timeout)
+{
+ uint64_t time = uapi_systick_get_count();
+ uint64_t check_frq = CHECK_FREQUENCY;
+ uint64_t current_time;
+ while (reg16_getbit((void *)((uintptr_t)addr), offset) != on) {
+ check_frq--;
+ if (check_frq == 0) {
+ current_time = uapi_systick_get_count();
+ if ((time + (timeout * SYSTICK_COUNT_PER_MS)) < current_time) {
+ PRINT("pmu status timeout!! pmu addr is %x, with value %x and sim02_buck2 reg= %x\r\n",
+ addr,
+ readw(addr),
+ hal_pmu_get_simo2_buck_reg());
+ PRINT("pll power on , time count before = %llu , time count current = %llu", time, current_time);
+ return ERRCODE_FAIL;
+ } else {
+ check_frq = CHECK_FREQUENCY;
+ }
+ }
+ }
+ return ERRCODE_SUCC;
+}
+
void hal_reg_config_bit(uint32_t addr, switch_type_t on, REG16_POS position)
{
unsigned int irq_sts = osal_irq_lock();
#define SRC_DRIVERS_HAL_REG_CONFIG_H
#include "chip_io.h"
+#include "errcode.h"
/** @defgroup connectivity_drivers_hal_reg_config REG Config
* @ingroup connectivity_drivers_hal
*/
void hal_reg_status_check_timeout(uint32_t addr, uint16_t offset, switch_type_t on, uint32_t timeout);
+/**
+ * @brief Check register value no panic
+ * @param addr Register addr
+ * @param offset Register bit offset
+ * @param on Bit set/clear
+ * @param timeout Check timeout value
+ * @return check result
+ */
+errcode_t hal_reg_status_check_timeout_no_panic(uint32_t addr, uint16_t offset, switch_type_t on, uint32_t timeout);
+
/**
* @brief Set register value
* @param addr Register addr
*/
int a2dp_snk_deregister_callbacks(a2dp_snk_callbacks_t *func);
+/**
+ * @if Eng
+ * @brief Use this funtion to register A2DP SNK service.
+ * @par Description:
+ * Use this funtion to register A2DP SNK service.
+ * @param NULL
+ * @retval #ERRCODE_BT_SUCCESS Success.
+ * @retval #Other Failure. For details, see @ref errcode_bt_t
+ * @else
+ * @brief 注册A2DP SNK服务。
+ * @par 说明:
+ * 注册A2DP SNK服务。
+ * @param NULL
+ * @retval #ERRCODE_BT_SUCCESS 成功。
+ * @retval #Other 失败,参考 @ref errcode_bt_t
+ * @endif
+ * @par Dependency:
+ * @li bts_a2dp_snk_source.h
+ */
+errcode_t a2dp_snk_service_register(void);
+
+/**
+ * @if Eng
+ * @brief Use this funtion to unregister A2DP SNK service.
+ * @par Description:
+ * Use this funtion to unregister A2DP SNK service.
+ * @param NULL
+ * @retval #ERRCODE_BT_SUCCESS Success.
+ * @retval #Other Failure. For details, see @ref errcode_bt_t
+ * @else
+ * @brief 去注册A2DP SNK服务。
+ * @par 说明:
+ * 去注册A2DP SNK服务。
+ * @param NULL
+ * @retval #ERRCODE_BT_SUCCESS 成功。
+ * @retval #Other 失败,参考 @ref errcode_bt_t
+ * @endif
+ * @par Dependency:
+ * @li bts_a2dp_snk_source.h
+ */
+errcode_t a2dp_snk_service_unregister(void);
+
/**
* @}
*/
* @endif
*/
typedef enum {
- HFP_SCO_STATE_CONNECTING = 0x01, /*!< @if Eng status of sco is connecting. @else sco正在连接。 @endif */
- HFP_SCO_STATE_CONNECTED = 0x02, /*!< @if Eng status of sco is connected. @else sco已连接。 @endif */
- HFP_SCO_STATE_DISCONNECTING = 0x03, /*!< @if Eng status of sco is disconnecting. @else sco已连接。 @endif */
- HFP_SCO_STATE_DISCONNECTED = 0x04 /*!< @if Eng status of sco is connected. @else sco已连接。 @endif */
+ HFP_SCO_STATE_CONNECTING = 0x01, /*!< @if Eng status of sco is connecting. @else sco正在连接。 @endif */
+ HFP_SCO_STATE_CONNECTED = 0x02, /*!< @if Eng status of sco is connected. @else sco已连接。 @endif */
+ HFP_SCO_STATE_DISCONNECTING = 0x03, /*!< @if Eng status of sco is disconnecting. @else sco正在断连。 @endif */
+ HFP_SCO_STATE_DISCONNECTED = 0x04, /*!< @if Eng status of sco is disconnected. @else sco已断开。 @endif */
+ HFP_SCO_STATE_CONNECT_FAILURE = 0x05 /*!< @if Eng status of sco connect is failure. @else sco连接失败。 @endif */
} hfp_sco_connect_state_t;
/**
*/
errcode_t gap_reconnect_media_device(const bd_addr_t *addr);
+/**
+ * @if Eng
+ * @brief Use this funtion to set bt flow limit.
+ * @par Use this funtion to set bt flow limit.
+ * @attention NULL
+ * @param [in] flow_limit flow limit max bytes,range is [3072-10240] bytes.
+ * @retval #true Execute successfully.
+ * @retval #false Execution failed.
+ * @par Dependency:
+ * @li bts_br_gap.h
+ * @else
+ * @brief 配置流控限制字节数。
+ * @par 配置流控限制字节数。
+ * @attention 无
+ * @param [in] 流控限制字节数,范围是[3072-10240]字节数。
+ * @retval #true 连接成功。
+ * @retval #false 连接失败。
+ * @par 依赖:
+ * @li bts_br_gap.h
+ * @endif
+ */
+errcode_t gap_bt_set_flow_limit(uint16_t flow_limit);
+
/**
* @}
*/
-<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="last_state: %d new_state: %d @a2dp_snk_service.c(73),INFO" ID="0xd80e024d" />
- <MSG STRUCTURE="diag_log_msg5" NAME="addr: ****%02x%02x%02x%02x conn_hdl: %x @a2dp_snk_service.c(96),INFO" ID="0xd80e0305" />
- <MSG STRUCTURE="diag_log_msg1" NAME="disconnect_ret(int): %d @a2dp_snk_service.c(102),INFO" ID="0xd80e0335" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @a2dp_snk_service.c(106),ERROR" ID="0xd80e0352" />
- <MSG STRUCTURE="diag_log_msg3" NAME="event: %x dev_hdl: %x conn_hdl: %x @a2dp_snk_service.c(125),INFO" ID="0xd80e03ed" />
- <MSG STRUCTURE="diag_log_msg3" NAME="rmt_hdl: %x seid: %x sc_len: %d sc: @a2dp_snk_service.c(136),INFO" ID="0xd80e0445" />
- <MSG STRUCTURE="diag_log_msg1" NAME="%x @a2dp_snk_service.c(138),INFO" ID="0xd80e0455" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @a2dp_snk_service.c(140),INFO" ID="0xd80e0465" />
- <MSG STRUCTURE="diag_log_msg5" NAME="streamMtu:%d, FrameSize: %d, numFrame: %d, stream_hdl: 0x%x, stream_state: %d @a2dp_snk_service.c(159),INFO" ID="0xd80e04fd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unexpected state %d @a2dp_snk_service.c(190),WARNING" ID="0xd80e05f3" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stream_hdl: %x state: %d param_len: %d @a2dp_snk_service.c(198),INFO" ID="0xd80e0635" />
- <MSG STRUCTURE="diag_log_msg1" NAME="set active device ret: %x @a2dp_snk_service.c(208),INFO" ID="0xd80e0685" />
- <MSG STRUCTURE="diag_log_msg0" NAME="error: cap_len is bigger! @a2dp_snk_service.c(255),ERROR" ID="0xd80e07fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="sbc report inf @a2dp_snk_service.c(257),INFO" ID="0xd80e080d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="codec_caps[%u]:%02x @a2dp_snk_service.c(259),INFO" ID="0xd80e081d" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @a2dp_snk_service.c(261),INFO" ID="0xd80e082d" />
- <MSG STRUCTURE="diag_log_msg8" NAME="sbc sampleFreq: %02x chnlMode: %02x blockLen: %02x subBand: %02x allocMtd: %02x Bitpool: %02x %02x payload:%u @a2dp_snk_service.c(284),INFO" ID="0xd80e08e5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="error: cap_len is bigger! @a2dp_snk_service.c(313),ERROR" ID="0xd80e09ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="aac report inf @a2dp_snk_service.c(315),INFO" ID="0xd80e09dd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="codec_caps[%u]:%02x @a2dp_snk_service.c(317),INFO" ID="0xd80e09ed" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @a2dp_snk_service.c(319),INFO" ID="0xd80e09fd" />
- <MSG STRUCTURE="diag_log_msg6" NAME="aac sampleFreq: %02x bit_rate: %02x channels: %02x objectType: %02x rfa: %02x vbr: %02x @a2dp_snk_service.c(339),INFO" ID="0xd80e0a9d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="code_c: %d @a2dp_snk_service.c(347),INFO" ID="0xd80e0add" />
- <MSG STRUCTURE="diag_log_msg4" NAME="stream_hdl: %x, role: %x, event: %x, err: %x @a2dp_snk_service.c(370),INFO" ID="0xd80e0b95" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @a2dp_snk_service.c(380),ERROR" ID="0xd80e0be2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @a2dp_snk_service.c(389),ERROR" ID="0xd80e0c2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @a2dp_snk_service.c(400),ERROR" ID="0xd80e0c82" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @a2dp_snk_service.c(409),ERROR" ID="0xd80e0cca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @a2dp_snk_service.c(420),ERROR" ID="0xd80e0d22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @a2dp_snk_service.c(426),ERROR" ID="0xd80e0d52" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @a2dp_snk_service.c(437),ERROR" ID="0xd80e0daa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @a2dp_snk_service.c(443),ERROR" ID="0xd80e0dda" />
- <MSG STRUCTURE="diag_log_msg4" NAME="conn_state:%d dev_hdl: %08x conn_hdl: %08x stream_hdl: %08x @a2dp_snk_service.c(474),INFO" ID="0xd80e0ed5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="a2dp_snk_set_stream_codec memcpy fail @a2dp_snk_service.c(518),ERROR" ID="0xd80e1032" />
- <MSG STRUCTURE="diag_log_msg7" NAME="sbc sF: %02x cM: %02x blockL: %02x sBand: %02x alcM: %02x BitP: %02x %02x @a2dp_snk_service.c(527),INFO" ID="0xd80e107d" />
- <MSG STRUCTURE="diag_log_msg6" NAME="aac sF: %02x bit_rate: %02x channel: %02x objType: %02x fa: %02x vbr: %02x @a2dp_snk_service.c(532),INFO" ID="0xd80e10a5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="is_reconfig: %d stream_hdl: %x ret %x @a2dp_snk_service.c(538),INFO" ID="0xd80e10d5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect error ret: %x @a2dp_snk_service.c(570),ERROR" ID="0xd80e11d2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="filter try_report: %d now: %d reported: %d @a2dp_snk_service.c(597),INFO" ID="0xd80e12ad" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get addr error @a2dp_snk_service.c(604),INFO" ID="0xd80e12e5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get addr error @a2dp_snk_service.c(621),INFO" ID="0xd80e136d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get addr error @a2dp_snk_service.c(638),INFO" ID="0xd80e13f5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get addr error @a2dp_snk_service.c(655),ERROR" ID="0xd80e147a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc error @a2dp_snk_service.c(661),ERROR" ID="0xd80e14aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="fill codec error @a2dp_snk_service.c(668),ERROR" ID="0xd80e14e2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="error sbc sample_frequency %x @a2dp_snk_service.c(698),ERROR" ID="0xd80e15d2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="error aac sample_frequency %x @a2dp_snk_service.c(720),ERROR" ID="0xd80e1682" />
- <MSG STRUCTURE="diag_log_msg1" NAME="error codec_type %x @a2dp_snk_service.c(724),ERROR" ID="0xd80e16a2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id %x @a2dp_snk_service.c(774),WARNING" ID="0xd80e1833" />
- <MSG STRUCTURE="diag_log_msg2" NAME="btsdk_connect_ex error ret: %x, %x @a2dp_snk_service.c(847),ERROR" ID="0xd80e1a7a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="a2dp snk disconnect error ret: %x @a2dp_snk_service.c(874),ERROR" ID="0xd80e1b52" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @a2dp_snk_service.c(890),ERROR" ID="0xd80e1bd2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="duplicate register callback @a2dp_snk_service.c(908),INFO" ID="0xd80e1c65" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc error @a2dp_snk_service.c(918),ERROR" ID="0xd80e1cb2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @a2dp_snk_service.c(923),ERROR" ID="0xd80e1cda" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stream_hdl: %08x stream_status:%u ret: %08x @a2dp_snk_service.c(990),INFO" ID="0xd80e1ef5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="suspend stream_hdl: %08x ret: %08x @a2dp_snk_service.c(1001),INFO" ID="0xd80e1f4d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stop stream_hdl: %08x ret: %08x @a2dp_snk_service.c(1012),INFO" ID="0xd80e1fa5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="start accept stream_hdl: %08x ret: %08x @a2dp_snk_service.c(1023),INFO" ID="0xd80e1ffd" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="last_state: %d new_state: %d @a2dp_snk_service.c(71),INFO" ID="0xd80e023d" />
+ <MSG STRUCTURE="diag_log_msg5" NAME="addr: ****%02x%02x%02x%02x conn_hdl: %x @a2dp_snk_service.c(94),INFO" ID="0xd80e02f5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="disconnect_ret(int): %d @a2dp_snk_service.c(100),INFO" ID="0xd80e0325" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @a2dp_snk_service.c(104),ERROR" ID="0xd80e0342" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="event: %x dev_hdl: %x conn_hdl: %x @a2dp_snk_service.c(123),INFO" ID="0xd80e03dd" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="rmt_hdl: %x seid: %x sc_len: %d sc: @a2dp_snk_service.c(134),INFO" ID="0xd80e0435" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="%x @a2dp_snk_service.c(136),INFO" ID="0xd80e0445" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @a2dp_snk_service.c(138),INFO" ID="0xd80e0455" />
+ <MSG STRUCTURE="diag_log_msg5" NAME="streamMtu:%d, FrameSize: %d, numFrame: %d, stream_hdl: 0x%x, stream_state: %d @a2dp_snk_service.c(157),INFO" ID="0xd80e04ed" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unexpected state %d @a2dp_snk_service.c(188),WARNING" ID="0xd80e05e3" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stream_hdl: %x state: %d param_len: %d @a2dp_snk_service.c(196),INFO" ID="0xd80e0625" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="set active device ret: %x @a2dp_snk_service.c(206),INFO" ID="0xd80e0675" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="error: cap_len is bigger! @a2dp_snk_service.c(253),ERROR" ID="0xd80e07ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="sbc report inf @a2dp_snk_service.c(255),INFO" ID="0xd80e07fd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="codec_caps[%u]:%02x @a2dp_snk_service.c(257),INFO" ID="0xd80e080d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @a2dp_snk_service.c(259),INFO" ID="0xd80e081d" />
+ <MSG STRUCTURE="diag_log_msg8" NAME="sbc sampleFreq: %02x chnlMode: %02x blockLen: %02x subBand: %02x allocMtd: %02x Bitpool: %02x %02x payload:%u @a2dp_snk_service.c(282),INFO" ID="0xd80e08d5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="error: cap_len is bigger! @a2dp_snk_service.c(311),ERROR" ID="0xd80e09ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="aac report inf @a2dp_snk_service.c(313),INFO" ID="0xd80e09cd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="codec_caps[%u]:%02x @a2dp_snk_service.c(315),INFO" ID="0xd80e09dd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @a2dp_snk_service.c(317),INFO" ID="0xd80e09ed" />
+ <MSG STRUCTURE="diag_log_msg6" NAME="aac sampleFreq: %02x bit_rate: %02x channels: %02x objectType: %02x rfa: %02x vbr: %02x @a2dp_snk_service.c(337),INFO" ID="0xd80e0a8d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="code_c: %d @a2dp_snk_service.c(345),INFO" ID="0xd80e0acd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="stream_hdl: %x, role: %x, event: %x, err: %x @a2dp_snk_service.c(368),INFO" ID="0xd80e0b85" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @a2dp_snk_service.c(378),ERROR" ID="0xd80e0bd2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @a2dp_snk_service.c(387),ERROR" ID="0xd80e0c1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @a2dp_snk_service.c(398),ERROR" ID="0xd80e0c72" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @a2dp_snk_service.c(407),ERROR" ID="0xd80e0cba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @a2dp_snk_service.c(418),ERROR" ID="0xd80e0d12" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @a2dp_snk_service.c(424),ERROR" ID="0xd80e0d42" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @a2dp_snk_service.c(435),ERROR" ID="0xd80e0d9a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @a2dp_snk_service.c(441),ERROR" ID="0xd80e0dca" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="conn_state:%d dev_hdl: %08x conn_hdl: %08x stream_hdl: %08x @a2dp_snk_service.c(472),INFO" ID="0xd80e0ec5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="a2dp_snk_set_stream_codec memcpy fail @a2dp_snk_service.c(516),ERROR" ID="0xd80e1022" />
+ <MSG STRUCTURE="diag_log_msg7" NAME="sbc sF: %02x cM: %02x blockL: %02x sBand: %02x alcM: %02x BitP: %02x %02x @a2dp_snk_service.c(525),INFO" ID="0xd80e106d" />
+ <MSG STRUCTURE="diag_log_msg6" NAME="aac sF: %02x bit_rate: %02x channel: %02x objType: %02x fa: %02x vbr: %02x @a2dp_snk_service.c(530),INFO" ID="0xd80e1095" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="is_reconfig: %d stream_hdl: %x ret %x @a2dp_snk_service.c(536),INFO" ID="0xd80e10c5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect error ret: %x @a2dp_snk_service.c(568),ERROR" ID="0xd80e11c2" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="filter try_report: %d now: %d reported: %d @a2dp_snk_service.c(595),INFO" ID="0xd80e129d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get addr error @a2dp_snk_service.c(602),INFO" ID="0xd80e12d5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get addr error @a2dp_snk_service.c(619),INFO" ID="0xd80e135d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get addr error @a2dp_snk_service.c(636),INFO" ID="0xd80e13e5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get addr error @a2dp_snk_service.c(653),ERROR" ID="0xd80e146a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc error @a2dp_snk_service.c(659),ERROR" ID="0xd80e149a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fill codec error @a2dp_snk_service.c(666),ERROR" ID="0xd80e14d2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="error sbc sample_frequency %x @a2dp_snk_service.c(696),ERROR" ID="0xd80e15c2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="error aac sample_frequency %x @a2dp_snk_service.c(718),ERROR" ID="0xd80e1672" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="error codec_type %x @a2dp_snk_service.c(722),ERROR" ID="0xd80e1692" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id %x @a2dp_snk_service.c(772),WARNING" ID="0xd80e1823" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="btsdk_connect_ex error ret: %x, %x @a2dp_snk_service.c(841),ERROR" ID="0xd80e1a4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="a2dp snk disconnect error ret: %x @a2dp_snk_service.c(864),ERROR" ID="0xd80e1b02" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @a2dp_snk_service.c(880),ERROR" ID="0xd80e1b82" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="duplicate register callback @a2dp_snk_service.c(898),INFO" ID="0xd80e1c15" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc error @a2dp_snk_service.c(908),ERROR" ID="0xd80e1c62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @a2dp_snk_service.c(913),ERROR" ID="0xd80e1c8a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stream_hdl: %08x stream_status:%u ret: %08x @a2dp_snk_service.c(980),INFO" ID="0xd80e1ea5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="suspend stream_hdl: %08x ret: %08x @a2dp_snk_service.c(991),INFO" ID="0xd80e1efd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stop stream_hdl: %08x ret: %08x @a2dp_snk_service.c(1002),INFO" ID="0xd80e1f55" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="start accept stream_hdl: %08x ret: %08x @a2dp_snk_service.c(1013),INFO" ID="0xd80e1fad" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="a2dp snk is connected, service unregister fail. @a2dp_snk_service.c(1030),ERROR" ID="0xd80e2032" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg0" NAME="[BMS] app path is not dir when reload third app! @gt_bundle_manager_service.cpp(513),ERROR" ID="0xe044100a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[BMS] app path is not third bundle path! @gt_bundle_manager_service.cpp(519),INFO" ID="0xe044103d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[BMS] third bundle reload number is to MAX_THIRD_BUNDLE_NUMBER! @gt_bundle_manager_service.cpp(526),INFO" ID="0xe0441075" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] parse bundle attr fail! @gt_bundle_manager_service.cpp(565),ERROR" ID="0xe04411aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] bundle has been reloaded! @gt_bundle_manager_service.cpp(588),INFO" ID="0xe0441265" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] reload bundle info fail!, isSystemApp is %d @gt_bundle_manager_service.cpp(685),ERROR" ID="0xe044156a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] get installRecord fail when restart! @gt_bundle_manager_service.cpp(741),ERROR" ID="0xe044172a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] TransformJsToBcWhenRestart jsEngineVer_ is nullptr! @gt_bundle_manager_service.cpp(748),ERROR" ID="0xe0441762" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] create string object fail when restart! @gt_bundle_manager_service.cpp(756),ERROR" ID="0xe04417a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] add js engine version record fail when restart! @gt_bundle_manager_service.cpp(771),ERROR" ID="0xe044181a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] refresh js engine version fail when restart! @gt_bundle_manager_service.cpp(779),ERROR" ID="0xe044185a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] transform js to bc, result is %d @gt_bundle_manager_service.cpp(806),INFO" ID="0xe0441935" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] delete byte code, result is %d @gt_bundle_manager_service.cpp(809),INFO" ID="0xe044194d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] add transform result record fail when restart! @gt_bundle_manager_service.cpp(822),ERROR" ID="0xe04419b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] refresh transform result record fail when restart! @gt_bundle_manager_service.cpp(828),ERROR" ID="0xe04419e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] parse bundle attr fail! @gt_bundle_manager_service.cpp(567),ERROR" ID="0xe04411ba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] reload bundle info fail!, isSystemApp is %d @gt_bundle_manager_service.cpp(682),ERROR" ID="0xe0441552" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] get installRecord fail when restart! @gt_bundle_manager_service.cpp(738),ERROR" ID="0xe0441712" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] TransformJsToBcWhenRestart jsEngineVer_ is nullptr! @gt_bundle_manager_service.cpp(745),ERROR" ID="0xe044174a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] create string object fail when restart! @gt_bundle_manager_service.cpp(753),ERROR" ID="0xe044178a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] add js engine version record fail when restart! @gt_bundle_manager_service.cpp(768),ERROR" ID="0xe0441802" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] refresh js engine version fail when restart! @gt_bundle_manager_service.cpp(776),ERROR" ID="0xe0441842" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] transform js to bc, result is %d @gt_bundle_manager_service.cpp(803),INFO" ID="0xe044191d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] delete byte code, result is %d @gt_bundle_manager_service.cpp(806),INFO" ID="0xe0441935" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] add transform result record fail when restart! @gt_bundle_manager_service.cpp(819),ERROR" ID="0xe044199a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] refresh transform result record fail when restart! @gt_bundle_manager_service.cpp(825),ERROR" ID="0xe04419ca" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg1" NAME="len err: %d! @hfp_hf_service.c(305),ERROR" ID="0xd824098a" />
<MSG STRUCTURE="diag_log_msg0" NAME="audio conn released. @hfp_hf_service.c(320),INFO" ID="0xd8240a05" />
<MSG STRUCTURE="diag_log_msg0" NAME="sco disconnect complete. @hfp_hf_service.c(327),INFO" ID="0xd8240a3d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="incoming call. inband = %d len = %d @hfp_hf_service.c(334),INFO" ID="0xd8240a75" />
- <MSG STRUCTURE="diag_log_msg2" NAME="terminate local ringtone. inband = %d len = %d @hfp_hf_service.c(344),INFO" ID="0xd8240ac5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="%d @hfp_hf_service.c(373),INFO" ID="0xd8240bad" />
- <MSG STRUCTURE="diag_log_msg1" NAME="%d @hfp_hf_service.c(382),INFO" ID="0xd8240bf5" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(392),INFO" ID="0xd8240c45" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(402),WARNING" ID="0xd8240c93" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(412),INFO" ID="0xd8240ce5" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(422),INFO" ID="0xd8240d35" />
- <MSG STRUCTURE="diag_log_msg2" NAME="name: %s, len: %d @hfp_hf_service.c(436),INFO" ID="0xd8240da5" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(447),INFO" ID="0xd8240dfd" />
- <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(457),INFO" ID="0xd8240e4d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="micvol: %d @hfp_hf_service.c(466),INFO" ID="0xd8240e95" />
- <MSG STRUCTURE="diag_log_msg1" NAME="spkvol: %d @hfp_hf_service.c(475),INFO" ID="0xd8240edd" />
- <MSG STRUCTURE="diag_log_msg3" NAME="type: 0x%x, service: 0x%x, num: %s! @hfp_hf_service.c(489),INFO" ID="0xd8240f4d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="codec: %d @hfp_hf_service.c(499),INFO" ID="0xd8240f9d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf handle call list change fail. @hfp_hf_service.c(506),ERROR" ID="0xd8240fd2" />
- <MSG STRUCTURE="diag_log_msg6" NAME="[current call] index: %d, incoming: %d, status: %d, multi: %d, number_len: %d, number: %s @hfp_hf_service.c(510),INFO" ID="0xd8240ff5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="no empty space! @hfp_hf_service.c(515),ERROR" ID="0xd824101a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp_hf_copy_phone_number fail @hfp_hf_service.c(522),ERROR" ID="0xd8241052" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hfp hf handle call list result. param %p len %d @hfp_hf_service.c(538),INFO" ID="0xd82410d5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail. @hfp_hf_service.c(545),ERROR" ID="0xd824110a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail. @hfp_hf_service.c(549),ERROR" ID="0xd824112a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @hfp_hf_service.c(555),ERROR" ID="0xd824115a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hfp hf handle receive ring tone. tone %d len %d @hfp_hf_service.c(562),INFO" ID="0xd8241195" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(569),INFO" ID="0xd82411cd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="receive CIEV code : %d @hfp_hf_service.c(576),INFO" ID="0xd8241205" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[total status] call: %d, callsetup: %d, callheld: %d @hfp_hf_service.c(579),INFO" ID="0xd824121d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_hfap_3way_calling_handler ret:0x%x @hfp_hf_service.c(594),INFO" ID="0xd8241295" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hfp hf event=0x%x. @hfp_hf_service.c(636),INFO" ID="0xd82413e5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @hfp_hf_service.c(681),ERROR" ID="0xd824154a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf disable device fail, addr is not present. @hfp_hf_service.c(706),ERROR" ID="0xd8241612" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf disable device fail, dev_handl is not present. @hfp_hf_service.c(711),ERROR" ID="0xd824163a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf disable device fail, conn_handl is not present. @hfp_hf_service.c(716),ERROR" ID="0xd8241662" />
- <MSG STRUCTURE="diag_log_msg0" NAME="first report sco disconnect complete. @hfp_hf_service.c(721),INFO" ID="0xd824168d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf disable device fail, pan context memset error. @hfp_hf_service.c(727),ERROR" ID="0xd82416ba" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp hf conn event: %x dev_hdl: %x conn_hdl: %x @hfp_hf_service.c(739),INFO" ID="0xd824171d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ev: 0x%x state: 0x%x @hfp_hf_service.c(752),INFO" ID="0xd8241785" />
- <MSG STRUCTURE="diag_log_msg1" NAME="g_hfp_hf_ctx_t.sco_hdl: 0x%x @hfp_hf_service.c(764),INFO" ID="0xd82417e5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id: 0x%x @hfp_hf_service.c(787),WARNING" ID="0xd824189b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="empty number! @hfp_hf_service.c(797),ERROR" ID="0xd82418ea" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(801),INFO" ID="0xd824190d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="invalid action_type: %d! @hfp_hf_service.c(810),ERROR" ID="0xd8241952" />
- <MSG STRUCTURE="diag_log_msg1" NAME="call idx=%d @hfp_hf_service.c(815),INFO" ID="0xd824197d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="no incoming call right now! @hfp_hf_service.c(817),WARNING" ID="0xd824198b" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(838),INFO" ID="0xd8241a35" />
- <MSG STRUCTURE="diag_log_msg1" NAME="call idx=%d @hfp_hf_service.c(849),INFO" ID="0xd8241a8d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(859),INFO" ID="0xd8241add" />
- <MSG STRUCTURE="diag_log_msg1" NAME="call idx=%d @hfp_hf_service.c(871),INFO" ID="0xd8241b3d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(882),INFO" ID="0xd8241b95" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(890),INFO" ID="0xd8241bd5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="Volume too large %d, change it to 15 @hfp_hf_service.c(899),WARNING" ID="0xd8241c1b" />
- <MSG STRUCTURE="diag_log_msg1" NAME="Set speaker volume to %d @hfp_hf_service.c(904),INFO" ID="0xd8241c45" />
- <MSG STRUCTURE="diag_log_msg1" NAME="Set mic volume to %d @hfp_hf_service.c(907),INFO" ID="0xd8241c5d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(919),INFO" ID="0xd8241cbd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="wrong code: %c @hfp_hf_service.c(922),ERROR" ID="0xd8241cd2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(931),INFO" ID="0xd8241d1d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(939),INFO" ID="0xd8241d5d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="g_hfp_rmt_dev: 0x%x @hfp_hf_service.c(947),INFO" ID="0xd8241d9d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="is_accept=%d ret=0x%x @hfp_hf_service.c(954),INFO" ID="0xd8241dd5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="No device selected @hfp_hf_service.c(963),ERROR" ID="0xd8241e1a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp already connected @hfp_hf_service.c(967),WARNING" ID="0xd8241e3b" />
- <MSG STRUCTURE="diag_log_msg1" NAME="g_rmt_dev=0x%x @hfp_hf_service.c(971),INFO" ID="0xd8241e5d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="finish, hdl:0x%x, result: 0x%x! @hfp_hf_service.c(973),INFO" ID="0xd8241e6d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hfp disconnect start g_hfp_hf_ctx_t.conn_hdl=0x%x @hfp_hf_service.c(981),INFO" ID="0xd8241ead" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp is not connected @hfp_hf_service.c(986),WARNING" ID="0xd8241ed3" />
- <MSG STRUCTURE="diag_log_msg1" NAME="error: 0x%x @hfp_hf_service.c(992),ERROR" ID="0xd8241f02" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hfp disconnect OK @hfp_hf_service.c(995),INFO" ID="0xd8241f1d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="g_hfp_hf_ctx_t.conn_hdl:0x%x ret:0x%x @hfp_hf_service.c(1006),INFO" ID="0xd8241f75" />
- <MSG STRUCTURE="diag_log_msg1" NAME="sco already connected sco_hdl:0x%x @hfp_hf_service.c(1008),WARNING" ID="0xd8241f83" />
- <MSG STRUCTURE="diag_log_msg2" NAME="g_hfp_hf_ctx_t.conn_hdl:0x%x ret:0x%x @hfp_hf_service.c(1020),INFO" ID="0xd8241fe5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="no sco connected @hfp_hf_service.c(1022),WARNING" ID="0xd8241ff3" />
- <MSG STRUCTURE="diag_log_msg1" NAME="invalid codec: %d @hfp_hf_service.c(1033),ERROR" ID="0xd824204a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="audio conn fail. @hfp_hf_service.c(335),INFO" ID="0xd8240a7d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="incoming call. inband = %d len = %d @hfp_hf_service.c(342),INFO" ID="0xd8240ab5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="terminate local ringtone. inband = %d len = %d @hfp_hf_service.c(352),INFO" ID="0xd8240b05" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="%d @hfp_hf_service.c(381),INFO" ID="0xd8240bed" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="%d @hfp_hf_service.c(390),INFO" ID="0xd8240c35" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(400),INFO" ID="0xd8240c85" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(410),WARNING" ID="0xd8240cd3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(420),INFO" ID="0xd8240d25" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(430),INFO" ID="0xd8240d75" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="name: %s, len: %d @hfp_hf_service.c(444),INFO" ID="0xd8240de5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(455),INFO" ID="0xd8240e3d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME=" @hfp_hf_service.c(465),INFO" ID="0xd8240e8d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="micvol: %d @hfp_hf_service.c(474),INFO" ID="0xd8240ed5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="spkvol: %d @hfp_hf_service.c(483),INFO" ID="0xd8240f1d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="type: 0x%x, service: 0x%x, num: %s! @hfp_hf_service.c(497),INFO" ID="0xd8240f8d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="codec: %d @hfp_hf_service.c(507),INFO" ID="0xd8240fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf handle call list change fail. @hfp_hf_service.c(514),ERROR" ID="0xd8241012" />
+ <MSG STRUCTURE="diag_log_msg6" NAME="[current call] index: %d, incoming: %d, status: %d, multi: %d, number_len: %d, number: %s @hfp_hf_service.c(518),INFO" ID="0xd8241035" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="no empty space! @hfp_hf_service.c(523),ERROR" ID="0xd824105a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp_hf_copy_phone_number fail @hfp_hf_service.c(530),ERROR" ID="0xd8241092" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hfp hf handle call list result. param %p len %d @hfp_hf_service.c(546),INFO" ID="0xd8241115" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail. @hfp_hf_service.c(553),ERROR" ID="0xd824114a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail. @hfp_hf_service.c(557),ERROR" ID="0xd824116a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @hfp_hf_service.c(563),ERROR" ID="0xd824119a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hfp hf handle receive ring tone. tone %d len %d @hfp_hf_service.c(570),INFO" ID="0xd82411d5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(577),INFO" ID="0xd824120d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="receive CIEV code : %d @hfp_hf_service.c(584),INFO" ID="0xd8241245" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[total status] call: %d, callsetup: %d, callheld: %d @hfp_hf_service.c(587),INFO" ID="0xd824125d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_hfap_3way_calling_handler ret:0x%x @hfp_hf_service.c(602),INFO" ID="0xd82412d5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hfp hf event=0x%x. @hfp_hf_service.c(645),INFO" ID="0xd824142d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @hfp_hf_service.c(690),ERROR" ID="0xd8241592" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf disable device fail, addr is not present. @hfp_hf_service.c(715),ERROR" ID="0xd824165a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf disable device fail, dev_handl is not present. @hfp_hf_service.c(720),ERROR" ID="0xd8241682" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf disable device fail, conn_handl is not present. @hfp_hf_service.c(725),ERROR" ID="0xd82416aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="first report sco disconnect complete. @hfp_hf_service.c(730),INFO" ID="0xd82416d5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp hf disable device fail, pan context memset error. @hfp_hf_service.c(736),ERROR" ID="0xd8241702" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp hf conn event: %x dev_hdl: %x conn_hdl: %x @hfp_hf_service.c(748),INFO" ID="0xd8241765" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ev: 0x%x state: 0x%x @hfp_hf_service.c(761),INFO" ID="0xd82417cd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_hfp_hf_ctx_t.sco_hdl: 0x%x @hfp_hf_service.c(773),INFO" ID="0xd824182d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id: 0x%x @hfp_hf_service.c(796),WARNING" ID="0xd82418e3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="empty number! @hfp_hf_service.c(806),ERROR" ID="0xd8241932" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(810),INFO" ID="0xd8241955" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="invalid action_type: %d! @hfp_hf_service.c(819),ERROR" ID="0xd824199a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="call idx=%d @hfp_hf_service.c(824),INFO" ID="0xd82419c5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="no incoming call right now! @hfp_hf_service.c(826),WARNING" ID="0xd82419d3" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(847),INFO" ID="0xd8241a7d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="call idx=%d @hfp_hf_service.c(858),INFO" ID="0xd8241ad5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(868),INFO" ID="0xd8241b25" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="call idx=%d @hfp_hf_service.c(880),INFO" ID="0xd8241b85" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(891),INFO" ID="0xd8241bdd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(899),INFO" ID="0xd8241c1d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="Volume too large %d, change it to 15 @hfp_hf_service.c(908),WARNING" ID="0xd8241c63" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="Set speaker volume to %d @hfp_hf_service.c(913),INFO" ID="0xd8241c8d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="Set mic volume to %d @hfp_hf_service.c(916),INFO" ID="0xd8241ca5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(928),INFO" ID="0xd8241d05" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="wrong code: %c @hfp_hf_service.c(931),ERROR" ID="0xd8241d1a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(940),INFO" ID="0xd8241d65" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hdl: 0x%x ret: 0x%x @hfp_hf_service.c(948),INFO" ID="0xd8241da5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_hfp_rmt_dev: 0x%x @hfp_hf_service.c(956),INFO" ID="0xd8241de5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="is_accept=%d ret=0x%x @hfp_hf_service.c(963),INFO" ID="0xd8241e1d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="No device selected @hfp_hf_service.c(972),ERROR" ID="0xd8241e62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp already connected @hfp_hf_service.c(976),WARNING" ID="0xd8241e83" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_rmt_dev=0x%x @hfp_hf_service.c(980),INFO" ID="0xd8241ea5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="finish, hdl:0x%x, result: 0x%x! @hfp_hf_service.c(982),INFO" ID="0xd8241eb5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hfp disconnect start g_hfp_hf_ctx_t.conn_hdl=0x%x @hfp_hf_service.c(990),INFO" ID="0xd8241ef5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp is not connected @hfp_hf_service.c(995),WARNING" ID="0xd8241f1b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="error: 0x%x @hfp_hf_service.c(1001),ERROR" ID="0xd8241f4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hfp disconnect OK @hfp_hf_service.c(1004),INFO" ID="0xd8241f65" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="g_hfp_hf_ctx_t.conn_hdl:0x%x ret:0x%x @hfp_hf_service.c(1015),INFO" ID="0xd8241fbd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="sco already connected sco_hdl:0x%x @hfp_hf_service.c(1017),WARNING" ID="0xd8241fcb" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="g_hfp_hf_ctx_t.conn_hdl:0x%x ret:0x%x @hfp_hf_service.c(1029),INFO" ID="0xd824202d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="no sco connected @hfp_hf_service.c(1031),WARNING" ID="0xd824203b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="invalid codec: %d @hfp_hf_service.c(1042),ERROR" ID="0xd8242092" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="js value is not bool. @js_fwk_common.cpp(99),ERROR" ID="0xe064031a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to set function property cause by empty name. @js_fwk_common.cpp(110),ERROR" ID="0xe0640372" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to set function property cause by empty handler. @js_fwk_common.cpp(115),ERROR" ID="0xe064039a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="jerry_value_to_string failed, can not continue to generate char buffer @js_fwk_common.cpp(149),ERROR" ID="0xe06404aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for convert jerry string failed @js_fwk_common.cpp(159),ERROR" ID="0xe06404fa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="jerry string to char buffer failed, target size[%d] @js_fwk_common.cpp(170),ERROR" ID="0xe0640552" />
- <MSG STRUCTURE="diag_log_msg0" NAME="js value is not bool. @js_fwk_common.cpp(190),ERROR" ID="0xe06405f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="js number value is out of range. @js_fwk_common.cpp(208),DBG" ID="0xe0640686" />
- <MSG STRUCTURE="diag_log_msg0" NAME="js number value is out of range. @js_fwk_common.cpp(212),DBG" ID="0xe06406a6" />
- <MSG STRUCTURE="diag_log_msg0" NAME="cstr is nullptr. @js_fwk_common.cpp(226),ERROR" ID="0xe0640712" />
- <MSG STRUCTURE="diag_log_msg0" NAME="secLength is too long. @js_fwk_common.cpp(419),ERROR" ID="0xe0640d1a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="append path error @js_fwk_common.cpp(443),ERROR" ID="0xe0640dda" />
- <MSG STRUCTURE="diag_log_msg0" NAME="error happen when append path @js_fwk_common.cpp(453),ERROR" ID="0xe0640e2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="input path or fileName is invalid @js_fwk_common.cpp(470),ERROR" ID="0xe0640eb2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="input path or fileName is too long @js_fwk_common.cpp(477),ERROR" ID="0xe0640eea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(485),ERROR" ID="0xe0640f2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc dirPath memory heap failed. @js_fwk_common.cpp(529),ERROR" ID="0xe064108a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="file doesn't exit or it's empty, [%s] @js_fwk_common.cpp(606),ERROR" ID="0xe06412f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="realpath handle failed, [%s] @js_fwk_common.cpp(623),ERROR" ID="0xe064137a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="file name too long. @js_fwk_common.cpp(641),ERROR" ID="0xe064140a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="splice trace data failed. @js_fwk_common.cpp(649),ERROR" ID="0xe064144a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="open file[%s] failed for reading. @js_fwk_common.cpp(665),ERROR" ID="0xe06414ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="open file[fd: %d] failed for reading @js_fwk_common.cpp(697),ERROR" ID="0xe06415ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="open file[path: %s] failed for reading @js_fwk_common.cpp(698),ERROR" ID="0xe06415d2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for file content failed, file length[%d] @js_fwk_common.cpp(704),ERROR" ID="0xe0641602" />
- <MSG STRUCTURE="diag_log_msg3" NAME="read fail, count(%d), length(%u), path(%s) @js_fwk_common.cpp(713),ERROR" ID="0xe064164a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="error index.js file path after locate @js_fwk_common.cpp(742),ERROR" ID="0xe0641732" />
- <MSG STRUCTURE="diag_log_msg0" NAME="empty index.js file path after locate @js_fwk_common.cpp(747),ERROR" ID="0xe064175a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for file path calculating from url, file length[%d] @js_fwk_common.cpp(817),ERROR" ID="0xe064198a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="append path error when calculating from url @js_fwk_common.cpp(821),ERROR" ID="0xe06419aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="watcher is undefined when inserting a watcher. @js_fwk_common.cpp(857),ERROR" ID="0xe0641aca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc memory watcher failed. @js_fwk_common.cpp(864),ERROR" ID="0xe0641b02" />
- <MSG STRUCTURE="diag_log_msg0" NAME="No component binds element. @js_fwk_common.cpp(955),ERROR" ID="0xe0641dda" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(1187),ERROR" ID="0xe064251a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="use strcpy_s secure function errro(%d) @js_fwk_common.cpp(1194),ERROR" ID="0xe0642552" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get imagePath failed! @js_fwk_common.cpp(1231),ERROR" ID="0xe064267a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(1260),ERROR" ID="0xe0642762" />
- <MSG STRUCTURE="diag_log_msg0" NAME="strcat_s failed! @js_fwk_common.cpp(1267),ERROR" ID="0xe064279a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="the image suffix error, please check! @js_fwk_common.cpp(1273),ERROR" ID="0xe06427ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to parse image src cause by empty source. @js_fwk_common.cpp(1287),ERROR" ID="0xe064283a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to parse image src cause by empty source. @js_fwk_common.cpp(1291),ERROR" ID="0xe064285a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Relative path is not allowed in image src. @js_fwk_common.cpp(1298),ERROR" ID="0xe0642892" />
- <MSG STRUCTURE="diag_log_msg0" NAME="the fontFamily is too long @js_fwk_common.cpp(1347),ERROR" ID="0xe0642a1a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc string failed @js_fwk_common.cpp(1353),ERROR" ID="0xe0642a4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="copy fontFamily failed @js_fwk_common.cpp(1357),ERROR" ID="0xe0642a6a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="js value is not bool. @js_fwk_common.cpp(100),ERROR" ID="0xe0640322" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to set function property cause by empty name. @js_fwk_common.cpp(111),ERROR" ID="0xe064037a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to set function property cause by empty handler. @js_fwk_common.cpp(116),ERROR" ID="0xe06403a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="jerry_value_to_string failed, can not continue to generate char buffer @js_fwk_common.cpp(150),ERROR" ID="0xe06404b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for convert jerry string failed @js_fwk_common.cpp(160),ERROR" ID="0xe0640502" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="jerry string to char buffer failed, target size[%d] @js_fwk_common.cpp(171),ERROR" ID="0xe064055a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="js value is not bool. @js_fwk_common.cpp(191),ERROR" ID="0xe06405fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="js number value is out of range. @js_fwk_common.cpp(209),DBG" ID="0xe064068e" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="js number value is out of range. @js_fwk_common.cpp(213),DBG" ID="0xe06406ae" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="cstr is nullptr. @js_fwk_common.cpp(227),ERROR" ID="0xe064071a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="secLength is too long. @js_fwk_common.cpp(420),ERROR" ID="0xe0640d22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="append path error @js_fwk_common.cpp(444),ERROR" ID="0xe0640de2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="error happen when append path @js_fwk_common.cpp(454),ERROR" ID="0xe0640e32" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="input path or fileName is invalid @js_fwk_common.cpp(471),ERROR" ID="0xe0640eba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="input path or fileName is too long @js_fwk_common.cpp(478),ERROR" ID="0xe0640ef2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(486),ERROR" ID="0xe0640f32" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc dirPath memory heap failed. @js_fwk_common.cpp(530),ERROR" ID="0xe0641092" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="file doesn't exit or it's empty, [%s] @js_fwk_common.cpp(607),ERROR" ID="0xe06412fa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="realpath handle failed, [%s] @js_fwk_common.cpp(625),ERROR" ID="0xe064138a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="file name too long. @js_fwk_common.cpp(643),ERROR" ID="0xe064141a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="splice trace data failed. @js_fwk_common.cpp(651),ERROR" ID="0xe064145a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="open file[%s] failed for reading. @js_fwk_common.cpp(667),ERROR" ID="0xe06414da" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="open file[fd: %d] failed for reading @js_fwk_common.cpp(699),ERROR" ID="0xe06415da" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="open file[path: %s] failed for reading @js_fwk_common.cpp(700),ERROR" ID="0xe06415e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for file content failed, file length[%d] @js_fwk_common.cpp(706),ERROR" ID="0xe0641612" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="read fail, count(%d), length(%u), path(%s) @js_fwk_common.cpp(715),ERROR" ID="0xe064165a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="error index.js file path after locate @js_fwk_common.cpp(744),ERROR" ID="0xe0641742" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="empty index.js file path after locate @js_fwk_common.cpp(749),ERROR" ID="0xe064176a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for file path calculating from url, file length[%d] @js_fwk_common.cpp(819),ERROR" ID="0xe064199a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="append path error when calculating from url @js_fwk_common.cpp(823),ERROR" ID="0xe06419ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="watcher is undefined when inserting a watcher. @js_fwk_common.cpp(859),ERROR" ID="0xe0641ada" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc memory watcher failed. @js_fwk_common.cpp(866),ERROR" ID="0xe0641b12" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="No component binds element. @js_fwk_common.cpp(957),ERROR" ID="0xe0641dea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed GetHeapMemoryInfo! @js_fwk_common.cpp(1107),ERROR" ID="0xe064229a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(1219),ERROR" ID="0xe064261a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="use strcpy_s secure function errro(%d) @js_fwk_common.cpp(1226),ERROR" ID="0xe0642652" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get imagePath failed! @js_fwk_common.cpp(1263),ERROR" ID="0xe064277a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(1292),ERROR" ID="0xe0642862" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="strcat_s failed! @js_fwk_common.cpp(1299),ERROR" ID="0xe064289a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="the image suffix error, please check! @js_fwk_common.cpp(1305),ERROR" ID="0xe06428ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to parse image src cause by empty source. @js_fwk_common.cpp(1319),ERROR" ID="0xe064293a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to parse image src cause by empty source. @js_fwk_common.cpp(1323),ERROR" ID="0xe064295a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Relative path is not allowed in image src. @js_fwk_common.cpp(1330),ERROR" ID="0xe0642992" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="the fontFamily is too long @js_fwk_common.cpp(1379),ERROR" ID="0xe0642b1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc string failed @js_fwk_common.cpp(1385),ERROR" ID="0xe0642b4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="copy fontFamily failed @js_fwk_common.cpp(1389),ERROR" ID="0xe0642b6a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="list node create fail! @local_device_manager.c(118),ERROR" ID="0xd80803b2" />
- <MSG STRUCTURE="diag_log_msg6" NAME="generate addr: ****%02x%02x%02x%02x name: %s sp-ret: %d @local_device_manager.c(242),INFO" ID="0xd8080795" />
- <MSG STRUCTURE="diag_log_msg1" NAME="local dev info write error! ret 0x%x @local_device_manager.c(267),ERROR" ID="0xd808085a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="deinit bt stack @local_device_manager.c(303),INFO" ID="0xd808097d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(379),ERROR" ID="0xd8080bda" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn state change fail. @local_device_manager.c(398),ERROR" ID="0xd8080c72" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn addr memcpy fail. @local_device_manager.c(407),ERROR" ID="0xd8080cba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble smp can not find connect node by handle @local_device_manager.c(437),ERROR" ID="0xd8080daa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn addr memcpy fail. @local_device_manager.c(446),ERROR" ID="0xd8080df2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(467),ERROR" ID="0xd8080e9a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble enable err,B core may be not calibration end and not notify A Core @local_device_manager.c(491),ERROR" ID="0xd8080f5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt init err ret = %08x @local_device_manager.c(523),ERROR" ID="0xd808105a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id %x @local_device_manager.c(621),WARNING" ID="0xd808136b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="inquiry complete @local_device_manager.c(629),INFO" ID="0xd80813ad" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(636),INFO" ID="0xd80813e5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(650),INFO" ID="0xd8081455" />
- <MSG STRUCTURE="diag_log_msg0" NAME="btsrv_connection_request_ind_callback: memecpy error @local_device_manager.c(664),ERROR" ID="0xd80814c2" />
- <MSG STRUCTURE="diag_log_msg4" NAME="addr:****%02x%02x%02x%02x @local_device_manager.c(669),INFO" ID="0xd80814ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(679),INFO" ID="0xd808153d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(694),ERROR" ID="0xd80815b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @local_device_manager.c(708),ERROR" ID="0xd8081622" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(714),ERROR" ID="0xd8081652" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @local_device_manager.c(743),ERROR" ID="0xd808173a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(749),ERROR" ID="0xd808176a" />
- <MSG STRUCTURE="diag_log_msg8" NAME="conn_hdl: %08x event: %04x role: %x result: %x dev_hdl: %x svc_hdl: %x svc_class: %x duration: %d @local_device_manager.c(763),INFO" ID="0xd80817dd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="received_bytes: %d sent_bytes: %d @local_device_manager.c(766),INFO" ID="0xd80817f5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unhandled service class 0x%x @local_device_manager.c(792),WARNING" ID="0xd80818c3" />
- <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x num_value: %06d @local_device_manager.c(815),INFO" ID="0xd808197d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: 0x%08x @local_device_manager.c(822),INFO" ID="0xd80819b5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: 0x%08x @local_device_manager.c(829),INFO" ID="0xd80819ed" />
- <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x num_value: %06d @local_device_manager.c(835),INFO" ID="0xd8081a1d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x reason: %x @local_device_manager.c(849),INFO" ID="0xd8081a8d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="white_list_size:%d @local_device_manager.c(855),INFO" ID="0xd8081abd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="transmit_power_level:%d @local_device_manager.c(860),INFO" ID="0xd8081ae5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="register err id: %x ret: %x @local_device_manager.c(891),ERROR" ID="0xd8081bda" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bt enable err,B core may be not calibration end and not notify A Core @local_device_manager.c(926),ERROR" ID="0xd8081cf2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt_init err ret = %08x @local_device_manager.c(956),ERROR" ID="0xd8081de2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="buff is't long enough, need length:%d. @local_device_manager.c(1064),ERROR" ID="0xd8082142" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get local name memcpy fail. @local_device_manager.c(1068),ERROR" ID="0xd8082162" />
- <MSG STRUCTURE="diag_log_msg2" NAME="name: %s, length: %d @local_device_manager.c(1077),INFO" ID="0xd80821ad" />
- <MSG STRUCTURE="diag_log_msg0" NAME="failed: bt not enabled @local_device_manager.c(1092),INFO" ID="0xd8082225" />
- <MSG STRUCTURE="diag_log_msg1" NAME="local name null or length not match, len: %d @local_device_manager.c(1096),INFO" ID="0xd8082245" />
- <MSG STRUCTURE="diag_log_msg1" NAME="returns error ret: %x @local_device_manager.c(1102),WARNING" ID="0xd8082273" />
- <MSG STRUCTURE="diag_log_msg3" NAME="set result name: "%s" name_len: %d get_re: %x @local_device_manager.c(1108),INFO" ID="0xd80822a5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap_remove_all_pairs fail @local_device_manager.c(1168),ERROR" ID="0xd8082482" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap ble remove all pairs fail @local_device_manager.c(1174),ERROR" ID="0xd80824b2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="diable_bt_ret(errcode_t): %x @local_device_manager.c(1181),INFO" ID="0xd80824ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="disable_ble_ret(errcode_t): %x @local_device_manager.c(1186),INFO" ID="0xd8082515" />
- <MSG STRUCTURE="diag_log_msg0" NAME="set discovery data pointer is null. @local_device_manager.c(1217),ERROR" ID="0xd808260a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="adv_id(%d) advertising, please stop first. @local_device_manager.c(1235),ERROR" ID="0xd808269a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="adv data alloc faild, length:%d @local_device_manager.c(1248),ERROR" ID="0xd8082702" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap_ble_set_adv_data adv data memcpy_s fail @local_device_manager.c(1252),ERROR" ID="0xd8082722" />
- <MSG STRUCTURE="diag_log_msg1" NAME="scan rsp data alloc faild, length:%d @local_device_manager.c(1261),ERROR" ID="0xd808276a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap_ble_set_adv_data scan rsp data memcpy_s fail @local_device_manager.c(1265),ERROR" ID="0xd808278a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="adv_id(%d) advertising, please stop first. @local_device_manager.c(1304),ERROR" ID="0xd80828c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap ble set adv param memcpy_s fail @local_device_manager.c(1316),ERROR" ID="0xd8082922" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap ble set adv param memcpy_s fail @local_device_manager.c(1330),ERROR" ID="0xd8082992" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap set sec param error param NULL @local_device_manager.c(1352),ERROR" ID="0xd8082a42" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap set sec param error param NULL @local_device_manager.c(1357),ERROR" ID="0xd8082a6a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bt has page scanning enabled. @local_device_manager.c(1381),ERROR" ID="0xd8082b2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bt has an ACL connection. @local_device_manager.c(1387),ERROR" ID="0xd8082b5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[CTKD] please set ble secure connection enable,current_sc=%d. @local_device_manager.c(1404),ERROR" ID="0xd8082be2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set adv data memcpy_s fail @local_device_manager.c(1427),ERROR" ID="0xd8082c9a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set scan rsp data memcpy_s fail @local_device_manager.c(1434),ERROR" ID="0xd8082cd2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] btsrv_gap_set_adv_param memcpy_s fail @local_device_manager.c(1453),ERROR" ID="0xd8082d6a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set adv param memcpy_s fail @local_device_manager.c(1458),ERROR" ID="0xd8082d92" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap ext adv rpt memcpy fail @local_device_manager.c(1478),ERROR" ID="0xd8082e32" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap ext adv rpt memcpy fail @local_device_manager.c(1493),ERROR" ID="0xd8082eaa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap adv set terminated cbk param error @local_device_manager.c(1505),ERROR" ID="0xd8082f0a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble enable cbk param error @local_device_manager.c(1516),ERROR" ID="0xd8082f62" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble read remote rssi cbk param error @local_device_manager.c(1527),ERROR" ID="0xd8082fba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble conn param update cbk param error @local_device_manager.c(1543),ERROR" ID="0xd808303a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap conn param malloc fail @local_device_manager.c(1557),ERROR" ID="0xd80830aa" />
- <MSG STRUCTURE="diag_log_msg3" NAME="ble conn param update cbk interval:%x, latency:%x, timeout:%x @local_device_manager.c(1564),INFO" ID="0xd80830e5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(1598),ERROR" ID="0xd80831f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="adv id(%d) is discoverying, please stop first. @local_device_manager.c(1602),ERROR" ID="0xd8083212" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv param alloc fail @local_device_manager.c(1611),ERROR" ID="0xd808325a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(1644),ERROR" ID="0xd8083362" />
- <MSG STRUCTURE="diag_log_msg2" NAME="no advertising in progress or advertising for adv_id(%d). No advertising for adv_id(%d). @local_device_manager.c(1650),ERROR" ID="0xd8083392" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mc sdk ble stop adv atb failed @local_device_manager.c(1656),ERROR" ID="0xd80833c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="scanning in process, please stop first. @local_device_manager.c(1690),ERROR" ID="0xd80834d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="scanning already stopped. @local_device_manager.c(1722),ERROR" ID="0xd80835d2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble stop extern scan ret: %#x @local_device_manager.c(1726),INFO" ID="0xd80835f5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble set phy node == NULL @local_device_manager.c(1751),ERROR" ID="0xd80836ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble set phy memcpy fail @local_device_manager.c(1757),ERROR" ID="0xd80836ea" />
- <MSG STRUCTURE="diag_log_msg5" NAME="ble general set phy hdl:%x all:%x rx:%x tx:%x op:%x. @local_device_manager.c(1763),INFO" ID="0xd808371d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble set phy ret: %#x @local_device_manager.c(1766),ERROR" ID="0xd8083732" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble set data length node == NULL @local_device_manager.c(1788),ERROR" ID="0xd80837e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble set data length memcpy fail @local_device_manager.c(1794),ERROR" ID="0xd8083812" />
- <MSG STRUCTURE="diag_log_msg3" NAME="ble general set len hdl:%x maxoct:%x maxtime:%x @local_device_manager.c(1800),INFO" ID="0xd8083845" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble set len ret: %#x @local_device_manager.c(1803),ERROR" ID="0xd808385a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bts sert log type levle:%x @local_device_manager.c(1821),INFO" ID="0xd80838ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="g_bts_feature_bitmap bt_auto_reconnect_closed:%d. @local_device_manager.c(1842),ERROR" ID="0xd8083992" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="list node create fail! @local_device_manager.c(121),ERROR" ID="0xd80803ca" />
+ <MSG STRUCTURE="diag_log_msg6" NAME="generate addr: ****%02x%02x%02x%02x name: %s sp-ret: %d @local_device_manager.c(245),INFO" ID="0xd80807ad" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="local dev info write error! ret 0x%x @local_device_manager.c(270),ERROR" ID="0xd8080872" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="deinit bt stack @local_device_manager.c(306),INFO" ID="0xd8080995" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(382),ERROR" ID="0xd8080bf2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn state change fail. @local_device_manager.c(401),ERROR" ID="0xd8080c8a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn addr memcpy fail. @local_device_manager.c(410),ERROR" ID="0xd8080cd2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble smp can not find connect node by handle @local_device_manager.c(440),ERROR" ID="0xd8080dc2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn addr memcpy fail. @local_device_manager.c(449),ERROR" ID="0xd8080e0a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(470),ERROR" ID="0xd8080eb2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble enable err,B core may be not calibration end and not notify A Core @local_device_manager.c(494),ERROR" ID="0xd8080f72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt init err ret = %08x @local_device_manager.c(526),ERROR" ID="0xd8081072" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id %x @local_device_manager.c(624),WARNING" ID="0xd8081383" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="inquiry complete @local_device_manager.c(632),INFO" ID="0xd80813c5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(639),INFO" ID="0xd80813fd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(653),INFO" ID="0xd808146d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="btsrv_connection_request_ind_callback: memecpy error @local_device_manager.c(667),ERROR" ID="0xd80814da" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="addr:****%02x%02x%02x%02x @local_device_manager.c(672),INFO" ID="0xd8081505" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(682),INFO" ID="0xd8081555" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(697),ERROR" ID="0xd80815ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @local_device_manager.c(711),ERROR" ID="0xd808163a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(717),ERROR" ID="0xd808166a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @local_device_manager.c(746),ERROR" ID="0xd8081752" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(752),ERROR" ID="0xd8081782" />
+ <MSG STRUCTURE="diag_log_msg8" NAME="conn_hdl: %08x event: %04x role: %x result: %x dev_hdl: %x svc_hdl: %x svc_class: %x duration: %d @local_device_manager.c(766),INFO" ID="0xd80817f5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="received_bytes: %d sent_bytes: %d @local_device_manager.c(769),INFO" ID="0xd808180d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unhandled service class 0x%x @local_device_manager.c(795),WARNING" ID="0xd80818db" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x num_value: %06d @local_device_manager.c(818),INFO" ID="0xd8081995" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: 0x%08x @local_device_manager.c(825),INFO" ID="0xd80819cd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: 0x%08x @local_device_manager.c(832),INFO" ID="0xd8081a05" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x num_value: %06d @local_device_manager.c(838),INFO" ID="0xd8081a35" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x reason: %x @local_device_manager.c(852),INFO" ID="0xd8081aa5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="white_list_size:%d @local_device_manager.c(858),INFO" ID="0xd8081ad5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="transmit_power_level:%d @local_device_manager.c(863),INFO" ID="0xd8081afd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="register err id: %x ret: %x @local_device_manager.c(894),ERROR" ID="0xd8081bf2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bt enable err,B core may be not calibration end and not notify A Core @local_device_manager.c(929),ERROR" ID="0xd8081d0a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt_init err ret = %08x @local_device_manager.c(959),ERROR" ID="0xd8081dfa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="buff is't long enough, need length:%d. @local_device_manager.c(1067),ERROR" ID="0xd808215a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get local name memcpy fail. @local_device_manager.c(1071),ERROR" ID="0xd808217a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="name: %s, length: %d @local_device_manager.c(1080),INFO" ID="0xd80821c5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="failed: bt not enabled @local_device_manager.c(1095),INFO" ID="0xd808223d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="local name null or length not match, len: %d @local_device_manager.c(1099),INFO" ID="0xd808225d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="returns error ret: %x @local_device_manager.c(1105),WARNING" ID="0xd808228b" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="set result name: "%s" name_len: %d get_re: %x @local_device_manager.c(1111),INFO" ID="0xd80822bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap_remove_all_pairs fail @local_device_manager.c(1171),ERROR" ID="0xd808249a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap ble remove all pairs fail @local_device_manager.c(1177),ERROR" ID="0xd80824ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="diable_bt_ret(errcode_t): %x @local_device_manager.c(1184),INFO" ID="0xd8082505" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="disable_ble_ret(errcode_t): %x @local_device_manager.c(1189),INFO" ID="0xd808252d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="set discovery data pointer is null. @local_device_manager.c(1220),ERROR" ID="0xd8082622" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="adv_id(%d) advertising, please stop first. @local_device_manager.c(1238),ERROR" ID="0xd80826b2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="adv data alloc faild, length:%d @local_device_manager.c(1251),ERROR" ID="0xd808271a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap_ble_set_adv_data adv data memcpy_s fail @local_device_manager.c(1255),ERROR" ID="0xd808273a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="scan rsp data alloc faild, length:%d @local_device_manager.c(1264),ERROR" ID="0xd8082782" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap_ble_set_adv_data scan rsp data memcpy_s fail @local_device_manager.c(1268),ERROR" ID="0xd80827a2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="adv_id(%d) advertising, please stop first. @local_device_manager.c(1307),ERROR" ID="0xd80828da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap ble set adv param memcpy_s fail @local_device_manager.c(1319),ERROR" ID="0xd808293a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap ble set adv param memcpy_s fail @local_device_manager.c(1333),ERROR" ID="0xd80829aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap set sec param error param NULL @local_device_manager.c(1355),ERROR" ID="0xd8082a5a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap set sec param error param NULL @local_device_manager.c(1360),ERROR" ID="0xd8082a82" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bt has page scanning enabled. @local_device_manager.c(1384),ERROR" ID="0xd8082b42" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bt has an ACL connection. @local_device_manager.c(1390),ERROR" ID="0xd8082b72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[CTKD] please set ble secure connection enable,current_sc=%d. @local_device_manager.c(1407),ERROR" ID="0xd8082bfa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BT] flow limit range is [3072-10240] bytes. @local_device_manager.c(1425),ERROR" ID="0xd8082c8a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set adv data memcpy_s fail @local_device_manager.c(1444),ERROR" ID="0xd8082d22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set scan rsp data memcpy_s fail @local_device_manager.c(1451),ERROR" ID="0xd8082d5a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] btsrv_gap_set_adv_param memcpy_s fail @local_device_manager.c(1470),ERROR" ID="0xd8082df2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set adv param memcpy_s fail @local_device_manager.c(1475),ERROR" ID="0xd8082e1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap ext adv rpt memcpy fail @local_device_manager.c(1495),ERROR" ID="0xd8082eba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap ext adv rpt memcpy fail @local_device_manager.c(1510),ERROR" ID="0xd8082f32" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap adv set terminated cbk param error @local_device_manager.c(1522),ERROR" ID="0xd8082f92" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble enable cbk param error @local_device_manager.c(1533),ERROR" ID="0xd8082fea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble read remote rssi cbk param error @local_device_manager.c(1544),ERROR" ID="0xd8083042" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble conn param update cbk param error @local_device_manager.c(1560),ERROR" ID="0xd80830c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap conn param malloc fail @local_device_manager.c(1574),ERROR" ID="0xd8083132" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="ble conn param update cbk interval:%x, latency:%x, timeout:%x @local_device_manager.c(1581),INFO" ID="0xd808316d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(1615),ERROR" ID="0xd808327a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="adv id(%d) is discoverying, please stop first. @local_device_manager.c(1619),ERROR" ID="0xd808329a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv param alloc fail @local_device_manager.c(1628),ERROR" ID="0xd80832e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(1661),ERROR" ID="0xd80833ea" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="no advertising in progress or advertising for adv_id(%d). No advertising for adv_id(%d). @local_device_manager.c(1667),ERROR" ID="0xd808341a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mc sdk ble stop adv atb failed @local_device_manager.c(1673),ERROR" ID="0xd808344a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="scanning in process, please stop first. @local_device_manager.c(1707),ERROR" ID="0xd808355a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="scanning already stopped. @local_device_manager.c(1739),ERROR" ID="0xd808365a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble stop extern scan ret: %#x @local_device_manager.c(1743),INFO" ID="0xd808367d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble set phy node == NULL @local_device_manager.c(1768),ERROR" ID="0xd8083742" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble set phy memcpy fail @local_device_manager.c(1774),ERROR" ID="0xd8083772" />
+ <MSG STRUCTURE="diag_log_msg5" NAME="ble general set phy hdl:%x all:%x rx:%x tx:%x op:%x. @local_device_manager.c(1780),INFO" ID="0xd80837a5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble set phy ret: %#x @local_device_manager.c(1783),ERROR" ID="0xd80837ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble set data length node == NULL @local_device_manager.c(1805),ERROR" ID="0xd808386a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble set data length memcpy fail @local_device_manager.c(1811),ERROR" ID="0xd808389a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="ble general set len hdl:%x maxoct:%x maxtime:%x @local_device_manager.c(1817),INFO" ID="0xd80838cd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble set len ret: %#x @local_device_manager.c(1820),ERROR" ID="0xd80838e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bts sert log type levle:%x @local_device_manager.c(1838),INFO" ID="0xd8083975" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_bts_feature_bitmap bt_auto_reconnect_closed:%d. @local_device_manager.c(1859),ERROR" ID="0xd8083a1a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="MemUtils::InitPSRam g_psramMemory = %x @mem_util.cpp(27),DBG" ID="0xe07000de" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="MemUtils::InitPSRam g_psramMemory = %x @mem_util.cpp(28),DBG" ID="0xe07000e6" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg1" NAME="[WARNING][LD]ld_acl_sniff_trans:acl end for already set end:%d @ld_acl_sniff.c(1298),WARNING" ID="0x89fe2893" />
<MSG STRUCTURE="diag_log_msg4" NAME="[WARNING][LD]ld_acl_sniff_trans:acl sched fail extab_prio=%d, acl_ts=0x%x, last_sync=0x%x, lsto=%d @ld_acl_sniff.c(1330),WARNING" ID="0x89fe2993" />
<MSG STRUCTURE="diag_log_msg2" NAME="[WARNING][LD]ld_sniff_anchor_point_check:clock 0x%x, sniff_ts:0x%x @ld_acl_sniff.c(1570),WARNING" ID="0x89fe3113" />
- <MSG STRUCTURE="diag_log_msg3" NAME="a2dp_audio: rpt stream state stream_hdl %p state %d src %d @sdk_av.c(813),ERROR" ID="0x8b86196a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="a2dp_audio: rpt stream state stream_hdl %p state %d src %d @sdk_av.c(817),ERROR" ID="0x8b86198a" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLC]llc_le_set_adv_rand_add:conhdl=0x%x, rand_addr=0x%x:0x%x:*:*:*0x%x @llc.c(219),INFO" ID="0x883006dd" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLC]llc_set_adv_param:interval min=0x%x, max=0x%x, channel map=%d, filter policy=%d @llc.c(285),INFO" ID="0x883008ed" />
<MSG STRUCTURE="diag_log_msg2" NAME="[INFO][LLM]llc_set_adv_en:conhd=0x%x, adv_en=%d @llc.c(456),INFO" ID="0x88300e45" />
<MSG STRUCTURE="diag_log_msg0" NAME="smp_pair_new_patch @patch_bth.c(52),INFO" ID="0x8d5401a5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[AVDTP][GET_SEP_FAIL] Can not get sep info @patch_bth.c(156),WARNING" ID="0x8d5404e3" />
<MSG STRUCTURE="diag_log_msg0" NAME="[STACK][RECV_RING_STOP] @patch_bth.c(244),INFO" ID="0x8d5407a5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] att error rsp opcode:0x%x handle:%d error:0x%x @patch_bth.c(324),ERROR" ID="0x8d540a22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SMP]PAIRING_REQ_RECV @patch_bth.c(503),ERROR" ID="0x8d540fba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list fail: %d @bt_mpc_adpt_gap.c(52),ERROR" ID="0x8dd401a2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list params err! len = %d @bt_mpc_adpt_gap.c(56),ERROR" ID="0x8dd401c2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble remove all ble white list fail: %d @bt_mpc_adpt_gap.c(71),ERROR" ID="0x8dd4023a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble remove ble white list fail: %d @bt_mpc_adpt_gap.c(78),ERROR" ID="0x8dd40272" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble remove ble white list params err! len = %d @bt_mpc_adpt_gap.c(82),ERROR" ID="0x8dd40292" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set global value: %d @bt_mpc_adpt_gap.c(96),ERROR" ID="0x8dd40302" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set global value err! len = %d @bt_mpc_adpt_gap.c(99),ERROR" ID="0x8dd4031a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connection params update: %d @bt_mpc_adpt_gap.c(115),ERROR" ID="0x8dd4039a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connection params update err! len = %d @bt_mpc_adpt_gap.c(119),ERROR" ID="0x8dd403ba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc get local appearance: ret = %d @bt_mpc_adpt_gap.c(131),ERROR" ID="0x8dd4041a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set local appearance: %d @bt_mpc_adpt_gap.c(146),ERROR" ID="0x8dd40492" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set local appearance err! len = %d @bt_mpc_adpt_gap.c(150),ERROR" ID="0x8dd404b2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period advertising: %d @bt_mpc_adpt_gap.c(166),ERROR" ID="0x8dd40532" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period advertising err! len = %d @bt_mpc_adpt_gap.c(170),ERROR" ID="0x8dd40552" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis period advertising: %d @bt_mpc_adpt_gap.c(187),ERROR" ID="0x8dd405da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis period advertising err! len = %d @bt_mpc_adpt_gap.c(191),ERROR" ID="0x8dd405fa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period adv list: %d @bt_mpc_adpt_gap.c(209),ERROR" ID="0x8dd4068a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period adv list err! len = %d @bt_mpc_adpt_gap.c(213),ERROR" ID="0x8dd406aa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv create sync: %d @bt_mpc_adpt_gap.c(230),ERROR" ID="0x8dd40732" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv create sync err! len = %d @bt_mpc_adpt_gap.c(234),ERROR" ID="0x8dd40752" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv terminate sync: %d @bt_mpc_adpt_gap.c(251),ERROR" ID="0x8dd407da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv terminate sync err! len = %d @bt_mpc_adpt_gap.c(255),ERROR" ID="0x8dd407fa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern adv: %d @bt_mpc_adpt_gap.c(273),ERROR" ID="0x8dd4088a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern adv err! len = %d @bt_mpc_adpt_gap.c(277),ERROR" ID="0x8dd408aa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern adv: %d @bt_mpc_adpt_gap.c(300),ERROR" ID="0x8dd40962" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern adv err! len = %d @bt_mpc_adpt_gap.c(304),ERROR" ID="0x8dd40982" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv: %d @bt_mpc_adpt_gap.c(323),ERROR" ID="0x8dd40a1a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv err! len = %d @bt_mpc_adpt_gap.c(327),ERROR" ID="0x8dd40a3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern scan: %d @bt_mpc_adpt_gap.c(342),ERROR" ID="0x8dd40ab2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set len: %d @bt_mpc_adpt_gap.c(356),ERROR" ID="0x8dd40b22" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set len len err! len = %d @bt_mpc_adpt_gap.c(359),ERROR" ID="0x8dd40b3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set phy: %d @bt_mpc_adpt_gap.c(372),ERROR" ID="0x8dd40ba2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set phy len err! len = %d @bt_mpc_adpt_gap.c(375),ERROR" ID="0x8dd40bba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern scan: %d @bt_mpc_adpt_gap.c(390),ERROR" ID="0x8dd40c32" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv err! len = %d @bt_mpc_adpt_gap.c(394),ERROR" ID="0x8dd40c52" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set resolve addr: %d @bt_mpc_adpt_gap.c(410),ERROR" ID="0x8dd40cd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set resolve addr err! len = %d @bt_mpc_adpt_gap.c(414),ERROR" ID="0x8dd40cf2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc get white list: %d @bt_mpc_adpt_gap.c(432),ERROR" ID="0x8dd40d82" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[CONN]ble core:AppConnectBleWhiteList @bt_mpc_adpt_gap.c(443),INFO" ID="0x8dd40ddd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connect white list fail ret=%d @bt_mpc_adpt_gap.c(447),ERROR" ID="0x8dd40dfa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc passkey response: %d @bt_mpc_adpt_gap.c(460),ERROR" ID="0x8dd40e62" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc passkey response err! len = %d @bt_mpc_adpt_gap.c(463),ERROR" ID="0x8dd40e7a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set connect param: %d @bt_mpc_adpt_gap.c(491),ERROR" ID="0x8dd40f5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set connect param err! len = %d @bt_mpc_adpt_gap.c(494),ERROR" ID="0x8dd40f72" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set hci le event mask: %d @bt_mpc_adpt_gap.c(505),ERROR" ID="0x8dd40fca" />
- <MSG STRUCTURE="diag_log_msg2" NAME="bt mpc set hci le event mask error! len = %d, stru_len: %d @bt_mpc_adpt_gap.c(509),ERROR" ID="0x8dd40fea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi: %d @bt_mpc_adpt_gap.c(522),ERROR" ID="0x8dd41052" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi err! len = %d @bt_mpc_adpt_gap.c(525),ERROR" ID="0x8dd4106a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] att error rsp opcode:0x%x handle:%d error:0x%x @patch_bth.c(327),ERROR" ID="0x8d540a3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP]PAIRING_REQ_RECV @patch_bth.c(506),ERROR" ID="0x8d540fd2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list fail: %d @bt_mpc_adpt_gap.c(53),ERROR" ID="0x8dd401aa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list params err! len = %d @bt_mpc_adpt_gap.c(57),ERROR" ID="0x8dd401ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble remove all ble white list fail: %d @bt_mpc_adpt_gap.c(72),ERROR" ID="0x8dd40242" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble remove ble white list fail: %d @bt_mpc_adpt_gap.c(79),ERROR" ID="0x8dd4027a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble remove ble white list params err! len = %d @bt_mpc_adpt_gap.c(83),ERROR" ID="0x8dd4029a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set global value: %d @bt_mpc_adpt_gap.c(98),ERROR" ID="0x8dd40312" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set global value err! len = %d @bt_mpc_adpt_gap.c(101),ERROR" ID="0x8dd4032a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connection params update: %d @bt_mpc_adpt_gap.c(117),ERROR" ID="0x8dd403aa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connection params update err! len = %d @bt_mpc_adpt_gap.c(121),ERROR" ID="0x8dd403ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc get local appearance: ret = %d @bt_mpc_adpt_gap.c(133),ERROR" ID="0x8dd4042a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set local appearance: %d @bt_mpc_adpt_gap.c(148),ERROR" ID="0x8dd404a2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set local appearance err! len = %d @bt_mpc_adpt_gap.c(152),ERROR" ID="0x8dd404c2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period advertising: %d @bt_mpc_adpt_gap.c(168),ERROR" ID="0x8dd40542" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period advertising err! len = %d @bt_mpc_adpt_gap.c(172),ERROR" ID="0x8dd40562" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis period advertising: %d @bt_mpc_adpt_gap.c(189),ERROR" ID="0x8dd405ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis period advertising err! len = %d @bt_mpc_adpt_gap.c(193),ERROR" ID="0x8dd4060a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period adv list: %d @bt_mpc_adpt_gap.c(211),ERROR" ID="0x8dd4069a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period adv list err! len = %d @bt_mpc_adpt_gap.c(215),ERROR" ID="0x8dd406ba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv create sync: %d @bt_mpc_adpt_gap.c(232),ERROR" ID="0x8dd40742" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv create sync err! len = %d @bt_mpc_adpt_gap.c(236),ERROR" ID="0x8dd40762" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv terminate sync: %d @bt_mpc_adpt_gap.c(253),ERROR" ID="0x8dd407ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv terminate sync err! len = %d @bt_mpc_adpt_gap.c(257),ERROR" ID="0x8dd4080a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern adv: %d @bt_mpc_adpt_gap.c(275),ERROR" ID="0x8dd4089a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern adv err! len = %d @bt_mpc_adpt_gap.c(279),ERROR" ID="0x8dd408ba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern adv: %d @bt_mpc_adpt_gap.c(302),ERROR" ID="0x8dd40972" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern adv err! len = %d @bt_mpc_adpt_gap.c(306),ERROR" ID="0x8dd40992" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv: %d @bt_mpc_adpt_gap.c(325),ERROR" ID="0x8dd40a2a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv err! len = %d @bt_mpc_adpt_gap.c(329),ERROR" ID="0x8dd40a4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern scan: %d @bt_mpc_adpt_gap.c(344),ERROR" ID="0x8dd40ac2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set len: %d @bt_mpc_adpt_gap.c(358),ERROR" ID="0x8dd40b32" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set len len err! len = %d @bt_mpc_adpt_gap.c(361),ERROR" ID="0x8dd40b4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set phy: %d @bt_mpc_adpt_gap.c(374),ERROR" ID="0x8dd40bb2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set phy len err! len = %d @bt_mpc_adpt_gap.c(377),ERROR" ID="0x8dd40bca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern scan: %d @bt_mpc_adpt_gap.c(392),ERROR" ID="0x8dd40c42" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv err! len = %d @bt_mpc_adpt_gap.c(396),ERROR" ID="0x8dd40c62" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set resolve addr: %d @bt_mpc_adpt_gap.c(412),ERROR" ID="0x8dd40ce2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set resolve addr err! len = %d @bt_mpc_adpt_gap.c(416),ERROR" ID="0x8dd40d02" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc get white list: %d @bt_mpc_adpt_gap.c(434),ERROR" ID="0x8dd40d92" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[CONN]ble core:AppConnectBleWhiteList @bt_mpc_adpt_gap.c(445),INFO" ID="0x8dd40ded" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connect white list fail ret=%d @bt_mpc_adpt_gap.c(449),ERROR" ID="0x8dd40e0a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc passkey response: %d @bt_mpc_adpt_gap.c(462),ERROR" ID="0x8dd40e72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc passkey response err! len = %d @bt_mpc_adpt_gap.c(465),ERROR" ID="0x8dd40e8a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set connect param: %d @bt_mpc_adpt_gap.c(493),ERROR" ID="0x8dd40f6a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set connect param err! len = %d @bt_mpc_adpt_gap.c(496),ERROR" ID="0x8dd40f82" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set hci le event mask: %d @bt_mpc_adpt_gap.c(507),ERROR" ID="0x8dd40fda" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="bt mpc set hci le event mask error! len = %d, stru_len: %d @bt_mpc_adpt_gap.c(511),ERROR" ID="0x8dd40ffa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi: %d @bt_mpc_adpt_gap.c(524),ERROR" ID="0x8dd41062" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi err! len = %d @bt_mpc_adpt_gap.c(527),ERROR" ID="0x8dd4107a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ECC]release semaphore fail @ecc_p256.c(1857),INFO" ID="0x89463a0d" />
<MSG STRUCTURE="diag_log_msg4" NAME="[HCI] remove remote exceed upper limit %d addr:%02x:%02x:xx:xx:xx:%02x! @hci_hlp_ram.c(524),ERROR" ID="0x8ba81062" />
<MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy_s error @hci_hlp_ram.c(544),ERROR" ID="0x8ba81102" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][LLC][PHY]hci_le_set_phy_cmd_handler:llc is in disconnected state @llc_hci.c(1500),WARNING" ID="0x88322ee3" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLC][PHY]hci_le_set_phy_cmd_handler:current_txphy=%d, current_rxphy=%d, txphyoption=%d, rxphyoption=%d @llc_hci.c(1545),INFO" ID="0x8832304d" />
<MSG STRUCTURE="diag_log_msg2" NAME="[CHR]handle %d action %d @llc_hci.c(2463),INFO" ID="0x88324cfd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap set discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(84),INFO" ID="0x8c9e02a5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap get discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(98),INFO" ID="0x8c9e0315" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap stop discovery result = 0x%x, mode = 0x%x @bt_ahi_gap.c(108),INFO" ID="0x8c9e0365" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl result = 0x%x, dev_hdl = 0x%x, link type = %d @bt_ahi_gap.c(122),INFO" ID="0x8c9e03d5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(135),ERROR" ID="0x8c9e043a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl cfm cbk result = 0x%x, acl_hdl = 0x%x, link type = %d @bt_ahi_gap.c(140),INFO" ID="0x8c9e0465" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap create acla result = 0x%x @bt_ahi_gap.c(149),INFO" ID="0x8c9e04ad" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap reconnect phone result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(160),INFO" ID="0x8c9e0505" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap get rmt dev handle result = 0x%x @bt_ahi_gap.c(172),INFO" ID="0x8c9e0565" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap device is connected result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(184),INFO" ID="0x8c9e05c5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk disconnect acl by handle result = 0x%x @bt_ahi_gap.c(195),INFO" ID="0x8c9e061d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap pair device result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(207),INFO" ID="0x8c9e067d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap add rmt device rsp.result = %x @bt_ahi_gap.c(224),INFO" ID="0x8c9e0705" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap update rmt device name result = 0x%x, name = %s @bt_ahi_gap.c(244),INFO" ID="0x8c9e07a5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(258),ERROR" ID="0x8c9e0812" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap update rmt device name cfm cbk result = 0x%x, opindex = 0x%x, size = %d @bt_ahi_gap.c(266),INFO" ID="0x8c9e0855" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap update rmt device name async result = 0x%x @bt_ahi_gap.c(276),INFO" ID="0x8c9e08a5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap get local name result = 0x%x, length = %d, name = %s @bt_ahi_gap.c(312),INFO" ID="0x8c9e09c5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="stack gap get rmt dev addr result = 0x%x, addr[%02x:**:**:**:%02x:%02x] @bt_ahi_gap.c(337),INFO" ID="0x8c9e0a8d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap browse rmt service overflow, max_count = %d, svc_count = %d @bt_ahi_gap.c(359),ERROR" ID="0x8c9e0b3a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap browse rmt service result = 0x%x, svc_count = %d, svc_hdl[0] = 0x%x @bt_ahi_gap.c(365),INFO" ID="0x8c9e0b6d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp enable sco:scohdl=0x%x inid=0x%x outid=0x%x @bt_ahi_gap.c(386),INFO" ID="0x8c9e0c15" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hfp disable sco:scohdl=0x%x @bt_ahi_gap.c(390),INFO" ID="0x8c9e0c35" />
- <MSG STRUCTURE="diag_log_msg3" NAME="result = 0x%x, handle = 0x%x, service_class = %02x @bt_ahi_gap.c(423),ERROR" ID="0x8c9e0d3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap init, res = 0x%x @bt_ahi_gap.c(435),INFO" ID="0x8c9e0d9d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="set bt tx power, hdl=0x%x, power=%d, ret=0x%x @bt_ahi_gap.c(448),INFO" ID="0x8c9e0e05" />
- <MSG STRUCTURE="diag_log_msg3" NAME="br gap read rssi, hdl=0x%x, rssi=%d, ret=0x%x @bt_ahi_gap.c(456),INFO" ID="0x8c9e0e45" />
- <MSG STRUCTURE="diag_log_msg4" NAME="set active scene scene = %d, bitrate = %d, delay = %d, ret=0x%x @bt_ahi_gap.c(472),INFO" ID="0x8c9e0ec5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="set inquiry scan param interval = %d, window = %d @bt_ahi_gap.c(480),INFO" ID="0x8c9e0f05" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(491),ERROR" ID="0x8c9e0f5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap restore rmt device rsp.result = %x @bt_ahi_gap.c(495),INFO" ID="0x8c9e0f7d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="br gap get link mode, hdl=0x%x, mode=%d, ret=0x%x @bt_ahi_gap.c(504),INFO" ID="0x8c9e0fc5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mpc param null! @bt_ahi_gap.c(520),ERROR" ID="0x8c9e1042" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mpc pkt_ptr is null! @bt_ahi_gap.c(525),ERROR" ID="0x8c9e106a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[AHI]set br secure param secure=%d. @bt_ahi_gap.c(529),ERROR" ID="0x8c9e108a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap set discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(87),INFO" ID="0x8c9e02bd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap get discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(101),INFO" ID="0x8c9e032d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap stop discovery result = 0x%x, mode = 0x%x @bt_ahi_gap.c(111),INFO" ID="0x8c9e037d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl result = 0x%x, dev_hdl = 0x%x, link type = %d @bt_ahi_gap.c(125),INFO" ID="0x8c9e03ed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(138),ERROR" ID="0x8c9e0452" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl cfm cbk result = 0x%x, acl_hdl = 0x%x, link type = %d @bt_ahi_gap.c(143),INFO" ID="0x8c9e047d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap create acla result = 0x%x @bt_ahi_gap.c(152),INFO" ID="0x8c9e04c5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap reconnect phone result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(163),INFO" ID="0x8c9e051d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap get rmt dev handle result = 0x%x @bt_ahi_gap.c(175),INFO" ID="0x8c9e057d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap device is connected result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(187),INFO" ID="0x8c9e05dd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk disconnect acl by handle result = 0x%x @bt_ahi_gap.c(198),INFO" ID="0x8c9e0635" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap pair device result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(210),INFO" ID="0x8c9e0695" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap add rmt device rsp.result = %x @bt_ahi_gap.c(227),INFO" ID="0x8c9e071d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap update rmt device name result = 0x%x, name = %s @bt_ahi_gap.c(247),INFO" ID="0x8c9e07bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(261),ERROR" ID="0x8c9e082a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap update rmt device name cfm cbk result = 0x%x, opindex = 0x%x, size = %d @bt_ahi_gap.c(269),INFO" ID="0x8c9e086d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap update rmt device name async result = 0x%x @bt_ahi_gap.c(279),INFO" ID="0x8c9e08bd" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap get local name result = 0x%x, length = %d, name = %s @bt_ahi_gap.c(315),INFO" ID="0x8c9e09dd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="stack gap get rmt dev addr result = 0x%x, addr[%02x:**:**:**:%02x:%02x] @bt_ahi_gap.c(340),INFO" ID="0x8c9e0aa5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap browse rmt service overflow, max_count = %d, svc_count = %d @bt_ahi_gap.c(362),ERROR" ID="0x8c9e0b52" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap browse rmt service result = 0x%x, svc_count = %d, svc_hdl[0] = 0x%x @bt_ahi_gap.c(368),INFO" ID="0x8c9e0b85" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp enable sco:scohdl=0x%x inid=0x%x outid=0x%x @bt_ahi_gap.c(389),INFO" ID="0x8c9e0c2d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hfp disable sco:scohdl=0x%x @bt_ahi_gap.c(393),INFO" ID="0x8c9e0c4d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="result = 0x%x, handle = 0x%x, service_class = %02x @bt_ahi_gap.c(426),ERROR" ID="0x8c9e0d52" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap init, res = 0x%x @bt_ahi_gap.c(438),INFO" ID="0x8c9e0db5" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="set bt tx power, hdl=0x%x, power=%d, ret=0x%x @bt_ahi_gap.c(451),INFO" ID="0x8c9e0e1d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="br gap read rssi, hdl=0x%x, rssi=%d, ret=0x%x @bt_ahi_gap.c(459),INFO" ID="0x8c9e0e5d" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="set active scene scene = %d, bitrate = %d, delay = %d, ret=0x%x @bt_ahi_gap.c(475),INFO" ID="0x8c9e0edd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="set inquiry scan param interval = %d, window = %d @bt_ahi_gap.c(483),INFO" ID="0x8c9e0f1d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(494),ERROR" ID="0x8c9e0f72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap restore rmt device rsp.result = %x @bt_ahi_gap.c(498),INFO" ID="0x8c9e0f95" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="br gap get link mode, hdl=0x%x, mode=%d, ret=0x%x @bt_ahi_gap.c(507),INFO" ID="0x8c9e0fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mpc param null! @bt_ahi_gap.c(523),ERROR" ID="0x8c9e105a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mpc pkt_ptr is null! @bt_ahi_gap.c(528),ERROR" ID="0x8c9e1082" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[AHI]set br secure param secure=%d. @bt_ahi_gap.c(532),ERROR" ID="0x8c9e10a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mpc param null! @bt_ahi_gap.c(539),ERROR" ID="0x8c9e10da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mpc pkt_ptr is null! @bt_ahi_gap.c(544),ERROR" ID="0x8c9e1102" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[BTH][QOS]set bth flow limit max=%d high=%d low=%d. @bt_ahi_gap.c(552),ERROR" ID="0x8c9e1142" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memset failed @gap_ui.c(1251),ERROR" ID="0x8b5c271a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_ui.c(1255),ERROR" ID="0x8b5c273a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_ui.c(1259),ERROR" ID="0x8b5c275a" />
<MSG STRUCTURE="diag_log_msg1" NAME="%02x @bt_dft_bdi.c(957),WARNING" ID="0x8d0c1deb" />
<MSG STRUCTURE="diag_log_msg0" NAME="bt dft get bdi @bt_dft_bdi.c(964),INFO" ID="0x8d0c1e25" />
<MSG STRUCTURE="diag_log_msg0" NAME="bt dft get bdi err @bt_dft_bdi.c(966),INFO" ID="0x8d0c1e35" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[BTH][QOS]default flow limit max=%u line_high=%u line_low=%u @sdk_hlp.c(71),ERROR" ID="0x8b7a023a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]overflow ipc:%u fsm_tx:%u. @sdk_hlp.c(93),ERROR" ID="0x8b7a02ea" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]overflow hci_rx:%u hci_qos:%u. @sdk_hlp.c(94),ERROR" ID="0x8b7a02f2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]warning ipc:%u fsm_tx:%u. @sdk_hlp.c(106),ERROR" ID="0x8b7a0352" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]warning hci_rx:%u hci_qos:%u. @sdk_hlp.c(107),ERROR" ID="0x8b7a035a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]release ipc:%u fsm_tx:%u. @sdk_hlp.c(118),ERROR" ID="0x8b7a03b2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]release hci_rx:%u hci_qos:%u. @sdk_hlp.c(119),ERROR" ID="0x8b7a03ba" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[SDK][GAP] CTKD BR link key report, addr=0x%02x:**:**:**:0x%02x:0x%02x @sdk_hlp.c(895),WARNING" ID="0x8b7a1bfb" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[SDK][GAP] paired phone exist, dev_handle=0x%x @sdk_hlp.c(901),WARNING" ID="0x8b7a1c2b" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hlp_link_key_req_cbk no source addr:0x%x @sdk_hlp.c(996),INFO" ID="0x8b7a1f25" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hlp_connection_ev_cbk_dis_conn hdl:0x%x status:%d @sdk_hlp.c(2151),INFO" ID="0x8b7a433d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[SDK] connect event cbk connected: %d, reason: %d link_type:%d! @sdk_hlp.c(2173),ERROR" ID="0x8b7a43ea" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[SDK] connect event cbk cap:%d addr:%02x******%02x%02x @sdk_hlp.c(2188),ERROR" ID="0x8b7a4462" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[SDK] connect event cbk status:%d dev_hdl:0x%x @sdk_hlp.c(2191),ERROR" ID="0x8b7a447a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[BTH][QOS]default flow limit max=%u line_high=%u line_low=%u @sdk_hlp.c(75),ERROR" ID="0x8b7a025a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]overflow ipc:%u fsm_tx:%u. @sdk_hlp.c(104),ERROR" ID="0x8b7a0342" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]overflow hci_rx:%u hci_qos:%u. @sdk_hlp.c(105),ERROR" ID="0x8b7a034a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]warning ipc:%u fsm_tx:%u. @sdk_hlp.c(117),ERROR" ID="0x8b7a03aa" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]warning hci_rx:%u hci_qos:%u. @sdk_hlp.c(118),ERROR" ID="0x8b7a03b2" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]release ipc:%u fsm_tx:%u. @sdk_hlp.c(129),ERROR" ID="0x8b7a040a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]release hci_rx:%u hci_qos:%u. @sdk_hlp.c(130),ERROR" ID="0x8b7a0412" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[SDK][GAP] CTKD BR link key report, addr=0x%02x:**:**:**:0x%02x:0x%02x @sdk_hlp.c(906),WARNING" ID="0x8b7a1c53" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[SDK][GAP] paired phone exist, dev_handle=0x%x @sdk_hlp.c(912),WARNING" ID="0x8b7a1c83" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hlp_link_key_req_cbk no source addr:0x%x @sdk_hlp.c(1007),INFO" ID="0x8b7a1f7d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hlp_connection_ev_cbk_dis_conn hdl:0x%x status:%d @sdk_hlp.c(2162),INFO" ID="0x8b7a4395" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[SDK] connect event cbk connected: %d, reason: %d link_type:%d! @sdk_hlp.c(2184),ERROR" ID="0x8b7a4442" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[SDK] connect event cbk cap:%d addr:%02x******%02x%02x @sdk_hlp.c(2199),ERROR" ID="0x8b7a44ba" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[SDK] connect event cbk status:%d dev_hdl:0x%x @sdk_hlp.c(2202),ERROR" ID="0x8b7a44d2" />
<MSG STRUCTURE="diag_log_msg0" NAME="gdk message post, failed retry later. @gdk_msg.c(46),ERROR" ID="0x8cb40172" />
<MSG STRUCTURE="diag_log_msg0" NAME="gdk message timer cback @gdk_msg.c(74),DBG" ID="0x8cb40256" />
<MSG STRUCTURE="diag_log_msg2" NAME="gdk message add itor_msgid:0x%x, itor_ts:0x%lld @gdk_msg.c(107),DBG" ID="0x8cb4035e" />
-<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="stack gap set discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(84),INFO" ID="0x8c9e02a5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap get discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(98),INFO" ID="0x8c9e0315" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap stop discovery result = 0x%x, mode = 0x%x @bt_ahi_gap.c(108),INFO" ID="0x8c9e0365" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl result = 0x%x, dev_hdl = 0x%x, link type = %d @bt_ahi_gap.c(122),INFO" ID="0x8c9e03d5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(135),ERROR" ID="0x8c9e043a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl cfm cbk result = 0x%x, acl_hdl = 0x%x, link type = %d @bt_ahi_gap.c(140),INFO" ID="0x8c9e0465" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap create acla result = 0x%x @bt_ahi_gap.c(149),INFO" ID="0x8c9e04ad" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap reconnect phone result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(160),INFO" ID="0x8c9e0505" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap get rmt dev handle result = 0x%x @bt_ahi_gap.c(172),INFO" ID="0x8c9e0565" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap device is connected result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(184),INFO" ID="0x8c9e05c5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk disconnect acl by handle result = 0x%x @bt_ahi_gap.c(195),INFO" ID="0x8c9e061d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap pair device result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(207),INFO" ID="0x8c9e067d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap add rmt device rsp.result = %x @bt_ahi_gap.c(224),INFO" ID="0x8c9e0705" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap update rmt device name result = 0x%x, name = %s @bt_ahi_gap.c(244),INFO" ID="0x8c9e07a5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(258),ERROR" ID="0x8c9e0812" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap update rmt device name cfm cbk result = 0x%x, opindex = 0x%x, size = %d @bt_ahi_gap.c(266),INFO" ID="0x8c9e0855" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap update rmt device name async result = 0x%x @bt_ahi_gap.c(276),INFO" ID="0x8c9e08a5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap get local name result = 0x%x, length = %d, name = %s @bt_ahi_gap.c(312),INFO" ID="0x8c9e09c5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="stack gap get rmt dev addr result = 0x%x, addr[%02x:**:**:**:%02x:%02x] @bt_ahi_gap.c(337),INFO" ID="0x8c9e0a8d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap browse rmt service overflow, max_count = %d, svc_count = %d @bt_ahi_gap.c(359),ERROR" ID="0x8c9e0b3a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap browse rmt service result = 0x%x, svc_count = %d, svc_hdl[0] = 0x%x @bt_ahi_gap.c(365),INFO" ID="0x8c9e0b6d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp enable sco:scohdl=0x%x inid=0x%x outid=0x%x @bt_ahi_gap.c(386),INFO" ID="0x8c9e0c15" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hfp disable sco:scohdl=0x%x @bt_ahi_gap.c(390),INFO" ID="0x8c9e0c35" />
- <MSG STRUCTURE="diag_log_msg3" NAME="result = 0x%x, handle = 0x%x, service_class = %02x @bt_ahi_gap.c(423),ERROR" ID="0x8c9e0d3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap init, res = 0x%x @bt_ahi_gap.c(435),INFO" ID="0x8c9e0d9d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="set bt tx power, hdl=0x%x, power=%d, ret=0x%x @bt_ahi_gap.c(448),INFO" ID="0x8c9e0e05" />
- <MSG STRUCTURE="diag_log_msg3" NAME="br gap read rssi, hdl=0x%x, rssi=%d, ret=0x%x @bt_ahi_gap.c(456),INFO" ID="0x8c9e0e45" />
- <MSG STRUCTURE="diag_log_msg4" NAME="set active scene scene = %d, bitrate = %d, delay = %d, ret=0x%x @bt_ahi_gap.c(472),INFO" ID="0x8c9e0ec5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="set inquiry scan param interval = %d, window = %d @bt_ahi_gap.c(480),INFO" ID="0x8c9e0f05" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(491),ERROR" ID="0x8c9e0f5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap restore rmt device rsp.result = %x @bt_ahi_gap.c(495),INFO" ID="0x8c9e0f7d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="br gap get link mode, hdl=0x%x, mode=%d, ret=0x%x @bt_ahi_gap.c(504),INFO" ID="0x8c9e0fc5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mpc param null! @bt_ahi_gap.c(520),ERROR" ID="0x8c9e1042" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mpc pkt_ptr is null! @bt_ahi_gap.c(525),ERROR" ID="0x8c9e106a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[AHI]set br secure param secure=%d. @bt_ahi_gap.c(529),ERROR" ID="0x8c9e108a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="stack gap set discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(87),INFO" ID="0x8c9e02bd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap get discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(101),INFO" ID="0x8c9e032d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap stop discovery result = 0x%x, mode = 0x%x @bt_ahi_gap.c(111),INFO" ID="0x8c9e037d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl result = 0x%x, dev_hdl = 0x%x, link type = %d @bt_ahi_gap.c(125),INFO" ID="0x8c9e03ed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(138),ERROR" ID="0x8c9e0452" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl cfm cbk result = 0x%x, acl_hdl = 0x%x, link type = %d @bt_ahi_gap.c(143),INFO" ID="0x8c9e047d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap create acla result = 0x%x @bt_ahi_gap.c(152),INFO" ID="0x8c9e04c5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap reconnect phone result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(163),INFO" ID="0x8c9e051d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap get rmt dev handle result = 0x%x @bt_ahi_gap.c(175),INFO" ID="0x8c9e057d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap device is connected result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(187),INFO" ID="0x8c9e05dd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk disconnect acl by handle result = 0x%x @bt_ahi_gap.c(198),INFO" ID="0x8c9e0635" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap pair device result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(210),INFO" ID="0x8c9e0695" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap add rmt device rsp.result = %x @bt_ahi_gap.c(227),INFO" ID="0x8c9e071d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap update rmt device name result = 0x%x, name = %s @bt_ahi_gap.c(247),INFO" ID="0x8c9e07bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(261),ERROR" ID="0x8c9e082a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap update rmt device name cfm cbk result = 0x%x, opindex = 0x%x, size = %d @bt_ahi_gap.c(269),INFO" ID="0x8c9e086d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap update rmt device name async result = 0x%x @bt_ahi_gap.c(279),INFO" ID="0x8c9e08bd" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap get local name result = 0x%x, length = %d, name = %s @bt_ahi_gap.c(315),INFO" ID="0x8c9e09dd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="stack gap get rmt dev addr result = 0x%x, addr[%02x:**:**:**:%02x:%02x] @bt_ahi_gap.c(340),INFO" ID="0x8c9e0aa5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap browse rmt service overflow, max_count = %d, svc_count = %d @bt_ahi_gap.c(362),ERROR" ID="0x8c9e0b52" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap browse rmt service result = 0x%x, svc_count = %d, svc_hdl[0] = 0x%x @bt_ahi_gap.c(368),INFO" ID="0x8c9e0b85" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp enable sco:scohdl=0x%x inid=0x%x outid=0x%x @bt_ahi_gap.c(389),INFO" ID="0x8c9e0c2d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hfp disable sco:scohdl=0x%x @bt_ahi_gap.c(393),INFO" ID="0x8c9e0c4d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="result = 0x%x, handle = 0x%x, service_class = %02x @bt_ahi_gap.c(426),ERROR" ID="0x8c9e0d52" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap init, res = 0x%x @bt_ahi_gap.c(438),INFO" ID="0x8c9e0db5" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="set bt tx power, hdl=0x%x, power=%d, ret=0x%x @bt_ahi_gap.c(451),INFO" ID="0x8c9e0e1d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="br gap read rssi, hdl=0x%x, rssi=%d, ret=0x%x @bt_ahi_gap.c(459),INFO" ID="0x8c9e0e5d" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="set active scene scene = %d, bitrate = %d, delay = %d, ret=0x%x @bt_ahi_gap.c(475),INFO" ID="0x8c9e0edd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="set inquiry scan param interval = %d, window = %d @bt_ahi_gap.c(483),INFO" ID="0x8c9e0f1d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(494),ERROR" ID="0x8c9e0f72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap restore rmt device rsp.result = %x @bt_ahi_gap.c(498),INFO" ID="0x8c9e0f95" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="br gap get link mode, hdl=0x%x, mode=%d, ret=0x%x @bt_ahi_gap.c(507),INFO" ID="0x8c9e0fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mpc param null! @bt_ahi_gap.c(523),ERROR" ID="0x8c9e105a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mpc pkt_ptr is null! @bt_ahi_gap.c(528),ERROR" ID="0x8c9e1082" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[AHI]set br secure param secure=%d. @bt_ahi_gap.c(532),ERROR" ID="0x8c9e10a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mpc param null! @bt_ahi_gap.c(539),ERROR" ID="0x8c9e10da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mpc pkt_ptr is null! @bt_ahi_gap.c(544),ERROR" ID="0x8c9e1102" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[BTH][QOS]set bth flow limit max=%d high=%d low=%d. @bt_ahi_gap.c(552),ERROR" ID="0x8c9e1142" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list fail: %d @bt_mpc_adpt_gap.c(52),ERROR" ID="0x8dd401a2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list params err! len = %d @bt_mpc_adpt_gap.c(56),ERROR" ID="0x8dd401c2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble remove all ble white list fail: %d @bt_mpc_adpt_gap.c(71),ERROR" ID="0x8dd4023a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble remove ble white list fail: %d @bt_mpc_adpt_gap.c(78),ERROR" ID="0x8dd40272" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble remove ble white list params err! len = %d @bt_mpc_adpt_gap.c(82),ERROR" ID="0x8dd40292" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set global value: %d @bt_mpc_adpt_gap.c(96),ERROR" ID="0x8dd40302" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set global value err! len = %d @bt_mpc_adpt_gap.c(99),ERROR" ID="0x8dd4031a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connection params update: %d @bt_mpc_adpt_gap.c(115),ERROR" ID="0x8dd4039a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connection params update err! len = %d @bt_mpc_adpt_gap.c(119),ERROR" ID="0x8dd403ba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc get local appearance: ret = %d @bt_mpc_adpt_gap.c(131),ERROR" ID="0x8dd4041a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set local appearance: %d @bt_mpc_adpt_gap.c(146),ERROR" ID="0x8dd40492" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set local appearance err! len = %d @bt_mpc_adpt_gap.c(150),ERROR" ID="0x8dd404b2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period advertising: %d @bt_mpc_adpt_gap.c(166),ERROR" ID="0x8dd40532" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period advertising err! len = %d @bt_mpc_adpt_gap.c(170),ERROR" ID="0x8dd40552" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis period advertising: %d @bt_mpc_adpt_gap.c(187),ERROR" ID="0x8dd405da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis period advertising err! len = %d @bt_mpc_adpt_gap.c(191),ERROR" ID="0x8dd405fa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period adv list: %d @bt_mpc_adpt_gap.c(209),ERROR" ID="0x8dd4068a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period adv list err! len = %d @bt_mpc_adpt_gap.c(213),ERROR" ID="0x8dd406aa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv create sync: %d @bt_mpc_adpt_gap.c(230),ERROR" ID="0x8dd40732" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv create sync err! len = %d @bt_mpc_adpt_gap.c(234),ERROR" ID="0x8dd40752" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv terminate sync: %d @bt_mpc_adpt_gap.c(251),ERROR" ID="0x8dd407da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv terminate sync err! len = %d @bt_mpc_adpt_gap.c(255),ERROR" ID="0x8dd407fa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern adv: %d @bt_mpc_adpt_gap.c(273),ERROR" ID="0x8dd4088a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern adv err! len = %d @bt_mpc_adpt_gap.c(277),ERROR" ID="0x8dd408aa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern adv: %d @bt_mpc_adpt_gap.c(300),ERROR" ID="0x8dd40962" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern adv err! len = %d @bt_mpc_adpt_gap.c(304),ERROR" ID="0x8dd40982" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv: %d @bt_mpc_adpt_gap.c(323),ERROR" ID="0x8dd40a1a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv err! len = %d @bt_mpc_adpt_gap.c(327),ERROR" ID="0x8dd40a3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern scan: %d @bt_mpc_adpt_gap.c(342),ERROR" ID="0x8dd40ab2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set len: %d @bt_mpc_adpt_gap.c(356),ERROR" ID="0x8dd40b22" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set len len err! len = %d @bt_mpc_adpt_gap.c(359),ERROR" ID="0x8dd40b3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set phy: %d @bt_mpc_adpt_gap.c(372),ERROR" ID="0x8dd40ba2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set phy len err! len = %d @bt_mpc_adpt_gap.c(375),ERROR" ID="0x8dd40bba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern scan: %d @bt_mpc_adpt_gap.c(390),ERROR" ID="0x8dd40c32" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv err! len = %d @bt_mpc_adpt_gap.c(394),ERROR" ID="0x8dd40c52" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set resolve addr: %d @bt_mpc_adpt_gap.c(410),ERROR" ID="0x8dd40cd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set resolve addr err! len = %d @bt_mpc_adpt_gap.c(414),ERROR" ID="0x8dd40cf2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc get white list: %d @bt_mpc_adpt_gap.c(432),ERROR" ID="0x8dd40d82" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[CONN]ble core:AppConnectBleWhiteList @bt_mpc_adpt_gap.c(443),INFO" ID="0x8dd40ddd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connect white list fail ret=%d @bt_mpc_adpt_gap.c(447),ERROR" ID="0x8dd40dfa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc passkey response: %d @bt_mpc_adpt_gap.c(460),ERROR" ID="0x8dd40e62" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc passkey response err! len = %d @bt_mpc_adpt_gap.c(463),ERROR" ID="0x8dd40e7a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set connect param: %d @bt_mpc_adpt_gap.c(491),ERROR" ID="0x8dd40f5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set connect param err! len = %d @bt_mpc_adpt_gap.c(494),ERROR" ID="0x8dd40f72" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set hci le event mask: %d @bt_mpc_adpt_gap.c(505),ERROR" ID="0x8dd40fca" />
- <MSG STRUCTURE="diag_log_msg2" NAME="bt mpc set hci le event mask error! len = %d, stru_len: %d @bt_mpc_adpt_gap.c(509),ERROR" ID="0x8dd40fea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi: %d @bt_mpc_adpt_gap.c(522),ERROR" ID="0x8dd41052" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi err! len = %d @bt_mpc_adpt_gap.c(525),ERROR" ID="0x8dd4106a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list fail: %d @bt_mpc_adpt_gap.c(53),ERROR" ID="0x8dd401aa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list params err! len = %d @bt_mpc_adpt_gap.c(57),ERROR" ID="0x8dd401ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble remove all ble white list fail: %d @bt_mpc_adpt_gap.c(72),ERROR" ID="0x8dd40242" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble remove ble white list fail: %d @bt_mpc_adpt_gap.c(79),ERROR" ID="0x8dd4027a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble remove ble white list params err! len = %d @bt_mpc_adpt_gap.c(83),ERROR" ID="0x8dd4029a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set global value: %d @bt_mpc_adpt_gap.c(98),ERROR" ID="0x8dd40312" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set global value err! len = %d @bt_mpc_adpt_gap.c(101),ERROR" ID="0x8dd4032a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connection params update: %d @bt_mpc_adpt_gap.c(117),ERROR" ID="0x8dd403aa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connection params update err! len = %d @bt_mpc_adpt_gap.c(121),ERROR" ID="0x8dd403ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc get local appearance: ret = %d @bt_mpc_adpt_gap.c(133),ERROR" ID="0x8dd4042a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set local appearance: %d @bt_mpc_adpt_gap.c(148),ERROR" ID="0x8dd404a2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set local appearance err! len = %d @bt_mpc_adpt_gap.c(152),ERROR" ID="0x8dd404c2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period advertising: %d @bt_mpc_adpt_gap.c(168),ERROR" ID="0x8dd40542" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period advertising err! len = %d @bt_mpc_adpt_gap.c(172),ERROR" ID="0x8dd40562" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis period advertising: %d @bt_mpc_adpt_gap.c(189),ERROR" ID="0x8dd405ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis period advertising err! len = %d @bt_mpc_adpt_gap.c(193),ERROR" ID="0x8dd4060a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period adv list: %d @bt_mpc_adpt_gap.c(211),ERROR" ID="0x8dd4069a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set period adv list err! len = %d @bt_mpc_adpt_gap.c(215),ERROR" ID="0x8dd406ba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv create sync: %d @bt_mpc_adpt_gap.c(232),ERROR" ID="0x8dd40742" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv create sync err! len = %d @bt_mpc_adpt_gap.c(236),ERROR" ID="0x8dd40762" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv terminate sync: %d @bt_mpc_adpt_gap.c(253),ERROR" ID="0x8dd407ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc period adv terminate sync err! len = %d @bt_mpc_adpt_gap.c(257),ERROR" ID="0x8dd4080a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern adv: %d @bt_mpc_adpt_gap.c(275),ERROR" ID="0x8dd4089a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern adv err! len = %d @bt_mpc_adpt_gap.c(279),ERROR" ID="0x8dd408ba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern adv: %d @bt_mpc_adpt_gap.c(302),ERROR" ID="0x8dd40972" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern adv err! len = %d @bt_mpc_adpt_gap.c(306),ERROR" ID="0x8dd40992" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv: %d @bt_mpc_adpt_gap.c(325),ERROR" ID="0x8dd40a2a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv err! len = %d @bt_mpc_adpt_gap.c(329),ERROR" ID="0x8dd40a4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc dis extern scan: %d @bt_mpc_adpt_gap.c(344),ERROR" ID="0x8dd40ac2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set len: %d @bt_mpc_adpt_gap.c(358),ERROR" ID="0x8dd40b32" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set len len err! len = %d @bt_mpc_adpt_gap.c(361),ERROR" ID="0x8dd40b4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set phy: %d @bt_mpc_adpt_gap.c(374),ERROR" ID="0x8dd40bb2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set phy len err! len = %d @bt_mpc_adpt_gap.c(377),ERROR" ID="0x8dd40bca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set extern scan: %d @bt_mpc_adpt_gap.c(392),ERROR" ID="0x8dd40c42" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc remove extern adv err! len = %d @bt_mpc_adpt_gap.c(396),ERROR" ID="0x8dd40c62" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set resolve addr: %d @bt_mpc_adpt_gap.c(412),ERROR" ID="0x8dd40ce2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set resolve addr err! len = %d @bt_mpc_adpt_gap.c(416),ERROR" ID="0x8dd40d02" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc get white list: %d @bt_mpc_adpt_gap.c(434),ERROR" ID="0x8dd40d92" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[CONN]ble core:AppConnectBleWhiteList @bt_mpc_adpt_gap.c(445),INFO" ID="0x8dd40ded" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc connect white list fail ret=%d @bt_mpc_adpt_gap.c(449),ERROR" ID="0x8dd40e0a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc passkey response: %d @bt_mpc_adpt_gap.c(462),ERROR" ID="0x8dd40e72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc passkey response err! len = %d @bt_mpc_adpt_gap.c(465),ERROR" ID="0x8dd40e8a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set connect param: %d @bt_mpc_adpt_gap.c(493),ERROR" ID="0x8dd40f6a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set connect param err! len = %d @bt_mpc_adpt_gap.c(496),ERROR" ID="0x8dd40f82" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc set hci le event mask: %d @bt_mpc_adpt_gap.c(507),ERROR" ID="0x8dd40fda" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="bt mpc set hci le event mask error! len = %d, stru_len: %d @bt_mpc_adpt_gap.c(511),ERROR" ID="0x8dd40ffa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi: %d @bt_mpc_adpt_gap.c(524),ERROR" ID="0x8dd41062" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi err! len = %d @bt_mpc_adpt_gap.c(527),ERROR" ID="0x8dd4107a" />
</MSG_LOG>
\ No newline at end of file
<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="smp_pair_new_patch @patch_bth.c(52),INFO" ID="0x8d5401a5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[AVDTP][GET_SEP_FAIL] Can not get sep info @patch_bth.c(156),WARNING" ID="0x8d5404e3" />
<MSG STRUCTURE="diag_log_msg0" NAME="[STACK][RECV_RING_STOP] @patch_bth.c(244),INFO" ID="0x8d5407a5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] att error rsp opcode:0x%x handle:%d error:0x%x @patch_bth.c(324),ERROR" ID="0x8d540a22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SMP]PAIRING_REQ_RECV @patch_bth.c(503),ERROR" ID="0x8d540fba" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] att error rsp opcode:0x%x handle:%d error:0x%x @patch_bth.c(327),ERROR" ID="0x8d540a3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP]PAIRING_REQ_RECV @patch_bth.c(506),ERROR" ID="0x8d540fd2" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="a2dp_audio: rpt stream state stream_hdl %p state %d src %d @sdk_av.c(813),ERROR" ID="0x8b86196a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="a2dp_audio: rpt stream state stream_hdl %p state %d src %d @sdk_av.c(817),ERROR" ID="0x8b86198a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[BTH][QOS]default flow limit max=%u line_high=%u line_low=%u @sdk_hlp.c(71),ERROR" ID="0x8b7a023a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]overflow ipc:%u fsm_tx:%u. @sdk_hlp.c(93),ERROR" ID="0x8b7a02ea" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]overflow hci_rx:%u hci_qos:%u. @sdk_hlp.c(94),ERROR" ID="0x8b7a02f2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]warning ipc:%u fsm_tx:%u. @sdk_hlp.c(106),ERROR" ID="0x8b7a0352" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]warning hci_rx:%u hci_qos:%u. @sdk_hlp.c(107),ERROR" ID="0x8b7a035a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]release ipc:%u fsm_tx:%u. @sdk_hlp.c(118),ERROR" ID="0x8b7a03b2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]release hci_rx:%u hci_qos:%u. @sdk_hlp.c(119),ERROR" ID="0x8b7a03ba" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[SDK][GAP] CTKD BR link key report, addr=0x%02x:**:**:**:0x%02x:0x%02x @sdk_hlp.c(895),WARNING" ID="0x8b7a1bfb" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[SDK][GAP] paired phone exist, dev_handle=0x%x @sdk_hlp.c(901),WARNING" ID="0x8b7a1c2b" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hlp_link_key_req_cbk no source addr:0x%x @sdk_hlp.c(996),INFO" ID="0x8b7a1f25" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hlp_connection_ev_cbk_dis_conn hdl:0x%x status:%d @sdk_hlp.c(2151),INFO" ID="0x8b7a433d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[SDK] connect event cbk connected: %d, reason: %d link_type:%d! @sdk_hlp.c(2173),ERROR" ID="0x8b7a43ea" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[SDK] connect event cbk cap:%d addr:%02x******%02x%02x @sdk_hlp.c(2188),ERROR" ID="0x8b7a4462" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[SDK] connect event cbk status:%d dev_hdl:0x%x @sdk_hlp.c(2191),ERROR" ID="0x8b7a447a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[BTH][QOS]default flow limit max=%u line_high=%u line_low=%u @sdk_hlp.c(75),ERROR" ID="0x8b7a025a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]overflow ipc:%u fsm_tx:%u. @sdk_hlp.c(104),ERROR" ID="0x8b7a0342" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]overflow hci_rx:%u hci_qos:%u. @sdk_hlp.c(105),ERROR" ID="0x8b7a034a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]warning ipc:%u fsm_tx:%u. @sdk_hlp.c(117),ERROR" ID="0x8b7a03aa" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]warning hci_rx:%u hci_qos:%u. @sdk_hlp.c(118),ERROR" ID="0x8b7a03b2" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]release ipc:%u fsm_tx:%u. @sdk_hlp.c(129),ERROR" ID="0x8b7a040a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[BTH][QOS]release hci_rx:%u hci_qos:%u. @sdk_hlp.c(130),ERROR" ID="0x8b7a0412" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[SDK][GAP] CTKD BR link key report, addr=0x%02x:**:**:**:0x%02x:0x%02x @sdk_hlp.c(906),WARNING" ID="0x8b7a1c53" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[SDK][GAP] paired phone exist, dev_handle=0x%x @sdk_hlp.c(912),WARNING" ID="0x8b7a1c83" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hlp_link_key_req_cbk no source addr:0x%x @sdk_hlp.c(1007),INFO" ID="0x8b7a1f7d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hlp_connection_ev_cbk_dis_conn hdl:0x%x status:%d @sdk_hlp.c(2162),INFO" ID="0x8b7a4395" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[SDK] connect event cbk connected: %d, reason: %d link_type:%d! @sdk_hlp.c(2184),ERROR" ID="0x8b7a4442" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[SDK] connect event cbk cap:%d addr:%02x******%02x%02x @sdk_hlp.c(2199),ERROR" ID="0x8b7a44ba" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[SDK] connect event cbk status:%d dev_hdl:0x%x @sdk_hlp.c(2202),ERROR" ID="0x8b7a44d2" />
</MSG_LOG>
\ No newline at end of file
\r
set(PRIVATE_DEFINES\r
CONFIG_VG_RUN_LINUX\r
+ CONFIG_VAU_DFX_ERROR\r
)\r
\r
# use this when you want to add ccflags like -include xxx\r
#define UI_CARD_SWIPE_H
#include "components/ui_card_page.h"
#include "components/ui_image_view.h"
+#include "components/ui_view_group.h"
namespace OHOS {
class CardSwipe : public HeapBase {
* @since 1.0
* @version 1.0
*/
- virtual void CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset) {}
+ virtual void CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset)
+ {
+ if (!IsStarted()) {
+ StartEffect();
+ }
+ }
/* *
* @brief Swipe algorithm when drag card.
* @since 1.0
* @version 1.0
*/
- virtual void CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset) {}
+ virtual void CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset)
+ {
+ if (!IsStarted()) {
+ StartEffect();
+ }
+ }
+
+ /* *
+ * @brief Begin card swipe effect
+ * @since 1.0
+ * @version 1.0
+ */
+ virtual void StartEffect()
+ {
+ isStarted_ = true;
+ };
+
+ /* *
+ * @brief End card swipe effect
+ * @since 1.0
+ * @version 1.0
+ */
+ virtual void StopEffect()
+ {
+ isStarted_ = false;
+ };
+
+ /* *
+ * @brief Return whether swipe effect is started.
+ * @since 1.0
+ * @version 1.0
+ */
+ bool IsStarted()
+ {
+ return isStarted_;
+ }
+
+ /* *
+ * @brief Set container view (UICrossView) which is used to produce effect.
+ * @since 1.0
+ * @version 1.0
+ */
+ void SetContainer(UIViewGroup* view)
+ {
+ container_ = view;
+ }
+
+ /* *
+ * @brief Enable clipping card page into a circle.
+ * @since 1.0
+ * @version 1.0
+ */
+ void EnableClip(bool enable)
+ {
+ isNeedClip_ = enable;
+ }
bool isNeedClip_ = false;
+
+protected:
+ UIViewGroup* container_ = nullptr;
+
+private:
+ bool isStarted_ = false;
};
}
#endif
}
private:
+ using UIViewGroup::Remove;
uint16_t blurRadius_ = 10;
void UpdateCardPageIndex();
static constexpr uint16_t INVALID_VIEW_INDEX = 0xff;
UISwipeView::OnSwipeListener *swipeListener_ = nullptr;
bool isNeedClip_ = false;
std::shared_ptr<bool> exists_;
+ bool waitProcessRes_ = false;
void RemoveAllInner(UISwipeView& view);
void ProcessRes(void);
private:\r
void ReMeasure() override;\r
void DeleteMirrorView();\r
- TransformMap labelTextTransMap_;\r
};\r
} // namespace OHOS\r
#endif // GRAPHIC_UI_TRANSFORM_GROUP_H
\ No newline at end of file
void UIMenuItem::SetScaleCenter()\r
{\r
int16_t itemOrigX = GetContentRect().GetX();\r
+ int16_t itemOrigY = GetContentRect().GetY();\r
if (transAlignMode_ == ScaleAlignMode::ALIGN_TEXT_LEFT) {\r
textScaleCenter_ = Vector2<float>{0.0, textOrigRect_.GetHeight() / 2.0f};\r
- imgScaleCenter_ = Vector2<float>{textOrigRect_.GetLeft() - imgOrigRect_.GetLeft(), textScaleCenter_.y_};\r
- itemScaleCenter_ = Vector2<float>{textOrigRect_.GetLeft() - itemOrigX, textScaleCenter_.y_};\r
+ imgScaleCenter_ = Vector2<float>{textOrigRect_.GetLeft() - imgOrigRect_.GetLeft(),\r
+ textOrigRect_.GetTop() + textScaleCenter_.y_ - imgOrigRect_.GetTop()};\r
+ itemScaleCenter_ = Vector2<float>{textOrigRect_.GetLeft() - itemOrigX,\r
+ textOrigRect_.GetTop() + textScaleCenter_.y_ - itemOrigY};\r
} else if (transAlignMode_ == ScaleAlignMode::ALIGN_IMAGE_LEFT) {\r
imgScaleCenter_ = Vector2<float>{0.0, imgOrigRect_.GetHeight() / 2.0f};\r
- textScaleCenter_ = Vector2<float>{imgOrigRect_.GetLeft() - textOrigRect_.GetLeft(), imgScaleCenter_.y_};\r
- itemScaleCenter_ = Vector2<float>{imgOrigRect_.GetLeft() - itemOrigX, imgScaleCenter_.y_};\r
+ textScaleCenter_ = Vector2<float>{imgOrigRect_.GetLeft() - textOrigRect_.GetLeft(),\r
+ imgOrigRect_.GetTop() + imgScaleCenter_.y_ - textOrigRect_.GetTop()};\r
+ itemScaleCenter_ = Vector2<float>{imgOrigRect_.GetLeft() - itemOrigX,\r
+ imgOrigRect_.GetTop() + imgScaleCenter_.y_ - itemOrigY};\r
} else if (transAlignMode_ == ScaleAlignMode::ALIGN_ITEM_CENTER) {\r
itemScaleCenter_ = Vector2<float>{GetWidth() / 2.0f, GetHeight() / 2.0f};\r
textScaleCenter_ = Vector2<float>{itemOrigX + itemScaleCenter_.x_ - textOrigRect_.GetLeft(),\r
- itemScaleCenter_.y_};\r
+ itemOrigY + itemScaleCenter_.y_ - textOrigRect_.GetTop()};\r
imgScaleCenter_ = Vector2<float>{itemOrigX + itemScaleCenter_.x_ - imgOrigRect_.GetLeft(),\r
- itemScaleCenter_.y_};\r
+ itemOrigY + itemScaleCenter_.y_ - imgOrigRect_.GetTop()};\r
}\r
}\r
\r
if (label_ != nullptr) {\r
transMap.SetTransMapRect(textOrigRect_);\r
transMap.Scale(transMap.GetScaleCoef(), Vector3<float>{textScaleCenter_.x_, textScaleCenter_.y_, 0.0});\r
- label_->SetTextTransformMap(transMap);\r
+ label_->SetTransformMap(transMap);\r
}\r
}\r
\r
swipeCallback_ = callback;
}
+ /* *
+ * @brief Return swipe callback.
+ * @since 1.0
+ * @version 1.0
+ */
+ CardSwipe* GetSwipeCallback()
+ {
+ return swipeCallback_;
+ }
+
/* *
* @brief Set the start point for drag.
* @since 1.0
static constexpr int16_t CAMERA_DISTANCE = 600;
static constexpr int16_t EASE_RANGE = 100;
-void CardFlipEffect::OnSwipe(UISwipeView& view)
+void CardFlipEffect::StopEffect()
{
if (preLeftCard != nullptr) {
preLeftCard->SetVisible(true);
visibleCard_ = nullptr;
container_->UIViewGroup::Remove(&img_);
}
+
+ CardSwipe::StopEffect();
}
void CardFlipEffect::CommonAlg(UIView* leftCard, UIView* rightCard, int16_t xOffset)
void CardFlipEffect::CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset)
{
+ CardSwipe::CardSwipeAlg(leftCard, rightCard, xOffset);
CommonAlg(leftCard, rightCard, xOffset);
}
void CardFlipEffect::CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset)
{
+ CardSwipe::CardSwipeAlg(leftCard, rightCard, xOffset);
CommonAlg(leftCard, rightCard, xOffset);
}
}
#include "components/ui_cross_view.h"
namespace OHOS {
-class CardFlipEffect : public CardSwipe, public UISwipeView::OnSwipeListener {
+class CardFlipEffect : public CardSwipe {
public:
CardFlipEffect(void) {}
~CardFlipEffect() override {}
void CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset) override;
void CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset) override;
- void OnSwipe(UISwipeView& view) override;
- void SetContainer(UICrossView* view)
- {
- container_ = view;
- }
+ void StopEffect() override;
private:
UIImageView img_;
UIView* visibleCard_ = nullptr;
UIView* preLeftCard = nullptr;
UIView* preRightCard = nullptr;
- UICrossView* container_ = nullptr;
void CommonAlg(UIView* leftCard, UIView* rightCard, int16_t xOffset);
};
static constexpr int16_t ROTATE_RANGE_MAX = 90;
}
-void CubeEffect::OnSwipe(UISwipeView& view)
+void CubeEffect::StopEffect()
{
if (preLeftCard != nullptr) {
preLeftCard->ResetTransParameter();
container_->UIViewGroup::Remove(&rightImg_);
rightImg_.ResetTransParameter();
}
+
+ CardSwipe::StopEffect();
}
void CubeEffect::TransformCard(UIView* leftCard, UIView* rightCard, int16_t xOffset)
void CubeEffect::CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset)
{
+ CardSwipe::CardSwipeAlg(leftCard, rightCard, xOffset);
CommonAlg(leftCard, rightCard, xOffset);
}
void CubeEffect::CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset)
{
+ CardSwipe::CardSwipeAlg(leftCard, rightCard, xOffset);
CommonAlg(leftCard, rightCard, xOffset);
}
}
#include "components/ui_cross_view.h"
namespace OHOS {
-class CubeEffect : public CardSwipe, public UISwipeView::OnSwipeListener {
+class CubeEffect : public CardSwipe {
public:
CubeEffect(void) {}
~CubeEffect() override {}
void CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset) override;
void CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset) override;
- void OnSwipe(UISwipeView& view) override;
-
- void SetContainer(UICrossView* view)
- {
- container_ = view;
- }
+ void StopEffect() override;
private:
UIImageView leftImg_;
UIImageView rightImg_;
UIView* preLeftCard = nullptr;
UIView* preRightCard = nullptr;
- UICrossView* container_ = nullptr;
void CommonAlg(UIView* leftCard, UIView* rightCard, int16_t xOffset);
void TransformCard(UIView* leftCard, UIView* rightCard, int16_t xOffset);
#include "imgdecode/image_load.h"
namespace OHOS {
-void TurnPageEffect::OnSwipe(UISwipeView& view)
+void TurnPageEffect::StopEffect()
{
if (preLeftCard != nullptr) {
RemoveFromContainer();
FreeInfo();
}
+
+ CardSwipe::StopEffect();
}
void TurnPageEffect::CommonAlg(UIView* leftCard, UIView* rightCard, int16_t xOffset)
void TurnPageEffect::CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset)
{
+ CardSwipe::CardSwipeAlg(leftCard, rightCard, xOffset);
CommonAlg(leftCard, rightCard, xOffset);
}
void TurnPageEffect::CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset)
{
+ CardSwipe::CardSwipeAlg(leftCard, rightCard, xOffset);
CommonAlg(leftCard, rightCard, xOffset);
}
#include "components/ui_cross_view.h"
namespace OHOS {
-class TurnPageEffect : public CardSwipe, public UISwipeView::OnSwipeListener {
+class TurnPageEffect : public CardSwipe {
public:
TurnPageEffect(void)
{
}
void CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset) override;
void CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset) override;
- void OnSwipe(UISwipeView& view) override;
- void SetContainer(UICrossView* view)
- {
- container_ = view;
- }
+ void StopEffect() override;
private:
TurnPageView turnPageView_;
bool added_ = false;
UIView* preLeftCard = nullptr;
UIView* preRightCard = nullptr;
- UICrossView* container_ = nullptr;
ImageInfo *leftInfo_ = nullptr;
ImageInfo *rightInfo_ = nullptr;
bool lastPage_ = false; // false for left, true for right
opt.opacity = opa;
src.rect = transform.GetTransMapRect();
- opt.transMap.SetMatrix(transform.GetTransformMatrix());
+ Matrix4<float> matrix = transform.GetTransformMatrix();
+ opt.transMap.SetMatrix(matrix);
+ // adjust src rect using dstRect for only translate matrix
+ if (FloatEqual(matrix[0][0], 1.0f) && FloatEqual(matrix[0][1], 0.0f) &&
+ FloatEqual(matrix[0][3], 0.0f) && FloatEqual(matrix[1][0], 0.0f) && // 3: index
+ FloatEqual(matrix[1][1], 1.0f) && FloatEqual(matrix[1][3], 0.0f) && // 3: index
+ FloatEqual(matrix[3][3], 1.0f)) { // 3: index
+ src.rect.SetWidth(dstRect.GetWidth());
+ src.rect.SetHeight(dstRect.GetHeight());
+ }
BaseGfxEngine::GetInstance()->Blit(gfxDstBuffer, {0, 0}, src, dstRect, opt);
}
#include "zoom_effect.h"
namespace OHOS {
-void ZoomEffect::OnSwipe(UISwipeView& view)
+void ZoomEffect::StopEffect()
{
if (preLeftCard != nullptr) {
preLeftCard->ResetTransParameter();
preRightCard->ResetTransParameter();
preRightCard = nullptr;
}
+
+ CardSwipe::StopEffect();
}
void ZoomEffect::CommonAlg(UIView* leftCard, UIView* rightCard, int16_t xOffset)
void ZoomEffect::CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset)
{
+ CardSwipe::CardSwipeAlg(leftCard, rightCard, xOffset);
CommonAlg(leftCard, rightCard, xOffset);
}
void ZoomEffect::CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset)
{
+ CardSwipe::CardSwipeAlg(leftCard, rightCard, xOffset);
CommonAlg(leftCard, rightCard, xOffset);
}
}
#include "components/ui_cross_view.h"
namespace OHOS {
-class ZoomEffect : public CardSwipe, public UISwipeView::OnSwipeListener {
+class ZoomEffect : public CardSwipe {
public:
ZoomEffect(void) {}
~ZoomEffect() override {}
void CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset) override;
void CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset) override;
- void OnSwipe(UISwipeView& view) override;
+ void StopEffect() override;
private:
UIView* preLeftCard = nullptr;
UNUSED(view);
int page = UITestClockDial::GetInstance()->GetHorCurrentPage();
UITestClockDial::GetInstance()->PreLoad(page);
- calback_->OnSwipe(view);
return;
}
return;
}
- if (calback == nullptr) {
- calback = new ZoomEffect();
- if (calback == nullptr) {
+ if (callback == nullptr) {
+ callback = new ZoomEffect();
+ if (callback == nullptr) {
delete mainSwipeGroup;
mainSwipeGroup = nullptr;
- GRAPHIC_LOGE("SwipeCallback new fail\n");
+ GRAPHIC_LOGE("callback new fail\n");
return;
}
}
+ callback->SetContainer(mainSwipeGroup);
HorizontalViewInit();
HorViewLoad();
mainSwipeGroup->SetAnimatorTime(50); // 50: animator drag time(ms);
mainSwipeGroup->SetLoopState(true);
mainSwipeGroup->EnableScreenCap(true);
- mainSwipeGroup->RegisterSwipeCallback(calback);
+ mainSwipeGroup->RegisterSwipeCallback(callback);
mainSwipeGroup->SetHorCurrentPage(mainClockView->GetViewIndex());
}
delete listener;
listener = nullptr;
}
+
+ if (callback != nullptr) {
+ delete callback;
+ callback = nullptr;
+ }
}
const UIView* UITestClockDial::GetTestView()
pageStatus[maxPage - 1] = true;
}
listener = new SwipeListener();
- listener->SetCallback(calback);
mainSwipeGroup->SetOnSwipeListener(listener);
GRAPHIC_LOGD("UITestClockDial::InitPage over\n");
return true;
SwipeListener(void) {}
~SwipeListener() override {}
void OnSwipe(UISwipeView& view) override;
-
- void SetCallback(ZoomEffect* calback)
- {
- calback_ = calback;
- }
-private:
- ZoomEffect* calback_{nullptr};
};
class UITestClockDial : public UITest {
bool pageStatus[static_cast<uint32_t>(CardId::MAX_CARD)]{false};
UICrossView *mainSwipeGroup{nullptr};
SwipeListener *listener{nullptr};
- ZoomEffect* calback{nullptr};
+ ZoomEffect* callback{nullptr};
bool HorizontalViewInit(void);
void VerticalViewInit(void);
container_->SetLoopState(true);
container_->EnableScreenCap(true);
container_->RegisterSwipeCallback(callback_);
- container_->SetOnSwipeListener(callback_);
#ifdef _WIN32
container_->SetHorCurrentPage(card1_->GetViewIndex());
card1_->SetCoverable(true);
namespace OHOS {\r
class ItemContainer : public UITransformGroup {\r
public:\r
- ItemContainer() : image_(nullptr), label_(nullptr)\r
+ ItemContainer() : leftImg_(nullptr), label_(nullptr), rightImg_(nullptr)\r
{\r
SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
}\r
\r
~ItemContainer() override\r
+ {\r
+ ClearRes();\r
+ }\r
+\r
+ void ClearRes()\r
{\r
RemoveAll();\r
- if (image_ != nullptr) {\r
- delete image_;\r
- image_ = nullptr;\r
+ if (leftImg_ != nullptr) {\r
+ delete leftImg_;\r
+ leftImg_ = nullptr;\r
}\r
if (label_ != nullptr) {\r
delete label_;\r
label_ = nullptr;\r
}\r
+ if (rightImg_ != nullptr) {\r
+ delete rightImg_;\r
+ rightImg_ = nullptr;\r
+ }\r
}\r
\r
bool InitContainer()\r
{\r
- if (image_ == nullptr) {\r
- image_ = new UIImageView();\r
- if (image_ == nullptr) {\r
+ if (leftImg_ == nullptr) {\r
+ leftImg_ = new UIImageView();\r
+ if (leftImg_ == nullptr) {\r
return false;\r
}\r
}\r
- image_->SetResizeMode(UIImageView::ImageResizeMode::CENTER);\r
+ leftImg_->SetResizeMode(UIImageView::ImageResizeMode::CENTER);\r
\r
if (label_ == nullptr) {\r
label_ = new UILabelExt();\r
if (label_ == nullptr) {\r
- delete image_;\r
- image_ = nullptr;\r
+ ClearRes();\r
return false;\r
}\r
}\r
label_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40: item font size\r
\r
+ if (rightImg_ == nullptr) {\r
+ rightImg_ = new UIImageView();\r
+ if (rightImg_ == nullptr) {\r
+ ClearRes();\r
+ return false;\r
+ }\r
+ }\r
+ rightImg_->SetResizeMode(UIImageView::ImageResizeMode::CENTER);\r
+\r
Add(label_);\r
- Add(image_);\r
+ Add(leftImg_);\r
+ Add(rightImg_);\r
return true;\r
}\r
\r
- UIImageView* GetImageView()\r
+ UIImageView* GetLeftImageView()\r
{\r
- return image_;\r
+ return leftImg_;\r
}\r
\r
UILabelExt* GetLabelView()\r
return label_;\r
}\r
\r
+ UIImageView* GetRightImgView()\r
+ {\r
+ return rightImg_;\r
+ }\r
+\r
ItemContainer(const ItemContainer &) = delete;\r
ItemContainer &operator=(const ItemContainer &) = delete;\r
+\r
private:\r
- UIImageView* image_;\r
+ UIImageView* leftImg_;\r
UILabelExt* label_;\r
+ UIImageView* rightImg_;\r
};\r
\r
ScaleItemAdapter::~ScaleItemAdapter()\r
}\r
item->Resize(width_, height_);\r
\r
- UIImageView* image = item->GetImageView();\r
- image->SetPosition(imageRect_.GetX(), imageRect_.GetY(), imageRect_.GetWidth(), imageRect_.GetHeight());\r
+ UIImageView* leftImg = item->GetLeftImageView();\r
+ leftImg->SetPosition(imageRect_.GetX(), imageRect_.GetY(), imageRect_.GetWidth(), imageRect_.GetHeight());\r
\r
UILabelExt* label = item->GetLabelView();\r
label->SetPosition(labelRect_.GetX(), labelRect_.GetY(), labelRect_.GetWidth(), labelRect_.GetHeight());\r
+\r
+ UIImageView* rightImg = item->GetRightImgView();\r
+ rightImg->SetPosition(labelRect_.GetX() + labelRect_.GetWidth(),\r
+ imageRect_.GetY(), imageRect_.GetWidth(), imageRect_.GetHeight());\r
} else {\r
item = static_cast<ItemContainer*>(inView);\r
}\r
\r
if (item != nullptr) {\r
- if (node->data_->imgInfo == nullptr) {\r
- node->data_->imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(node->data_->resId, LIST_FPS);\r
- }\r
- UIImageView* image = item->GetImageView();\r
- if (image != nullptr) {\r
- image->SetSrc(node->data_->imgInfo);\r
+ UIImageView* leftImg = item->GetLeftImageView();\r
+ if (leftImg != nullptr) {\r
+ if (node->data_->imgInfo == nullptr) {\r
+ node->data_->imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(node->data_->resId, LIST_FPS);\r
+ }\r
+ leftImg->SetSrc(node->data_->imgInfo);\r
}\r
+\r
UILabelExt* label = item->GetLabelView();\r
if (label != nullptr) {\r
label->SetText(node->data_->txt);\r
label->SetLineBreakMode(node->data_->lineBreakMode);\r
label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
}\r
+\r
+ UIImageView* rightImg = item->GetRightImgView();\r
+ if (rightImg != nullptr) {\r
+ if (arrowImg_ == nullptr) {\r
+ arrowImg_ = ImageCacheManager::GetInstance().LoadSingleRes(RES_PATH"left_arrow.bin");\r
+ }\r
+ rightImg->SetSrc(arrowImg_);\r
+ }\r
+\r
item->SetViewIndex(index);\r
}\r
return item;\r
\r
class ScaleItemAdapter : public AbstractAdapter {\r
public:\r
- ScaleItemAdapter() : width_(0), height_(0) {}\r
+ ScaleItemAdapter() : width_(0), height_(0), arrowImg_(nullptr) {}\r
~ScaleItemAdapter() override;\r
\r
UIView* GetView(UIView* inView, int16_t index) override;\r
uint16_t height_;\r
Rect imageRect_;\r
Rect labelRect_;\r
+ ImageInfo* arrowImg_;\r
};\r
} // namespace OHOS\r
#endif // SCALE_ITEM_ADAPTER_H\r
static const int16_t LIST_HEIGHT = 454;\r
static const uint16_t ITEM_WIDTH = 400;\r
static const uint16_t ITEM_HEIGHT = 100;\r
-static const uint16_t IMAGE_WIDTH = 100;\r
-static const uint16_t IMAGE_HEIGHT = 100;\r
-static const uint16_t LABEL_WIDTH = 350;\r
+static const uint16_t IMAGE_WIDTH = 50;\r
+static const uint16_t IMAGE_HEIGHT = 50;\r
+static const uint16_t LABEL_WIDTH = 300;\r
static const uint16_t LABEL_HEIGHT = 100;\r
static const uint16_t SCALE_FACTOR = 400;\r
static ItemDataNode g_itemNode[] = {\r
}\r
adapter_->ItemResize(ITEM_WIDTH, ITEM_HEIGHT);\r
adapter_->SetLabelPosition(IMAGE_WIDTH, 0, LABEL_WIDTH, LABEL_HEIGHT);\r
- adapter_->SetImagePosition(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT);\r
+ adapter_->SetImagePosition(0, 25, IMAGE_WIDTH, IMAGE_HEIGHT); // 25:image start pos y\r
adapter_->SetData(data_);\r
\r
if (list_ == nullptr) {\r
}
OpacityType opa = DrawUtils::GetMixOpacity(opaScale, style.textOpa_);
for (int i = 0; i < lineCount; i++) {
- if (pos.y > mask.GetBottom()) {
+ if (pos.y > coords.GetBottom()) {
return;
}
int16_t nextLine = pos.y + lineHeight;
- if (nextLine >= mask.GetTop()) {
+ if (nextLine >= coords.GetTop()) {
pos.x = LineStartPos(coords, textLine_[i].linePixelWidth);
LabelLineInfo labelLine{pos, offset, mask, lineHeight, textLine_[i].lineBytes,
0, opa, style, &text_[lineBegin], textLine_[i].lineBytes,
* limitations under the License.
*/
+#include <cmath>
#include "hal_tick.h"
#include "components/ui_label.h"
#include "font/ui_font.h"
#include "gfx_utils/graphic_log.h"
#include "themes/theme_manager.h"
-#include "cmath"
namespace OHOS {
class LabelAnimator : public Animator, public AnimatorCallback {
uint32_t time = HALTick::GetInstance().GetElapseTime(startTime_);
float x0 = startPos_;
float x1 = 1.0 * labelWidth_ - textWidth_;
-#if 1
float factor = 1000; // 1000: slow down the speed
float v = speed_ / factor;
v = x1 - x0 > 0 ? v : -v;
} else {
x = -v * (t - t1) + x1;
}
-#else
- float factor = 200000; // slow down the speed
- float t = time * speed_ / factor;
- float t1 = 1.0;
- float period = 2.0;
- while (t < 0) {
- t += period;
- }
- while (t > period) {
- t -= period;
- }
- float x = 0;
- if (t >=0 && t < t1) {
- x = (x1 - x0) * t / t1 + x0;
- } else {
- x = (x0 - x1) * (t - t1) / t1 + x1;
- }
-#endif
UILabel *label = dynamic_cast<UILabel*>(view);
if (label != nullptr) {
label->offsetX_ = MATH_ROUND(x);
label->Invalidate();
}
- // printf("offsetX: %d time %d\n", label->offsetX_, time);
}
static constexpr uint8_t ANIM_WAIT_COUNT = 50;
RefreshLabel();
}
}
-
-void UILabel::SetTextTransformMap(TransformMap& transMap)
-{
- InitLabelText();
- labelText_->SetTransformMap(transMap);
-}
-
void UILabel::RefreshLabel()
{
Invalidate();
void UILabel::OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea)
{
InitLabelText();
- UIView::OnDraw(gfxDstBuffer, invalidatedArea);
+ uint8_t opa = GetMixOpaScale();
+ BaseGfxEngine::GetInstance()->DrawRect(gfxDstBuffer, GetRect(), invalidatedArea, *style_, opa);
Style style = GetStyleConst();
style.textColor_ = GetTextColor();
- OpacityType opa = GetMixOpaScale();
+ Rect origContentRect = GetOrigRect();
+ if (transMap_ != nullptr) {
+ transMap_->SetTransMapRect(origContentRect);
+ labelText_->SetTransformMap(*transMap_);
+ }
+ origContentRect.SetX(origContentRect.GetX() + style_->paddingLeft_ + style_->borderWidth_);
+ origContentRect.SetY(origContentRect.GetY() + style_->paddingTop_ + style_->borderWidth_);
+ origContentRect.SetWidth(GetWidth());
+ origContentRect.SetHeight(GetHeight());
labelText_->OnDraw(gfxDstBuffer, invalidatedArea, GetOrigRect(),
- GetContentRect(), offsetX_, style, ellipsisIndex_, opa);
+ origContentRect, offsetX_, style, ellipsisIndex_, opa);
}
} // namespace OHOS
\ No newline at end of file
originX = originX - path.advance;
posX = posX - path.advance;
}
- if ((posX + letterW < letterInfo.mask.GetLeft()) || (posX > letterInfo.mask.GetRight()) ||
+
+ if (letterInfo.transMap != nullptr) {
+ if (!letterInfo.transMap->GetBoxRect().IsIntersect(letterInfo.mask)) {
+ return;
+ }
+ } else if ((posX + letterW < letterInfo.mask.GetLeft()) || (posX > letterInfo.mask.GetRight()) ||
(posY + letterH < letterInfo.mask.GetTop()) || (posY > letterInfo.mask.GetBottom())) {
return;
}
*/
void SetHeight(int16_t height) override;
- /**
- * @brief Sets the transform for this label text.
- *
- * @param transMap Indicates the transformation matrix.
- * @since 1.0
- * @version 1.0
- */
- void SetTextTransformMap(TransformMap& transMap);
-
void ReMeasure() override;
std::string GetGuiInfo() const override;
};
static AudioStrategy g_defaultPriorityToStrategies[][OUTPUT_STRATEGY_MAP_COLUMN_SIZE] = {
- {STRATEGY_NONE, STRATEGY_REJECT, STRATEGY_REJECT, STRATEGY_REJECT, STRATEGY_REJECT,
+ {STRATEGY_NONE, STRATEGY_REJECT, STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_REJECT,
STRATEGY_REJECT, STRATEGY_REJECT, STRATEGY_REJECT, STRATEGY_REJECT, STRATEGY_DELAY, STRATEGY_DELAY},
{STRATEGY_EXCLUSIVE, STRATEGY_NONE, STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_REJECT,
STRATEGY_REJECT, STRATEGY_REJECT, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_DELAY, STRATEGY_DELAY},
- {STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_NONE, STRATEGY_REJECT, STRATEGY_REJECT,
+ {STRATEGY_EXCLUSIVE, STRATEGY_MIX, STRATEGY_NONE, STRATEGY_REJECT, STRATEGY_REJECT,
STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_DELAY, STRATEGY_DELAY},
{STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_NONE, STRATEGY_REJECT,
STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_DELAY, STRATEGY_DELAY},
{STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_NONE,
- STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_MIX},
+ STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_MIX},
{STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE,
- STRATEGY_NONE, STRATEGY_REJECT, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_DELAY},
+ STRATEGY_NONE, STRATEGY_REJECT, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_DELAY},
+ {STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE,
+ STRATEGY_EXCLUSIVE, STRATEGY_NONE, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_DELAY},
{STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE,
- STRATEGY_EXCLUSIVE, STRATEGY_NONE, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_DELAY},
- {STRATEGY_EXCLUSIVE, STRATEGY_MIX, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE,
STRATEGY_EXCLUSIVE, STRATEGY_MIX, STRATEGY_NONE, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_MIX},
{STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE,
STRATEGY_EXCLUSIVE, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_NONE, STRATEGY_MIX, STRATEGY_MIX},
{STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE,
- STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_NONE, STRATEGY_EXCLUSIVE},
+ STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_NONE, STRATEGY_EXCLUSIVE},
{STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE,
- STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_NONE},
+ STRATEGY_EXCLUSIVE, STRATEGY_EXCLUSIVE, STRATEGY_MIX, STRATEGY_MIX, STRATEGY_REJECT, STRATEGY_NONE},
};
static AudioStrategy g_defaultInputPriorityToStrategies[][INPUT_STRATEGY_MAP_COLUMN_SIZE] = {
\r
static void GetMixWeight(InterruptElement *interruptEl, float materStreamTypeVolume)\r
{\r
+ // 如果是来电铃声则不进行声音的削弱,保证和通话都同时混音存在\r
+ if (interruptEl->routedStreamDesc.streamDesc.streamType == AUDIO_STREAM_RING) {\r
+ interruptEl->routedStreamDesc.mixWeight = 1;\r
+ return;\r
+ }\r
float curStreamTypeVolume = interruptEl->routedStreamDesc.streamDesc.streamTypeVolume;\r
if (!StreamMgrGetTypeVolume(interruptEl->streamType, &curStreamTypeVolume)) {\r
ALOGI("get nv volume failed!, streamType:%x", interruptEl->streamType);\r
{\r
for (ListIterator it = ListIterBegin(list); it != ListIterEnd(list);) {\r
InterruptElement *curInterruptEl = (InterruptElement *)ListIterData(it);\r
- if (curInterruptEl->streamType == interruptEl->streamType) {\r
+ // 判断当前的流类型是否已经创建了流,如果已经创建了流则不进行焦点的删除,没有则需要进行焦点的删除\r
+ if (curInterruptEl->streamType == interruptEl->streamType &&\r
+ !StreamMgrIsCreateStreamByType(curInterruptEl->streamType)) {\r
it = ListIterErase(list, it);\r
break;\r
} else {\r
int32_t StreamManagerGetParam(AudioLinkDirection direction, char *param, uint32_t len);
+bool StreamMgrIsCreateStreamByType(AudioStreamType streamType);
+
#ifdef __cplusplus
#if __cplusplus
}
static bool IsAllStreamDestroyed(AudioStreamType streamType)
{
+ if (streamType != AUDIO_STREAM_VOICE_CALL_BT_SCO &&
+ streamType != AUDIO_STREAM_VOICE_CALL_VOIP) {
+ return true;
+ }
for (int32_t i = 0; i < CONCURRENT_ACTIVE_STREAM_MAX_NUM; i++) {
StreamSimpleInfo curStreamInfo = g_streamMgrContext.simpleInfos[i];
if (curStreamInfo.streamType != streamType) {\r
return ret;
}
+bool StreamMgrIsCreateStreamByType(AudioStreamType streamType)
+{
+ bool isFound = false;
+ for (uint32_t i = 0; i < MAX_STREAM_IN_NUM; i++) {
+ StreamSimpleInfo curStreamInfo = g_streamMgrContext.curInputStreamInfo[i];
+ if (curStreamInfo.streamType == streamType &&
+ curStreamInfo.streamId != -1) {
+ isFound = true;
+ break;
+ }
+ }
+ if (!isFound) {
+ for (uint32_t i = 0; i < CONCURRENT_ACTIVE_STREAM_MAX_NUM; i++) {
+ StreamSimpleInfo curStreamInfo = g_streamMgrContext.simpleInfos[i];
+ if (curStreamInfo.streamType == streamType &&
+ curStreamInfo.streamId != -1) {
+ isFound = true;
+ break;
+ }
+ }
+ }
+ return isFound;
+}
+
#ifdef __cplusplus
#if __cplusplus
}
*/
static JSIValue OnTimeUpdateSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+ /**
+ * the getter of stream type
+ *
+ * @param thisVal Indicates function execute context
+ * @param args Indicates the function arguments
+ * @param argsSize Indicates the size of function arguments
+ */
+ static JSIValue StreamTypeGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
+ /**
+ * the setter of stream type
+ *
+ * @param thisVal Indicates function execute context
+ * @param args Indicates the function arguments
+ * @param argsSize Indicates the size of function arguments
+ */
+ static JSIValue StreamTypeSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
private:
static JSIValue GetEventCallback(const AudioEventListener *listener);
#include "jsi.h"
#include "player.h"
+#include "audio_base_type.h"
#include "media_thread_adapt.h"
namespace OHOS {
bool SetVolume(double volume);
+ bool SetStreamType(AudioStreamType streamType);
+
bool SetMuted(bool muted);
int32_t SetAudioSessionId(uint32_t sessionId);
bool isRunning_;
bool isSysSrc_;
MediaThreadIdHandle updateTimeProcess_;
+ AudioStreamType streamType_ = AUDIO_STREAM_MUSIC;
};
} // namespace ACELite
} // namespace OHOS
static bool recordPlayerStatus = false;
+static AudioStreamType g_streamType = AUDIO_STREAM_MUSIC;
static int *interruptType;
void AudioModule::ActivateAudioInterrupt()
if (interrupt == nullptr) {
interruptType = new int;
interrupt = new Audio::AudioInterrupt();
- interrupt->streamType = AUDIO_STREAM_MUSIC;
+ interrupt->streamType = g_streamType;
interrupt->sessionID = g_amInstance.MakeSessionId();
interrupt->interruptListener = std::make_shared<PlayerInterruptListener>();
g_amInstance.ActivateAudioInterrupt(*interrupt);
delete interruptType;
interruptType = nullptr;
}
+ g_streamType = AUDIO_STREAM_MUSIC;
}
void InterruptAsyncExecuteCallback(void *arg)
char *src = JSI::ValueToString(args[0]);
bool autoPlay = AudioPlayer::GetInstance()->GetAutoPlay();
bool ret = AudioPlayer::GetInstance()->SetSrc(src, false);
+ AudioPlayer::GetInstance()->SetStreamType(g_streamType);
AudioPlayer::GetInstance()->SetAudioSessionId(interrupt->sessionID);
if (autoPlay) {
AudioPlayer::GetInstance()->Play();
char *src = JSI::ValueToString(args[0]);
bool autoPlay = AudioPlayer::GetInstance()->GetAutoPlay();
bool ret = AudioPlayer::GetInstance()->SetSrc(src, true);
+ AudioPlayer::GetInstance()->SetStreamType(g_streamType);
AudioPlayer::GetInstance()->SetAudioSessionId(interrupt->sessionID);
if (autoPlay) {
AudioPlayer::GetInstance()->Play();
return JSI::CreateBoolean(true);
}
+JSIValue AudioModule::StreamTypeGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize)
+{
+
+ return JSI::CreateNumber((double)g_streamType);
+}
+
+JSIValue AudioModule::StreamTypeSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize)
+{
+ if (argsSize < 1) {
+ MEDIA_ERR_LOG("1 argument is required.");
+ return JSI::CreateBoolean(false);
+ }
+ double streamType = JSI::ValueToNumber(args[0]);
+ g_streamType = (AudioStreamType)streamType;
+ return JSI::CreateBoolean(true);
+}
+
JSIValue AudioModule::GetEventCallback(const AudioEventListener *listener)
{
return (listener == nullptr) ? JSI::CreateUndefined() : listener->GetCallback();
JSI::SetModuleAPI(exports, "reset", AudioModule::Reset);
JSI::SetModuleAPI(exports, "getPlayState", AudioModule::GetPlayState);
+ AudioModule::DefineProperty(exports, "streamType", AudioModule::StreamTypeGetter, AudioModule::StreamTypeSetter);
AudioModule::DefineProperty(exports, "src", AudioModule::SrcGetter, AudioModule::SrcSetter);
AudioModule::DefineProperty(exports, "srcInner", AudioModule::SrcInnerGetter, AudioModule::SrcInnerSetter);
AudioModule::DefineProperty(exports, "currentTime", AudioModule::CurrentTimeGetter, AudioModule::CurrentTimeSetter);
return false;
}
if (muted_) {
- g_amInstance.SetVolume(AUDIO_STREAM_MUSIC, 0);
+ g_amInstance.SetVolume(streamType_, 0);
} else {
double volume = GetVolume() * MAX_VOLUME;
- if (!g_amInstance.SetVolume(AUDIO_STREAM_MUSIC, volume)) {
+ if (!g_amInstance.SetVolume(streamType_, volume)) {
MEDIA_ERR_LOG("fail to reset volume");
}
}
double AudioPlayer::GetVolume()
{
- int32_t volume = g_amInstance.GetVolume(AUDIO_STREAM_MUSIC);
+ int32_t volume = g_amInstance.GetVolume(streamType_);
volume_ = static_cast<double>(volume) / MAX_VOLUME;
return volume_;
}
return false;
}
float parsedVolume = static_cast<float>(volume * MAX_VOLUME);
- bool succ = g_amInstance.SetVolume(AUDIO_STREAM_MUSIC, parsedVolume);
+ bool succ = g_amInstance.SetVolume(streamType_, parsedVolume);
if (!succ) {
MEDIA_ERR_LOG("fail to set volume.");
return false;
return true;
}
+bool AudioPlayer::SetStreamType(AudioStreamType streamType)
+{
+ if (player_->SetAudioStreamType(streamType) != 0) {
+ MEDIA_ERR_LOG("fail to SetAudioStreamType streamType = %x.", streamType);
+ return false;
+ }
+ streamType_ = streamType;
+ return true;
+}
+
bool AudioPlayer::SetMuted(bool muted)
{
double volume = muted ? 0.0 : (GetVolume() * MAX_VOLUME);
- if (!g_amInstance.SetVolume(AUDIO_STREAM_MUSIC, volume)) {
+ if (!g_amInstance.SetVolume(streamType_, volume)) {
MEDIA_ERR_LOG("fail to set volume.");
return false;
}
MediaMutexDestroy(&sampleParam->testSample.mutex);\r
MediaThreadCondDestroy(&sampleParam->testSample.cond);\r
sampleParam->taskAlive.store(false);\r
+ if (!sampleParam->testSample.isStop) {\r
+ MediaThreadSetDetach(sampleParam->playTask, true);\r
+ }\r
}\r
\r
void WaitPlayCompletedOrStop(SampleParam *sampleParam)\r
MediaThreadCondSignal(sampleParam->testSample.cond);\r
MediaMutexUnLock(sampleParam->testSample.mutex);\r
WaitPlayerTaskEnd(sampleParam);\r
+ sampleParam->taskAlive.store(true);\r
if (strncmp(sampleParam->control, "prevsong", strlen("prevsong")) == 0) {\r
if (g_currentSongIndex == 0) {\r
g_currentSongIndex = g_totalSongEntries - 1;\r
continue;\r
}\r
if (sampleParam->playTask == g_playerTask[i].playTask &&\r
- sampleParam->streamType == g_playerTask[i].streamType) {\r
+ sampleParam->streamType == g_playerTask[i].streamType &&\r
+ sampleParam->testSample.isStop) {\r
MediaMutexUnLock(g_playerTaskMutex);\r
MediaThreadJoin(&sampleParam->playTask);\r
MediaMutexLock(g_playerTaskMutex);\r
\r
int32_t PlayerSample(int32_t argc, const char** argv)\r
{\r
- SourceType sourceType = SourceType::SOURCE_TYPE_FD;\r
+ SourceType sourceType = SourceType::SOURCE_TYPE_URI;\r
int32_t ret = PlayerSampleInit(&g_sampleParam, argc, argv, sourceType);\r
if (ret != 0) {\r
return ret;\r
argv[0], strlen(argv[0]) + 1) != EOK) {\r
MEDIA_ERR_LOG("memcpy_s failed, g_sampleParam->control:%s", g_sampleParam->control);\r
}\r
- MEDIA_INFO_LOG("argv[0]:%s", argv[0]);\r
- /* todo :Modifying playback keywords */\r
if (strncmp(g_sampleParam->control, "xx", strlen("xx")) == 0) {\r
if (g_sampleParam->taskAlive.load()) {\r
MEDIA_ERR_LOG("playerTask exists, Enter the stop command first");\r
\r
int32_t TonePlayerSampleTest(int32_t argc, const char *argv[])\r
{\r
- SourceType sourceType = SourceType::SOURCE_TYPE_FD;\r
+ SourceType sourceType = SourceType::SOURCE_TYPE_URI;\r
int32_t ret = PlayerSampleInit(&g_tonePlayersampleParam, argc, argv, sourceType);\r
if (ret != 0) {\r
return ret;\r
argv[0], strlen(argv[0]) + 1) != EOK) {\r
MEDIA_ERR_LOG("memcpy_s failed, g_tonePlayersampleParam->control:%s", g_tonePlayersampleParam->control);\r
}\r
- MEDIA_INFO_LOG("argv[0]:%s", argv[0]);\r
- /* todo :Modifying playback keywords */\r
if (strncmp(g_tonePlayersampleParam->control, "xx", strlen("xx")) == 0) {\r
if (g_tonePlayersampleParam->taskAlive.load()) {\r
MEDIA_ERR_LOG("playerTask exists, Enter the stop command first");\r
}\r
\r
videoPlay->player_ = player;\r
-\r
- videoPlay->isPlaybackCompleted_ = false;\r
- videoPlay->interruptHintStop_ = false;\r
- videoPlay->playError_ = false;\r
-\r
return true;\r
}\r
\r
MEDIA_ERR_LOG("requset audio focus failed\n");\r
return nullptr;\r
}\r
-\r
int32_t ret = RunVideoPlay(videoPlay);\r
if (ret != 0) {\r
MEDIA_ERR_LOG("run video play failed\n");\r
- (void)ReleaseAudioFocus(videoPlay);\r
- return nullptr;\r
}\r
\r
success = ReleaseAudioFocus(videoPlay);\r
if (!success) {\r
MEDIA_ERR_LOG("release audio focus failed\n");\r
- return nullptr;\r
}\r
- MEDIA_ERR_LOG("exit all!\n");\r
+ MediaMutexLock(videoPlay->mutex_);\r
+ if (!videoPlay->isPlaybackStopped_ && videoPlay->IsSyncExitMode()) {\r
+ videoPlay->SetSyncExitMode(false);\r
+ MediaThreadSetDetach(videoPlay->threadHandle_, true);\r
+ }\r
+ MediaMutexUnLock(videoPlay->mutex_);\r
+ MEDIA_INFO_LOG("exit all!\n");\r
return nullptr;\r
}\r
\r
play = nullptr;\r
}\r
\r
+void MediaVideoPlay::ResetVideoPlayState(void)\r
+{\r
+ isExited_ = false;\r
+ isPlaybackCompleted_ = false;\r
+ isPlaybackStopped_ = false;\r
+ interruptHintStop_ = false;\r
+ playError_ = false;\r
+ isSyncExitMode_ = true;\r
+ isPause_ = false;\r
+ isPlayed_ = false;\r
+}\r
+\r
int32_t MediaVideoPlay::StartVideoPlay(void)\r
{\r
if (isEntered_) {\r
MEDIA_INFO_LOG("video play is not stop, can not start!");\r
return MEDIA_OK;\r
}\r
- isExited_ = false;\r
isEntered_ = true;\r
+ ResetVideoPlayState();\r
MediaThreadattr attr = { "VideoPlayThread", 0x2000, THREAD_SCHED_INVALID, 0, true };\r
if (isSyncExitMode_) {\r
- MediaThreadJoin(&threadHandle_);\r
attr.detached = false;\r
}\r
threadHandle_ = MediaThreadCreate(VideoPlayThread, this, &attr);\r
- if (threadHandle_ == NULL) {\r
+ if (threadHandle_ == nullptr) {\r
MEDIA_ERR_LOG("create thread failed\n");\r
+ isEntered_ = false;\r
return MEDIA_ERR;\r
}\r
play = this;\r
\r
int32_t MediaVideoPlay::StopVideoPlay(void)\r
{\r
- MEDIA_ERR_LOG("StopVideoPlay start!");\r
MediaMutexLock(mutex_);\r
if (isPlaybackStopped_ || isPlaybackCompleted_ || interruptHintStop_) {\r
if (isLoop_) {\r
}\r
isPlaybackStopped_ = true;\r
MediaThreadCondSignal(cond_);\r
- MediaMutexUnLock(mutex_);\r
if (isSyncExitMode_) {\r
+ MediaMutexUnLock(mutex_);\r
MediaThreadJoin(&threadHandle_);\r
- isPlaybackStopped_ = false;\r
dynamic_cast<LiteSurface*>(surface_)->ClearBuffers(); // clear buffers safely in sync mode to reduce peak memory\r
+ play = nullptr;\r
+ return MEDIA_OK;\r
}\r
+ MediaMutexUnLock(mutex_);\r
play = nullptr;\r
return MEDIA_OK;\r
}\r
\r
void MediaVideoPlay::SetSyncExitMode(bool isSyncExitMode)\r
{\r
- MediaMutexLock(mutex_);\r
if (!isEntered_) {\r
isSyncExitMode_ = isSyncExitMode;\r
}\r
- MediaMutexUnLock(mutex_);\r
+}\r
+\r
+bool MediaVideoPlay::IsSyncExitMode()\r
+{\r
+ return isSyncExitMode_;\r
}\r
\r
void MediaVideoPlay::DestroyVideoPlaySource(void)\r
{\r
- needSendBackgroundFrame_ = false;\r
- StopVideoPlay();\r
- uint32_t count = 0;\r
- while (!IsExitCompletely()) {\r
- count++;\r
- if (count == WAIT_VIDEO_EXIT_MAX_RETRY_COUNT) {\r
- MEDIA_ERR_LOG("media video play exit timeout\n");\r
- break;\r
- }\r
- usleep(WAIT_VIDEO_EXIT_SUCCESS_US);\r
+ if (isEntered_) {\r
+ needSendBackgroundFrame_ = false;\r
+ StopVideoPlay();\r
}\r
}\r
};\r
int32_t GetDumpInfo(PlayerDebugInfo *playerInfo);\r
void SetVideoPlayLoop(bool isLoop);\r
void SetSyncExitMode(bool isSyncExitMode);\r
+ bool IsSyncExitMode(void);\r
bool IsExitCompletely(void);\r
Surface *surface_ = nullptr;\r
AudioInterrupt interrupt_;\r
static MediaVideoPlay *play;\r
private:\r
bool isSyncExitMode_ = true;\r
+ void ResetVideoPlayState(void);\r
static void *VideoPlayThread(void *arg);\r
void DestroyVideoPlaySource(void);\r
};\r
*/
void MediaThreadCondDestroy(MediaThreadCondHandle *condHandle);
+void MediaThreadSetDetach(MediaThreadIdHandle thdId, bool detach);
+
#ifdef __cplusplus
};
#endif
}
#define THREAD_EVENT_EXIT_FLAG 0x45584954U /* EXIT ascii */
+#ifdef CMSIS_SUPPORT
+static void MediaThreadFunc(void *arg)
+#else
static void *MediaThreadFunc(void *arg)
+#endif
{
if (arg == nullptr) {
+#ifdef CMSIS_SUPPORT
+ return;
+#else
return nullptr;
+#endif
}
-
+ MediaThreadMember *member = (MediaThreadMember *)arg;
+ member->process(member->argument);
MediaMutexLock(g_mediaThreadManagerLock);
- MediaThreadMember member = {};
- if (memcpy_s(&member, sizeof(MediaThreadMember), arg, sizeof(MediaThreadMember)) != EOK) {
- MediaMutexUnLock(g_mediaThreadManagerLock);
- return nullptr;
+ if (member->detached) {
+ uint32_t idx = MediaGetThreadManagerIdxFromIdHandle(member->subId);
+ if (idx < THREAD_MANAGER_MAX_CNT) {
+ g_mediaThreadManager[idx] = nullptr;
+ }
+ free(arg);
}
- MediaMutexUnLock(g_mediaThreadManagerLock);
-
- member.process(member.argument);
-
#ifdef CMSIS_SUPPORT
#ifndef CMSIS_SUPPORT_JOIN
- if (!member.detached) {
- osThreadFlagsSet(member.mainId, THREAD_EVENT_EXIT_FLAG);
+ else {
+ osThreadFlagsSet(member->mainId, THREAD_EVENT_EXIT_FLAG);
}
#endif
#endif
- if (member.detached) {
- MediaMutexLock(g_mediaThreadManagerLock);
- uint32_t idx = MediaGetThreadManagerIdxFromIdHandle(member.subId);
- if (idx < THREAD_MANAGER_MAX_CNT) {
- g_mediaThreadManager[idx] = nullptr;
- }
- free(arg);
- MediaMutexUnLock(g_mediaThreadManagerLock);
- }
-
+ MediaMutexUnLock(g_mediaThreadManagerLock);
+#ifndef CMSIS_SUPPORT
return nullptr;
+#endif
}
static int32_t MediaDoCreateThread(MediaThreadMember *member, const MediaThreadattr *attr)
osThreadAttr_t taskAttr = {
attr->name, attrBits, nullptr, 0, nullptr, attr->stackSize, osPriorityNormal, 0, 0
};
- // Allocate the memory of the thread to the psram.
- // taskAttr.stack_mem = memalign(0x10, attr->stackSize);
MediaSetCmsisThreadPriorityAttr(&taskAttr, attr->prioty);
subId = osThreadNew((osThreadFunc_t)MediaThreadFunc, member, &taskAttr);
}
#endif
}
+void MediaThreadSetDetach(MediaThreadIdHandle thdId, bool detach)
+{
+ MediaMutexLock(g_mediaThreadManagerLock);
+ uint32_t idx = MediaGetThreadManagerIdxFromIdHandle(thdId);
+ if (idx < THREAD_MANAGER_MAX_CNT) {
+ MediaThreadMember *member = g_mediaThreadManager[idx];
+ member->detached = detach;
+ }
+ MediaMutexUnLock(g_mediaThreadManagerLock);
+}
+
#ifdef __cplusplus
};
#endif
/* record track context */
SubPortTrackOutContext *portTrack[AO_DEV_MAX_TRACK_NUM];
#endif
+ MediaHalMutexHandle createTrackMutex;
} SubPortOutContext;
typedef struct {
return MEDIA_HAL_ERR;
}
-static void SubPortTrackOutInit(SubPortTrackOutContext *portTrackOutCtx, const struct PortPluginAttr *inputAttr)
+static int32_t SubPortTrackOutInit(SubPortTrackOutContext **portTrackOutCtx, const struct PortPluginAttr *inputAttr)
{
+ SubPortTrackOutContext *subPortTrackOutCtx = (SubPortTrackOutContext *)malloc(sizeof(SubPortTrackOutContext));
+ if (subPortTrackOutCtx == NULL) {
+ MEDIA_HAL_LOGE(MODULE_NAME, "malloc failed");
+ return MEDIA_HAL_NO_MEM;
+ }
+
+ if (memset_s(subPortTrackOutCtx, sizeof(SubPortTrackOutContext), 0, sizeof(SubPortTrackOutContext)) != EOK) {
+ MEDIA_HAL_LOGE(MODULE_NAME, "memset_s failed");
+ free(subPortTrackOutCtx);
+ return MEDIA_HAL_ERR;
+ }
#ifdef AUDIO_SDK_SUPPORT
- portTrackOutCtx->inputAttr = *inputAttr;
+ subPortTrackOutCtx->inputAttr = *inputAttr;
/* The default bit width is 16 bits. The 24-bit width is processed separately. */
- portTrackOutCtx->inputAttr.bitWidth = AUDIO_BIT_WIDTH_16_BIT;
-
- portTrackOutCtx->common.audioPin = PIN_OUT_SPEAKER;
- portTrackOutCtx->common.GetFrameCount = NULL;
- portTrackOutCtx->common.GetLatency = AudioPrimarySubPortOutGetLatency;
- portTrackOutCtx->common.EnableTrack = AudioPrimarySubPortOutEnableTrack;
- portTrackOutCtx->common.DisableTrack = AudioPrimarySubPortOutDisableTrack;
- portTrackOutCtx->common.PauseTrack = AudioPrimarySubPortOutPauseTrack;
- portTrackOutCtx->common.ResumeTrack = AudioPrimarySubPortOutResumeTrack;
- portTrackOutCtx->common.FlushTrack = AudioPrimarySubPortOutFlushTrack;
- portTrackOutCtx->common.AcquireFrame = NULL;
- portTrackOutCtx->common.SendFrame = AudioPrimarySubPortOutSendFrame;
- portTrackOutCtx->common.GetPosition = AudioPrimarySubPortOutGetPosition;
- portTrackOutCtx->common.SetMute = AudioPrimarySubPortOutTrackSetMute;
- portTrackOutCtx->common.GetMute = AudioPrimarySubPortOutTrackGetMute;
- portTrackOutCtx->common.SetVolume = AudioPrimarySubPortOutTrackSetVolume;
- portTrackOutCtx->common.GetVolume = AudioPrimarySubPortOutTrackGetVolume;
- portTrackOutCtx->common.Invoke = AudioPrimarySubPortOutInvoke;
- portTrackOutCtx->common.RegCallback = AudioPrimarySubPortOutRegCallback;
- portTrackOutCtx->volumeToggleConfig.toggle_valid = false;
- portTrackOutCtx->volumeToggleConfig.toggle_count = 0;
- portTrackOutCtx->notifyToggleConfig.toggle_valid = false;
- portTrackOutCtx->notifyToggleConfig.toggle_count = 0;
+ subPortTrackOutCtx->inputAttr.bitWidth = AUDIO_BIT_WIDTH_16_BIT;
+
+ subPortTrackOutCtx->common.audioPin = PIN_OUT_SPEAKER;
+ subPortTrackOutCtx->common.GetFrameCount = NULL;
+ subPortTrackOutCtx->common.GetLatency = AudioPrimarySubPortOutGetLatency;
+ subPortTrackOutCtx->common.EnableTrack = AudioPrimarySubPortOutEnableTrack;
+ subPortTrackOutCtx->common.DisableTrack = AudioPrimarySubPortOutDisableTrack;
+ subPortTrackOutCtx->common.PauseTrack = AudioPrimarySubPortOutPauseTrack;
+ subPortTrackOutCtx->common.ResumeTrack = AudioPrimarySubPortOutResumeTrack;
+ subPortTrackOutCtx->common.FlushTrack = AudioPrimarySubPortOutFlushTrack;
+ subPortTrackOutCtx->common.AcquireFrame = NULL;
+ subPortTrackOutCtx->common.SendFrame = AudioPrimarySubPortOutSendFrame;
+ subPortTrackOutCtx->common.GetPosition = AudioPrimarySubPortOutGetPosition;
+ subPortTrackOutCtx->common.SetMute = AudioPrimarySubPortOutTrackSetMute;
+ subPortTrackOutCtx->common.GetMute = AudioPrimarySubPortOutTrackGetMute;
+ subPortTrackOutCtx->common.SetVolume = AudioPrimarySubPortOutTrackSetVolume;
+ subPortTrackOutCtx->common.GetVolume = AudioPrimarySubPortOutTrackGetVolume;
+ subPortTrackOutCtx->common.Invoke = AudioPrimarySubPortOutInvoke;
+ subPortTrackOutCtx->common.RegCallback = AudioPrimarySubPortOutRegCallback;
+ subPortTrackOutCtx->volumeToggleConfig.toggle_valid = false;
+ subPortTrackOutCtx->volumeToggleConfig.toggle_count = 0;
+ subPortTrackOutCtx->notifyToggleConfig.toggle_valid = false;
+ subPortTrackOutCtx->notifyToggleConfig.toggle_count = 0;
MEDIA_HAL_LOGD(MODULE_NAME, "success");
#else
MEDIA_HAL_UNUSED(portTrackOutCtx);
MEDIA_HAL_UNUSED(inputAttr);
#endif
+ *portTrackOutCtx = subPortTrackOutCtx;
+ return MEDIA_HAL_OK;
}
#ifdef AUDIO_SDK_SUPPORT
static int32_t AODevOpen(SubPortOutContext *portOutCtx, const enum AudioCategory audioCategory)
{
#ifdef AUDIO_SDK_SUPPORT
+ MediaHalInitStaticMutexLock(&g_subPortTrackOutLock);
MediaHalMutexLock(g_subPortTrackOutLock);
if (g_subPortTrackOutSndRefCount == 0) {
- int32_t ret;
+ int32_t ret = MEDIA_HAL_OK;
uapi_snd_attr sndAttr = {};
MEDIA_HAL_DOFUNC_TIME(ret = uapi_snd_get_default_attr(portOutCtx->sndDevId, &sndAttr));
if (ret != MEDIA_HAL_OK) {
int32_t ret;
#ifdef MINI_MEMORY_SUPPORT
+ MediaHalMutexLock(portTrackOutCtx->subPortCtx->createTrackMutex);
ret = AudioSDKStopInternal(portTrackOutCtx);
CHK_FAILED_NO_RETURN(ret, MEDIA_HAL_OK, "audio stop failed");
ret = AudioSDKDetachInternal(portTrackOutCtx);
ret = AudioSDKCloseInternal(portTrackOutCtx);
CHK_FAILED_NO_RETURN(ret, MEDIA_HAL_OK, "audio close failed");
portTrackOutCtx->isReleased = true;
+ MediaHalMutexUnLock(portTrackOutCtx->subPortCtx->createTrackMutex);
#else
MEDIA_HAL_DOFUNC_TIME(ret = uapi_snd_track_pause(portTrackOutCtx->trackHandle));
CHK_FAILED_RETURN(ret, MEDIA_HAL_OK, ret, "sound track pause failed");
int32_t ret;
#ifdef MINI_MEMORY_SUPPORT
+ MediaHalMutexLock(portTrackOutCtx->subPortCtx->createTrackMutex);
ret = AudioSDKOpenInternal(portTrackOutCtx);
- CHK_FAILED_RETURN(ret, MEDIA_HAL_OK, ret, "audio open failed");
+ if (ret != MEDIA_HAL_OK) {
+ MEDIA_HAL_LOGE(MODULE_NAME, "audio open failed");
+ MediaHalMutexUnLock(portTrackOutCtx->subPortCtx->createTrackMutex);
+ return ret;
+ }
ret = AudioSDKAttachInternal(portTrackOutCtx);
if (ret != MEDIA_HAL_OK) {
MEDIA_HAL_LOGE(MODULE_NAME, "audio attach failed");
MEDIA_HAL_LOGE(MODULE_NAME, "register adp event failed");
goto AUDIO_STOP;
}
+ MediaHalMutexUnLock(portTrackOutCtx->subPortCtx->createTrackMutex);
#else
MEDIA_HAL_DOFUNC_TIME(ret = uapi_snd_track_resume(portTrackOutCtx->trackHandle));
CHK_FAILED_RETURN(ret, MEDIA_HAL_OK, ret, "sound track resume failed");
#else
MEDIA_HAL_UNUSED(trackHandle);
#endif
-
- MEDIA_HAL_LOGD(MODULE_NAME, "success");
return MEDIA_HAL_OK;
#ifdef MINI_MEMORY_SUPPORT
(void)AudioSDKDetachInternal(portTrackOutCtx);
AUDIO_CLOSE:
(void)AudioSDKCloseInternal(portTrackOutCtx);
+ MediaHalMutexUnLock(portTrackOutCtx->subPortCtx->createTrackMutex);
return ret;
#endif
}
CHK_FAILED_RETURN(ret, MEDIA_HAL_OK, ret, "uapi_snd_set_track_volume failed");
portTrackOutCtx->volume = volume;
+ MEDIA_HAL_LOGI(MODULE_NAME, "set volume %d success", tmpVolume);
#else
MEDIA_HAL_UNUSED(trackHandle);
MEDIA_HAL_UNUSED(volume);
#endif
- MEDIA_HAL_LOGI(MODULE_NAME, "set volume %f success", volume);
return MEDIA_HAL_OK;
}
ret = MEDIA_HAL_ERR;
goto FREE_PORT;
}
-
+ portOutCtx->createTrackMutex = MediaHalMutexCreate(NULL);
+ if (portOutCtx->createTrackMutex == NULL) {
+ MEDIA_HAL_LOGE(MODULE_NAME, "create mutex failed");
+ goto FREE_PORT;
+ }
portOutCtx->sndDevId = sndDevId;
*portHandle = portOutCtx;
#else
(void)SubPortTrackOutManagerDeInit();
+ MediaHalMutexDestroy(&portOutCtx->createTrackMutex);
+
free(portOutCtx);
#else
MEDIA_HAL_UNUSED(portHandle);
AudioHandle *trackHandle)
{
SubPortOutContext *portOutCtx = (SubPortOutContext *)portHandle;
-
+ MediaHalMutexLock(portOutCtx->createTrackMutex);
int32_t sndTrackId = SubPortTrackOutManagerGetFreeTrack();
- CHK_COND_RETURN(sndTrackId == INVALID_ID, MEDIA_HAL_INVALID_PARAM, "no free sound track");
-
- int32_t ret;
- SubPortTrackOutContext *portTrackOutCtx = (SubPortTrackOutContext *)malloc(sizeof(SubPortTrackOutContext));
- if (portTrackOutCtx == NULL) {
- MEDIA_HAL_LOGI(MODULE_NAME, "malloc failed");
- ret = MEDIA_HAL_NO_MEM;
- goto FREE_TRACK;
+ if (sndTrackId == INVALID_ID) {
+ MEDIA_HAL_LOGE(MODULE_NAME, "no free sound track");
+ MediaHalMutexUnLock(portOutCtx->createTrackMutex);
+ return MEDIA_HAL_INVALID_PARAM;
}
-
- if (memset_s(portTrackOutCtx, sizeof(SubPortTrackOutContext), 0, sizeof(SubPortTrackOutContext)) != EOK) {
- MEDIA_HAL_LOGE(MODULE_NAME, "memset_s failed");
- ret = MEDIA_HAL_ERR;
- goto FREE_TRACK_CTX;
+ SubPortTrackOutContext *portTrackOutCtx = NULL;
+ int32_t ret = SubPortTrackOutInit(&portTrackOutCtx, inputAttr);
+ if (ret != MEDIA_HAL_OK || portTrackOutCtx == NULL) {
+ goto FREE_TRACK;
}
-
- SubPortTrackOutInit(portTrackOutCtx, inputAttr);
-
#ifdef AUDIO_SDK_SUPPORT
ret = AODevOpen(portOutCtx, portTrackOutCtx->inputAttr.type);
if (ret != MEDIA_HAL_OK) {
portOutCtx->portTrack[sndTrackId] = portTrackOutCtx;
*trackHandle = &portTrackOutCtx->common;
#endif
- MEDIA_HAL_LOGD(MODULE_NAME, "success");
+ MediaHalMutexUnLock(portOutCtx->createTrackMutex);
return MEDIA_HAL_OK;
AO_DEV_CLOSE:
#ifdef AUDIO_SDK_SUPPORT
(void)SubPortTrackOutManagerFreeTrack(sndTrackId);
#endif
+ MediaHalMutexUnLock(portOutCtx->createTrackMutex);
return ret;
}
{
SubPortOutContext *portOutCtx = (SubPortOutContext *)portHandle;
SubPortTrackOutContext *portTrackOutCtx = (SubPortTrackOutContext *)trackHandle;
-
- bool isValid = PrimaryPortIsValidTrack(portOutCtx, portTrackOutCtx);
- CHK_FAILED_RETURN(isValid, true, MEDIA_HAL_INVALID_PARAM, "track is invalid");
+ MediaHalMutexLock(portOutCtx->createTrackMutex);
+ if (!PrimaryPortIsValidTrack(portOutCtx, portTrackOutCtx)) {
+ MEDIA_HAL_LOGE(MODULE_NAME, "track is invalid");
+ MediaHalMutexUnLock(portOutCtx->createTrackMutex);
+ return MEDIA_HAL_INVALID_PARAM;
+ }
#ifdef AUDIO_SDK_SUPPORT
int32_t ret = MEDIA_HAL_ERR;
ret = SubPortTrackOutManagerFreeTrack(portTrackOutCtx->sndTrackId);
CHK_FAILED_NO_RETURN(ret, MEDIA_HAL_OK, "SubPortTrackOutManagerFreeTrack failed");
#endif
-
+ MediaHalMutexUnLock(portOutCtx->createTrackMutex);
if (portTrackOutCtx->inputAttr.extraData != NULL) {
free(portTrackOutCtx->inputAttr.extraData);
portTrackOutCtx->inputAttr.extraData = NULL;
}
}
-int32_t GLOBAL_GetValueById(uint32_t id, const char *path, char **value)
+static int32_t GLOBAL_GetValueByIdInternal(uint32_t id, const char *path, const char *locale, char **value)
{
- if (path == NULL || path[0] == '\0' || value == NULL) {
- return MC_FAILURE;
- }
-
- char tempLocale[MAX_LOCALE_LENGTH] = {'\0'};
- int32_t ret = strcpy_s(tempLocale, MAX_LOCALE_LENGTH, g_locale);
- if (ret != EOK) {
- return MC_FAILURE;
- }
-
char realResourcePath[PATH_MAX] = {'\0'};
GlobalUtilsImpl *utilsImpl = GetGlobalUtilsImpl();
if (utilsImpl->CheckFilePath(path, realResourcePath, PATH_MAX) == MC_FAILURE) {
return MC_FAILURE;
}
- uint32_t idHeaderOffset = utilsImpl->GetOffsetByLocale(realResourcePath, tempLocale, MAX_LOCALE_LENGTH);
+ uint32_t idHeaderOffset = utilsImpl->GetOffsetByLocale(realResourcePath, locale, MAX_LOCALE_LENGTH);
IdHeader idHeader = {0, NULL};
int32_t file = open(realResourcePath, O_RDONLY, S_IRUSR | S_IRGRP | S_IROTH);
if (file < 0) {
return MC_FAILURE;
}
- ret = utilsImpl->GetIdHeaderByOffset(file, idHeaderOffset, &idHeader);
+ int32_t ret = utilsImpl->GetIdHeaderByOffset(file, idHeaderOffset, &idHeader);
if (ret != MC_SUCCESS) {
close(file);
return ret;
}
+ int32_t result = MC_FAILURE;
IdItem idItem = {0, INVALID_RES_TYPE, 0, 0, NULL, 0, NULL};
for (uint32_t i = 0; i < idHeader.count; i++) {
if (idHeader.idParams[i].id == id) {
- int32_t ret = utilsImpl->GetIdItem(file, idHeader.idParams[i].offset, &idItem);
+ ret = utilsImpl->GetIdItem(file, idHeader.idParams[i].offset, &idItem);
if (ret != MC_SUCCESS) {
close(file);
free(idHeader.idParams);
FreeValue(value);
return MC_FAILURE;
}
+ result = MC_SUCCESS;
break;
}
}
close(file);
free(idHeader.idParams);
FreeIdItem(&idItem);
- return MC_SUCCESS;
+ return result;
}
-int32_t GLOBAL_GetValueByName(const char *name, const char *path, char **value)
+int32_t GLOBAL_GetValueById(uint32_t id, const char *path, char **value)
{
- if (name == NULL || strlen(name) == 0 || path == NULL || strlen(path) == 0 || value == NULL) {
+ if (path == NULL || path[0] == '\0' || value == NULL) {
return MC_FAILURE;
}
if (ret != EOK) {
return MC_FAILURE;
}
+
+ char *locales[] = {tempLocale, ""};
+ for (int i = 0; i < 2; i++) { // 2 current language and the default.
+ if (GLOBAL_GetValueByIdInternal(id, path, locales[i], value) == MC_SUCCESS) {
+ return MC_SUCCESS;
+ }
+ }
+ return MC_FAILURE;
+}
+
+static int32_t GLOBAL_GetValueByNameInternal(const char *name, const char *path, const char *locale, char **value)
+{
char realResourcePath[PATH_MAX] = {'\0'};
GlobalUtilsImpl *utilsImpl = GetGlobalUtilsImpl();
if (utilsImpl->CheckFilePath(path, realResourcePath, PATH_MAX) == MC_FAILURE) {
return MC_FAILURE;
}
- uint32_t idHeaderOffset = utilsImpl->GetOffsetByLocale(realResourcePath, tempLocale, MAX_LOCALE_LENGTH);
+ uint32_t idHeaderOffset = utilsImpl->GetOffsetByLocale(realResourcePath, locale, MAX_LOCALE_LENGTH);
IdHeader idHeader = {0, NULL};
int32_t file = open(realResourcePath, O_RDONLY, S_IRUSR | S_IRGRP | S_IROTH);
if (file < 0) {
return MC_FAILURE;
}
- ret = utilsImpl->GetIdHeaderByOffset(file, idHeaderOffset, &idHeader);
+ int32_t ret = utilsImpl->GetIdHeaderByOffset(file, idHeaderOffset, &idHeader);
if (ret != MC_SUCCESS) {
close(file);
return ret;
}
+ int32_t result = MC_FAILURE;
IdItem idItem = {0, INVALID_RES_TYPE, 0, 0, NULL, 0, NULL};
for (uint32_t i = 0; i < idHeader.count; i++) {
- int32_t ret = utilsImpl->GetIdItem(file, idHeader.idParams[i].offset, &idItem);
+ ret = utilsImpl->GetIdItem(file, idHeader.idParams[i].offset, &idItem);
if (ret != MC_SUCCESS) {
close(file);
free(idHeader.idParams);
FreeValue(value);
return MC_FAILURE;
}
+ result = MC_SUCCESS;
break;
}
close(file);
free(idHeader.idParams);
FreeIdItem(&idItem);
- return MC_SUCCESS;
+ return result;
+}
+
+int32_t GLOBAL_GetValueByName(const char *name, const char *path, char **value)
+{
+ if (name == NULL || strlen(name) == 0 || path == NULL || strlen(path) == 0 || value == NULL) {
+ return MC_FAILURE;
+ }
+
+ char tempLocale[MAX_LOCALE_LENGTH] = {'\0'};
+ int32_t ret = strcpy_s(tempLocale, MAX_LOCALE_LENGTH, g_locale);
+ if (ret != EOK) {
+ return MC_FAILURE;
+ }
+
+ char *locales[] = {tempLocale, ""};
+ for (int i = 0; i < 2; i++) { // 2 current language and the default.
+ if (GLOBAL_GetValueByNameInternal(name, path, locales[i], value) == MC_SUCCESS) {
+ return MC_SUCCESS;
+ }
+ }
+ return MC_FAILURE;
}
(void)Split(locale, "_", resConfig, &count);
} else {
resConfig[0] = (char *)locale;
+ count = 1;
}
return GetIdHeaderOffsetByCount(resConfig, keys, configNum, count);
}
void Component::ReleaseCommonEventListeners()
{
RootView *rootView = RootView::GetInstance();
- if (rootView != nullptr) {
+ if (rootView != nullptr && rootView->GetOnKeyActListener() == onKeyInputListener_) {
rootView->ClearOnKeyActListener();
}
ACE_DELETE(onKeyInputListener_);
selectedColor_(Color::White()),
selectedFontSize_(PICKER_SELECTED_FONT_SIZE),
selectedFontFamily_(nullptr),
+ pickerItemHeight_(PICKER_ITEM_HEIGHT),
textSelected_(0),
pTextArray_(nullptr),
textArraySize_(0),
uiPicker = nullptr;
return false;
}
- uiPicker->SetItemHeight(PICKER_ITEM_HEIGHT);
+ uiPicker->SetItemHeight(pickerItemHeight_);
pickerView_ = static_cast<UIView *>(uiPicker);
return true;
}
uiTimePicker = nullptr;
return false;
}
- uiTimePicker->SetItemHeight(PICKER_ITEM_HEIGHT);
+ uiTimePicker->SetItemHeight(pickerItemHeight_);
pickerView_ = static_cast<UIView *>(uiTimePicker);
return true;
}
uiImagePicker = nullptr;
return false;
}
- uiImagePicker->SetItemHeight(PICKER_ITEM_HEIGHT);
+ uiImagePicker->SetItemHeight(pickerItemHeight_);
uiImagePicker->SetItemWidth(PICKER_ITEM_WIDTH);
pickerView_ = uiImagePicker;
return true;
uiDatePicker = nullptr;
return false;
}
- uiDatePicker->SetItemHeight(PICKER_ITEM_HEIGHT);
+ uiDatePicker->SetItemHeight(pickerItemHeight_);
pickerView_ = static_cast<UIView *>(uiDatePicker);
return true;
}
switch (pickerType_) {
case PickerType::TEXT: {
UIPicker *textPicker = reinterpret_cast<UIPicker *>(pickerView_);
- if (PICKER_ITEM_HEIGHT < selectedFontSize_) {
- textPicker->SetItemHeight(selectedFontSize_);
- }
textPicker->SetBackgroundFont(fontFamily_, fontSize_);
textPicker->SetHighlightFont(selectedFontFamily_, selectedFontSize_);
textPicker->SetTextColor(color_, selectedColor_);
+ textPicker->SetItemHeight(pickerItemHeight_);
break;
}
case PickerType::TIME: {
timePicker->SetBackgroundFont(fontFamily_, fontSize_);
timePicker->SetHighlightFont(selectedFontFamily_, selectedFontSize_);
timePicker->SetTextColor(color_, selectedColor_);
+ timePicker->SetItemHeight(pickerItemHeight_);
break;
}
#ifdef FEATURE_COMPONENT_DATE_PICKER
break;
case K_FONT_SIZE:
fontSize_ = GetStylePixelValue(styleItem);
+ // reset picker item height if fontSize is larger than PICKER_SELECTED_FONT_SIZE.
+ if (fontSize_ > PICKER_SELECTED_FONT_SIZE) {
+ pickerItemHeight_ = fontSize_ + PICKER_ITEM_HEIGHT_GAP;
+ }
break;
case K_FONT_FAMILY:
CopyFontFamily(fontFamily_, GetStyleStrValue(styleItem));
break;
case K_SELECTED_FONT_SIZE:
selectedFontSize_ = GetStylePixelValue(styleItem);
+ // reset picker item height if selectedFontSize is larger than PICKER_SELECTED_FONT_SIZE.
+ if (selectedFontSize_ > PICKER_SELECTED_FONT_SIZE) {
+ pickerItemHeight_ = selectedFontSize_ + PICKER_ITEM_HEIGHT_GAP;
+ }
break;
case K_SELECTED_FONT_FAMILY:
CopyFontFamily(selectedFontFamily_, GetStyleStrValue(styleItem));
#endif // FEATURE_COMPONENT_DATE_PICKER
static constexpr int16_t PICKER_ITEM_HEIGHT = 50; // default picker item height
static constexpr uint8_t PICKER_SELECTED_FONT_SIZE = 38; // F_HYQIHEI_65S_38_4
+// the gap size add with font size to calculate picker item height.
+static constexpr int16_t PICKER_ITEM_HEIGHT_GAP = 25;
/**
* @brief listener class for text picker onchange event.
ColorType selectedColor_;
uint8_t selectedFontSize_;
char* selectedFontFamily_;
+ uint16_t pickerItemHeight_;
// text picker-view attributes
uint16_t textSelected_;
HILOG_MODULE_MAX\r
} HiLogModuleType;\r
\r
-#ifndef HSO_SUPPORT\r
-#if HILOG_DEBUG_ENABLE\r
+// #ifndef HSO_SUPPORT\r
+// #if HILOG_DEBUG_ENABLE\r
#define HILOG_DEBUG(mod, format, ...) \\r
do \\r
{ \\r
printf("R " format "\n", ##__VA_ARGS__); \\r
} while (0)\r
\r
-#else\r
-#define HILOG_DEBUG(mod, format, ...) uapi_diag_debug_log(0, format, ##__VA_ARGS__)\r
-#define HILOG_ERROR(mod, format, ...) uapi_diag_error_log(0, format, ##__VA_ARGS__)\r
-#define HILOG_FATAL(mod, format, ...) uapi_diag_error_log(0, format, ##__VA_ARGS__)\r
-#define HILOG_INFO(mod, format, ...) uapi_diag_info_log(0, format, ##__VA_ARGS__)\r
-#define HILOG_WARN(mod, format, ...) uapi_diag_warning_log(0, format, ##__VA_ARGS__)\r
-#define HILOG_RACE(mod, format, ...)\r
-#endif\r
-#endif // OHOS_AAFWK_BASE_LOG_H\r
+// #else\r
+// #define HILOG_DEBUG(mod, format, ...) uapi_diag_debug_log(0, format, ##__VA_ARGS__)\r
+// #define HILOG_ERROR(mod, format, ...) uapi_diag_error_log(0, format, ##__VA_ARGS__)\r
+// #define HILOG_FATAL(mod, format, ...) uapi_diag_error_log(0, format, ##__VA_ARGS__)\r
+// #define HILOG_INFO(mod, format, ...) uapi_diag_info_log(0, format, ##__VA_ARGS__)\r
+// #define HILOG_WARN(mod, format, ...) uapi_diag_warning_log(0, format, ##__VA_ARGS__)\r
+// #define HILOG_RACE(mod, format, ...)\r
+// #endif\r
+// #endif // OHOS_AAFWK_BASE_LOG_H\r
void *PSRAM_Malloc(uint32_t size);
void *PSRAM_Calloc(uint32_t nitems, uint32_t size);
void PSRAM_Free(void *buffer);
+void AceMemInfoPrint(void);
#ifdef __cplusplus
#if __cplusplus
namespace ACELite {\r
NetCallBack NetWorkModule::callback_;\r
\r
-void NetWorkModule::TriggerCallbackListener(char *netConnectStatus, uint32_t Len)\r
+void NetWorkModule::TriggerCallbackListener(uint8_t netConnectStatus, uint8_t type)\r
{\r
- if (netConnectStatus != nullptr) {\r
- callback_.netParam.Len = Len;\r
- char *newData = (char *)realloc(callback_.netParam.status, Len + 1);\r
- memset_s(newData, Len + 1, 0, Len + 1);\r
- if (newData != nullptr) {\r
- callback_.netParam.status = newData;\r
- memcpy_s(callback_.netParam.status, Len, netConnectStatus, Len);\r
- }\r
- }\r
- callback_.netParam.Len = Len;\r
+ callback_.netParam.status = netConnectStatus;\r
+ callback_.netParam.net_type = type;\r
if (!JsAsyncWork::DispatchAsyncWork(AsyncExecuteCallback, const_cast<NetParam *>(&callback_.netParam))) {\r
MEDIA_ERR_LOG("dispatch async work failed.");\r
}\r
return (value != nullptr) && (!JSI::ValueIsUndefined(value));\r
}\r
\r
+const char* GetNetworkStatusString(uint8_t type, uint8_t status) {\r
+ // 网络类型\r
+ const char *networkType;\r
+ switch (type) {\r
+ case NETWORK_TYPE_WIFI:\r
+ networkType = "WIFI";\r
+ break;\r
+ case NETWORK_TYPE_BLUETOOTH:\r
+ networkType = "Bluetooth";\r
+ break;\r
+ default:\r
+ networkType = "Unknown Network Type";\r
+ break;\r
+ }\r
+\r
+ // 连接状态\r
+ const char *connectionStatus;\r
+ switch (status) {\r
+ case CONNECTION_STATUS_CONNECTING:\r
+ connectionStatus = "Connecting";\r
+ break;\r
+ case CONNECTION_STATUS_CONNECTED:\r
+ connectionStatus = "Connected";\r
+ break;\r
+ case CONNECTION_STATUS_DISCONNECTED:\r
+ connectionStatus = "Disconnected";\r
+ break;\r
+ default:\r
+ connectionStatus = "Unknown Status";\r
+ break;\r
+ }\r
+\r
+ // 静态字符串缓冲区,用于返回结果\r
+ static char result[MAX_STATUS_LENGTH];\r
+ snprintf(result, sizeof(result), "%s: %s", networkType, connectionStatus);\r
+\r
+ return result;\r
+}\r
+\r
void NetWorkModule::AsyncExecuteCallback(void *arg)\r
{\r
NetParam *netParam = static_cast<NetParam *>(arg);\r
if (ValidJsValue(callback_.net_connect_callback) && netParam != nullptr) {\r
- JSIValue result = JSI::CreateString(static_cast<char *>(netParam->status));\r
+ JSIValue result = JSI::CreateString(const_cast<char *>(GetNetworkStatusString(netParam->net_type, netParam->status)));\r
JSIValue argv[ARGC_ONE] = {result};\r
JSI::CallFunction(callback_.net_connect_callback, callback_.net_connect_thisVal, argv, ARGC_ONE);\r
JSI::ReleaseValue(result);\r
return JSI::CreateUndefined();\r
}\r
\r
- if (callback_.net_connect_callback != nullptr) {\r
- HILOG_WARN(HILOG_MODULE_ACE, "net connection callback already registered");\r
- return JSI::CreateUndefined();\r
- }\r
-\r
+ JSI::ReleaseValue(callback_.net_connect_thisVal);\r
+ JSI::ReleaseValue(callback_.net_connect_callback);\r
callback_.net_connect_thisVal = JSI::AcquireValue(thisVal);\r
callback_.net_connect_callback = JSI::AcquireValue(args[0]);\r
if (callback_.net_connect_callback == nullptr) {\r
}\r
\r
// 可以在注册回调后执行其他必要的操作\r
- net_connect_status_change("test", strlen("test"));\r
+ net_connect_status_change(CONNECTION_STATUS_DISCONNECTED, NETWORK_TYPE_BLUETOOTH);\r
\r
return JSI::CreateUndefined();\r
}\r
JSIValue NetWorkModule::GetConnectState(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum)\r
{\r
\r
- return JSI::CreateString(callback_.netParam.status);\r
+ return JSI::CreateString(const_cast<char *>(GetNetworkStatusString(callback_.netParam.net_type, callback_.netParam.status)));\r
}\r
\r
}\r
extern "C" {\r
#endif\r
\r
-void net_connect_status_change(char *netConnectStatus, uint32_t Len)\r
+void net_connect_status_change(uint8_t netConnectStatus,uint8_t type)\r
{\r
- OHOS::ACELite::NetWorkModule::TriggerCallbackListener(netConnectStatus, Len);\r
+ OHOS::ACELite::NetWorkModule::TriggerCallbackListener(netConnectStatus, type);\r
}\r
\r
#ifdef __cplusplus\r
#ifdef __cplusplus\r
extern "C" {\r
#endif\r
-void net_connect_status_change(char *netConnectStatus, uint32_t Len);\r
+void net_connect_status_change(uint8_t netConnectStatus,uint8_t type);\r
#ifdef __cplusplus\r
};\r
#endif\r
\r
namespace OHOS {\r
namespace ACELite {\r
+#define MAX_STATUS_LENGTH 128\r
+// ÍøÂçÀàÐÍö¾Ù\r
+typedef enum {\r
+ NETWORK_TYPE_WIFI = 0,\r
+ NETWORK_TYPE_BLUETOOTH,\r
+ NETWORK_TYPE_UNKNOWN\r
+} NetworkType;\r
+\r
+// Á¬½Ó״̬ö¾Ù\r
+typedef enum {\r
+ CONNECTION_STATUS_CONNECTING = 0,\r
+ CONNECTION_STATUS_CONNECTED,\r
+ CONNECTION_STATUS_DISCONNECTED,\r
+ CONNECTION_STATUS_UNKNOWN\r
+} ConnectionStatus;\r
\r
struct NetParam {\r
- char *status = nullptr;\r
- uint32_t Len = 0;\r
+ uint8_t status;\r
+ uint8_t net_type = -1;\r
};\r
\r
struct NetCallBack {\r
static JSIValue UnregisterConnectListener(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);\r
static JSIValue GetConnectState(const JSIValue thisVal, const JSIValue *args, uint8_t argsNum);\r
static void AsyncExecuteCallback(void *arg);\r
- static void TriggerCallbackListener(char *netConnectStatus, uint32_t Len);\r
+ static void TriggerCallbackListener(uint8_t netConnectStatus, uint8_t type);\r
};\r
\r
void InitNetWorkModule(JSIValue exports)\r
return false;
}
cJSON *json = cJSON_Parse(content);
- ace_free(content);
+ free(content);
content = nullptr;
if (json == nullptr) {
return false;
uint8_t keyCount = Split(key, '.', *&keys);
char *content = ReadJSFile(filePath_, languageFile);
cJSON *fileJson = cJSON_Parse(content);
- ACE_FREE(content);
+ free(content);
cJSON *curJsonItem = fileJson;
uint8_t curKeyIndex = 0;
do {
}\r
if (argsNum == 1 && jerry_value_is_function(args[0])) {\r
jerry_release_value(imageModel->onLoadFunc_);\r
- imageModel->onLoadFunc_ = args[0];\r
+ imageModel->onLoadFunc_ = jerry_acquire_value(args[0]);\r
} else {\r
return jerry_create_error(JERRY_ERROR_EVAL,\r
reinterpret_cast<const jerry_char_t *>("set imageModel onload arg fail"));\r
}\r
if (argsNum >= 1 && jerry_value_is_function(args[0])) {\r
jerry_release_value(imageModel->onErrorFunc_);\r
- imageModel->onErrorFunc_ = args[0];\r
+ imageModel->onErrorFunc_ = jerry_acquire_value(args[0]);\r
} else {\r
return jerry_create_error(JERRY_ERROR_EVAL,\r
reinterpret_cast<const jerry_char_t *>("set imageModel onload arg fail"));\r
const char *attributeName,\r
jerry_external_handler_t setterHandler,\r
jerry_external_handler_t getterHandler);\r
-#if (defined(ENABLED_DELETE_MODULE_IAMGE) && (ENABLED_DELETE_MODULE_IAMGE == 1))\r
static void DeleteImage(void* ptr)\r
{\r
ImageModule* image = reinterpret_cast<ImageModule*>(ptr);\r
ACE_DELETE(image);\r
}\r
-#endif\r
\r
static void OnCallBack(const jerry_value_t context, const ImageModule *imageModule, bool isSucess, const char* msg);\r
// the handle to release the native value when the js value number format object is not needed.\r
static constexpr jerry_object_native_info_t gcCallback = {\r
-#if ENABLED_DELETE_MODULE_IAMGE\r
.free_cb = DeleteImage\r
-#endif\r
};\r
static const char * const attrOnload;\r
static const char * const attrOnError;\r
JSIValue args = params->args;\r
JSIValue thisVal = params->thisVal;\r
JSIValue result = JSI::CreateObject();\r
+ JSI::SetStringProperty(result, "result", "success");\r
char* mode = JSI::GetStringProperty(args, VIBTATOR_MODE);\r
if (strcmp(mode, "long") == 0|| strcmp(mode, "short") == 0) {\r
SuccessCallBack(thisVal, args, result);\r
*/
static JSIValue OnTimeUpdateSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+ /**
+ * the getter of stream type
+ *
+ * @param thisVal Indicates function execute context
+ * @param args Indicates the function arguments
+ * @param argsSize Indicates the size of function arguments
+ */
+ static JSIValue StreamTypeGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
+ /**
+ * the setter of stream type
+ *
+ * @param thisVal Indicates function execute context
+ * @param args Indicates the function arguments
+ * @param argsSize Indicates the size of function arguments
+ */
+ static JSIValue StreamTypeSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
private:
static JSIValue GetEventCallback(const AudioEventListener *listener);
#include "jsi.h"
#include "player.h"
+#include "audio_base_type.h"
#include "media_thread_adapt.h"
namespace OHOS {
bool SetVolume(double volume);
+ bool SetStreamType(AudioStreamType streamType);
+
bool SetMuted(bool muted);
int32_t SetAudioSessionId(uint32_t sessionId);
bool isRunning_;
bool isSysSrc_;
MediaThreadIdHandle updateTimeProcess_;
+ AudioStreamType streamType_ = AUDIO_STREAM_MUSIC;
};
} // namespace ACELite
} // namespace OHOS
*/
void MediaThreadCondDestroy(MediaThreadCondHandle *condHandle);
+void MediaThreadSetDetach(MediaThreadIdHandle thdId, bool detach);
+
#ifdef __cplusplus
};
#endif
GAP_IF_SET_INQUIRY_SCAN_PARAM,
GAP_IF_RESTORE_REMOTE_DEVICE,
GAP_IF_GET_LINK_MODE,
- GAP_IF_SET_BR_SECURE_PARAM
+ GAP_IF_SET_BR_SECURE_PARAM,
+ GAP_IF_SET_BTH_FLOW_LIMIT,
} mpc_bt_stack_gap_opcode;
/* service_id: MC_BT_SRV_A2DP */
osal_timer g_a2dp_stream_accept_timer = {0};
#define A2DP_STREAM_ACCEPT_TIMER_PERIOD 500
+static bool g_a2dp_snk_active_disconnect = false;
static void sample_a2dp_snk_accept_timer_stop(void)
{
{
bts_sample_log_with_func("addr: ****%02x%02x%02x%02x conn_state: %x\n",
bd_addr->addr[3], bd_addr->addr[2], bd_addr->addr[1], bd_addr->addr[0], conn_state); /* 3 2 1 0 idx */
+ /* 主动断开service,断开事件上报后才能去注册server否则状态无法上报 */
+ if (g_a2dp_snk_active_disconnect == true && conn_state == PROFILE_STATE_DISCONNECTED) {
+ a2dp_snk_service_unregister();
+ g_a2dp_snk_active_disconnect = false;
+ }
}
static void sample_a2dp_snk_start_stream_request_callback(const bd_addr_t *bd_addr)
/* 与设备建立A2DP连接 */
int wstp_a2dp_snk_connect(const bd_addr_t *bd_addr)
{
+ /* 连接service前要注册server否则状态无法上报 */
+ a2dp_snk_service_register();
int ret = a2dp_snk_connect(bd_addr);
bts_sample_log("a2dp_snk_connect ret(int): %x\n", ret);
return ret;
/* 与设备断开A2DP连接 */
int wstp_a2dp_snk_disconnect(const bd_addr_t *bd_addr)
{
+ if (a2dp_snk_get_device_connect_state(bd_addr) != PROFILE_STATE_CONNECTED) {
+ bts_sample_log("a2dp_snk_disconnect not connected\n");
+ return EXT_ERR_FAILURE;
+ }
+ g_a2dp_snk_active_disconnect = true;
int ret = a2dp_snk_disconnect(bd_addr);
bts_sample_log("a2dp_snk_disconnect ret(int): %x\n", ret);
return ret;
break;
case HFP_SCO_STATE_DISCONNECTED:
+ case HFP_SCO_STATE_CONNECT_FAILURE:
task_body = sample_audio_deinit_task_body;
break;
BTSRV_SAMPLE_GAP_SET_INQUIRY_PARAM, /* 35 设置搜到参数 */
BTSRV_SAMPLE_GAP_SET_SERVICE_TASK_PRIORITY, /* 36 设置BT_SERVICE_TASK优先级 */
+ BTSRV_SAMPLE_GAP_SET_FLOW_LIMIT, /* 37 设置流控限制字节数 */
} btsrv_gap_sample_cmd_id;
typedef enum {
bts_sample_log("bts set service task priority ret:0x%x priority:%d\n", ret, task_priority);
}
+static void btsrv_sample_cmd_set_flow_limit(const char **params, int32_t params_cnt)
+{
+ if (params_cnt != 1) { /* 1:参数个数 */
+ bts_sample_log("params_cnt error! need one param!\n");
+ return;
+ }
+ uint16_t flow_limit = (uint16_t)atoi(params[0]);
+ errcode_t ret = gap_bt_set_flow_limit(flow_limit);
+ bts_sample_log("bts set flow limit ret:0x%x limit:%d\n", ret, flow_limit);
+}
+
btsrv_sample_cmd_hdl_info g_btsrv_gap_sample_hdls[] = {
/* 0 */
{ BTSRV_SAMPLE_GAP_ENABLE_BLE, btsrv_sample_cmd_enable_ble },
/* 35 */
{ BTSRV_SAMPLE_GAP_SET_INQUIRY_PARAM, btsrv_sample_cmd_set_filter_device_class },
- { BTSRV_SAMPLE_GAP_SET_SERVICE_TASK_PRIORITY, btsrv_sample_cmd_set_service_task_priority}
+ { BTSRV_SAMPLE_GAP_SET_SERVICE_TASK_PRIORITY, btsrv_sample_cmd_set_service_task_priority},
+ { BTSRV_SAMPLE_GAP_SET_FLOW_LIMIT, btsrv_sample_cmd_set_flow_limit},
};
void btsrv_gap_sample_cmd(uint32_t cmd_id, const char **params, int32_t params_cnt)
Other values to respond later with btsdk_agap_set_cur_indicator_val */
BTSDK_HFP_EV_CODEC_CHANGED_IND, /* Codec changed by the latest Codec Negotiation procedure. Parameter: uint8_t -
Codec ID, e.g. BTSDK_SCO_CODEC_CVSD */
+ BTSDK_HFP_EV_AUDIO_CONNECT_FAILURE_IND, /* 69 Fails to create the audio connection. UINT8* to return the reason */
BTSDK_HFP_EV_INBANDRING_IND = 74, /* 74 +BSIR=<supported>, +BRSF(inband ring feature)
AG notify the HF inband ring supported or not,
uint8_t * - inbandring supported (0,1) */
version https://git-lfs.github.com/spec/v1
-oid sha256:1c2c6e827eb257e312c39c379615dc65f4d340df62244627fe0f2502f55ed513
-size 425632
+oid sha256:8e8536a8ef09062636e9523134560b0975a8b82600fdaaf7692c15ebfee2379a
+size 424976
--- /dev/null
+【补丁名称】patch_602_0911_to_1009\r
+【基础版本】b602 + 0521 + 0626 + 7020 + 0812 + 0911\r
+【修复问题】\r
+BT合入内容\r
+ 1、新提供流控配置接口。\r
+ 2、新提供动态注册a2dp snk服务的新功能。\r
+ 3、新增sco链路创建失败的异常处理事件。\r
+ 4、优化对外头文件中BLE连接参数结构体注释。\r
+ 5、HCI上行流控堆包计数加上HCI qos积包,解决src和snk同时积包触发内存不足的问题。\r
+PLT合入内容\r
+ 1、解决pll问题\r
+ 2、解决systick问题\r
+MEDIA合入内容\r
+ 1、解决视频线程的退出时序,针对主动退出的时候,才进行join,解决视频停播以及冻屏的问题\r
+ 2、修改本地铃声和蓝牙通话,以及蓝牙通话+ 本地铃声是混音策略\r
+ 3、修改本地铃声+蓝牙通话的时候不压本地铃声的低音量,以防止听不到铃声\r
+ 4、当需要恢复播放的时候,需要判断当前可被恢复的焦点是否已经创建了流,如果已经创建则不能删除焦点,防止恢复的时候找不到焦点而报错\r
+ 5、js播放器对外接口,新增设置流类型参数的接口,可以更改流类型,以满足不同场景的播放需求\r
+GUI合入内容\r
+ 1、移除UILabel SetTextTransform接口,文字和表情包随控件变换而变换\r
+ 2、修改Text支持的最大行数为70\r
+ 3、解决UILabel在LINE_BREAK_OSCILLATION模式下滚动过快的问题\r
+ 4、解决UITransformGroup显示异常的问题\r
+ 5、优化SlipFlow相关功能\r
+OHOS合入内容\r
+ 1、百度导航增加 msgData释放、主动解注册接口、onDestroy被动清理。\r
+ 2、百度page切换使用公共内存。\r
+ 3、串口日志默认开启。\r
+ 4、network jsi接口整改。\r
+ 5、JS Demo国际化整改,支持应用名切换和内部文字国际化。\r
+ 6、DMSLiteSendP2PMsg方法返回值修改。\r
+ 7、解决国际化文件缺失时不能安装应用\r
+ 8、新增跑马灯文字旋转\r
+ 9、JS支持获取旋钮,按键事件监听\r
+ 10、新增一个AT命令,用于切换系统语言。\r
+ 11、修复在JS应用内使用POWER键退出后POWER键失效的问题\r
+GPU合入内容:\r
+ 1、解决rm 异常分支打印无输出\r
+ 2、解决vau_create_stroke_to_fill_path 死循环问题\r
+NATIVE-JS sample合入内容\r
+ 1、解决sco兼容性问题\r
+\r
+【修改影响】NA\r
+\r
+【使用方法】\r
+ 1、合入0521补丁\r
+ 2、合入0626补丁\r
+ 3、合入0720补丁\r
+ 4、合入0812补丁\r
+ 5、合入0911补丁\r
+ 6、合入0911补丁\r
+\r
+【自测情况】\r
+ 自验证范围:\r
+ 全功能冒烟\r
+ 自验证target:\r
+ Native-js、target3 rc版本\r
+【是否合入版本】根据测试结果确定\r