完成EQ文件切换

This commit is contained in:
flym 2025-10-19 22:43:56 +08:00
parent da93862859
commit 1181c27f7c
42 changed files with 233577 additions and 238238 deletions

View File

@ -3,6 +3,7 @@
"gsensor_manage.h": "c",
"bt_emitter.h": "c",
"kt.h": "c",
"iis.h": "c"
"iis.h": "c",
"linein.h": "c"
}
}

View File

@ -82,6 +82,7 @@ CFLAGS := \
-fprefer-gnu-section \
-Wno-shift-negative-value \
-fms-extensions \
-w \
# C++额外的编译参数

View File

@ -5,11 +5,14 @@
#include "asm/mcpwm.h"
#include "avctp_user.h"
#include "key_event_deal.h"
#include "audio_config.h"
#include "app_task.h"
#include "app_main.h"
#include "bt_emitter.h"
// #include "task_manager/linein/linein.h"
#include "bt.h"
extern int linein_volume_set(u8 vol);
extern void mcpwm_init(struct pwm_platform_data *arg);
typedef struct _kt_var_
@ -50,20 +53,20 @@ u8 kt_get_mode(void)
// u8 temp_mode = 0;
adc_value = adc_get_value(CFG_MODE_AD_CH);
//printf("----------->>>>>>>>>>>>>>> adc_value = %d <<<<<<<<<<<----------\n", adc_value);
// printf("----------->>>>>>>>>>>>>>> adc_value = %d <<<<<<<<<<<----------\n", adc_value);
if (adc_value > 80 && adc_value < 100)
{
//printf("----------->>>>>>>>>>>>>>> temp_mode = MODE_AUX_LP <<<<<<<<<<<----------\n");
// printf("----------->>>>>>>>>>>>>>> temp_mode = MODE_AUX_LP <<<<<<<<<<<----------\n");
return MODE_AUX_LP;
}
else if (adc_value > 330 && adc_value < 370)
{
//printf("----------->>>>>>>>>>>>>>> temp_mode = MODE_BT_RECEIVER <<<<<<<<<<<----------\n");
// printf("----------->>>>>>>>>>>>>>> temp_mode = MODE_BT_RECEIVER <<<<<<<<<<<----------\n");
return MODE_BT_RECEIVER;
}
else
{
//printf("----------->>>>>>>>>>>>>>> temp_mode = MODE_BT_EMITTER <<<<<<<<<<<----------\n");
// printf("----------->>>>>>>>>>>>>>> temp_mode = MODE_BT_EMITTER <<<<<<<<<<<----------\n");
return MODE_BT_EMITTER;
}
#if 0
@ -150,6 +153,12 @@ void kt_boot_init(void)
/* 初始化Kaotings调试系统默认INFO级别 */
kt_dbg_set_level(_DBG_LEVEL_);
KT_LOGI("KT", "dbg ready @level=%d", kt_dbg_get_level());
// volume pin adc ch
gpio_set_die(CFG_VOLUME_PIN, 0);
gpio_set_direction(CFG_VOLUME_PIN, 1);
gpio_set_pull_down(CFG_VOLUME_PIN, 0);
gpio_set_pull_up(CFG_VOLUME_PIN, 1);
adc_add_sample_ch(CFG_VOLUME_AD_CH);
// mode pin adc ch
gpio_set_die(CFG_MODE_PIN, 0);
gpio_set_direction(CFG_MODE_PIN, 1);
@ -201,11 +210,11 @@ void kt_boot_init(void)
static void mode_led_flash(void)
{
static int cnt = 0;
//printf("---------------> mode_led_flash %s <---------------\n", mode_name[__this->mode.curr_mode]);
// printf("---------------> mode_led_flash %s <---------------\n", mode_name[__this->mode.curr_mode]);
if (__this->mode.curr_mode == MODE_BT_RECEIVER)
{
LED_RED_OFF();
//printf("1-%d\n", get_bt_connect_status());
// printf("1-%d\n", get_bt_connect_status());
if (get_bt_connect_status() < BT_STATUS_CONNECTING)
{
__this->tim.led_cnt++;
@ -231,14 +240,14 @@ static void mode_led_flash(void)
else if (__this->mode.curr_mode == MODE_BT_EMITTER)
{
// LED_RED_OFF();
//printf("2-%d\n", get_bt_connect_status());
// printf("2-%d\n", get_bt_connect_status());
/* if(cnt++ > 40)
{
cnt = 0;
printf("2-%d\n", get_bt_connect_status());
} */
//printf("---------------> get_bt_connect_status %d <---------------\n", get_bt_connect_status());
// printf("---------------> get_bt_connect_status %d <---------------\n", get_bt_connect_status());
if (get_total_connect_dev() == 0)
{
__this->tim.led_cnt++;
@ -299,10 +308,39 @@ static void mode_check(void)
}
}
static void volume_check(void)
{
static u32 last_vol_value = 0;
u32 temp = adc_get_value(CFG_VOLUME_AD_CH);
if (temp > last_vol_value + 3)
{
last_vol_value = temp;
app_task_put_key_msg(KEY_MSG_VOLUME_CHANGE, temp);
}
else if (temp < last_vol_value - 3)
{
last_vol_value = temp;
app_task_put_key_msg(KEY_MSG_VOLUME_CHANGE, temp);
}
else
{
// last_vol_value = temp;
}
}
//int test = 0;
static void timer_callback(void *priv)
{
volume_check();
mode_check();
mode_led_flash();
/* test++;
if (test > 100)
{
test = 0;
app_task_put_key_msg(KEY_MSG_EQ_TEST_CHANGE, 0);
} */
}
static void start_timer(void)
@ -333,26 +371,27 @@ static u8 kt_mode_change(u8 mode)
{
printf("switch to receiver mode\n");
__this->mode.user_role = MODE_BT_RECEIVER;
LP_MOT_OFF();
// 判断当前是否在蓝牙模式
if (app_get_curr_task() != APP_BT_TASK)
{
// 如果当前不在蓝牙模式,还需要判断当前是否是发射模式,直接切换回发生蓝牙冲入错误,造成死机
printf("current task is not bt task, need check emitter role and switch to bt task\n");
if(__this->mode.curr_mode == MODE_BT_EMITTER)
if (__this->mode.curr_mode == MODE_BT_EMITTER)
{
printf("current is emitter, need switch to receiver\n");
emitter_or_receiver_switch(BT_RECEIVER_EN);
}
else
{
//当前仅仅是Linein模式直接切换到蓝牙模式
// 当前仅仅是Linein模式直接切换到蓝牙模式
printf("current is linein, need switch to bt task\n");
app_task_switch_to(APP_BT_TASK);
}
}
else
{
//当前已经是蓝牙模式,再判断当前角色是否是发射器
// 当前已经是蓝牙模式,再判断当前角色是否是发射器
if (bt_emitter_role_get() == BT_EMITTER_EN)
{
printf("current is emitter, need switch to receiver\n");
@ -361,7 +400,7 @@ static u8 kt_mode_change(u8 mode)
else
{
printf("current is receiver, no need switch\n");
//emitter_or_receiver_switch(BT_RECEIVER_EN);
// emitter_or_receiver_switch(BT_RECEIVER_EN);
}
}
return MODE_BT_RECEIVER;
@ -369,8 +408,9 @@ static u8 kt_mode_change(u8 mode)
else if (mode == MODE_BT_EMITTER)
{
__this->mode.user_role = MODE_BT_EMITTER;
//printf("----------->>>>>>>>>>>>>>> switch to APP_LINEIN_TASK <<<<<<<<<<<----------\n");
// 需要切换到发射模式,首先判断当前是否在蓝牙模式
LP_MOT_ON();
// printf("----------->>>>>>>>>>>>>>> switch to APP_LINEIN_TASK <<<<<<<<<<<----------\n");
// 需要切换到发射模式,首先判断当前是否在蓝牙模式
if (app_get_curr_task() == APP_BT_TASK)
{
printf("current task is bt task\n");
@ -385,14 +425,14 @@ static u8 kt_mode_change(u8 mode)
{
// 当前已经是发射器 不需要切换
printf("current is emitter, no need switch\n");
//emitter_or_receiver_switch(BT_RECEIVER_EN);
// emitter_or_receiver_switch(BT_RECEIVER_EN);
}
}
else
{
// 当前不在蓝牙模式 需要切换到蓝牙模式,
printf("current task is not bt task, need switch to bt task\n");
//在蓝牙连接成功后会自动切换到LINEIN模式
// 在蓝牙连接成功后会自动切换到LINEIN模式
printf("mode switch in connnected after bt task\n");
app_task_switch_to(APP_BT_TASK);
}
@ -402,8 +442,9 @@ static u8 kt_mode_change(u8 mode)
{
printf("switch to aux lp mode\n");
__this->mode.user_role = MODE_AUX_LP;
LP_MOT_ON();
// 当前模式是否在发射模式,如果是在发射模式,需要先关闭连接和搜索
if(__this->mode.curr_mode == MODE_BT_EMITTER)
if (__this->mode.curr_mode == MODE_BT_EMITTER)
{
if (get_total_connect_dev() > 0)
{
@ -418,13 +459,13 @@ static u8 kt_mode_change(u8 mode)
// 判断当前是否在LINEIN模式
if (app_get_curr_task() == APP_LINEIN_TASK)
{
//当前在蓝牙模式 直接切换到LINEIN模式
// 当前在蓝牙模式 直接切换到LINEIN模式
printf("current task is linein task, no need switch\n");
app_task_switch_to(APP_LINEIN_TASK);
}
else
{
//当前不在Linein模式 需要切换到Linein模式,
// 当前不在Linein模式 需要切换到Linein模式,
printf("current task is not linein task, need switch to linein task\n");
app_task_switch_to(APP_LINEIN_TASK);
}
@ -471,12 +512,69 @@ static u8 kt_mode_change(u8 mode)
#endif
}
u8 kt_key_event_filter_after(int key_event)
extern void eff_file_switch(u8 *path);
void kt_eq_sw_bt(void)
{
printf("--------> kt_eq_sw_bt \n");
eff_file_switch(EQ_FILE_BT);
}
void kt_eq_sw_lp(void)
{
printf("--------> kt_eq_sw_lp \n");
eff_file_switch(EQ_FILE_LP);
}
u8 eq = 0;
u8 kt_key_event_filter_after(int key_event, int key_value)
{
u8 ret = false;
switch (key_event)
{
/* case KEY_MSG_EQ_TEST_CHANGE:
{
if (eq == 0)
{
eq = 1;
kt_eq_sw_lp();
}
else
{
eq = 0;
kt_eq_sw_bt();
}
ret = true;
}
break; */
case KEY_MSG_VOLUME_CHANGE:
{
if (key_value > 1023)
{
key_value = 1023;
}
else if (key_value < 0)
{
key_value = 0;
}
u8 vol = (u8)(key_value / 1023.0 * app_audio_get_max_volume());
u8 temp = app_audio_get_volume(APP_AUDIO_STATE_MUSIC);
if (vol != temp)
{
if (app_get_curr_task() == APP_LINEIN_TASK)
{
linein_volume_set(vol);
}
else
{
app_audio_set_volume(APP_AUDIO_STATE_MUSIC, vol, 1);
}
}
ret = true;
}
break;
case KEY_MSG_MODE_CHANGE:
{
if (__this->mode.curr_mode != __this->mode.next_mode)
{
u8 mode = kt_get_mode();
@ -492,7 +590,13 @@ u8 kt_key_event_filter_after(int key_event)
}
__this->mode.cnt = 0;
ret = true;
break;
}
break;
default:
{
ret = false;
}
break;
}
return ret;
}

View File

@ -14,6 +14,9 @@
#define CFG_MODE_PIN IO_PORTB_03
#define CFG_MODE_AD_CH AD_CH_PB3
#define CFG_VOLUME_PIN IO_PORTB_10
#define CFG_VOLUME_AD_CH AD_CH_PB10
#define CFG_LP_MOT_PIN IO_PORTB_11
#define LP_MOT_ON() (gpio_set_output_value(CFG_LP_MOT_PIN,1))
#define LP_MOT_OFF() (gpio_set_output_value(CFG_LP_MOT_PIN,0))
@ -34,11 +37,13 @@
#define LED_BLUE_ON() (gpio_set_output_value(CFG_LED_BLUE_PIN,1))
#define LED_BLUE_OFF() (gpio_set_output_value(CFG_LED_BLUE_PIN,0))
#define EQ_FILE_BT SDFILE_RES_ROOT_PATH"eq_cfg_h1.bin"
#define EQ_FILE_LP SDFILE_RES_ROOT_PATH"eq_cfg_h2.bin"
void kt_eq_sw_lp(void);
void kt_eq_sw_bt(void);
u8 kt_key_event_filter_after(int key_event);
u8 kt_key_event_filter_after(int key_event,int key_value);
u8 kt_get_mode(void);
void kt_boot_init(void);

View File

@ -517,13 +517,14 @@ DAC硬件上的连接方式,可选的配置:
#define TCFG_AUDIO_OUT_EQ_ENABLE 0 //高低音EQ
#define TCFG_AUDIO_MIC_EFFECT_POST_EQ_ENABLE 0 //MIC音效后置EQ使能(includes DRC)
#define TCFG_USE_EQ_FILE 1
#define EQ_SECTION_MAX 10//eq 段数
#define TCFG_DYNAMIC_EQ_ENABLE 0 //动态eq使能接在eq后需输入32bit位宽数据
#endif//TCFG_EQ_ENABLE
#define TCFG_DRC_ENABLE 1 //DRC 总使能
#define TCFG_AUDIO_MDRC_ENABLE 0 //多带drc使能 0:关闭多带drc 1使能多带drc 2使能多带drc 并且 多带drc后再做一次全带的drc
#define TCFG_DRC_ENABLE 0 //DRC 总使能
#define TCFG_AUDIO_MDRC_ENABLE 1 //多带drc使能 0:关闭多带drc 1使能多带drc 2使能多带drc 并且 多带drc后再做一次全带的drc
#if TCFG_DRC_ENABLE
#define TCFG_BT_MUSIC_DRC_ENABLE 1 //支持蓝牙音乐DRC

View File

@ -174,6 +174,8 @@ enum {
KEY_IR_NUM_9,//中间不允许插入
//在这里增加元素
KEY_MSG_MODE_CHANGE,
KEY_MSG_VOLUME_CHANGE,
KEY_MSG_EQ_TEST_CHANGE,
//
KEY_HCI_DISCONNECT_CLEAR_VM,
KEY_CALL_RECEIVER,

View File

@ -1193,13 +1193,13 @@ int bt_key_event_handler(struct sys_event *event)
int key_value = event->u.key.value;
log_debug("bt key_event:%d %d %d %d\n", key_event, key->value, key->event, key->init);
//log_debug("bt key_event:%d %d %d %d\n", key_event, key->value, key->event, key->init);
if (bt_key_event_filter_after(key_event) == true) {
return true;
}
if (kt_key_event_filter_after(key_event) == true) {
if (kt_key_event_filter_after(key_event,key_value) == true) {
return true;
}
@ -1438,6 +1438,8 @@ void app_bt_task()
int msg[32];
ui_update_status(STATUS_EXIT_LOWPOWER);
kt_eq_sw_bt();
bt_task_init();//初始化变量、时钟、显示(未进行协议栈初始化)
#if TCFG_TONE2TWS_ENABLE
@ -1447,8 +1449,9 @@ void app_bt_task()
extern u8 get_tws_background_connected_flag();
if (!__this->cmd_flag && (!get_tws_background_connected_flag())) { //蓝牙后台拉回蓝牙模式不播放提示音
tone_play_with_callback_by_name(tone_table[IDEX_TONE_BT_MODE], 1, bt_tone_play_end_callback, (void *)IDEX_TONE_BT_MODE);
//tone_play_with_callback_by_name(tone_table[IDEX_TONE_BT_MODE], 1, bt_tone_play_end_callback, (void *)IDEX_TONE_BT_MODE);
//协议栈初始化在提示音结束进行
bt_task_start();
} else {
//后台返回的情况没有播放提示音需要在这里进行协议栈的resume
bt_task_start();

View File

@ -131,7 +131,7 @@ static int linein_key_msg_deal(struct sys_event *event)
}
#endif
if (kt_key_event_filter_after(key_event) == true) {
if (kt_key_event_filter_after(key_event,key_value) == true) {
return true;
}
@ -302,6 +302,18 @@ void app_linein_task()
int err = 0;
int msg[32];
kt_eq_sw_lp();
if (kt_get_curr_mode() == MODE_BT_EMITTER)
{
PA_MUTE();
}
else
{
PA_UNMUTE();
}
#if TCFG_APP_BT_EN
linein_bt_back_flag = get_bt_back_flag();//从蓝牙后台返回标志
set_bt_back_flag(0);
@ -322,14 +334,16 @@ void app_linein_task()
} else
#endif
{
err = tone_play_with_callback_by_name(tone_table[IDEX_TONE_LINEIN], 1,
line_tone_play_end_callback, (void *)IDEX_TONE_LINEIN);
//err = tone_play_with_callback_by_name(tone_table[IDEX_TONE_LINEIN], 1,
// line_tone_play_end_callback, (void *)IDEX_TONE_LINEIN);
}
// if (err) { //
// ///提示音播放失败直接推送KEY_MUSIC_PLAYER_START启动播放
// app_task_put_key_msg(KEY_LINEIN_START, 0);
// }
app_task_put_key_msg(KEY_LINEIN_START, 0);
while (1) {
app_task_get_msg(msg, ARRAY_SIZE(msg), 1);

View File

@ -238,12 +238,12 @@ static void poweroff_app_start()
} else
#endif/*CONFIG_TWS_POWEROFF_SAME_TIME*/
{
ret = tone_play_with_callback_by_name(tone_table[IDEX_TONE_POWER_OFF], 1,
poweroff_tone_end, (void *)IDEX_TONE_POWER_OFF);
if (ret) {
//ret = tone_play_with_callback_by_name(tone_table[IDEX_TONE_POWER_OFF], 1,
// poweroff_tone_end, (void *)IDEX_TONE_POWER_OFF);
//if (ret) {
y_printf("power_off tone play err,enter soft poweroff");
poweroff_done();
}
//}
}
}
}

View File

@ -1008,13 +1008,31 @@ REGISTER_LP_TARGET(audio_dec_init_lp_target) = {
#if AUDIO_OUTPUT_AUTOMUTE
#include "kt.h"
#include "app_task.h"
#include "bt_emitter.h"
void audio_mix_out_automute_mute(u8 mute)
{
//printf(">>>>>>>>>>>>>>>>>>>> %s\n", mute ? ("MUTE") : ("UNMUTE"));
if (mute)
if(app_get_curr_task() == APP_LINEIN_TASK)
{
PA_MUTE();
if (mute)
{
bt_emitter_pp(0);
PA_MUTE();
}
else
{
bt_emitter_pp(1);
if (kt_get_curr_mode() == MODE_BT_EMITTER)
{
PA_MUTE();
}
else
{
PA_UNMUTE();
}
}
}
else
{

View File

@ -7,6 +7,8 @@
#include "app_config.h"
#include "audio_mic/effect_parm.h"
#define PARM_DEBUG 0
#define LOG_TAG "[EFFECT]"
@ -22,7 +24,8 @@
#pragma code_seg(".audio_effect_adj_code")
#endif
#define EFF_CFG_FILE_NAME SDFILE_RES_ROOT_PATH"eq_cfg_hw.bin"
//#define EFF_CFG_FILE_NAME SDFILE_RES_ROOT_PATH"eq_cfg_hw.bin"
u8 EFF_CFG_FILE_NAME[48] = SDFILE_RES_ROOT_PATH"eq_cfg_hw.bin";
const u8 eff_sdk_name[16] = "AC695N";
const u8 eff_eq_ver[4] = {1, 0, 0, 0};
@ -1746,3 +1749,66 @@ int eff_init(void)
return 0;
}
__initcall(eff_init);
/*
*eq更新标志eq运行时会重新调用系数回调
* */
static void cur_eq_update(u32 eq_name)
{
struct audio_eq *eq = get_cur_eq_hdl_by_name(eq_name);
local_irq_disable();
if (eq) {
eq->mask[0] = (u32)-1;
eq->mask[1] = (u32)-1;
eq->updata = 1;
}
local_irq_enable();
}
/*
*drc更新标志drc运行时会重新调用系数回调
* */
static void cur_drc_update(u32 drc_name)
{
struct audio_drc *drc = get_cur_drc_hdl_by_name(drc_name);
local_irq_disable();
if (drc) {
drc->updata = 1;
}
local_irq_enable();
}
/*
*
*path:
* */
void eff_file_switch(u8 *path)
{
printf("--------------------------------------------------------->EQ SW to %s \n",path);
//更新效果文件路径
memcpy(EFF_CFG_FILE_NAME, path, strlen(path));
//重新解析效果文件
phone_eff_analyze_data();
music_eff_analyze_data();
#if (TCFG_EQ_ENABLE != 0)
cp_eq_file_seg_to_custom_tab();
#endif
#if defined(LINEIN_MODE_SOLE_EQ_EN) && LINEIN_MODE_SOLE_EQ_EN
linein_eff_analyze_data();
#endif
#if defined(TCFG_MIC_EFFECT_ENABLE) && TCFG_MIC_EFFECT_ENABLE
for (int i = 0 ; i < EFFECT_REVERB_PARM_MAX; i++) {
mic_eff_analyze_data(i);
}
#endif
//设置需要更新的模块
//audio_vbass_update_demo(AEID_MUSIC_VBASS, &vbass_parm.parm, vbass_parm.is_bypass);
int i = 0;
for(i=0;i<4;i++){
cur_drc_set_update(AEID_MUSIC_DRC, i, &music_mode.drc_parm.wdrc_parm[i]);
cur_drc_set_bypass(AEID_MUSIC_DRC, i,&music_mode.drc_parm.wdrc_parm[i].is_bypass);
}
//eq_mode_set(EQ_MODE_CUSTOM); //flym 250614
}

View File

@ -7,101 +7,103 @@
#include "online_db/online_db_deal.h"
#include "media/audio_eq_drc_apply.h"
#include "config/config_interface.h"
#include "media/eq_config.h"
#include "audio_effect/audio_eff_default_parm.h"
//eq_cfg_hw.bin中播歌eq曲线当作用户自定义模式参与效果切换.
#define EQ_FILE_CP_TO_CUSTOM 0
// eq_cfg_hw.bin中播歌eq曲线当作用户自定义模式参与效果切换.
#define EQ_FILE_CP_TO_CUSTOM 1
#if (TCFG_EQ_ENABLE != 0)
const struct eq_seg_info eq_tab_normal[] = {
{0, EQ_IIR_TYPE_BAND_PASS, 31, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 0, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 0, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 0, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 0, 0.7f},
{0, EQ_IIR_TYPE_BAND_PASS, 31, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 0, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 0, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 0, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 0, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 0, 0.7f},
};
const struct eq_seg_info eq_tab_rock[] = {
{0, EQ_IIR_TYPE_BAND_PASS, 31, -2, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 2, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 4, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, -2, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, -2, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 4, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 4, 0.7f},
{0, EQ_IIR_TYPE_BAND_PASS, 31, -2, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 2, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 4, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, -2, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, -2, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 4, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 4, 0.7f},
};
const struct eq_seg_info eq_tab_pop[] = {
{0, EQ_IIR_TYPE_BAND_PASS, 31, 3, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 1, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, -2, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, -4, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, -4, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, -2, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 1, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 2, 0.7f},
{0, EQ_IIR_TYPE_BAND_PASS, 31, 3, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 1, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, -2, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, -4, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, -4, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, -2, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 1, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 2, 0.7f},
};
const struct eq_seg_info eq_tab_classic[] = {
{0, EQ_IIR_TYPE_BAND_PASS, 31, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 8, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 8, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 4, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 0, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 0, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 2, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 2, 0.7f},
{0, EQ_IIR_TYPE_BAND_PASS, 31, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 8, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 8, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 4, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 0, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 0, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 2, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 2, 0.7f},
};
const struct eq_seg_info eq_tab_country[] = {
{0, EQ_IIR_TYPE_BAND_PASS, 31, -2, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 2, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 2, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 0, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 4, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 4, 0.7f},
{0, EQ_IIR_TYPE_BAND_PASS, 31, -2, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 2, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 2, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 0, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 4, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 4, 0.7f},
};
const struct eq_seg_info eq_tab_jazz[] = {
{0, EQ_IIR_TYPE_BAND_PASS, 31, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 4, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 4, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 4, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 2, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 3, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 4, 0.7f},
{0, EQ_IIR_TYPE_BAND_PASS, 31, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 4, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 4, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 4, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 2, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 3, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 4, 0.7f},
};
struct eq_seg_info eq_tab_custom[] = {
{0, EQ_IIR_TYPE_BAND_PASS, 31, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 0, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 0, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 0, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 0, 0.7f},
{0, EQ_IIR_TYPE_BAND_PASS, 31, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 62, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 125, 0, 0.7f},
{3, EQ_IIR_TYPE_BAND_PASS, 250, 0, 0.7f},
{4, EQ_IIR_TYPE_BAND_PASS, 500, 0, 0.7f},
{5, EQ_IIR_TYPE_BAND_PASS, 1000, 0, 0.7f},
{6, EQ_IIR_TYPE_BAND_PASS, 2000, 0, 0.7f},
{7, EQ_IIR_TYPE_BAND_PASS, 4000, 0, 0.7f},
{8, EQ_IIR_TYPE_BAND_PASS, 8000, 0, 0.7f},
{9, EQ_IIR_TYPE_BAND_PASS, 16000, 0, 0.7f},
};
@ -118,68 +120,71 @@ float globa_gain_tab[EQ_MODE_MAX] = {0, 0, 0, 0, 0, 0, 0};
* */
const struct eq_seg_info phone_eq_tab_normal[] = {
{0, EQ_IIR_TYPE_HIGH_PASS, 200, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 300, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 400, 0, 0.7f},
{0, EQ_IIR_TYPE_HIGH_PASS, 200, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 300, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 400, 0, 0.7f},
};
/*
*eq系数表
* */
const struct eq_seg_info ul_eq_tab_normal[] = {
{0, EQ_IIR_TYPE_HIGH_PASS, 200, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 300, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 400, 0, 0.7f},
{0, EQ_IIR_TYPE_HIGH_PASS, 200, 0, 0.7f},
{1, EQ_IIR_TYPE_BAND_PASS, 300, 0, 0.7f},
{2, EQ_IIR_TYPE_BAND_PASS, 400, 0, 0.7f},
};
static u8 eq_mode = 0;
//eq效果表切换
// eq效果表切换
int eq_mode_sw(void)
{
eq_mode++;
if (eq_mode >= ARRAY_SIZE(eq_type_tab)) {
if (eq_mode >= ARRAY_SIZE(eq_type_tab)){
eq_mode = 0;
}
struct eq_seg_info *seg = eq_type_tab[eq_mode];
u8 nsection = ARRAY_SIZE(eq_tab_normal);
if (nsection > mSECTION_MAX) {
if (nsection > mSECTION_MAX){
log_e("ERROR nsection:%d > mSECTION_MAX:%d ", nsection, mSECTION_MAX);
return -1;//
return -1; //
}
/* music_mode.eq_parm.seg_num = nsection; */
/* music_mode.eq_parm.global_gain = globa_gain_tab[eq_mode]; */
cur_eq_set_global_gain(AEID_MUSIC_EQ, globa_gain_tab[eq_mode]);
for (int i = 0; i < nsection; i++) {
for (int i = 0; i < nsection; i++){
/* memcpy(&music_mode.eq_parm.seg[i], &seg[i], sizeof(struct eq_seg_info)); */
cur_eq_set_update(AEID_MUSIC_EQ, &seg[i], nsection, 1);
}
return 0;
}
//指定设置某个eq效果表
// 指定设置某个eq效果表
int eq_mode_set(EQ_MODE mode)
{
if (eq_mode >= ARRAY_SIZE(eq_type_tab)) {
eq_mode = mode;
if (eq_mode >= ARRAY_SIZE(eq_type_tab)){
eq_mode = 0;
}
struct eq_seg_info *seg = eq_type_tab[eq_mode];
u8 nsection = ARRAY_SIZE(eq_tab_normal);
if (nsection > mSECTION_MAX) {
if (nsection > mSECTION_MAX){
log_e("ERROR nsection:%d > mSECTION_MAX:%d ", nsection, mSECTION_MAX);
return -1;//
return -1; //
}
u32 design = 1;
/* music_mode.eq_parm.seg_num = nsection; */
/* music_mode.eq_parm.global_gain = globa_gain_tab[eq_mode]; */
cur_eq_set_global_gain(AEID_MUSIC_EQ, globa_gain_tab[eq_mode]);
for (int i = 0; i < nsection; i++) {
for (int i = 0; i < nsection; i++){
/* memcpy(&music_mode.eq_parm.seg[i], &seg[i], sizeof(struct eq_seg_info)); */
cur_eq_set_update(AEID_MUSIC_EQ, &seg[i], nsection, 1);
cur_eq_set_update(AEID_MUSIC_EQ, &seg[i], nsection, design);
}
return 0;
}
//返回某个eq效果模式标号
// 返回某个eq效果模式标号
EQ_MODE eq_mode_get_cur(void)
{
return eq_mode;
@ -197,7 +202,7 @@ int eq_mode_set_custom_seg(struct eq_seg_info *seg)
{
struct eq_seg_info *tar_seg = eq_tab_custom;
u8 index = seg->index;
if (index > ARRAY_SIZE(eq_tab_custom)) {
if (index > ARRAY_SIZE(eq_tab_custom)){
log_e("index %d > max_nsection %d", index, ARRAY_SIZE(eq_tab_custom));
return -1;
}
@ -214,7 +219,7 @@ int eq_mode_set_custom_seg(struct eq_seg_info *seg)
/*----------------------------------------------------------------------------*/
struct eq_seg_info *eq_mode_get_seg(EQ_MODE mode, u8 index)
{
if (mode >= ARRAY_SIZE(eq_type_tab)) {
if (mode >= ARRAY_SIZE(eq_type_tab)){
return NULL;
}
struct eq_seg_info *seg = eq_type_tab[mode];
@ -226,32 +231,35 @@ struct eq_seg_info *eq_mode_get_seg(EQ_MODE mode, u8 index)
* */
int eq_mode_set_custom_info(u16 index, int freq, float gain)
{
struct eq_seg_info *seg = eq_mode_get_seg(EQ_MODE_CUSTOM, index);//获取某段eq系数
if (!seg) {
struct eq_seg_info *seg = eq_mode_get_seg(EQ_MODE_CUSTOM, index); // 获取某段eq系数
if (!seg){
return -1;
}
seg->freq = freq;//修改freq gain
seg->freq = freq; // 修改freq gain
seg->gain = gain;
eq_mode_set_custom_seg(seg);//重设系数
eq_mode_set_custom_seg(seg); // 重设系数
eq_mode_set(EQ_MODE_CUSTOM);//设置更新系数
eq_mode_set(EQ_MODE_CUSTOM); // 设置更新系数
return 0;
}
void cp_eq_file_seg_to_custom_tab()
{
printf("[%s]------------Row[%d]",__FUNCTION__,__LINE__);
#if EQ_FILE_CP_TO_CUSTOM
u8 nsection = music_mode.eq_parm.seg_num;
struct eq_seg_info *seg = eq_tab_custom;
for (nsection > ARRAY_SIZE(eq_tab_custom)) {
if (nsection > ARRAY_SIZE(eq_tab_custom)) {
log_e("music nsection:%d > custom nsection:%d\n", nsection, ARRAY_SIZE(eq_tab_custom));
return ;
}
printf("music_mode.eq_parm.global_gain == %d\n",(int)((int)(music_mode.eq_parm.global_gain*100)/100));
globa_gain_tab[EQ_MODE_CUSTOM] = music_mode.eq_parm.global_gain;
memcpy(seg, music_mode.eq_parm.seg, sizeof(struct eq_seg_info)*nsection);
eq_mode = EQ_MODE_CUSTOM;
#endif
}
int eq_init(void)
{
audio_eq_init();
@ -260,5 +268,4 @@ int eq_init(void)
}
__initcall(eq_init);
#endif

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -63,5 +63,6 @@ del data.bin
del data_code.bin
del text.bin
del *.bc
copy .\effect_file\music_base.bin eq_cfg_hw.bin
copy .\effect_file\music_base.bin eq_cfg_h1.bin
copy .\effect_file\music_base_linein.bin eq_cfg_h2.bin
download\standard\download.bat

View File

@ -211,7 +211,8 @@ copy .\effect_file\music_2to1_2to2.bin eq_cfg_hw.bin
#elif defined(LINEIN_MODE_SOLE_EQ_EN) && LINEIN_MODE_SOLE_EQ_EN
copy .\effect_file\music_base_linein.bin eq_cfg_hw.bin
#else
copy .\effect_file\music_base.bin eq_cfg_hw.bin
copy .\effect_file\music_base.bin eq_cfg_h1.bin
copy .\effect_file\music_base_linein.bin eq_cfg_h2.bin
#endif

View File

@ -8,12 +8,14 @@ copy ..\..\tone.cfg .
copy ..\..\cfg_tool.bin .
copy ..\..\app.bin .
copy ..\..\br23loader.bin .
copy ..\..\eq_cfg_hw.bin .
copy ..\..\eq_cfg_h1.bin .
copy ..\..\eq_cfg_h2.bin .
copy ..\..\ota_all.bin .
copy ..\..\ota_nor.bin .
..\..\isd_download.exe -tonorflash -dev br23 -boot 0x12000 -div8 -wait 300 -uboot uboot.boot -app app.bin -res tone.cfg cfg_tool.bin eq_cfg_hw.bin %1 -format all -key KTS_AC690x_5458.key
::..\..\isd_download.exe -tonorflash -dev br23 -boot 0x12000 -div8 -wait 300 -uboot uboot.boot -app app.bin -res tone.cfg cfg_tool.bin eq_cfg_hw.bin eq_cfg_h1.bin eq_cfg_h2.bin %1 -format all -key KTS_AC690x_5458.key
..\..\isd_download.exe -tonorflash -dev br23 -boot 0x12000 -div8 -wait 300 -uboot uboot.boot -app app.bin -res tone.cfg cfg_tool.bin eq_cfg_hw.bin eq_cfg_h1.bin eq_cfg_h2.bin -format all %1 -key KTS_AC690x_5458.key
:: -format all
::-reboot 2500

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2954,20 +2954,28 @@ objs/apps/kaotings/kt.c.o
-r=objs/apps/kaotings/kt.c.o,mcpwm_init,l
-r=objs/apps/kaotings/kt.c.o,kt_init,pl
-r=objs/apps/kaotings/kt.c.o,kt_get_user_role,pl
-r=objs/apps/kaotings/kt.c.o,kt_eq_sw_bt,pl
-r=objs/apps/kaotings/kt.c.o,printf,l
-r=objs/apps/kaotings/kt.c.o,eff_file_switch,l
-r=objs/apps/kaotings/kt.c.o,kt_eq_sw_lp,pl
-r=objs/apps/kaotings/kt.c.o,kt_key_event_filter_after,pl
-r=objs/apps/kaotings/kt.c.o,app_audio_get_max_volume,l
-r=objs/apps/kaotings/kt.c.o,app_audio_get_volume,l
-r=objs/apps/kaotings/kt.c.o,app_get_curr_task,l
-r=objs/apps/kaotings/kt.c.o,linein_volume_set,l
-r=objs/apps/kaotings/kt.c.o,app_audio_set_volume,l
-r=objs/apps/kaotings/kt.c.o,sys_timer_del,l
-r=objs/apps/kaotings/kt.c.o,sys_timer_add,l
-r=objs/apps/kaotings/kt.c.o,app_task_put_key_msg,l
-r=objs/apps/kaotings/kt.c.o,get_bt_connect_status,l
-r=objs/apps/kaotings/kt.c.o,get_total_connect_dev,l
-r=objs/apps/kaotings/kt.c.o,printf,l
-r=objs/apps/kaotings/kt.c.o,app_get_curr_task,l
-r=objs/apps/kaotings/kt.c.o,emitter_or_receiver_switch,l
-r=objs/apps/kaotings/kt.c.o,app_task_switch_to,l
-r=objs/apps/kaotings/kt.c.o,bt_emitter_role_get,l
-r=objs/apps/kaotings/kt.c.o,user_send_cmd_prepare,l
-r=objs/apps/kaotings/kt.c.o,bt_emitter_stop_search_device,l
-r=objs/apps/kaotings/kt.c.o,puts,l
-r=objs/apps/kaotings/kt.c.o,eq,pl
objs/apps/kaotings/kt_dbg.c.o
-r=objs/apps/kaotings/kt_dbg.c.o,kt_dbg_set_level,pl
-r=objs/apps/kaotings/kt_dbg.c.o,kt_dbg_get_level,pl
@ -3110,9 +3118,9 @@ objs/apps/soundbox/task_manager/bt/bt.c.o
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,app_task_switch_next,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,app_bt_task,pl
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,ui_update_status,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,kt_eq_sw_bt,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,bt_task_init,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,get_tws_background_connected_flag,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,tone_play_with_callback_by_name,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,bt_task_start,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,app_task_get_msg,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,app_default_event_deal,l
@ -3159,15 +3167,12 @@ objs/apps/soundbox/task_manager/bt/bt.c.o
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,bt_hci_event_page_timeout,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,bt_hci_event_connection_timeout,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,bt_hci_event_connection_exist,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,app_get_curr_task,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,app_protocol_sys_event_handler,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,app_bt_hdl,pl
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,bt_user_priv_var,pl
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,log_tag_const_i_BT,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,app_var,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,log_tag_const_d_BT,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,tone_table,l
-r=objs/apps/soundbox/task_manager/bt/bt.c.o,log_tag_const_e_BT,l
objs/apps/soundbox/task_manager/bt/bt_ble.c.o
objs/apps/soundbox/task_manager/bt/bt_emitter.c.o
-r=objs/apps/soundbox/task_manager/bt/bt_emitter.c.o,edr_at_set_cod,pl
@ -3645,17 +3650,18 @@ objs/apps/soundbox/task_manager/linein/linein.c.o
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,linein_app_check,pl
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,linein_is_online,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,app_linein_task,pl
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,kt_eq_sw_lp,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,kt_get_curr_mode,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,gpio_set_output_value,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,get_bt_back_flag,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,set_bt_back_flag,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,tone_play_with_callback_by_name,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,app_task_put_key_msg,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,app_task_get_msg,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,app_default_event_deal,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,app_task_exitting,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,sys_key_event_enable,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,ui_update_status,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,clock_idle,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,app_get_curr_task,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,app_task_put_key_msg,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,app_task_switch_next,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,kt_key_event_filter_after,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,linein_start,l
@ -3665,9 +3671,8 @@ objs/apps/soundbox/task_manager/linein/linein.c.o
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,linein_stop,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,tone_play_stop_by_path,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,log_tag_const_i_APP_LINEIN,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,tone_table,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,linein_lp_target,pl
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,log_tag_const_e_APP_LINEIN,l
-r=objs/apps/soundbox/task_manager/linein/linein.c.o,tone_table,l
objs/apps/soundbox/task_manager/linein/linein_api.c.o
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_volume_set,pl
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,app_audio_set_volume,l
@ -3808,11 +3813,9 @@ objs/apps/soundbox/task_manager/power_off/power_off.c.o
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,power_set_soft_poweroff,l
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,syscfg_write,l
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,os_taskq_flush,l
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,tone_play_with_callback_by_name,l
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,goto_poweroff_first_flag,pl
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,log_tag_const_i_APP_ACTION,l
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,app_var,l
-r=objs/apps/soundbox/task_manager/power_off/power_off.c.o,tone_table,l
objs/apps/soundbox/task_manager/power_on/power_on.c.o
-r=objs/apps/soundbox/task_manager/power_on/power_on.c.o,app_poweron_task,pl
-r=objs/apps/soundbox/task_manager/power_on/power_on.c.o,kt_init,l
@ -4261,7 +4264,10 @@ objs/cpu/br23/audio_dec/audio_dec.c.o
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,audio_sbc_emitter_init,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,app_audio_volume_init,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,audio_mix_out_automute_mute,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,app_get_curr_task,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,bt_emitter_pp,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,gpio_set_output_value,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,kt_get_curr_mode,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,mix_out_automute_handler,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,app_audio_output_channel_get,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,app_audio_output_ch_mute,l
@ -4354,7 +4360,6 @@ objs/cpu/br23/audio_dec/audio_dec_bt.c.o
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,high_bass_drc_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,convet_data_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,music_eq_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,music_drc_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,audio_gain_open_demo,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,a2dp_output_sync_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,audio_mixer_get_sample_rate,l
@ -4368,7 +4373,6 @@ objs/cpu/br23/audio_dec/audio_dec_bt.c.o
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,high_bass_drc_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,convet_data_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,music_eq_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,music_drc_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,audio_gain_close_demo,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,audio_mixer_ch_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_bt.c.o,a2dp_output_sync_close,l
@ -4421,7 +4425,6 @@ objs/cpu/br23/audio_dec/audio_dec_file.c.o
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,high_bass_drc_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,convet_data_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,music_eq_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,music_drc_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,audio_gain_close_demo,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,audio_mixer_ch_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,audio_stream_close,l
@ -4452,7 +4455,6 @@ objs/cpu/br23/audio_dec/audio_dec_file.c.o
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,high_bass_drc_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,convet_data_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,music_eq_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,music_drc_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,audio_gain_open_demo,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,audio_stream_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_file.c.o,audio_stream_add_list,l
@ -4502,7 +4504,6 @@ objs/cpu/br23/audio_dec/audio_dec_linein.c.o
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,high_bass_drc_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,convet_data_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,music_eq_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,music_drc_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,audio_gain_open_demo,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,audio_stream_open,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,audio_stream_add_list,l
@ -4514,7 +4515,6 @@ objs/cpu/br23/audio_dec/audio_dec_linein.c.o
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,high_bass_drc_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,convet_data_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,music_eq_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,music_drc_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,audio_gain_close_demo,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,linein_sample_close,l
-r=objs/cpu/br23/audio_dec/audio_dec_linein.c.o,audio_mixer_ch_close,l
@ -4692,8 +4692,6 @@ objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o
-r=objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o,music_eq2_open,pl
-r=objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o,music_eq2_close,pl
-r=objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o,music_drc_open,pl
-r=objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o,drc_get_filter_info,l
-r=objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o,audio_dec_drc_open,l
-r=objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o,music_drc_close,pl
-r=objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o,audio_dec_drc_close,l
-r=objs/cpu/br23/audio_effect/audio_eq_drc_demo.c.o,esco_eq_open,pl
@ -4813,10 +4811,13 @@ objs/cpu/br23/audio_effect/effects_adj.c.o
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,phone_eff_default_parm,l
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,music_eff_default_parm,l
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,cp_eq_file_seg_to_custom_tab,l
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,eff_file_switch,pl
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,printf,l
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,strlen,l
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,cpu_assert_debug,l
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,p33_soft_reset,l
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,sys_timer_add,l
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,EFF_CFG_FILE_NAME,pl
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,eff_sdk_name,pl
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,eff_eq_ver,pl
-r=objs/cpu/br23/audio_effect/effects_adj.c.o,mlist,pl
@ -4891,6 +4892,7 @@ objs/cpu/br23/audio_effect/eq_config.c.o
-r=objs/cpu/br23/audio_effect/eq_config.c.o,eq_mode_get_seg,pl
-r=objs/cpu/br23/audio_effect/eq_config.c.o,eq_mode_set_custom_info,pl
-r=objs/cpu/br23/audio_effect/eq_config.c.o,cp_eq_file_seg_to_custom_tab,pl
-r=objs/cpu/br23/audio_effect/eq_config.c.o,printf,l
-r=objs/cpu/br23/audio_effect/eq_config.c.o,eq_init,pl
-r=objs/cpu/br23/audio_effect/eq_config.c.o,audio_eq_init,l
-r=objs/cpu/br23/audio_effect/eq_config.c.o,audio_drc_init,l
@ -4905,6 +4907,7 @@ objs/cpu/br23/audio_effect/eq_config.c.o
-r=objs/cpu/br23/audio_effect/eq_config.c.o,globa_gain_tab,pl
-r=objs/cpu/br23/audio_effect/eq_config.c.o,phone_eq_tab_normal,pl
-r=objs/cpu/br23/audio_effect/eq_config.c.o,ul_eq_tab_normal,pl
-r=objs/cpu/br23/audio_effect/eq_config.c.o,music_mode,l
-r=objs/cpu/br23/audio_effect/eq_config.c.o,__initcall_eq_init,pl
objs/cpu/br23/audio_enc/audio_adc_demo.c.o
-r=objs/cpu/br23/audio_enc/audio_adc_demo.c.o,audio_adc_open_demo,pl

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
tone/bt_conn.mp3 Normal file

Binary file not shown.

BIN
tone/bt_conn.wtg Normal file

Binary file not shown.

BIN
tone/bt_dcon.mp3 Normal file

Binary file not shown.

BIN
tone/bt_dcon.wtg Normal file

Binary file not shown.