134 lines
3.8 KiB
C
134 lines
3.8 KiB
C
/***************************************************************************
|
|
*
|
|
* Copyright 2015-2019 BES.
|
|
* All rights reserved. All unpublished rights reserved.
|
|
*
|
|
* No part of this work may be used or reproduced in any form or by any
|
|
* means, or stored in a database or retrieval system, without prior written
|
|
* permission of BES.
|
|
*
|
|
* Use of this work is governed by a license granted by BES.
|
|
* This work contains confidential and proprietary information of
|
|
* BES. which is protected by copyright, trade secret,
|
|
* trademark and other intellectual property rights.
|
|
*
|
|
****************************************************************************/
|
|
#if !defined(NEW_NV_RECORD_ENABLED)
|
|
|
|
#include "nvrecord_env.h"
|
|
#include "customparam_section.h"
|
|
#include "hal_trace.h"
|
|
#include "nvrecord.h"
|
|
#include <assert.h>
|
|
|
|
#define NV_RECORD_ENV_KEY "env_key"
|
|
|
|
extern nv_record_struct nv_record_config;
|
|
static struct nvrecord_env_t *nvrecord_env_p = NULL;
|
|
|
|
static int nv_record_env_new(void) {
|
|
|
|
nvrecord_env_p =
|
|
(struct nvrecord_env_t *)pool_malloc(sizeof(struct nvrecord_env_t));
|
|
|
|
if (!nvrecord_env_p) {
|
|
TRACE(1, "%s pool_malloc failed ", __func__);
|
|
return -1;
|
|
}
|
|
nvrec_config_set_int(nv_record_config.config, section_name_other,
|
|
(const char *)NV_RECORD_ENV_KEY, (int)nvrecord_env_p);
|
|
|
|
nvrecord_env_p->media_language.language = NVRAM_ENV_MEDIA_LANGUAGE_DEFAULT;
|
|
nvrecord_env_p->ibrt_mode.mode = NVRAM_ENV_TWS_MODE_DEFAULT;
|
|
nvrecord_env_p->ibrt_mode.tws_connect_success = 0;
|
|
nvrecord_env_p->factory_tester_status.status =
|
|
NVRAM_ENV_FACTORY_TESTER_STATUS_DEFAULT;
|
|
|
|
nvrecord_env_p->aiManagerInfo.voice_key_enable = false;
|
|
nvrecord_env_p->aiManagerInfo.setedCurrentAi = 0;
|
|
nvrecord_env_p->aiManagerInfo.aiStatusDisableFlag = 0;
|
|
nvrecord_env_p->aiManagerInfo.amaAssistantEnableStatus = 1;
|
|
// nv_record_update_runtime_userdata();
|
|
|
|
TRACE(2, "%s nvrecord_env_p:0x%x", __func__, (uint32_t)nvrecord_env_p);
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int nv_record_env_rebuild(void) {
|
|
if (nv_record_config_rebuild() != BT_STS_SUCCESS)
|
|
return -1;
|
|
|
|
if (nv_record_env_new())
|
|
return -1;
|
|
nv_record_config.is_update = true;
|
|
nv_record_config.state = NV_STATE_IDLE;
|
|
nv_record_config.written_size = 0;
|
|
nv_record_flash_flush();
|
|
|
|
return 0;
|
|
}
|
|
|
|
int nv_record_env_init(void) {
|
|
int nRet = 0;
|
|
nv_record_open(section_usrdata_ddbrecord);
|
|
|
|
nv_custom_parameter_section_init();
|
|
|
|
nvrecord_env_p = (struct nvrecord_env_t *)nvrec_config_get_int(
|
|
nv_record_config.config, (const char *)section_name_other,
|
|
(const char *)NV_RECORD_ENV_KEY, NVRAM_ENV_INVALID);
|
|
|
|
if (nvrecord_env_p == (struct nvrecord_env_t *)NVRAM_ENV_INVALID) {
|
|
TRACE(0, "NVRAM_ENV_INVALID !!");
|
|
if (nv_record_env_rebuild() < 0)
|
|
nRet = -1;
|
|
else
|
|
TRACE(0, "NVRAM REBUILD SUCCESS !!");
|
|
}
|
|
TRACE(2, "%s nvrecord_env_p: 0x%x", __func__, (uint32_t)nvrecord_env_p);
|
|
return nRet;
|
|
}
|
|
|
|
int nv_record_env_get(struct nvrecord_env_t **nvrecord_env) {
|
|
if (!nvrecord_env)
|
|
return -1;
|
|
|
|
if (!nvrecord_env_p)
|
|
return -1;
|
|
|
|
*nvrecord_env = nvrecord_env_p;
|
|
|
|
return 0;
|
|
}
|
|
|
|
int nv_record_env_set(struct nvrecord_env_t *nvrecord_env) {
|
|
if (!nvrecord_env)
|
|
return -1;
|
|
|
|
if (!nvrecord_env_p)
|
|
return -1;
|
|
|
|
nv_record_update_runtime_userdata();
|
|
|
|
return 0;
|
|
}
|
|
|
|
void nv_record_update_factory_tester_status(uint32_t status) {
|
|
if (nvrecord_env_p) {
|
|
nvrecord_env_p->factory_tester_status.status = status;
|
|
}
|
|
}
|
|
|
|
void nv_record_update_ibrt_info(uint32_t newMode, bt_bdaddr_t *ibrtPeerAddr) {
|
|
if (nvrecord_env_p) {
|
|
TRACE(2, "##%s,%d", __func__, newMode);
|
|
nvrecord_env_p->ibrt_mode.mode = newMode;
|
|
nv_record_config.is_update = true;
|
|
memcpy(nvrecord_env_p->ibrt_mode.record.bdAddr.address,
|
|
ibrtPeerAddr->address, 6);
|
|
}
|
|
}
|
|
|
|
#endif // #if !defined(NEW_NV_RECORD_ENABLED)
|