feat: Add rfid feature and .gitignore file
This commit is contained in:
209
apps/earphone/include/aec_user.h
Normal file
209
apps/earphone/include/aec_user.h
Normal file
@ -0,0 +1,209 @@
|
||||
#ifndef _AEC_USER_H_
|
||||
#define _AEC_USER_H_
|
||||
|
||||
#include "generic/typedef.h"
|
||||
#include "user_cfg.h"
|
||||
|
||||
#define AEC_DEBUG_ONLINE 0
|
||||
#define AEC_READ_CONFIG 1
|
||||
|
||||
/*
|
||||
*CVP(清晰语音模式定义)
|
||||
*/
|
||||
#define CVP_MODE_NONE 0x00 //清晰语音处理关闭
|
||||
#define CVP_MODE_NORMAL 0x01 //通用模式
|
||||
#define CVP_MODE_DMS 0x02 //双mic降噪(ENC)模式
|
||||
#define CVP_MODE_SMS 0x03 //单mic系统(外加延时估计)
|
||||
#define CVP_MODE_SMS_TDE 0x04 //单mic系统(内置延时估计)
|
||||
#define CVP_MODE_SEL CVP_MODE_NORMAL
|
||||
|
||||
#define AEC_EN BIT(0)
|
||||
#define NLP_EN BIT(1)
|
||||
#define ANS_EN BIT(2)
|
||||
#define ENC_EN BIT(3)
|
||||
#define AGC_EN BIT(4)
|
||||
#define WNC_EN BIT(5)
|
||||
#define MFDT_EN BIT(6)
|
||||
|
||||
/*aec module enable bit define*/
|
||||
#define AEC_MODE_ADVANCE (AEC_EN | NLP_EN | ANS_EN )
|
||||
#define AEC_MODE_REDUCE (NLP_EN | ANS_EN )
|
||||
|
||||
#define AEC_MODE_SIMPLEX (ANS_EN)
|
||||
|
||||
/*
|
||||
*SMS模式选择
|
||||
*(1)SMS模式性能更好,同时也需要更多的ram和mips
|
||||
*(2)SMS_NORMAL和SMS_TDE功能一样,只是SMS_TDE内置了延时估计和延时补偿
|
||||
*可以更好的兼容延时不固定的场景
|
||||
*/
|
||||
#define SMS_DISABLE 0
|
||||
#define SMS_NORMAL 1
|
||||
#define SMS_TDE 2
|
||||
#define TCFG_AUDIO_SMS_ENABLE SMS_DISABLE
|
||||
|
||||
/*
|
||||
*DMS版本配置
|
||||
*DMS_GLOBAL_V100:第一版双麦算法
|
||||
*DMS_GLOBAL_V200:第二版双麦算法,更少的ram和mips
|
||||
*/
|
||||
#define TCFG_AUDIO_DMS_GLOBAL_VERSION DMS_GLOBAL_V100
|
||||
|
||||
#if (defined(CONFIG_MEDIA_NEW_ENABLE) || (defined(CONFIG_MEDIA_DEVELOP_ENABLE)))
|
||||
|
||||
extern const u8 CONST_AEC_SIMPLEX;
|
||||
|
||||
/*兼容SMS和DMS*/
|
||||
#if TCFG_AUDIO_TRIPLE_MIC_ENABLE
|
||||
#include "commproc_tms.h"
|
||||
#define aec_open aec_tms_init
|
||||
#define aec_close aec_tms_exit
|
||||
#define aec_in_data aec_tms_fill_in_data
|
||||
#define aec_in_data_ref aec_tms_fill_in_ref_data
|
||||
#define aec_in_data_ref_1 aec_tms_fill_in_ref_1_data
|
||||
#define aec_ref_data aec_tms_fill_ref_data
|
||||
|
||||
#elif TCFG_AUDIO_DUAL_MIC_ENABLE
|
||||
#include "commproc_dms.h"
|
||||
#if (TCFG_AUDIO_DMS_SEL == DMS_NORMAL)
|
||||
#define aec_open aec_dms_init
|
||||
#define aec_close aec_dms_exit
|
||||
#define aec_in_data aec_dms_fill_in_data
|
||||
#define aec_in_data_ref aec_dms_fill_in_ref_data
|
||||
#define aec_ref_data aec_dms_fill_ref_data
|
||||
#else
|
||||
#define aec_open aec_dms_flexible_init
|
||||
#define aec_close aec_dms_flexible_exit
|
||||
#define aec_in_data aec_dms_flexible_fill_in_data
|
||||
#define aec_in_data_ref aec_dms_flexible_fill_in_ref_data
|
||||
#define aec_ref_data aec_dms_flexible_fill_ref_data
|
||||
#endif/*TCFG_AUDIO_DMS_SEL*/
|
||||
|
||||
void aec_cfg_fill(AEC_DMS_CONFIG *cfg);
|
||||
/*
|
||||
*********************************************************************
|
||||
* Audio AEC Output Select
|
||||
* Description: 输出选择
|
||||
* Arguments : sel = Default 默认输出算法处理结果
|
||||
* = Master 输出主mic(通话mic)的原始数据
|
||||
* = Slave 输出副mic(降噪mic)的原始数据
|
||||
* agc 输出数据要不要经过agc自动增益控制模块
|
||||
* Return : None.
|
||||
* Note(s) : 可以通过选择不同的输出,来测试mic的频响和ENC指标
|
||||
*********************************************************************
|
||||
*/
|
||||
void audio_aec_output_sel(CVP_OUTPUT_ENUM sel, u8 agc);
|
||||
|
||||
#elif (TCFG_AUDIO_SMS_ENABLE == SMS_TDE)
|
||||
#include "commproc.h"
|
||||
#define aec_open sms_tde_init
|
||||
#define aec_close sms_tde_exit
|
||||
#define aec_in_data sms_tde_fill_in_data
|
||||
#define aec_in_data_ref(...)
|
||||
#define aec_ref_data sms_tde_fill_ref_data
|
||||
void aec_cfg_fill(AEC_CONFIG *cfg);
|
||||
#else
|
||||
#include "commproc.h"
|
||||
#define aec_open aec_init
|
||||
#define aec_close aec_exit
|
||||
#define aec_in_data aec_fill_in_data
|
||||
#define aec_in_data_ref(...)
|
||||
#define aec_ref_data aec_fill_ref_data
|
||||
void aec_cfg_fill(AEC_CONFIG *cfg);
|
||||
#endif
|
||||
|
||||
s8 aec_debug_online(void *buf, u16 size);
|
||||
void aec_input_clear_enable(u8 enable);
|
||||
|
||||
int audio_aec_init(u16 sample_rate);
|
||||
void audio_aec_close(void);
|
||||
void audio_aec_inbuf(s16 *buf, u16 len);
|
||||
void audio_aec_inbuf_ref(s16 *buf, u16 len);
|
||||
void audio_aec_inbuf_ref_1(s16 *buf, u16 len);
|
||||
void audio_aec_refbuf(s16 *buf, u16 len);
|
||||
u8 audio_aec_status(void);
|
||||
void audio_aec_reboot(u8 reduce);
|
||||
void audio_aec_ref_start(u8 en);
|
||||
/*
|
||||
*********************************************************************
|
||||
* Audio AEC Open
|
||||
* Description: 初始化AEC模块
|
||||
* Arguments : sr 采样率(8000/16000)
|
||||
* enablebit 使能模块(AEC/NLP/AGC/ANS...)
|
||||
* out_hdl 自定义回调函数,NULL则用默认的回调
|
||||
* Return : 0 成功 其他 失败
|
||||
* Note(s) : 该接口是对audio_aec_init的扩展,支持自定义使能模块以及
|
||||
* 数据输出回调函数
|
||||
*********************************************************************
|
||||
*/
|
||||
int audio_aec_open(u16 sample_rate, s16 enablebit, int (*out_hdl)(s16 *data, u16 len));
|
||||
|
||||
/*
|
||||
*********************************************************************
|
||||
* Audio CVP IOCTL
|
||||
* Description: CVP功能配置
|
||||
* Arguments : cmd 操作命令
|
||||
* value 操作数
|
||||
* priv 操作内存地址
|
||||
* Return : 0 成功 其他 失败
|
||||
* Note(s) : (1)比如动态开关降噪NS模块:
|
||||
* audio_cvp_ioctl(CVP_NS_SWITCH,1,NULL); //降噪关
|
||||
* audio_cvp_ioctl(CVP_NS_SWITCH,0,NULL); //降噪开
|
||||
*********************************************************************
|
||||
*/
|
||||
int audio_cvp_ioctl(int cmd, int value, void *priv);
|
||||
|
||||
/*获取风噪的检测结果,1:有风噪,0:无风噪*/
|
||||
int audio_cvp_dms_wnc_state(void);
|
||||
|
||||
/*获取单双麦切换状态
|
||||
* 0: 正常双麦 ;
|
||||
* 1: 副麦坏了,触发故障
|
||||
* -1: 主麦坏了,触发故障
|
||||
*/
|
||||
int audio_cvp_dms_malfunc_state();
|
||||
|
||||
/*
|
||||
* 获取mic的能量值,开了MFDT_EN才能用
|
||||
* mic: 0 获取主麦能量
|
||||
* mic:1 获取副麦能量
|
||||
* return:返回能量值,[0~90.3],返回-1表示错误
|
||||
*/
|
||||
float audio_cvp_dms_mic_energy(u8 mic);
|
||||
|
||||
/*tri_en: 1 正常3MIC降噪
|
||||
* 0 变成2MIC降噪,不使用 FB MIC数据*/
|
||||
int audio_tms_mode_choose(u8 tri_en);
|
||||
|
||||
#else
|
||||
|
||||
extern struct aec_s_attr aec_param;
|
||||
extern const u8 CONST_AEC_SIMPLEX;
|
||||
|
||||
struct aec_s_attr *aec_param_init(u16 sr);
|
||||
s8 aec_debug_online(void *buf, u16 size);
|
||||
void aec_cfg_fill(AEC_CONFIG *cfg);
|
||||
void aec_input_clear_enable(u8 enable);
|
||||
|
||||
#endif /* #if (defined(CONFIG_MEDIA_NEW_ENABLE) || (defined(CONFIG_MEDIA_DEVELOP_ENABLE))) */
|
||||
|
||||
|
||||
//aec 上行音效
|
||||
enum {
|
||||
SOUND_ORIGINAL, //原声
|
||||
SOUND_UNCLE, //大叔
|
||||
SOUND_GODDESS, //女神
|
||||
};
|
||||
|
||||
#if defined(AEC_PRESETS_UL_EQ_CONFIG) && AEC_PRESETS_UL_EQ_CONFIG
|
||||
#ifndef UL_PRESETS_EQ_NSECTION
|
||||
#define UL_PRESETS_EQ_NSECTION 5
|
||||
#endif
|
||||
#if (UL_PRESETS_EQ_NSECTION > EQ_SECTION_MAX )
|
||||
#error "EQ_SETCTION_MAX too samll"
|
||||
#endif
|
||||
void aec_ul_eq_update();
|
||||
void ul_presets_eq_set(u8 tab_num);
|
||||
#endif/*AEC_PRESETS_UL_EQ_CONFIG*/
|
||||
|
||||
#endif/*_AEC_USER_H_*/
|
||||
31
apps/earphone/include/app_action.h
Normal file
31
apps/earphone/include/app_action.h
Normal file
@ -0,0 +1,31 @@
|
||||
#ifndef APP_ACTION_H
|
||||
#define APP_ACTION_H
|
||||
|
||||
|
||||
#define ACTION_EARPHONE_MAIN 0x0001
|
||||
#define ACTION_A2DP_START 0x0002
|
||||
#define ACTION_ESCO_START 0x0003
|
||||
#define ACTION_BY_KEY_MODE 0x0004
|
||||
|
||||
#define ACTION_IDLE_MAIN 0x0010
|
||||
#define ACTION_IDLE_POWER_OFF 0x0011
|
||||
|
||||
#define ACTION_MUSIC_MAIN 0x0020
|
||||
#define ACTION_MUSIC_TWS_RX 0x0021
|
||||
|
||||
#define ACTION_PC_MAIN 0x0030
|
||||
|
||||
#define ACTION_AUX_MAIN 0x0040
|
||||
|
||||
#define APP_NAME_BT "earphone"
|
||||
#define APP_NAME_IDLE "idle"
|
||||
#define APP_NAME_PC "pc"
|
||||
#define APP_NAME_MUSIC "music"
|
||||
#define APP_NAME_AUX "aux"
|
||||
|
||||
extern void task_switch(const char *name, int action);
|
||||
#define task_switch_to_bt() task_switch(APP_NAME_BT, ACTION_EARPHONE_MAIN)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
12
apps/earphone/include/app_ancbox.h
Normal file
12
apps/earphone/include/app_ancbox.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef _APP_ANCBOX_H_
|
||||
#define _APP_ANCBOX_H_
|
||||
|
||||
#include "typedef.h"
|
||||
#include "system/event.h"
|
||||
|
||||
extern int app_ancbox_event_handler(struct ancbox_event *anc_dev);
|
||||
extern u8 ancbox_get_status(void);
|
||||
extern void ancbox_clear_status(void);
|
||||
|
||||
#endif //_APP_CHARGESTORE_H_
|
||||
|
||||
13
apps/earphone/include/app_anctool.h
Normal file
13
apps/earphone/include/app_anctool.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef _APP_ANCTOOL_H_
|
||||
#define _APP_ANCTOOL_H_
|
||||
|
||||
#include "typedef.h"
|
||||
#include "anctool.h"
|
||||
|
||||
u8 app_anctool_spp_rx_data(u8 *packet, u16 size);
|
||||
void app_anctool_spp_connect(void);
|
||||
void app_anctool_spp_disconnect(void);
|
||||
u8 get_app_anctool_spp_connected_flag();
|
||||
|
||||
#endif //_APP_CHARGESTORE_H_
|
||||
|
||||
17
apps/earphone/include/app_charge.h
Normal file
17
apps/earphone/include/app_charge.h
Normal file
@ -0,0 +1,17 @@
|
||||
#ifndef _APP_CHARGE_H_
|
||||
#define _APP_CHARGE_H_
|
||||
|
||||
#include "typedef.h"
|
||||
#include "system/event.h"
|
||||
|
||||
extern void charge_close_deal(void);
|
||||
extern void charge_start_deal(void);
|
||||
extern void ldo5v_keep_deal(void);
|
||||
extern void charge_full_deal(void);
|
||||
extern void charge_ldo5v_in_deal(void);
|
||||
extern void charge_ldo5v_off_deal(void);
|
||||
extern u8 get_charge_full_flag(void);
|
||||
|
||||
extern int app_charge_event_handler(struct device_event *dev);
|
||||
|
||||
#endif //_APP_CHARGE_H_
|
||||
78
apps/earphone/include/app_chargestore.h
Normal file
78
apps/earphone/include/app_chargestore.h
Normal file
@ -0,0 +1,78 @@
|
||||
#ifndef _APP_CHARGESTORE_H_
|
||||
#define _APP_CHARGESTORE_H_
|
||||
|
||||
#include "typedef.h"
|
||||
#include "system/event.h"
|
||||
|
||||
//LDOIN升级口命令定义
|
||||
#define CMD_TWS_CHANNEL_SET 0x01
|
||||
#define CMD_TWS_REMOTE_ADDR 0x02
|
||||
#define CMD_TWS_ADDR_DELETE 0x03
|
||||
#define CMD_BOX_TWS_CHANNEL_SEL 0x04//测试盒获取地址
|
||||
#define CMD_BOX_TWS_REMOTE_ADDR 0x05//测试盒交换地址
|
||||
#define CMD_POWER_LEVEL_OPEN 0x06//开盖充电舱报告/获取电量
|
||||
#define CMD_POWER_LEVEL_CLOSE 0x07//合盖充电舱报告/获取电量
|
||||
#define CMD_RESTORE_SYS 0x08//恢复出厂设置
|
||||
#define CMD_ENTER_DUT 0x09//进入测试模式
|
||||
#define CMD_EX_FIRST_READ_INFO 0x0A//F95读取数据首包信息
|
||||
#define CMD_EX_CONTINUE_READ_INFO 0x0B//F95读取数据后续包信息
|
||||
#define CMD_EX_FIRST_WRITE_INFO 0x0C//F95写入数据首包信息
|
||||
#define CMD_EX_CONTINUE_WRITE_INFO 0x0D//F95写入数据后续包信息
|
||||
#define CMD_EX_INFO_COMPLETE 0x0E//F95完成信息交换
|
||||
#define CMD_TWS_SET_CHANNEL 0x0F//F95设置左右声道信息
|
||||
#define CMD_BOX_UPDATE 0x20//测试盒升级
|
||||
#define CMD_BOX_MODULE 0x21//测试盒一级命令
|
||||
|
||||
#define CMD_SHUT_DOWN 0x80//充电舱关机,充满电关机,或者是低电关机
|
||||
#define CMD_CLOSE_CID 0x81//充电舱盒盖
|
||||
#define CMD_ANC_MODULE 0x90//ANC一级命令
|
||||
#define CMD_FAIL 0xfe//失败
|
||||
#define CMD_UNDEFINE 0xff//未知命令回复
|
||||
|
||||
enum {
|
||||
TWS_CHANNEL_LEFT = 1, //左耳
|
||||
TWS_CHANNEL_RIGHT, //右耳
|
||||
};
|
||||
|
||||
enum {
|
||||
TWS_DEL_TWS_ADDR = 1, //删除对箱地址
|
||||
TWS_DEL_PHONE_ADDR,//删除手机地址
|
||||
TWS_DEL_ALL_ADDR,//删除手机与对箱地址
|
||||
};
|
||||
|
||||
struct _CHARGE_STORE_INFO {
|
||||
u8 tws_local_addr[6];
|
||||
u8 tws_remote_addr[6];
|
||||
u8 tws_mac_addr[6];
|
||||
u32 search_aa;
|
||||
u32 pair_aa;
|
||||
u8 local_channel;
|
||||
u16 device_ind;
|
||||
u16 reserved_data;
|
||||
} _GNU_PACKED_;
|
||||
typedef struct _CHARGE_STORE_INFO CHARGE_STORE_INFO;
|
||||
|
||||
extern void chargestore_set_tws_channel_info(u8 channel);
|
||||
extern bool chargestore_set_tws_remote_info(u8 *data, u8 len);
|
||||
extern u16 chargestore_get_tws_remote_info(u8 *data);
|
||||
extern u8 chargestore_get_power_level(void);
|
||||
extern u8 chargestore_get_power_status(void);
|
||||
extern u8 chargestore_get_cover_status(void);
|
||||
extern u8 chargestore_get_sibling_power_level(void);
|
||||
extern void chargestore_set_bt_init_ok(u8 flag);
|
||||
extern int app_chargestore_event_handler(struct chargestore_event *chargestore_dev);
|
||||
extern u8 chargestore_get_earphone_online(void);
|
||||
extern u8 chargestore_get_earphone_pos(void);
|
||||
extern int chargestore_sync_chg_level(void);
|
||||
extern void chargestore_set_power_level(u8 power);
|
||||
extern void chargestore_set_sibling_chg_lev(u8 chg_lev);
|
||||
extern void chargestore_set_phone_disconnect(void);
|
||||
extern void chargestore_set_phone_connect(void);
|
||||
extern u8 chargestore_check_going_to_poweroff(void);
|
||||
extern void chargestore_shutdown_reset(void);
|
||||
extern void testbox_set_testbox_tws_paired(u8 flag);
|
||||
extern u8 testbox_get_testbox_tws_paired(void);
|
||||
extern u8 testbox_get_touch_trim_en(u8 *sec);
|
||||
extern u8 testbox_get_softpwroff_after_paired(void);
|
||||
|
||||
#endif //_APP_CHARGESTORE_H_
|
||||
555
apps/earphone/include/app_config.h
Normal file
555
apps/earphone/include/app_config.h
Normal file
@ -0,0 +1,555 @@
|
||||
#ifndef APP_CONFIG_H
|
||||
#define APP_CONFIG_H
|
||||
|
||||
/*
|
||||
* 系统打印总开关
|
||||
*/
|
||||
|
||||
#define LIB_DEBUG 1 //1 //xtelllog 1是打开库打印
|
||||
#define CONFIG_DEBUG_LIB(x) (x & LIB_DEBUG)
|
||||
|
||||
#define CONFIG_DEBUG_ENABLE //xtelllog 注释就关闭log
|
||||
|
||||
#ifndef CONFIG_DEBUG_ENABLE
|
||||
//#define CONFIG_DEBUG_LITE_ENABLE //轻量级打印开关, 默认关闭
|
||||
#endif
|
||||
|
||||
|
||||
//*********************************************************************************//
|
||||
// AI配置 //
|
||||
//*********************************************************************************//
|
||||
#define CONFIG_APP_BT_ENABLE
|
||||
|
||||
#ifdef CONFIG_APP_BT_ENABLE
|
||||
#define TRANS_DATA_EN 0
|
||||
#define RCSP_BTMATE_EN 0
|
||||
#define RCSP_ADV_EN 1
|
||||
#define AI_APP_PROTOCOL 0
|
||||
#define LL_SYNC_EN 0
|
||||
#define TUYA_DEMO_EN 0
|
||||
#else
|
||||
#define TRANS_DATA_EN 1
|
||||
#define RCSP_BTMATE_EN 0
|
||||
#define RCSP_ADV_EN 0
|
||||
#define AI_APP_PROTOCOL 0
|
||||
#define LL_SYNC_EN 0
|
||||
#define TUYA_DEMO_EN 0
|
||||
#endif
|
||||
|
||||
|
||||
#include "board_config.h"
|
||||
#ifdef TCFG_AUDIO_CVP_NS_MODE
|
||||
#if (TCFG_AUDIO_CVP_NS_MODE==CVP_DNS_MODE) || (TCFG_KWS_VOICE_RECOGNITION_ENABLE == 1)||(TCFG_AUDIO_ANC_ENABLE==1&&TCFG_AUDIO_DUAL_MIC_ENABLE==1)
|
||||
#undef CONFIG_MOVABLE_ENABLE
|
||||
#define CONFIG_MOVABLE_ENABLE //省ram空间,将部分ram空间的代码挪到flash
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(TCFG_CVP_DEVELOP_ENABLE) && (TCFG_CVP_DEVELOP_ENABLE == 1)
|
||||
#undef CONFIG_MOVABLE_ENABLE
|
||||
#define CONFIG_MOVABLE_ENABLE //省ram空间,将部分ram空间的代码挪到flash
|
||||
#endif
|
||||
|
||||
#if CONFIG_UPDATE_WITH_MD5_CHECK_EN
|
||||
#define UPDATE_MD5_ENABLE 1
|
||||
#else
|
||||
#define UPDATE_MD5_ENABLE 0
|
||||
#endif
|
||||
|
||||
|
||||
//升级需要打开CONFIG_APP_OTA_ENABLE,同时单双备份的配置也在board_xxx_global_cfg里配置,需要注意只有JL_RCSP才支持单备份,其余升级都是只支持双备份升级
|
||||
//支持TWS同步升级,OTA_TWS_SAME_TIME_NEW宏需要配置为1,旧的流程已不再支持
|
||||
#if (RCSP_ADV_EN) //rcsp需要打开ble
|
||||
#define JL_EARPHONE_APP_EN 1
|
||||
// #define CONFIG_CHARGESTORE_REMAP_ENABLE //充电仓重映射接收函数使能
|
||||
#if CONFIG_APP_OTA_ENABLE
|
||||
#define RCSP_UPDATE_EN 1 //是否支持rcsp升级
|
||||
#if CONFIG_DOUBLE_BANK_ENABLE //双备份才能打开同步升级流程
|
||||
#define OTA_TWS_SAME_TIME_ENABLE 0 //是否支持TWS同步升级
|
||||
#define OTA_TWS_SAME_TIME_NEW 0 //使用新的tws ota流程
|
||||
#else
|
||||
#define OTA_TWS_SAME_TIME_ENABLE 1//0 xtellota //是否支持TWS同步升级
|
||||
#define OTA_TWS_SAME_TIME_NEW 1//0 //使用新的tws ota流程
|
||||
#endif //CONFIG_DOUBLE_BANK_ENABLE
|
||||
#else
|
||||
#define RCSP_UPDATE_EN 0 //是否支持rcsp升级
|
||||
#define OTA_TWS_SAME_TIME_ENABLE 0 //是否支持TWS同步升级
|
||||
#define OTA_TWS_SAME_TIME_NEW 0 //使用新的tws ota流程
|
||||
#endif
|
||||
#undef TCFG_USER_BLE_ENABLE
|
||||
#define TCFG_USER_BLE_ENABLE 1 //BLE功能使能
|
||||
#elif (AI_APP_PROTOCOL)
|
||||
#define BT_MIC_EN 0
|
||||
#define OTA_TWS_SAME_TIME_ENABLE 0 //是否支持TWS同步升级
|
||||
#elif (LL_SYNC_EN)
|
||||
#define JL_EARPHONE_APP_EN 0
|
||||
#define OTA_TWS_SAME_TIME_ENABLE 1
|
||||
#define OTA_TWS_SAME_TIME_NEW 1 //使用新的tws ota流程
|
||||
#elif (TUYA_DEMO_EN)
|
||||
#define JL_EARPHONE_APP_EN 0
|
||||
#define OTA_TWS_SAME_TIME_ENABLE 0
|
||||
#define OTA_TWS_SAME_TIME_NEW 0 //使用新的tws ota流程
|
||||
#else
|
||||
#define JL_EARPHONE_APP_EN 0
|
||||
#define OTA_TWS_SAME_TIME_ENABLE 0
|
||||
#define OTA_TWS_SAME_TIME_NEW 0 //使用新的tws ota流程
|
||||
#endif
|
||||
|
||||
#define CONFIG_MEDIA_LIB_USE_MALLOC 1
|
||||
|
||||
|
||||
|
||||
#include "usb_std_class_def.h"
|
||||
|
||||
#undef USB_MALLOC_ENABLE
|
||||
#define USB_MALLOC_ENABLE 1
|
||||
///USB 配置重定义
|
||||
// #undef USB_DEVICE_CLASS_CONFIG
|
||||
// #define USB_DEVICE_CLASS_CONFIG (AUDIO_CLASS)
|
||||
/////要确保 上面 undef 后在include usb
|
||||
#include "usb_common_def.h"
|
||||
|
||||
#define USB_PC_NO_APP_MODE 0
|
||||
|
||||
#if ((TCFG_CHARGESTORE_ENABLE || TCFG_TEST_BOX_ENABLE || TCFG_ANC_BOX_ENABLE) \
|
||||
&& TCFG_CHARGESTORE_PORT == IO_PORT_DP)
|
||||
#undef TCFG_OTG_MODE
|
||||
#define TCFG_OTG_MODE (TCFG_OTG_MODE_HOST|TCFG_OTG_MODE_SLAVE|TCFG_OTG_MODE_CHARGE|OTG_DET_DM_ONLY)
|
||||
#endif
|
||||
|
||||
|
||||
#include "btcontroller_mode.h"
|
||||
|
||||
#include "user_cfg_id.h"
|
||||
|
||||
#ifndef __LD__
|
||||
#include "bt_profile_cfg.h"
|
||||
#endif
|
||||
|
||||
|
||||
// #ifdef CONFIG_APP_BT_ENABLE
|
||||
// #if(APP_ONLINE_DEBUG)
|
||||
// #error "they can not enable at the same time,just select one!!!"
|
||||
// #endif
|
||||
// #endif
|
||||
|
||||
|
||||
#ifdef CONFIG_SDFILE_ENABLE
|
||||
|
||||
#define SDFILE_DEV "sdfile"
|
||||
#define SDFILE_MOUNT_PATH "mnt/sdfile"
|
||||
|
||||
#if (USE_SDFILE_NEW)
|
||||
#define SDFILE_APP_ROOT_PATH SDFILE_MOUNT_PATH"/app/" //app分区
|
||||
#define SDFILE_RES_ROOT_PATH SDFILE_MOUNT_PATH"/res/" //资源文件分区
|
||||
#else
|
||||
#define SDFILE_RES_ROOT_PATH SDFILE_MOUNT_PATH"/C/"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define STYLE_JL_WTACH (1)//彩屏demo
|
||||
#define STYLE_JL_SOUNDBOX (2)//点阵屏demo
|
||||
#define STYLE_JL_CHARGE (3)//点阵屏充电仓
|
||||
#define STYLE_JL_LED7 (4)//led7
|
||||
#define STYLE_UI_SIMPLE (5)//没有ui框架
|
||||
|
||||
|
||||
//*********************************************************************************//
|
||||
// 测试模式配置 //
|
||||
//*********************************************************************************//
|
||||
#if (CONFIG_BT_MODE != BT_NORMAL)
|
||||
#undef TCFG_BD_NUM
|
||||
#define TCFG_BD_NUM 1
|
||||
|
||||
#undef TCFG_USER_TWS_ENABLE
|
||||
#define TCFG_USER_TWS_ENABLE 0 //tws功能使能
|
||||
|
||||
#undef TCFG_USER_BLE_ENABLE
|
||||
#define TCFG_USER_BLE_ENABLE 1 //BLE功能使能
|
||||
|
||||
#undef TCFG_AUTO_SHUT_DOWN_TIME
|
||||
#define TCFG_AUTO_SHUT_DOWN_TIME 0
|
||||
|
||||
#undef TCFG_SYS_LVD_EN
|
||||
#define TCFG_SYS_LVD_EN 0
|
||||
|
||||
#undef TCFG_LOWPOWER_LOWPOWER_SEL
|
||||
#define TCFG_LOWPOWER_LOWPOWER_SEL 0
|
||||
|
||||
#undef TCFG_AUDIO_DAC_LDO_VOLT
|
||||
#define TCFG_AUDIO_DAC_LDO_VOLT DUT_AUDIO_DAC_LDO_VOLT
|
||||
|
||||
#undef TCFG_LOWPOWER_POWER_SEL
|
||||
#define TCFG_LOWPOWER_POWER_SEL PWR_LDO15
|
||||
|
||||
#undef TCFG_PWMLED_ENABLE
|
||||
#define TCFG_PWMLED_ENABLE DISABLE_THIS_MOUDLE
|
||||
|
||||
#undef TCFG_ADKEY_ENABLE
|
||||
#define TCFG_ADKEY_ENABLE DISABLE_THIS_MOUDLE
|
||||
|
||||
#undef TCFG_IOKEY_ENABLE
|
||||
#define TCFG_IOKEY_ENABLE DISABLE_THIS_MOUDLE
|
||||
|
||||
#undef TCFG_TEST_BOX_ENABLE
|
||||
#define TCFG_TEST_BOX_ENABLE 0
|
||||
|
||||
#undef TCFG_AUTO_SHUT_DOWN_TIME
|
||||
#define TCFG_AUTO_SHUT_DOWN_TIME 0
|
||||
|
||||
#undef TCFG_POWER_ON_NEED_KEY
|
||||
#define TCFG_POWER_ON_NEED_KEY 0
|
||||
|
||||
/* #undef TCFG_UART0_ENABLE
|
||||
#define TCFG_UART0_ENABLE DISABLE_THIS_MOUDLE */
|
||||
dzfghsdfhgsfgh
|
||||
#endif //(CONFIG_BT_MODE != BT_NORMAL)
|
||||
|
||||
|
||||
#if TCFG_USER_TWS_ENABLE
|
||||
|
||||
#define CONFIG_TWS_COMMON_ADDR_AUTO 0 /* 自动生成TWS配对后的MAC地址 */
|
||||
#define CONFIG_TWS_COMMON_ADDR_USED_LEFT 1 /* 使用左耳的MAC地址作为TWS配对后的地址
|
||||
可配合烧写器MAC地址自增功能一起使用
|
||||
多台交叉配对会出现MAC地址相同情况 */
|
||||
#define CONFIG_TWS_COMMON_ADDR_SELECT CONFIG_TWS_COMMON_ADDR_AUTO
|
||||
|
||||
//*********************************************************************************//
|
||||
// 对耳配置方式配置 //
|
||||
//*********************************************************************************//
|
||||
#define CONFIG_TWS_CONNECT_SIBLING_TIMEOUT 4 /* 开机或超时断开后对耳互连超时时间,单位s */
|
||||
// #define CONFIG_TWS_REMOVE_PAIR_ENABLE [> 不连手机的情况下双击按键删除配对信息 <]
|
||||
#define CONFIG_TWS_POWEROFF_SAME_TIME 1 /*按键关机时两个耳机同时关机*/
|
||||
|
||||
#define ONE_KEY_CTL_DIFF_FUNC 1 /*通过左右耳实现一个按键控制两个功能*/
|
||||
#define CONFIG_TWS_SCO_ONLY_MASTER 0 /*通话的时候只有主机出声音*/
|
||||
|
||||
/* 配对方式选择 */
|
||||
#define CONFIG_TWS_PAIR_BY_CLICK 0 /* 按键发起配对 */
|
||||
#define CONFIG_TWS_PAIR_BY_AUTO 1 /* 开机自动配对 */
|
||||
#define CONFIG_TWS_PAIR_BY_FAST_CONN 2 /* 开机快速连接,连接速度比自动配对快,不支持取消配对操作 */
|
||||
#define CONFIG_TWS_PAIR_MODE CONFIG_TWS_PAIR_BY_AUTO
|
||||
|
||||
|
||||
/* 声道确定方式选择 */
|
||||
#define CONFIG_TWS_MASTER_AS_LEFT 0 //主机作为左耳
|
||||
#define CONFIG_TWS_AS_LEFT_CHANNEL 1 //固定左耳
|
||||
#define CONFIG_TWS_AS_RIGHT_CHANNEL 2 //固定右耳
|
||||
#define CONFIG_TWS_LEFT_START_PAIR 3 //双击发起配对的耳机做左耳
|
||||
#define CONFIG_TWS_RIGHT_START_PAIR 4 //双击发起配对的耳机做右耳
|
||||
#define CONFIG_TWS_EXTERN_UP_AS_LEFT 5 //外部有上拉电阻作为左耳
|
||||
#define CONFIG_TWS_EXTERN_DOWN_AS_LEFT 6 //外部有下拉电阻作为左耳
|
||||
#define CONFIG_TWS_SECECT_BY_CHARGESTORE 7 //充电仓决定左右耳
|
||||
#define CONFIG_TWS_CHANNEL_SELECT CONFIG_TWS_LEFT_START_PAIR //配对方式选择
|
||||
|
||||
#define CONFIG_TWS_CHANNEL_CHECK_IO IO_PORTA_07 //上下拉电阻检测引脚
|
||||
|
||||
|
||||
#if CONFIG_TWS_PAIR_MODE != CONFIG_TWS_PAIR_BY_CLICK
|
||||
#if (CONFIG_TWS_CHANNEL_SELECT == CONFIG_TWS_LEFT_START_PAIR) ||\
|
||||
(CONFIG_TWS_CHANNEL_SELECT == CONFIG_TWS_RIGHT_START_PAIR)
|
||||
#undef CONFIG_TWS_CHANNEL_SELECT
|
||||
#define CONFIG_TWS_CHANNEL_SELECT CONFIG_TWS_MASTER_AS_LEFT
|
||||
#endif
|
||||
|
||||
#if CONFIG_TWS_PAIR_MODE == CONFIG_TWS_PAIR_BY_AUTO
|
||||
#define CONFIG_TWS_AUTO_PAIR_WITHOUT_UNPAIR /* 不取消配对也可以配对新的耳机 */
|
||||
#endif
|
||||
|
||||
#if CONFIG_TWS_PAIR_MODE == CONFIG_TWS_PAIR_BY_FAST_CONN
|
||||
#undef CONFIG_TWS_REMOVE_PAIR_ENABLE
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define CONFIG_A2DP_GAME_MODE_ENABLE 0 //游戏模式
|
||||
#define CONFIG_A2DP_GAME_MODE_DELAY_TIME 35 //游戏模式延时ms
|
||||
|
||||
//*********************************************************************************//
|
||||
// 低延时游戏模式脚步声、枪声增强,需使能蓝牙音乐10段eq以及蓝牙音乐drc
|
||||
// 用户开关宏AUDIO_GAME_EFFECT_CONFIG(开关蓝牙低延时模式的游戏音效)
|
||||
// 低延时eq效果文件使用eq_game_eff.bin,调试时需保存成该文件,并在批处理-res后添加
|
||||
// 非低延时eq效果文件使用eq_cfg_hw.bin,也需在批处理-res后添加
|
||||
//*********************************************************************************//
|
||||
#if CONFIG_A2DP_GAME_MODE_ENABLE
|
||||
#define AUDIO_GAME_EFFECT_CONFIG 1 //低延时游戏模式脚步声、枪声增强 1:使能、0:关闭
|
||||
#else
|
||||
#define AUDIO_GAME_EFFECT_CONFIG 0 //低延时游戏模式脚步声、枪声增强 1:使能、0:关闭
|
||||
#endif
|
||||
/***********************************非用户配置区***********************************/
|
||||
//以下宏定义,是游戏音效使能后,需要开启的宏定义,已配好,用户不用修改
|
||||
#if AUDIO_GAME_EFFECT_CONFIG
|
||||
#if (TCFG_EQ_ENABLE == 0)
|
||||
#undef TCFG_EQ_ENABLE
|
||||
#define TCFG_EQ_ENABLE 1
|
||||
#endif/* (TCFG_EQ_ENABLE == 0) */
|
||||
#if (TCFG_BT_MUSIC_EQ_ENABLE == 0)
|
||||
#undef TCFG_BT_MUSIC_EQ_ENABLE
|
||||
#define TCFG_BT_MUSIC_EQ_ENABLE 1
|
||||
#endif/*(TCFG_BT_MUSIC_EQ_ENABLE == 0)*/
|
||||
#if (TCFG_DRC_ENABLE == 0)
|
||||
#undef TCFG_DRC_ENABLE
|
||||
#define TCFG_DRC_ENABLE 1
|
||||
#endif/* (TCFG_DRC_ENABLE == 0) */
|
||||
#if (TCFG_BT_MUSIC_DRC_ENABLE == 0)
|
||||
#undef TCFG_BT_MUSIC_DRC_ENABLE
|
||||
#define TCFG_BT_MUSIC_DRC_ENABLE 1
|
||||
#endif/* (TCFG_BT_MUSIC_DRC_ENABLE == 0) */
|
||||
#if (EQ_SECTION_MAX < 10)
|
||||
#undef EQ_SECTION_MAX
|
||||
#define EQ_SECTION_MAX 10
|
||||
#endif/* (EQ_SECTION_MAX < 10) */
|
||||
#if (TCFG_USE_EQ_FILE == 0)
|
||||
#undef TCFG_USE_EQ_FILE
|
||||
#define TCFG_USE_EQ_FILE 1
|
||||
#endif/* TCFG_USE_EQ_FILE */
|
||||
#endif/* AUDIO_GAME_EFFECT_CONFIG */
|
||||
/**********************************************************************************/
|
||||
|
||||
|
||||
|
||||
#if CONFIG_TWS_PAIR_MODE == CONFIG_TWS_PAIR_BY_CLICK
|
||||
#define CONFIG_TWS_BY_CLICK_PAIR_WITHOUT_PAIR /*双击按键可以配对已配对过的样机,即交叉配对 */
|
||||
#ifdef CONFIG_TWS_BY_CLICK_PAIR_WITHOUT_PAIR
|
||||
#define CONFIG_TWS_AUTO_PAIR_WITHOUT_UNPAIR /* 不取消配对也可以配对新的耳机 */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if TCFG_CHARGESTORE_ENABLE
|
||||
#undef CONFIG_TWS_CHANNEL_SELECT
|
||||
#define CONFIG_TWS_CHANNEL_SELECT CONFIG_TWS_SECECT_BY_CHARGESTORE //充电仓区分左右
|
||||
#endif //TCFG_CHARGESTORE_ENABLE
|
||||
|
||||
#if TCFG_TEST_BOX_ENABLE && (!TCFG_CHARGESTORE_ENABLE)
|
||||
#define CONFIG_TWS_SECECT_CHARGESTORE_PRIO 1 //测试盒配置左右耳优先
|
||||
#else
|
||||
#define CONFIG_TWS_SECECT_CHARGESTORE_PRIO 0
|
||||
#endif //TCFG_TEST_BOX_ENABLE
|
||||
|
||||
//*********************************************************************************//
|
||||
// 对耳电量显示方式 //
|
||||
//*********************************************************************************//
|
||||
|
||||
#if BT_SUPPORT_DISPLAY_BAT
|
||||
#define CONFIG_DISPLAY_TWS_BAT_LOWER 1 //对耳手机端电量显示,显示低电量耳机的电量
|
||||
#define CONFIG_DISPLAY_TWS_BAT_HIGHER 2 //对耳手机端电量显示,显示高电量耳机的电量
|
||||
#define CONFIG_DISPLAY_TWS_BAT_LEFT 3 //对耳手机端电量显示,显示左耳的电量
|
||||
#define CONFIG_DISPLAY_TWS_BAT_RIGHT 4 //对耳手机端电量显示,显示右耳的电量
|
||||
|
||||
#define CONFIG_DISPLAY_TWS_BAT_TYPE CONFIG_DISPLAY_TWS_BAT_LOWER
|
||||
#endif //BT_SUPPORT_DISPLAY_BAT
|
||||
|
||||
#define CONFIG_DISPLAY_DETAIL_BAT 0 //BLE广播显示具体的电量
|
||||
#define CONFIG_NO_DISPLAY_BUTTON_ICON 1 //BLE广播不显示按键界面,智能充电仓置1
|
||||
|
||||
#endif //TCFG_USER_TWS_ENABLE
|
||||
|
||||
#ifndef CONFIG_BT_RX_BUFF_SIZE
|
||||
#define CONFIG_BT_RX_BUFF_SIZE (14 * 1024)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_APP_BT_ENABLE
|
||||
#if TCFG_BT_SUPPORT_AAC || TCFG_BT_SUPPORT_LDAC
|
||||
#define CONFIG_BT_TX_BUFF_SIZE (5 * 1024)
|
||||
#else
|
||||
#define CONFIG_BT_TX_BUFF_SIZE (4 * 1024)
|
||||
#endif
|
||||
#else
|
||||
#if TCFG_BT_SUPPORT_AAC || TCFG_BT_SUPPORT_LDAC
|
||||
#define CONFIG_BT_TX_BUFF_SIZE (4 * 1024)
|
||||
#else
|
||||
#define CONFIG_BT_TX_BUFF_SIZE (3 * 1024)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef CONFIG_NEW_BREDR_ENABLE
|
||||
|
||||
#if TCFG_USER_TWS_ENABLE
|
||||
|
||||
#ifdef CONFIG_LOCAL_TWS_ENABLE
|
||||
#define CONFIG_TWS_BULK_POOL_SIZE (4 * 1024)
|
||||
#else
|
||||
#define CONFIG_TWS_BULK_POOL_SIZE (2 * 1024)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if (CONFIG_BT_MODE != BT_NORMAL)
|
||||
////bqb 如果测试3M tx buf 最好加大一点
|
||||
#undef CONFIG_BT_TX_BUFF_SIZE
|
||||
#define CONFIG_BT_TX_BUFF_SIZE (6 * 1024)
|
||||
|
||||
#endif
|
||||
|
||||
//*********************************************************************************//
|
||||
// 电源切换配置 //
|
||||
//*********************************************************************************//
|
||||
|
||||
#define PHONE_CALL_USE_LDO15 CONFIG_PHONE_CALL_USE_LDO15
|
||||
|
||||
//*********************************************************************************//
|
||||
// 时钟切换配置 //
|
||||
//*********************************************************************************//
|
||||
#define BT_NORMAL_HZ CONFIG_BT_NORMAL_HZ
|
||||
#define BT_CONNECT_HZ CONFIG_BT_CONNECT_HZ
|
||||
|
||||
#define BT_A2DP_HZ CONFIG_BT_A2DP_HZ
|
||||
|
||||
#define BT_CALL_HZ CONFIG_BT_CALL_HZ
|
||||
#define BT_CALL_ADVANCE_HZ CONFIG_BT_CALL_ADVANCE_HZ
|
||||
#define BT_CALL_16k_HZ CONFIG_BT_CALL_16k_HZ
|
||||
#define BT_CALL_16k_ADVANCE_HZ CONFIG_BT_CALL_16k_ADVANCE_HZ
|
||||
|
||||
|
||||
#define MUSIC_DEC_FASTEST_CLOCK CONFIG_MUSIC_DEC_FASTEST_CLOCK
|
||||
#define MUSIC_DEC_FAST_CLOCK CONFIG_MUSIC_DEC_FAST_CLOCK
|
||||
#define MUSIC_DEC_CLOCK CONFIG_MUSIC_DEC_CLOCK
|
||||
#define MUSIC_DEC_IDLE_CLOCK CONFIG_MUSIC_IDLE_CLOCK
|
||||
#define MUSIC_FSCAN_CLOCK CONFIG_MUSIC_FSCAN_CLOCK
|
||||
#define LINEIN_CLOCK CONFIG_LINEIN_CLOCK
|
||||
#define FM_CLOCK CONFIG_FM_CLOCK
|
||||
#define FM_EMITTER_CLOCK CONFIG_FM_EMITTER_CLOCK
|
||||
#define PC_CLOCK CONFIG_PC_CLOCK
|
||||
#define RECODRD_CLOCK CONFIG_RECORD_CLOCK
|
||||
#define SPDIF_CLOCK CONFIG_SPDIF_CLOCK
|
||||
|
||||
////////////////////////
|
||||
#if TCFG_BT_SUPPORT_AAC || TCFG_BT_SUPPORT_LDAC
|
||||
#define BT_A2DP_STEREO_EQ_HZ 48 * 1000000L
|
||||
#else
|
||||
#define BT_A2DP_STEREO_EQ_HZ 32 * 1000000L
|
||||
#endif
|
||||
#define BT_A2DP_AAC_HZ 48 * 1000000L
|
||||
#define BT_A2DP_TWS_AAC_HZ 64 * 1000000L
|
||||
#define BT_A2DP_MONO_EQ_HZ 32 * 1000000L
|
||||
#define BT_A2DP_ONLINE_EQ_HZ 48 * 1000000L
|
||||
|
||||
#define BT_CALL_SIMPLEX_HZ 96 * 1000000L
|
||||
#ifdef CONFIG_ANS_V2
|
||||
//#define BT_CALL_16k_HZ 96 * 1000000L
|
||||
//#define BT_CALL_16k_ADVANCE_HZ 120 * 1000000L
|
||||
#else
|
||||
//#define BT_CALL_16k_HZ 80 * 1000000L
|
||||
//#define BT_CALL_16k_ADVANCE_HZ 96 * 1000000L
|
||||
#endif
|
||||
#define BT_CALL_16k_SIMPLEX_HZ 120 * 1000000L
|
||||
////////////////////////
|
||||
|
||||
#ifdef CONFIG_FPGA_ENABLE
|
||||
|
||||
// #undef TCFG_CLOCK_OSC_HZ
|
||||
// #define TCFG_CLOCK_OSC_HZ 12000000
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef CONFIG_CPU_BR26
|
||||
#undef BT_CALL_16k_HZ
|
||||
#undef BT_CALL_16k_ADVANCE_HZ
|
||||
#define BT_CALL_16k_HZ 96 * 1000000L
|
||||
#define BT_CALL_16k_ADVANCE_HZ 96 * 1000000L
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_BR23
|
||||
#undef BT_A2DP_STEREO_EQ_HZ
|
||||
#define BT_A2DP_STEREO_EQ_HZ 48 * 1000000L
|
||||
#undef BT_A2DP_MONO_EQ_HZ
|
||||
#define BT_A2DP_MONO_EQ_HZ 48 * 1000000L
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_BR25
|
||||
#undef BT_A2DP_STEREO_EQ_HZ
|
||||
#define BT_A2DP_STEREO_EQ_HZ 48 * 1000000L
|
||||
#undef BT_A2DP_MONO_EQ_HZ
|
||||
#define BT_A2DP_MONO_EQ_HZ 48 * 1000000L
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FPGA_ENABLE
|
||||
|
||||
// #undef TCFG_CLOCK_OSC_HZ
|
||||
// #define TCFG_CLOCK_OSC_HZ 12000000
|
||||
|
||||
#undef TCFG_MC_BIAS_AUTO_ADJUST
|
||||
#define TCFG_MC_BIAS_AUTO_ADJUST MC_BIAS_ADJUST_DISABLE
|
||||
|
||||
#endif
|
||||
//*********************************************************************************//
|
||||
// 低功耗配置 //
|
||||
//*********************************************************************************//
|
||||
#if TCFG_IRKEY_ENABLE
|
||||
#undef TCFG_LOWPOWER_LOWPOWER_SEL
|
||||
#define TCFG_LOWPOWER_LOWPOWER_SEL 0 //开红外不进入低功耗
|
||||
#endif /* #if TCFG_IRKEY_ENABLE */
|
||||
|
||||
//*********************************************************************************//
|
||||
// LED使用 16SLOT TIMER 同步 //
|
||||
//*********************************************************************************//
|
||||
//LED模块使用slot timer同步使用注意点:
|
||||
// 1.soundbox不开该功能, 原因: 默认打开osc时钟, 使用原来的osc流程同步即可
|
||||
// 2.带sd卡earphone不开该功能, 一般为单耳, 不需要同步, 使用原来的流程(lrc)
|
||||
// 3.一般用在tws应用中, 而且默认关闭osc;
|
||||
#if TCFG_USER_TWS_ENABLE
|
||||
#define TCFG_PWMLED_USE_SLOT_TIME ENABLE_THIS_MOUDLE
|
||||
#endif
|
||||
|
||||
//*********************************************************************************//
|
||||
// 升级配置 //
|
||||
//*********************************************************************************//
|
||||
//升级LED显示使能
|
||||
#define UPDATE_LED_REMIND
|
||||
//升级提示音使能
|
||||
#define UPDATE_VOICE_REMIND
|
||||
|
||||
#ifndef CONFIG_UPDATE_JUMP_TO_MASK
|
||||
#define CONFIG_UPDATE_JUMP_TO_MASK 0
|
||||
#endif
|
||||
|
||||
#if CONFIG_UPDATE_JUMP_TO_MASK
|
||||
//升级IO保持使能
|
||||
#define DEV_UPDATE_SUPPORT_JUMP //目前只有br23\br25支持
|
||||
#endif
|
||||
|
||||
|
||||
#if TCFG_APP_MUSIC_EN
|
||||
#define CONFIG_SD_UPDATE_ENABLE
|
||||
#define CONFIG_USB_UPDATE_ENABLE
|
||||
#endif
|
||||
//*********************************************************************************//
|
||||
// Audio配置 //
|
||||
//*********************************************************************************//
|
||||
|
||||
#if TCFG_AUDIO_ANC_ENABLE
|
||||
#if ((defined VOL_TYPE_ANALOG) && (SYS_VOL_TYPE == VOL_TYPE_ANALOG)) || \
|
||||
((defined VOL_TYPE_AD) && (SYS_VOL_TYPE == VOL_TYPE_AD))
|
||||
#error "ANC can not use VOL_TYPE_ANALOG and VOL_TYPE_AD!!!"
|
||||
#endif/*(SYS_VOL_TYPE = VOL_TYPE_ANALOG) || (SYS_VOL_TYPE = VOL_TYPE_AD)*/
|
||||
#endif/*TCFG_AUDIO_ANC_ENABLE*/
|
||||
|
||||
/*通话语音处理算法放在.data段*/
|
||||
#ifndef TCFG_AUDIO_CVP_CODE_AT_RAM
|
||||
#define TCFG_AUDIO_CVP_CODE_AT_RAM 1
|
||||
#endif/*TCFG_AUDIO_CVP_CODE_AT_RAM*/
|
||||
|
||||
/*AAC解码算法放在.data段*/
|
||||
#ifndef TCFG_AUDIO_AAC_CODE_AT_RAM
|
||||
#define TCFG_AUDIO_AAC_CODE_AT_RAM 1
|
||||
#endif/*TCFG_AUDIO_AAC_CODE_AT_RAM*/
|
||||
|
||||
#if (TCFG_AUDIO_DUAL_MIC_ENABLE && TCFG_AUDIO_TRIPLE_MIC_ENABLE)
|
||||
#error "TCFG_AUDIO_DUAL_MIC_ENABLE and TCFG_AUDIO_TRIPLE_MIC_ENABLE can not enable together !!!"
|
||||
#endif
|
||||
|
||||
//*********************************************************************************//
|
||||
// 充电中按键清除手机配对信息配置 //
|
||||
//*********************************************************************************//
|
||||
|
||||
#define CHARGING_CLEAN_PHONE_INFO 0
|
||||
|
||||
|
||||
#define PC_MODE_DETECTION
|
||||
|
||||
#endif
|
||||
90
apps/earphone/include/app_main.h
Normal file
90
apps/earphone/include/app_main.h
Normal file
@ -0,0 +1,90 @@
|
||||
#ifndef APP_MAIN_H
|
||||
#define APP_MAIN_H
|
||||
|
||||
typedef struct {
|
||||
float talk;
|
||||
float ff;
|
||||
float fb;
|
||||
} audio_mic_cmp_t;
|
||||
|
||||
typedef struct _APP_VAR {
|
||||
s8 bt_volume;
|
||||
s8 dev_volume;
|
||||
s8 music_volume;
|
||||
s8 call_volume;
|
||||
s8 wtone_volume;
|
||||
u8 opid_play_vol_sync;
|
||||
u8 aec_dac_gain;
|
||||
u8 aec_mic_gain;
|
||||
u8 aec_mic1_gain;
|
||||
u8 aec_mic2_gain;
|
||||
u8 aec_mic3_gain;
|
||||
u8 rf_power;
|
||||
u8 goto_poweroff_flag;
|
||||
u8 goto_poweroff_cnt;
|
||||
u8 play_poweron_tone;
|
||||
u8 remote_dev_company;
|
||||
u8 siri_stu;
|
||||
u8 cycle_mode;
|
||||
u8 have_mass_storage;
|
||||
int auto_stop_page_scan_timer; //用于1拖2时,有一台连接上后,超过三分钟自动关闭Page Scan
|
||||
volatile int auto_shut_down_timer;
|
||||
volatile int wait_exit_timer;
|
||||
u16 auto_off_time;
|
||||
u16 warning_tone_v;
|
||||
u16 poweroff_tone_v;
|
||||
u16 phone_dly_discon_time;
|
||||
u8 usb_mic_gain;
|
||||
int wait_timer_do;
|
||||
u32 start_time;
|
||||
float audio_mic_array_diff_cmp;//麦克风阵列补偿值
|
||||
u8 audio_mic_array_trim_en; //麦克风阵列校准
|
||||
audio_mic_cmp_t audio_mic_cmp;
|
||||
float enc_degradation;//default:1,range[0:1]
|
||||
/*3麦通话配置使用:选择第几个mic*/
|
||||
u8 talk_mic_ch; //主MIC通道选择
|
||||
u8 talk_ref_mic_ch; //副MIC通道选择
|
||||
u8 talk_fb_mic_ch; //FB通道选择
|
||||
} APP_VAR;
|
||||
|
||||
typedef struct _BT_USER_PRIV_VAR {
|
||||
//phone
|
||||
u8 phone_ring_flag: 1;
|
||||
u8 phone_num_flag: 1;
|
||||
u8 phone_income_flag: 1;
|
||||
u8 phone_call_dec_begin: 1;
|
||||
u8 phone_con_sync_num_ring: 1;
|
||||
u8 phone_con_sync_ring: 1;
|
||||
// u8 reserved: 2;
|
||||
u8 emitter_or_receiver: 2;
|
||||
u8 get_phone_num_timecnt;
|
||||
|
||||
u8 inband_ringtone;
|
||||
u8 phone_vol;
|
||||
u16 phone_timer_id;
|
||||
u8 last_call_type;
|
||||
u8 income_phone_num[30];
|
||||
u8 income_phone_len;
|
||||
s32 auto_connection_counter;
|
||||
int auto_connection_timer;
|
||||
u8 auto_connection_addr[6];
|
||||
int tws_con_timer;
|
||||
u8 tws_start_con_cnt;
|
||||
u8 tws_conn_state;
|
||||
bool search_tws_ing;
|
||||
int sniff_timer;
|
||||
bool fast_test_mode;
|
||||
} BT_USER_PRIV_VAR;
|
||||
|
||||
#define BT_EMITTER_EN 1
|
||||
#define BT_RECEIVER_EN 2
|
||||
|
||||
typedef struct _BT_USER_COMM_VAR {
|
||||
} BT_USER_COMM_VAR;
|
||||
|
||||
extern APP_VAR app_var;
|
||||
extern BT_USER_PRIV_VAR bt_user_priv_var;
|
||||
|
||||
#define earphone (&bt_user_priv_var)
|
||||
|
||||
#endif
|
||||
8
apps/earphone/include/app_music.h
Normal file
8
apps/earphone/include/app_music.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_APP_MUSIC_H
|
||||
#define CONFIG_APP_MUSIC_H
|
||||
|
||||
void app_music_exit();
|
||||
int music_app_check(void);
|
||||
|
||||
#endif
|
||||
|
||||
13
apps/earphone/include/app_online_cfg.h
Normal file
13
apps/earphone/include/app_online_cfg.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef ONLINE_CONFIG_H
|
||||
#define ONLINE_CONFIG_H
|
||||
|
||||
#define DEVICE_EVENT_FROM_CI_UART (('C' << 24) | ('I' << 16) | ('U' << 8) | '\0')
|
||||
#define DEVICE_EVENT_FROM_CI_TWS (('C' << 24) | ('I' << 16) | ('T' << 8) | '\0')
|
||||
|
||||
#define CI_UART 0
|
||||
#define CI_TWS 1
|
||||
|
||||
void ci_data_rx_handler(u8 type);
|
||||
u32 eq_cfg_sync(u8 priority);
|
||||
#endif
|
||||
|
||||
39
apps/earphone/include/app_power_manage.h
Normal file
39
apps/earphone/include/app_power_manage.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef APP_POWER_MANAGE_H
|
||||
#define APP_POWER_MANAGE_H
|
||||
|
||||
#include "typedef.h"
|
||||
#include "system/event.h"
|
||||
|
||||
#define LOW_POWER_SHUTDOWN 300 //低电直接关机电压-拔出不开机-开盖不开机
|
||||
#define LOW_POWER_OFF_VAL 330 //低电关机电压
|
||||
#define LOW_POWER_WARN_VAL 340 //低电提醒电压
|
||||
#define LOW_POWER_WARN_TIME (60 * 1000) //低电提醒时间
|
||||
|
||||
#define DEVICE_EVENT_FROM_POWER (('P' << 24) | ('O' << 16) | ('W' << 8) | '\0')
|
||||
|
||||
enum {
|
||||
POWER_EVENT_POWER_NORMAL,
|
||||
POWER_EVENT_POWER_WARNING,
|
||||
POWER_EVENT_POWER_LOW,
|
||||
POWER_EVENT_POWER_CHANGE,
|
||||
POWER_EVENT_SYNC_TWS_VBAT_LEVEL,
|
||||
POWER_EVENT_POWER_CHARGE,
|
||||
};
|
||||
|
||||
int app_power_event_handler(struct device_event *dev);
|
||||
void check_power_on_voltage(void);
|
||||
u16 get_vbat_level(void);
|
||||
u8 get_vbat_percent(void);
|
||||
void vbat_check_init(void);
|
||||
void vbat_timer_update(u32 msec);
|
||||
void vbat_timer_delete(void);
|
||||
void tws_sync_bat_level(void);
|
||||
u8 get_tws_sibling_bat_level(void);
|
||||
u8 get_tws_sibling_bat_persent(void);
|
||||
bool get_vbat_need_shutdown(void);
|
||||
u8 get_self_battery_level(void);
|
||||
|
||||
void app_power_set_tws_sibling_bat_level(u8 vbat, u8 percent);
|
||||
|
||||
#endif
|
||||
|
||||
6
apps/earphone/include/app_sd_music.h
Normal file
6
apps/earphone/include/app_sd_music.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef CONFIG_APP_SD_MUSIC_H
|
||||
#define CONFIG_APP_SD_MUSIC_H
|
||||
|
||||
int music_app_check(void);//music 在线检测 切换模式判断使用
|
||||
|
||||
#endif
|
||||
31
apps/earphone/include/app_task.h
Normal file
31
apps/earphone/include/app_task.h
Normal file
@ -0,0 +1,31 @@
|
||||
#ifndef APP_TASK_H
|
||||
#define APP_TASK_H
|
||||
|
||||
#include "typedef.h"
|
||||
#define NULL_VALUE 0
|
||||
|
||||
enum {
|
||||
APP_BT_TASK,
|
||||
#if TCFG_APP_MUSIC_EN
|
||||
APP_MUSIC_TASK,
|
||||
#endif
|
||||
#if TCFG_PC_ENABLE
|
||||
APP_PC_TASK,
|
||||
#endif
|
||||
#if TCFG_APP_AUX_EN
|
||||
APP_AUX_TASK,
|
||||
#endif
|
||||
};
|
||||
|
||||
extern u8 app_curr_task;
|
||||
extern u8 app_next_task;
|
||||
extern u8 app_prev_task;
|
||||
|
||||
int app_task_switch_check(u8 app_task);
|
||||
int app_core_back_to_prev_app_over_check(void);
|
||||
int app_task_switch_to(u8 app_task, int priv);
|
||||
void app_task_switch_next(void);
|
||||
void app_task_switch_prev(void);
|
||||
u8 app_get_curr_task(void);
|
||||
|
||||
#endif
|
||||
18
apps/earphone/include/app_testbox.h
Normal file
18
apps/earphone/include/app_testbox.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef _APP_TESTBOX_H_
|
||||
#define _APP_TESTBOX_H_
|
||||
|
||||
#include "typedef.h"
|
||||
#include "system/event.h"
|
||||
|
||||
extern void testbox_set_bt_init_ok(u8 flag);
|
||||
extern u8 testbox_get_status(void);
|
||||
extern void testbox_clear_status(void);
|
||||
extern u8 testbox_get_ex_enter_dut_flag(void);
|
||||
extern u8 testbox_get_ex_enter_storage_mode_flag(void);
|
||||
extern u8 testbox_get_connect_status(void);
|
||||
extern void testbox_clear_connect_status(void);
|
||||
extern u8 testbox_get_keep_tws_conn_flag(void);
|
||||
extern int app_testbox_event_handler(struct testbox_event *testbox_dev);
|
||||
|
||||
|
||||
#endif //_APP_TESTBOX_H_
|
||||
50
apps/earphone/include/app_umidigi_chargestore.h
Normal file
50
apps/earphone/include/app_umidigi_chargestore.h
Normal file
@ -0,0 +1,50 @@
|
||||
#ifndef _APP_UMIDIGI_CHARGESTORE_H_
|
||||
#define _APP_UMIDIGI_CHARGESTORE_H_
|
||||
|
||||
#include "typedef.h"
|
||||
#include "system/event.h"
|
||||
#include "board_config.h"
|
||||
|
||||
/*******************************UMIDIGI充电舱数据包格式*****************************/
|
||||
/*
|
||||
* |<--1bit-->||<-------4bits----->||<--------------8bits------------>||<--1bit-->||<--1bits-->|
|
||||
* |<-start-->||<-------CMD------->||<--------------DATA------------->|| crc_odd ||<--stop--->|
|
||||
* | 14 || 13 | 12 | 11 | 10 || 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 || 1 || 0 |
|
||||
*/
|
||||
|
||||
/*充电舱发送的命令列表*/
|
||||
#define CMD_RESERVED_0 0x00 //reserved
|
||||
#define CMD_FACTORY_RESET 0x01 //恢复出厂设置
|
||||
#define CMD_RESERVED_2 0x02 //reserved
|
||||
#define CMD_OPEN_CASE 0x03 //充电舱开盖
|
||||
#define CMD_CLOSE_CASE 0x04 //充电舱关盖
|
||||
#define CMD_ENTER_PAIRING_MODE 0x06 //进入配对模式
|
||||
#define CMD_DUT_MODE_CMD 0x08 //进入DUT模式
|
||||
#define CMD_USB_STATE 0x0A //USB状态
|
||||
#define CMD_RESERVED_B 0x0B //reserved(RTK internal use)
|
||||
#define CMD_SEND_CASE_BATTERY 0x0D //发送充电舱电量
|
||||
|
||||
/*message中的CMD与DATA位置,用于从一个完整的数据包中截取CMD和DATA*/
|
||||
/*CMD_IN_MESSAGE = 0xf000*/
|
||||
#define CMD_IN_MESSAGE (BIT(13) | BIT(12) | BIT(11) | BIT(10))
|
||||
/*DATA_IN_MESSAGE = 0x0ff0*/
|
||||
#define DATA_IN_MESSAGE (BIT(9) | BIT(8) | BIT(7) | BIT(6) | BIT(5) | BIT(4) | BIT(3) | BIT(2))
|
||||
|
||||
void app_umidigi_chargetore_message_deal(u16 message);
|
||||
|
||||
extern u8 umidigi_chargestore_get_power_level(void); //获取充电舱电池电量
|
||||
extern u8 umidigi_chargestore_get_power_status(void); //获取充电舱充电状态
|
||||
extern u8 umidigi_chargestore_get_cover_status(void); //获取充电舱合盖或开盖状态
|
||||
extern u8 umidigi_chargestore_get_earphone_online(void); //获取合盖状态时耳机在仓数量
|
||||
extern void umidigi_chargestore_set_bt_init_ok(u8 flag); //获取蓝牙初始化成功标志位
|
||||
extern u8 umidigi_chargestore_check_going_to_poweroff(void); //获取允许poweroff标志位
|
||||
extern void umidigi_chargestore_set_phone_disconnect(void);
|
||||
extern void umidigi_chargestore_set_phone_connect(void);
|
||||
extern void umidigi_chargestore_set_sibling_chg_lev(u8 chg_lev);//设置对耳同步的充电舱电量
|
||||
extern void umidigi_chargestore_set_power_level(u8 power); //设置充电舱电池电量
|
||||
extern int umidigi_chargestore_sync_chg_level(void);
|
||||
|
||||
extern int app_umidigi_chargestore_event_handler(struct umidigi_chargestore_event *umidigi_chargestore_dev);
|
||||
|
||||
#endif
|
||||
|
||||
69
apps/earphone/include/audio_enc_mpt_self.h
Normal file
69
apps/earphone/include/audio_enc_mpt_self.h
Normal file
@ -0,0 +1,69 @@
|
||||
|
||||
#ifndef __AUDIO_ENC_MPT_FRE_RESPONE_H_
|
||||
#define __AUDIO_ENC_MPT_FRE_RESPONE_H_
|
||||
|
||||
#include "asm/cpu.h"
|
||||
|
||||
/********************用户配置****************************/
|
||||
|
||||
//计算长度 输入单位s16/输出单位float
|
||||
#define AUDIO_ENC_MPT_FRERES_POINT 1024
|
||||
|
||||
/********************非用户配置****************************/
|
||||
|
||||
//MIC频响测试通道ID u16
|
||||
#define AUDIO_ENC_MPT_FF_MIC 0X01 //测试TWS FFMIC or 头戴式LFF MIC
|
||||
#define AUDIO_ENC_MPT_FB_MIC 0X02 //测试TWS FBMIC or 头戴式LFB MIC
|
||||
#define AUDIO_ENC_MPT_RFF_MIC 0X04 //测试头戴式RFF MIC
|
||||
#define AUDIO_ENC_MPT_RFB_MIC 0X08 //测试头戴式RFB MIC
|
||||
#define AUDIO_ENC_MPT_CVP_OUT 0X10 //测试通话算法输出
|
||||
#define AUDIO_ENC_MPT_TALK_MIC 0X20 //测试通话TALK 主MIC
|
||||
#define AUDIO_ENC_MPT_SLAVE_MIC 0X40 //测试通话TALK 副MIC
|
||||
#define AUDIO_ENC_MPT_TALK_FB_MIC 0X80 //测试通话TALK FBMIC
|
||||
|
||||
//常见通道组合
|
||||
//FF+TALK+算法输出频响测试,默认关闭DNS, 外部喇叭发声
|
||||
#define AUDIO_ENC_MPT_CH_TWS_CVP_ENC (AUDIO_ENC_MPT_SLAVE_MIC | AUDIO_ENC_MPT_TALK_MIC | AUDIO_ENC_MPT_CVP_OUT)
|
||||
|
||||
//FF回声/气密性+FB频响测试,耳机喇叭发声
|
||||
#define AUDIO_ENC_MPT_CH_TWS_FF_FB (AUDIO_ENC_MPT_FF_MIC | AUDIO_ENC_MPT_FB_MIC)
|
||||
|
||||
|
||||
#define AUDIO_ENC_MPT_FRERES_ASYNC 1 //是否异步处理, 异步算不过来要加时钟提醒
|
||||
|
||||
enum {
|
||||
ENC_FRE_RES_STATE_START = 0,
|
||||
ENC_FRE_RES_STATE_RUN,
|
||||
ENC_FRE_RES_STATE_STOP,
|
||||
};
|
||||
|
||||
enum {
|
||||
ENC_FRE_RESPONE_MSG_RUN = 0xA1,
|
||||
};
|
||||
|
||||
//更新目标通道输入buf、len
|
||||
void audio_enc_mpt_fre_response_inbuf(u16 id, s16 *buf, int len);
|
||||
|
||||
//音频测试频响计算运行
|
||||
void audio_enc_mpt_fre_response_post_run(u16 id);
|
||||
|
||||
//音频测试频响计算启动, ch 对应目标的通道
|
||||
void audio_enc_mpt_fre_response_start(u16 ch);
|
||||
|
||||
//音频测试频响计算停止
|
||||
void audio_enc_mpt_fre_response_stop(void);
|
||||
|
||||
//工具获取数据文件
|
||||
int audio_enc_mpt_fre_response_file_get(u8 **buf);
|
||||
|
||||
//数据获取结束,释放内存
|
||||
void audio_enc_mpt_fre_response_release(void);
|
||||
|
||||
//音频测试MIC频响开启, ch 对应目标的通道
|
||||
void audio_enc_mpt_fre_response_open(u16 ch);
|
||||
|
||||
//音频测试MIC频响关闭
|
||||
void audio_enc_mpt_fre_response_close(void);
|
||||
|
||||
#endif /*__AUDIO_ENC_MPT_FRE_RESPONE_H_*/
|
||||
|
||||
43
apps/earphone/include/bt_background.h
Normal file
43
apps/earphone/include/bt_background.h
Normal file
@ -0,0 +1,43 @@
|
||||
#ifndef BT_BACKGROUND_H
|
||||
#define BT_BACKGROUND_H
|
||||
|
||||
|
||||
#include "generic/typedef.h"
|
||||
|
||||
bool bt_in_background();
|
||||
|
||||
|
||||
void bt_switch_to_foreground(int action, bool exit_curr_app);
|
||||
|
||||
|
||||
int bt_switch_to_background();
|
||||
|
||||
|
||||
void bt_stop_a2dp_slience_detect();
|
||||
|
||||
|
||||
void bt_start_a2dp_slience_detect(int ingore_packet_num);
|
||||
|
||||
|
||||
int bt_background_event_probe_handler(struct bt_event *bt);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
48
apps/earphone/include/bt_ble.h
Normal file
48
apps/earphone/include/bt_ble.h
Normal file
@ -0,0 +1,48 @@
|
||||
#ifndef APP_BT_BLE_H
|
||||
#define APP_BT_BLE_H
|
||||
|
||||
#include "typedef.h"
|
||||
|
||||
// #define ADV_RSP_PACKET_MAX 31
|
||||
#define ADV_RAND_MAX 7
|
||||
|
||||
// typedef struct {
|
||||
// u16 pid; //厂家id,默认用杰理的id (0x5d6)
|
||||
// u8 private_data[17];//厂家自定义数据内容
|
||||
|
||||
// } manufacturer_data_t;
|
||||
|
||||
enum {
|
||||
ICON_TYPE_INQUIRY = 0,
|
||||
ICON_TYPE_CONNECTED,
|
||||
ICON_TYPE_RECONNECT,
|
||||
ICON_TYPE_PRE_DEV,
|
||||
};
|
||||
|
||||
|
||||
enum {
|
||||
ADV_ST_NULL,
|
||||
ADV_ST_PRE1,
|
||||
ADV_ST_PRE2,
|
||||
ADV_ST_INQUIRY,
|
||||
ADV_ST_CONN,
|
||||
ADV_ST_RECONN,
|
||||
ADV_ST_DISMISS,
|
||||
ADV_ST_FAST_DISMISS,
|
||||
ADV_ST_END,
|
||||
};
|
||||
|
||||
extern void bt_ble_icon_set(u8 *info, u8 len);
|
||||
extern u8 bt_ble_get_adv_enable(void);
|
||||
extern void bt_ble_icon_open(u8 type);
|
||||
extern void bt_ble_icon_close(u8 dismiss_flag);
|
||||
extern void bt_ble_icon_set_comm_address(u8 *addr);
|
||||
extern void bt_ble_icon_reset(void);
|
||||
extern void bt_ble_set_control_en(u8 en);
|
||||
extern void bt_ble_icon_slave_en(u8 en);
|
||||
extern u8 bt_ble_icon_get_adv_state(void);
|
||||
extern void bt_ble_icon_role_switch(u8 role);
|
||||
extern void bt_ble_icon_state_sniff(u8 state);
|
||||
|
||||
#endif
|
||||
|
||||
26
apps/earphone/include/bt_emitter.h
Normal file
26
apps/earphone/include/bt_emitter.h
Normal file
@ -0,0 +1,26 @@
|
||||
#ifndef _BT_EMITTER_H
|
||||
#define _BT_EMITTER_H
|
||||
|
||||
|
||||
extern void bt_search_device(void);
|
||||
extern void emitter_search_noname(u8 status, u8 *addr, u8 *name);
|
||||
extern u8 bt_emitter_stu_set(u8 *addr, u8 on);
|
||||
extern u8 bt_emitter_stu_get(void);
|
||||
extern int bt_emitter_mic_open(void);
|
||||
extern void bt_emitter_mic_close(void);
|
||||
extern int bt_emitter_iis_open(void);
|
||||
extern void bt_emitter_iis_close(void);
|
||||
extern void emitter_media_source(u8 *addr, u8 source, u8 en);
|
||||
extern u8 emitter_search_result(char *name, u8 name_len, u8 *addr, u32 dev_class, char rssi);
|
||||
extern void emitter_search_stop(u8 result);
|
||||
extern void emitter_media_source(u8 *addr, u8 source, u8 en);
|
||||
extern void bt_emitter_receiver_sw();
|
||||
extern u8 bt_emitter_pp(u8 pp);
|
||||
extern void emitter_or_receiver_switch(u8 flag);
|
||||
extern u8 bt_emitter_role_get();
|
||||
extern void bt_emitter_start_search_device();
|
||||
extern void bt_emitter_stop_search_device();
|
||||
extern void emitter_open(u8 source);
|
||||
extern void emitter_close(u8 source);
|
||||
|
||||
#endif
|
||||
194
apps/earphone/include/bt_tws.h
Normal file
194
apps/earphone/include/bt_tws.h
Normal file
@ -0,0 +1,194 @@
|
||||
#ifndef APP_BT_TWS_H
|
||||
#define APP_BT_TWS_H
|
||||
|
||||
#include "classic/tws_api.h"
|
||||
#include "classic/tws_event.h"
|
||||
#include "system/includes.h"
|
||||
|
||||
#define TWS_FUNC_ID_VOL_SYNC TWS_FUNC_ID('V', 'O', 'L', 'S')
|
||||
#define TWS_FUNC_ID_VBAT_SYNC TWS_FUNC_ID('V', 'B', 'A', 'T')
|
||||
#define TWS_FUNC_ID_CHARGE_SYNC TWS_FUNC_ID('C', 'H', 'G', 'S')
|
||||
#define TWS_FUNC_ID_BOX_SYNC TWS_FUNC_ID('B', 'O', 'X', 'S')
|
||||
#define TWS_FUNC_ID_AI_DMA_RAND TWS_FUNC_ID('A', 'I', 'D', 'M')
|
||||
#define TWS_FUNC_ID_AI_SPEECH_STOP TWS_FUNC_ID('A', 'I', 'S', 'T')
|
||||
#define TWS_FUNC_ID_APP_MODE TWS_FUNC_ID('M', 'O', 'D', 'E')
|
||||
#define TWS_FUNC_ID_AI_SYNC TWS_FUNC_ID('A', 'I', 'P', 'A')
|
||||
#define TWS_FUNC_ID_EAR_DETECT_SYNC TWS_FUNC_ID('E', 'D', 'E', 'T')
|
||||
#define TWS_FUNC_ID_LL_SYNC_STATE TWS_FUNC_ID('L', 'L', 'S', 'S')
|
||||
#define TWS_FUNC_ID_TUYA_STATE TWS_FUNC_ID('T', 'U', 'Y', 'A')
|
||||
|
||||
enum {
|
||||
DEBUG_LINK_PAGE_STATE = 0,
|
||||
DEBUG_LINK_INQUIRY_STATE,
|
||||
DEBUG_LINK_PAGE_SCAN_STATE,
|
||||
DEBUG_LINK_INQUIRY_SCAN_STATE,
|
||||
DEBUG_LINK_CONNECTION_STATE,
|
||||
DEBUG_LINK_PAGE_TWS_STATE,
|
||||
DEBUG_LINK_PAGE_SCAN_TWS_STATE,
|
||||
};
|
||||
enum {
|
||||
BT_TWS_STATUS_INIT_OK = 1,
|
||||
BT_TWS_STATUS_SEARCH_START,
|
||||
BT_TWS_STATUS_SEARCH_TIMEOUT,
|
||||
BT_TWS_STATUS_PHONE_CONN,
|
||||
BT_TWS_STATUS_PHONE_DISCONN,
|
||||
};
|
||||
|
||||
enum {
|
||||
SYNC_TONE_TWS_CONNECTED = 1,
|
||||
SYNC_TONE_PHONE_CONNECTED,
|
||||
SYNC_TONE_PHONE_DISCONNECTED,
|
||||
SYNC_TONE_PHONE_NUM,
|
||||
SYNC_TONE_PHONE_RING,
|
||||
SYNC_TONE_PHONE_NUM_RING,
|
||||
SYNC_TONE_MAX_VOL,
|
||||
SYNC_TONE_POWER_OFF,
|
||||
SYNC_TONE_ANC_ON,
|
||||
SYNC_TONE_ANC_OFF,
|
||||
SYNC_TONE_ANC_TRANS,
|
||||
SYNC_TONE_EARDET_IN,
|
||||
SYNC_TONE_VOICE_RECOGNIZE,
|
||||
SYNC_TONE_HEARING_AID_OPEN,
|
||||
SYNC_TONE_DHA_FITTING_CLOSE,
|
||||
SYNC_TONE_ICSD_ADT_SUSPEND,
|
||||
SYNC_TONE_ICSD_ADT_VOICE_STATE,
|
||||
SYNC_TONE_ICSD_ADT_OPEN,
|
||||
};
|
||||
|
||||
enum {
|
||||
SYNC_LED_STA_TWS_CONN,
|
||||
SYNC_LED_STA_PHONE_CONN,
|
||||
SYNC_LED_STA_PHONE_DISCONN,
|
||||
};
|
||||
|
||||
enum {
|
||||
SYNC_CMD_SHUT_DOWN_TIME,
|
||||
SYNC_CMD_POWER_OFF_TOGETHER,
|
||||
SYNC_CMD_LOW_LATENCY_ENABLE,
|
||||
SYNC_CMD_LOW_LATENCY_DISABLE,
|
||||
SYNC_CMD_EARPHONE_CHAREG_START,
|
||||
SYNC_CMD_IRSENSOR_EVENT_NEAR,
|
||||
SYNC_CMD_IRSENSOR_EVENT_FAR,
|
||||
#if(USE_DMA_TONE)
|
||||
SYNC_CMD_CUT_TWS_TONE, //断开对耳提示音
|
||||
SYNC_CMD_START_SPEECH_TONE,//AI键提示音
|
||||
SYNC_CMD_DMA_CONNECTED_ALL_FINISH_TONE, //AI连接成功
|
||||
SYNC_CMD_NEED_BT_TONE, //需要连接蓝牙
|
||||
SYNC_CMD_PLEASE_OPEN_XIAODU_TONE,//请打开小度
|
||||
#endif
|
||||
#if(RCSP_ADV_EN)
|
||||
SYNC_CMD_SYNC_ADV_SETTING,
|
||||
SYNC_CMD_ADV_COMMON_SETTING_SYNC,
|
||||
SYNC_CMD_APP_RESET_LED_UI,
|
||||
SYNC_CMD_MUSIC_INFO,
|
||||
SYNC_CMD_RCSP_AUTH_RES,
|
||||
SYNC_CMD_MUSIC_PLAYER_STATE,
|
||||
SYNC_CMD_MUSIC_PLAYER_TIEM_EN,
|
||||
#endif
|
||||
SYNC_CMD_OPUS_CLOSE,
|
||||
};
|
||||
|
||||
enum {
|
||||
TWS_SYNC_VOL = 0,
|
||||
TWS_SYNC_VBAT,
|
||||
TWS_SYNC_CHG,
|
||||
TWS_SYNC_CALL_VOL,
|
||||
TWS_SYNC_PBG_INFO,
|
||||
TWS_SYNC_ADSP_UART_CMD,
|
||||
TWS_APP_DATA_SEND,
|
||||
TWS_AI_DMA_RAND,
|
||||
TWS_DATA_SEND,
|
||||
|
||||
TWS_UPDATE_START,
|
||||
TWS_UPDATE_RESULT_EXCHANGE,
|
||||
TWS_UPDATE_RESULT_EXCHANGE_RES,
|
||||
TWS_UPDATE_OVER,
|
||||
TWS_UPDATE_OVER_CONFIRM,
|
||||
TWS_UPDATE_OVER_CONFIRM_REQ,
|
||||
TWS_UPDATE_OVER_CONFIRM_RES,
|
||||
TWS_UPDATE_VERIFY,
|
||||
|
||||
TWS_AI_A2DP_DROP_FRAME_CTL,
|
||||
};
|
||||
struct tws_sync_info_t {
|
||||
u8 type;
|
||||
union {
|
||||
s8 volume_lev;
|
||||
u16 vbat_lev;
|
||||
u8 chg_lev;
|
||||
u8 adsp_cmd[2];
|
||||
u8 conn_type;
|
||||
u8 data[9];
|
||||
u8 data_large[32];
|
||||
} u;
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct tws_sync_big_info_t {
|
||||
u8 type;
|
||||
u8 sub_type;
|
||||
union {
|
||||
u8 pbg_info[36];
|
||||
} u;
|
||||
};
|
||||
|
||||
|
||||
typedef struct time_stamp_bt_name {
|
||||
u8 bt_name[32];
|
||||
u32 time_stamp;
|
||||
} tws_time_stamp_bt_name;
|
||||
|
||||
|
||||
#define TWS_WAIT_CONN_TIMEOUT (400)
|
||||
|
||||
#define TWS_SYNC_TIME_DO 400
|
||||
// #define TWS_CON_SUPER_TIMEOUT 8000
|
||||
#define TWS_CON_SEARCH_TIMEOUT 0x07//(n*1.28s)
|
||||
|
||||
|
||||
char bt_tws_get_local_channel();
|
||||
|
||||
int bt_tws_connction_status_event_handler(struct bt_event *evt);
|
||||
|
||||
int bt_tws_poweron();
|
||||
|
||||
int bt_tws_poweroff();
|
||||
|
||||
int bt_tws_start_search_sibling();
|
||||
|
||||
void bt_tws_hci_event_connect();
|
||||
|
||||
bool get_tws_phone_connect_state(void);
|
||||
|
||||
int bt_tws_phone_connected();
|
||||
|
||||
void bt_tws_phone_page_timeout();
|
||||
|
||||
void bt_tws_phone_connect_timeout();
|
||||
|
||||
void bt_tws_phone_disconnected();
|
||||
|
||||
int bt_tws_sync_phone_num(void *priv);
|
||||
|
||||
int bt_tws_sync_led_status();
|
||||
|
||||
int get_bt_tws_connect_status();
|
||||
u8 get_bt_tws_discon_dly_state();
|
||||
|
||||
void bt_tws_sync_volume();
|
||||
|
||||
u8 tws_network_audio_was_started(void);
|
||||
|
||||
void tws_network_local_audio_start(void);
|
||||
|
||||
u32 bt_tws_future_slot_time(u32 msecs);
|
||||
|
||||
void bt_tws_play_tone_at_same_time(int tone_name, int msec);
|
||||
void bt_tws_led_state_sync(int led_state, int msec);
|
||||
bool get_tws_sibling_connect_state(void);
|
||||
|
||||
void tws_cancle_all_noconn();
|
||||
void tws_sniff_controle_check_enable(void);
|
||||
void tws_sniff_controle_check_disable(void);
|
||||
#endif
|
||||
41
apps/earphone/include/default_event_handler.h
Normal file
41
apps/earphone/include/default_event_handler.h
Normal file
@ -0,0 +1,41 @@
|
||||
#ifndef DEFAULT_EVENT_HANDLER_H
|
||||
#define DEFAULT_EVENT_HANDLER_H
|
||||
|
||||
|
||||
#include "system/includes.h"
|
||||
|
||||
|
||||
void default_event_handler(struct sys_event *event);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
272
apps/earphone/include/earphone.h
Normal file
272
apps/earphone/include/earphone.h
Normal file
@ -0,0 +1,272 @@
|
||||
#ifndef EARPHONE_H
|
||||
#define EARPHONE_H
|
||||
|
||||
#include "system/includes.h"
|
||||
///搜索完整结束的事件
|
||||
#define HCI_EVENT_INQUIRY_COMPLETE 0x01
|
||||
///连接完成的事件
|
||||
#define HCI_EVENT_CONNECTION_COMPLETE 0x03
|
||||
///断开的事件,会有一些错误码区分不同情况的断开
|
||||
#define HCI_EVENT_DISCONNECTION_COMPLETE 0x05
|
||||
///连接中请求pin code的事件,给这个事件上来目前是做了一个确认的操作
|
||||
#define HCI_EVENT_PIN_CODE_REQUEST 0x16
|
||||
///连接设备发起了简易配对加密的连接
|
||||
#define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31
|
||||
///这个事件上来目前是做了一个连接确认的操作
|
||||
#define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33
|
||||
///这个事件是需要输入6个数字的连接消息,一般在键盘应用才会有
|
||||
#define HCI_EVENT_USER_PASSKEY_REQUEST 0x34
|
||||
///<可用于显示输入passkey位置 value 0:start 1:enrer 2:earse 3:clear 4:complete
|
||||
#define HCI_EVENT_USER_PRESSKEY_NOTIFICATION 0x3B
|
||||
///杰理自定义的事件,上电回连的时候读不到VM的地址。
|
||||
#define HCI_EVENT_VENDOR_NO_RECONN_ADDR 0xF8
|
||||
///杰理自定义的事件,有测试盒连接的时候会有这个事件
|
||||
#define HCI_EVENT_VENDOR_REMOTE_TEST 0xFE
|
||||
///杰理自定义的事件,可以认为是断开之后协议栈资源释放完成的事件
|
||||
#define BTSTACK_EVENT_HCI_CONNECTIONS_DELETE 0x6D
|
||||
|
||||
|
||||
#define ERROR_CODE_SUCCESS 0x00
|
||||
///<回连超时退出消息
|
||||
#define ERROR_CODE_PAGE_TIMEOUT 0x04
|
||||
///<连接过程中linkkey错误
|
||||
#define ERROR_CODE_AUTHENTICATION_FAILURE 0x05
|
||||
///<连接过程中linkkey丢失,手机删除了linkkey,回连就会出现一次
|
||||
#define ERROR_CODE_PIN_OR_KEY_MISSING 0x06
|
||||
///<连接超时,一般拿远就会断开有这个消息
|
||||
#define ERROR_CODE_CONNECTION_TIMEOUT 0x08
|
||||
///<连接个数超出了资源允许
|
||||
#define ERROR_CODE_SYNCHRONOUS_CONNECTION_LIMIT_TO_A_DEVICE_EXCEEDED 0x0A
|
||||
///<回连的时候发现设备还没释放我们这个地址,一般直接断电开机回连会出现
|
||||
#define ERROR_CODE_ACL_CONNECTION_ALREADY_EXISTS 0x0B
|
||||
///<需要回连的设备资源不够。有些手机连了一个设备之后就会用这个拒绝。或者其它的资源原因
|
||||
#define ERROR_CODE_CONNECTION_REJECTED_DUE_TO_LIMITED_RESOURCES 0x0D
|
||||
///<有些可能只允许指定地址连接的,可能会用这个去拒绝连接。或者我们设备的地址全0或者有问题
|
||||
#define ERROR_CODE_CONNECTION_REJECTED_DUE_TO_UNACCEPTABLE_BD_ADDR 0x0F
|
||||
///<连接的时间太长了,手机要断开了。这种容易复现可以联系我们分析
|
||||
#define ERROR_CODE_CONNECTION_ACCEPT_TIMEOUT_EXCEEDED 0x10
|
||||
///<经常用的连接断开消息。就认为断开就行
|
||||
#define ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION 0x13
|
||||
///<正常的断开消息,本地L2CAP资源释放之后就会发这个值上来了
|
||||
#define ERROR_CODE_CONNECTION_TERMINATED_BY_LOCAL_HOST 0x16
|
||||
///<回连的时候发现设备两次role switch失败了,发断开在重新连接
|
||||
#define ERROR_CODE_ROLE_SWITCH_FAILED 0x35
|
||||
///杰理自定义,在回连的过程中使用page cancel命令主动取消成功会有这个命令
|
||||
#define CUSTOM_BB_AUTO_CANCEL_PAGE 0xFD //// app cancle page
|
||||
///杰理自定义,库里面有些功能需要停止page的时候会有。比如page的时候来了电话
|
||||
#define BB_CANCEL_PAGE 0xFE //// bb cancle page
|
||||
|
||||
|
||||
#if (TCFG_USER_BLE_ENABLE && (CONFIG_BT_MODE == BT_NORMAL))
|
||||
|
||||
#if RCSP_ADV_EN
|
||||
|
||||
int rcsp_earphone_state_init();
|
||||
int rcsp_earphone_state_set_page_scan_enable();
|
||||
int rcsp_earphone_state_get_connect_mac_addr();
|
||||
int rcsp_earphone_state_cancel_page_scan();
|
||||
int rcsp_earphone_state_enter_soft_poweroff();
|
||||
int rcsp_earphone_state_tws_init(int paired);
|
||||
int rcsp_earphone_state_tws_connected(int first_pair, u8 *comm_addr);
|
||||
int rcsp_sys_event_handler_specific(struct sys_event *event);
|
||||
|
||||
#define EARPHONE_STATE_INIT() rcsp_earphone_state_init()
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() rcsp_earphone_state_set_page_scan_enable()
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() rcsp_earphone_state_get_connect_mac_addr()
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() rcsp_earphone_state_cancel_page_scan()
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() rcsp_earphone_state_enter_soft_poweroff()
|
||||
#define EARPHONE_STATE_TWS_INIT(a) rcsp_earphone_state_tws_init(a)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) rcsp_earphone_state_tws_connected(a,b)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) rcsp_sys_event_handler_specific(a)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a)
|
||||
|
||||
#elif TRANS_DATA_EN
|
||||
|
||||
int trans_data_earphone_state_init();
|
||||
int trans_data_earphone_state_set_page_scan_enable();
|
||||
int trans_data_earphone_state_get_connect_mac_addr();
|
||||
int trans_data_earphone_state_cancel_page_scan();
|
||||
int trans_data_earphone_state_enter_soft_poweroff();
|
||||
int trans_data_earphone_state_tws_init(int paired);
|
||||
int trans_data_earphone_state_tws_connected(int first_pair, u8 *comm_addr);
|
||||
int trans_data_sys_event_handler_specific(struct sys_event *event);
|
||||
|
||||
#define EARPHONE_STATE_INIT() trans_data_earphone_state_init()
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() trans_data_earphone_state_set_page_scan_enable()
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() trans_data_earphone_state_get_connect_mac_addr()
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() trans_data_earphone_state_cancel_page_scan()
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() trans_data_earphone_state_enter_soft_poweroff()
|
||||
#define EARPHONE_STATE_TWS_INIT(a) trans_data_earphone_state_tws_init(a)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) trans_data_earphone_state_tws_connected(a,b)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) trans_data_sys_event_handler_specific(a)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a)
|
||||
|
||||
#elif BLE_HID_EN
|
||||
|
||||
int ble_hid_earphone_state_init();
|
||||
int ble_hid_earphone_state_set_page_scan_enable();
|
||||
int ble_hid_earphone_state_get_connect_mac_addr();
|
||||
int ble_hid_earphone_state_cancel_page_scan();
|
||||
int ble_hid_earphone_state_enter_soft_poweroff();
|
||||
int ble_hid_earphone_state_tws_init(int paired);
|
||||
int ble_hid_earphone_state_tws_connected(int first_pair, u8 *comm_addr);
|
||||
int ble_hid_sys_event_handler_specific(struct sys_event *event);
|
||||
|
||||
#define EARPHONE_STATE_INIT() ble_hid_earphone_state_init()
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() ble_hid_earphone_state_set_page_scan_enable()
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() ble_hid_earphone_state_get_connect_mac_addr()
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() ble_hid_earphone_state_cancel_page_scan()
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() ble_hid_earphone_state_enter_soft_poweroff()
|
||||
#define EARPHONE_STATE_TWS_INIT(a) ble_hid_earphone_state_tws_init(a)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) ble_hid_earphone_state_tws_connected(a,b)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) ble_hid_sys_event_handler_specific(a)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a)
|
||||
|
||||
|
||||
|
||||
#elif LL_SYNC_EN
|
||||
|
||||
int ll_sync_earphone_state_init();
|
||||
int ll_sync_earphone_state_set_page_scan_enable();
|
||||
int ll_sync_earphone_state_get_connect_mac_addr();
|
||||
int ll_sync_earphone_state_cancel_page_scan();
|
||||
int ll_sync_earphone_state_enter_soft_poweroff();
|
||||
int ll_sync_earphone_state_tws_init(int paired);
|
||||
int ll_sync_earphone_state_tws_connected(int first_pair, u8 *comm_addr);
|
||||
int ll_sync_sys_event_handler_specific(struct sys_event *event);
|
||||
|
||||
#define EARPHONE_STATE_INIT() ll_sync_earphone_state_init()
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() ll_sync_earphone_state_set_page_scan_enable()
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() ll_sync_earphone_state_get_connect_mac_addr()
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() ll_sync_earphone_state_cancel_page_scan()
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() ll_sync_earphone_state_enter_soft_poweroff()
|
||||
#define EARPHONE_STATE_TWS_INIT(a) ll_sync_earphone_state_tws_init(a)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) ll_sync_earphone_state_tws_connected(a,b)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) ll_sync_sys_event_handler_specific(a)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a)
|
||||
|
||||
#elif TUYA_DEMO_EN
|
||||
int tuya_earphone_state_init();
|
||||
int tuya_earphone_state_set_page_scan_enable();
|
||||
int tuya_earphone_state_get_connect_mac_addr();
|
||||
int tuya_earphone_state_cancel_page_scan();
|
||||
int tuya_earphone_state_enter_soft_poweroff();
|
||||
int tuya_earphone_state_tws_init(int paired);
|
||||
int tuya_earphone_state_tws_connected(int first_pair, u8 *comm_addr);
|
||||
int tuya_sys_event_handler_specific(struct sys_event *event);
|
||||
|
||||
#define EARPHONE_STATE_INIT() tuya_earphone_state_init()
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() tuya_earphone_state_set_page_scan_enable()
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() tuya_earphone_state_get_connect_mac_addr()
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() tuya_earphone_state_cancel_page_scan()
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() tuya_earphone_state_enter_soft_poweroff()
|
||||
#define EARPHONE_STATE_TWS_INIT(a) tuya_earphone_state_tws_init(a)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) tuya_earphone_state_tws_connected(a,b)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) tuya_sys_event_handler_specific(a)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a)
|
||||
|
||||
|
||||
#elif (AI_APP_PROTOCOL | LE_AUDIO_EN)
|
||||
|
||||
int app_protocol_sys_event_handler(struct sys_event *event);
|
||||
#define EARPHONE_STATE_INIT() do { } while(0)
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() do { } while(0)
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() do { } while(0)
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() do { } while(0)
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() do { } while(0)
|
||||
#define EARPHONE_STATE_TWS_INIT(a) do { } while(0)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) do { } while(0)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) app_protocol_sys_event_handler(a)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a)
|
||||
|
||||
#elif TCFG_WIRELESS_MIC_ENABLE
|
||||
#define EARPHONE_STATE_INIT() do { } while(0)
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() do { } while(0)
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() do { } while(0)
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() do { } while(0)
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() do { } while(0)
|
||||
#define EARPHONE_STATE_TWS_INIT(a) do { } while(0)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) do { } while(0)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) do { } while(0)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a)
|
||||
|
||||
#else
|
||||
int adv_earphone_state_init();
|
||||
int adv_earphone_state_set_page_scan_enable();
|
||||
int adv_earphone_state_get_connect_mac_addr();
|
||||
int adv_earphone_state_cancel_page_scan();
|
||||
int adv_earphone_state_enter_soft_poweroff();
|
||||
int adv_earphone_state_tws_init(int paired);
|
||||
int adv_earphone_state_tws_connected(int first_pair, u8 *comm_addr);
|
||||
int adv_sys_event_handler_specific(struct sys_event *event);
|
||||
int adv_earphone_state_sniff(u8 state);
|
||||
int adv_earphone_state_role_switch(u8 role);
|
||||
|
||||
#define EARPHONE_STATE_INIT() adv_earphone_state_init()
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() adv_earphone_state_set_page_scan_enable()
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() adv_earphone_state_get_connect_mac_addr()
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() adv_earphone_state_cancel_page_scan()
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() adv_earphone_state_enter_soft_poweroff()
|
||||
#define EARPHONE_STATE_TWS_INIT(a) adv_earphone_state_tws_init(a)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) adv_earphone_state_tws_connected(a,b)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) adv_sys_event_handler_specific(a)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a) adv_earphone_state_sniff(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a) adv_earphone_state_role_switch(a)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#define EARPHONE_STATE_INIT() do { } while(0)
|
||||
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() do { } while(0)
|
||||
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() do { } while(0)
|
||||
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() do { } while(0)
|
||||
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() do { } while(0)
|
||||
#define EARPHONE_STATE_TWS_INIT(a) do { } while(0)
|
||||
#define EARPHONE_STATE_TWS_CONNECTED(a, b) do { } while(0)
|
||||
#define SYS_EVENT_HANDLER_SPECIFIC(a) do { } while(0)
|
||||
#define SYS_EVENT_REMAP(a) 0
|
||||
#define EARPHONE_STATE_SNIFF(a)
|
||||
#define EARPHONE_STATE_ROLE_SWITCH(a)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
extern void sys_auto_shut_down_enable(void);
|
||||
|
||||
extern void sys_auto_shut_down_disable(void);
|
||||
|
||||
extern int bt_in_background_event_handler(struct sys_event *event);
|
||||
|
||||
extern u8 bt_app_exit_check(void);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
100
apps/earphone/include/key_event_deal.h
Normal file
100
apps/earphone/include/key_event_deal.h
Normal file
@ -0,0 +1,100 @@
|
||||
#ifndef __KEY_EVENT_DEAL_H__
|
||||
#define __KEY_EVENT_DEAL_H__
|
||||
|
||||
#include "typedef.h"
|
||||
#include "bt_profile_cfg.h"
|
||||
#include "system/event.h"
|
||||
|
||||
enum {
|
||||
KEY_POWER_ON = KEY_EVENT_MAX,
|
||||
KEY_POWEROFF,
|
||||
KEY_POWEROFF_HOLD,
|
||||
KEY_MUSIC_PP,
|
||||
KEY_MUSIC_PREV,
|
||||
KEY_MUSIC_NEXT,
|
||||
KEY_VOL_UP,
|
||||
KEY_VOL_DOWN,
|
||||
KEY_CALL_LAST_NO,
|
||||
KEY_CALL_HANG_UP,
|
||||
KEY_CALL_ANSWER,
|
||||
KEY_CALL_ANSWER_UP,
|
||||
KEY_OPEN_SIRI,
|
||||
KEY_HID_CONTROL,
|
||||
KEY_LOW_LANTECY,
|
||||
KEY_MODE_SWITCH,
|
||||
|
||||
KEY_EQ_MODE,
|
||||
KEY_THIRD_CLICK,
|
||||
|
||||
KEY_MUSIC_FF,
|
||||
KEY_MUSIC_FR,
|
||||
KEY_MUSIC_PLAYER_START,
|
||||
KEY_MUSIC_PLAYER_END,
|
||||
KEY_MUSIC_PLAYER_DEC_ERR,
|
||||
KEY_MUSIC_DEVICE_TONE_END,
|
||||
KEY_MUSIC_PLAYER_QUIT,
|
||||
KEY_MUSIC_PLAYER_AUTO_NEXT,
|
||||
KEY_MUSIC_PLAYER_PLAY_FIRST,
|
||||
KEY_MUSIC_PLAYER_PLAY_LAST,
|
||||
KEY_MUSIC_CHANGE_REPEAT,
|
||||
KEY_MUSIC_CHANGE_DEV,
|
||||
KEY_MUSIC_AUTO_NEXT_DEV,
|
||||
KEY_MUSIC_CHANGE_DEV_REPEAT,
|
||||
KEY_MUSIC_SET_PITCH,
|
||||
KEY_MUSIC_SET_SPEED,
|
||||
KEY_MUSIC_PLAYE_BY_DEV_FILENUM,
|
||||
KEY_MUSIC_PLAYE_BY_DEV_SCLUST,
|
||||
KEY_MUSIC_PLAYE_BY_DEV_PATH,
|
||||
KEY_MUSIC_DELETE_FILE,
|
||||
KEY_MUSIC_PLAYE_NEXT_FOLDER,
|
||||
KEY_MUSIC_PLAYE_PREV_FOLDER,
|
||||
KEY_MUSIC_PLAYE_REC_FOLDER_SWITCH,
|
||||
KEY_MUSIC_PLAYER_AB_REPEAT_SWITCH,
|
||||
|
||||
KEY_SEND_SPEECH_START,
|
||||
KEY_SEND_SPEECH_STOP,
|
||||
#if (BT_FOR_APP_EN)
|
||||
KEY_AI_DEC_SUSPEND,
|
||||
KEY_AI_DEC_RESUME,
|
||||
|
||||
#endif
|
||||
|
||||
KEY_EARTCH_ENABLE,
|
||||
KEY_EARTCH_DISABLE,
|
||||
KEY_ANC_SWITCH,
|
||||
KEY_ANC_EAR_ADAPTIVE,
|
||||
KEY_ANC_COEFF_SWITCH,
|
||||
KEY_MUSIC_EFF, //播歌音效切换
|
||||
KEY_PHONE_PITCH,//通话上行 变声切换
|
||||
KEY_HEARING_AID_TOGGLE,//辅听功能开关
|
||||
|
||||
MSG_HALF_SECOND,
|
||||
KEY_CLEAN_PHONE_INFO,
|
||||
KEY_CLEAN_PHONE_INFO_HOLD,
|
||||
KEY_CLEAN_PHONE_INFO_UP,
|
||||
|
||||
KEY_SPATIAL_EFFECT_MODE_SWITCH, /*切换空间音频模式*/
|
||||
KEY_SPEAK_TO_CHAT_SWITCH, /*智能免摘开关*/
|
||||
KEY_WIND_NOISE_DET_SWITCH, /*风噪检测开关*/
|
||||
KEY_WIDE_AREA_TAP_SWITCH, /*广域点击开关*/
|
||||
KEY_ANC_MULT_SCENE_SWITCH, /*多滤波器切换demo*/
|
||||
KEY_NULL = 0xFF,
|
||||
};
|
||||
|
||||
enum {
|
||||
ONE_KEY_CTL_NEXT_PREV = 1,
|
||||
ONE_KEY_CTL_VOL_UP_DOWN,
|
||||
};
|
||||
|
||||
enum {
|
||||
EARTCH_STATE_IN,
|
||||
EARTCH_STATE_OUT,
|
||||
EARTCH_STATE_TRIM_OK,
|
||||
EARTCH_STATE_TRIM_ERR,
|
||||
};
|
||||
|
||||
extern void volume_up(u8 inc);
|
||||
extern void volume_down(u8 inc);
|
||||
extern int app_earphone_key_event_handler(struct sys_event *);
|
||||
|
||||
#endif
|
||||
31
apps/earphone/include/pbg_user.h
Normal file
31
apps/earphone/include/pbg_user.h
Normal file
@ -0,0 +1,31 @@
|
||||
#ifndef PBG_USER_H_
|
||||
#define PBG_USER_H_
|
||||
|
||||
#include "typedef.h"
|
||||
#include "key_event_deal.h"
|
||||
|
||||
enum {
|
||||
PBG_POS_IN_EAR = 0, //入耳
|
||||
PBG_POS_OUT_BOX, //出仓
|
||||
PBG_POS_IN_BOX, //在仓
|
||||
PBG_POS_NOT_EXIST, //不在线
|
||||
PBG_POS_KEEP_NOW = 0x0f, //维持,不改变
|
||||
PBG_POS_MAX, //
|
||||
};
|
||||
|
||||
|
||||
#define BD_ADDR_LEN 6
|
||||
typedef uint8_t bd_addr_t[BD_ADDR_LEN];
|
||||
|
||||
void pbg_user_set_tws_state(u8 conn_flag);
|
||||
void pbg_user_recieve_sync_info(u8 *sync_info);
|
||||
void pbg_user_mic_fixed_deal(u8 mode);
|
||||
void pbg_user_event_deal(struct pbg_event *evt);
|
||||
bool pbg_user_key_vaild(u8 *key_msg, struct sys_event *event);
|
||||
void pbg_user_ear_pos_sync(u8 left, u8 right);
|
||||
void pbg_user_battery_level_sync(u8 *dev_bat);
|
||||
int pbg_user_is_connected(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
157
apps/earphone/include/tone_player.h
Normal file
157
apps/earphone/include/tone_player.h
Normal file
@ -0,0 +1,157 @@
|
||||
#ifndef TONE_PLAYER_H
|
||||
#define TONE_PLAYER_H
|
||||
|
||||
#include "app_config.h"
|
||||
#include "tone_player_api.h"
|
||||
|
||||
#define TONE_NUM_0 SDFILE_RES_ROOT_PATH"tone/0.*"
|
||||
#define TONE_NUM_1 SDFILE_RES_ROOT_PATH"tone/1.*"
|
||||
#define TONE_NUM_2 SDFILE_RES_ROOT_PATH"tone/2.*"
|
||||
#define TONE_NUM_3 SDFILE_RES_ROOT_PATH"tone/3.*"
|
||||
#define TONE_NUM_4 SDFILE_RES_ROOT_PATH"tone/4.*"
|
||||
#define TONE_NUM_5 SDFILE_RES_ROOT_PATH"tone/5.*"
|
||||
#define TONE_NUM_6 SDFILE_RES_ROOT_PATH"tone/6.*"
|
||||
#define TONE_NUM_7 SDFILE_RES_ROOT_PATH"tone/7.*"
|
||||
#define TONE_NUM_8 SDFILE_RES_ROOT_PATH"tone/8.*"
|
||||
#define TONE_NUM_9 SDFILE_RES_ROOT_PATH"tone/9.*"
|
||||
#define TONE_BT_MODE SDFILE_RES_ROOT_PATH"tone/bt.*"
|
||||
#define TONE_BT_CONN SDFILE_RES_ROOT_PATH"tone/bt_conn.*"
|
||||
#define TONE_BT_DISCONN SDFILE_RES_ROOT_PATH"tone/bt_dconn.*"
|
||||
#define TONE_TWS_CONN SDFILE_RES_ROOT_PATH"tone/tws_conn.*"
|
||||
#define TONE_TWS_DISCONN SDFILE_RES_ROOT_PATH"tone/tws_dconn.*"
|
||||
#define TONE_LOW_POWER SDFILE_RES_ROOT_PATH"tone/low_power.*"
|
||||
#define TONE_POWER_OFF SDFILE_RES_ROOT_PATH"tone/power_off.*"
|
||||
#define TONE_POWER_ON SDFILE_RES_ROOT_PATH"tone/power_on.*"
|
||||
#define TONE_RING SDFILE_RES_ROOT_PATH"tone/ring.*"
|
||||
#define TONE_MAX_VOL SDFILE_RES_ROOT_PATH"tone/vol_max.*"
|
||||
#define TONE_ANC_OFF SDFILE_RES_ROOT_PATH"tone/anc_off.*"
|
||||
#define TONE_ANC_ON SDFILE_RES_ROOT_PATH"tone/anc_on.*"
|
||||
#define TONE_TRANSPARENCY SDFILE_RES_ROOT_PATH"tone/anc_trans.*"
|
||||
#define TONE_ANC_ADAPTIVE SDFILE_RES_ROOT_PATH"tone/adaptive.*"
|
||||
#define TONE_ANC_ADAPTIVE_COEFF SDFILE_RES_ROOT_PATH"tone/adap_coeff.*"
|
||||
#define TONE_ANC_NORMAL_COEFF SDFILE_RES_ROOT_PATH"tone/nor_coeff.*"
|
||||
#define TONE_EAR_CHECK SDFILE_RES_ROOT_PATH"tone/ear_check.*"
|
||||
#define TONE_MUSIC_MODE SDFILE_RES_ROOT_PATH"tone/music.*"
|
||||
#define TONE_PC_MODE SDFILE_RES_ROOT_PATH"tone/pc.*"
|
||||
#define TONE_SPKCHAT_OFF SDFILE_RES_ROOT_PATH"tone/spkchat_off.*"
|
||||
#define TONE_SPKCHAT_ON SDFILE_RES_ROOT_PATH"tone/spkchat_on.*"
|
||||
#define TONE_WCLICK_OFF SDFILE_RES_ROOT_PATH"tone/wclick_off.*"
|
||||
#define TONE_WCLICK_ON SDFILE_RES_ROOT_PATH"tone/wclick_on.*"
|
||||
#define TONE_WINDDET_OFF SDFILE_RES_ROOT_PATH"tone/winddet_off.*"
|
||||
#define TONE_WINDDET_ON SDFILE_RES_ROOT_PATH"tone/winddet_on.*"
|
||||
|
||||
|
||||
#define SINE_WTONE_NORAML 0
|
||||
#define SINE_WTONE_TWS_CONNECT 1
|
||||
#define SINE_WTONE_TWS_DISCONNECT 2
|
||||
#define SINE_WTONE_LOW_POWER 4
|
||||
#define SINE_WTONE_RING 5
|
||||
#define SINE_WTONE_MAX_VOLUME 6
|
||||
#define SINE_WTONE_ADSP 7
|
||||
#define SINE_WTONE_LOW_LATENRY_IN 8
|
||||
#define SINE_WTONE_LOW_LATENRY_OUT 9
|
||||
#define SINE_WTONE_ANC_ADAPTIVE_1 10
|
||||
#define SINE_WTONE_ANC_ADAPTIVE_2 11
|
||||
|
||||
#if CONFIG_USE_DEFAULT_SINE
|
||||
#undef TONE_TWS_CONN
|
||||
#define TONE_TWS_CONN DEFAULT_SINE_TONE(SINE_WTONE_TWS_CONNECT)
|
||||
#undef TONE_TWS_DISCONN
|
||||
#define TONE_TWS_DISCONN DEFAULT_SINE_TONE(SINE_WTONE_TWS_DISCONNECT)
|
||||
|
||||
#undef TONE_MAX_VOL
|
||||
#define TONE_MAX_VOL DEFAULT_SINE_TONE(SINE_WTONE_MAX_VOLUME)
|
||||
|
||||
#undef TONE_NORMAL
|
||||
#define TONE_NORMAL DEFAULT_SINE_TONE(SINE_WTONE_NORAML)
|
||||
#if BT_PHONE_NUMBER
|
||||
|
||||
#else
|
||||
#undef TONE_RING
|
||||
#define TONE_RING DEFAULT_SINE_TONE(SINE_WTONE_RING)
|
||||
#endif
|
||||
|
||||
#undef TONE_LOW_POWER
|
||||
#define TONE_LOW_POWER DEFAULT_SINE_TONE(SINE_WTONE_LOW_POWER)
|
||||
#endif
|
||||
|
||||
#define TONE_SIN_NORMAL DEFAULT_SINE_TONE(SINE_WTONE_NORAML)
|
||||
|
||||
#define TONE_LOW_LATENCY_IN DEFAULT_SINE_TONE(SINE_WTONE_LOW_LATENRY_IN)
|
||||
#define TONE_LOW_LATENCY_OUT DEFAULT_SINE_TONE(SINE_WTONE_LOW_LATENRY_OUT)
|
||||
|
||||
#define TONE_ANC_ADAPTIVE_LVL1 DEFAULT_SINE_TONE(SINE_WTONE_ANC_ADAPTIVE_1)
|
||||
#define TONE_ANC_ADAPTIVE_LVL2 DEFAULT_SINE_TONE(SINE_WTONE_ANC_ADAPTIVE_2)
|
||||
|
||||
|
||||
enum {
|
||||
IDEX_TONE_NUM_0,
|
||||
IDEX_TONE_NUM_1,
|
||||
IDEX_TONE_NUM_2,
|
||||
IDEX_TONE_NUM_3,
|
||||
IDEX_TONE_NUM_4,
|
||||
IDEX_TONE_NUM_5,
|
||||
IDEX_TONE_NUM_6,
|
||||
IDEX_TONE_NUM_7,
|
||||
IDEX_TONE_NUM_8,
|
||||
IDEX_TONE_NUM_9,
|
||||
IDEX_TONE_BT_MODE,
|
||||
IDEX_TONE_BT_CONN,
|
||||
IDEX_TONE_BT_DISCONN,
|
||||
IDEX_TONE_TWS_CONN,
|
||||
IDEX_TONE_TWS_DISCONN,
|
||||
IDEX_TONE_LOW_POWER,
|
||||
IDEX_TONE_POWER_OFF,
|
||||
IDEX_TONE_POWER_ON,
|
||||
IDEX_TONE_RING,
|
||||
IDEX_TONE_MAX_VOL,
|
||||
IDEX_TONE_NORMAL,
|
||||
IDEX_TONE_ANC_OFF,
|
||||
IDEX_TONE_ANC_ON,
|
||||
IDEX_TONE_TRANSPARCNCY,
|
||||
IDEX_TONE_ANC_ADAPTIVE,
|
||||
IDEX_TONE_ANC_ADAPTIVE_COEFF,
|
||||
IDEX_TONE_ANC_NORMAL_COEFF,
|
||||
|
||||
|
||||
IDEX_TONE_NONE = 0xFF,
|
||||
};
|
||||
|
||||
|
||||
|
||||
int tone_play_init(void);
|
||||
int tone_play_index(u8 index, u8 preemption);
|
||||
int tone_play_index_with_callback(u8 index, u8 preemption, void (*user_evt_handler)(void *priv), void *priv);
|
||||
int tone_play_index_no_tws(u8 index, u8 preemption);
|
||||
/*
|
||||
*@brief:提示音比较,确认目标提示音和正在播放的提示音是否一致
|
||||
*@return: 0 匹配
|
||||
* 非0 不匹配或者当前没有提示音播放
|
||||
*@note:通过提示音索引比较
|
||||
*/
|
||||
int tone_name_cmp_by_index(u8 index);
|
||||
|
||||
|
||||
// 按键提示音初始化
|
||||
int audio_key_tone_init(void);
|
||||
// 注销按键提示音播放
|
||||
void audio_key_tone_destroy(void);
|
||||
|
||||
// 播放正弦波数组
|
||||
int audio_key_tone_play_sin(struct audio_sin_param *sin, u8 sin_num, u8 preemption);
|
||||
// 播放文件
|
||||
int audio_key_tone_play_name(const char *name, u8 preemption);
|
||||
// 按序号播放文件 // 使用key_tone_index[]数组
|
||||
int audio_key_tone_play_index(u8 index, u8 preemption);
|
||||
// 按键提示音播放 // 默认播放数组中第一个
|
||||
void audio_key_tone_play(void);
|
||||
|
||||
// 检测按键提示音是否在播放
|
||||
int audio_key_tone_is_play(void);
|
||||
|
||||
// 设置按键提示音的音量
|
||||
void audio_key_tone_digvol_set(u8 volume);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
134
apps/earphone/include/ui/lcd_seg/lcd_seg3x9_driver.h
Normal file
134
apps/earphone/include/ui/lcd_seg/lcd_seg3x9_driver.h
Normal file
@ -0,0 +1,134 @@
|
||||
#ifndef _LCD_SEG3X9_DRV_H_
|
||||
#define _LCD_SEG3X9_DRV_H_
|
||||
|
||||
typedef struct _lcd_seg3x9_var {
|
||||
u8 bCoordinateX;
|
||||
u8 bFlashChar;
|
||||
u8 bShowBuff[4]; //[0] ~ [3]显示的数字/字母显示的所有段
|
||||
u32 bShowIcon; //每1bit对应LED4的1段, maybe icon > 7段
|
||||
u32 bFlashIcon; //闪烁标志
|
||||
} LCD_SEG3X9_VAR;
|
||||
|
||||
#define LCD_SEG3X9_USB BIT(0) //0: USB图标
|
||||
#define LCD_SEG3X9_SD BIT(1) //1: SD图标
|
||||
#define LCD_SEG3X9_VOL BIT(2) //2: SD图标
|
||||
#define LCD_SEG3X9_MHZ BIT(3) //3: FM图标
|
||||
#define LCD_SEG3X9_DIGIT1 BIT(4) //4: 数字1
|
||||
#define LCD_SEG3X9_2POINT BIT(5) //5: 冒号
|
||||
#define LCD_SEG3X9_DOT BIT(6) //6: 点
|
||||
|
||||
typedef u32 UI_LCD_SEG3X9_ICON;
|
||||
|
||||
struct lcd_seg3x9_pin {
|
||||
u8 pin_com[3];
|
||||
u8 pin_seg[9];
|
||||
};
|
||||
|
||||
enum LCD_SEG3X9_BIAS {
|
||||
LCD_SEG3X9_BIAS_OFF = 0,
|
||||
LCD_SEG3X9_BIAS_1_2, // 1/2 bias
|
||||
LCD_SEG3X9_BIAS_1_3, // 1/3 bias
|
||||
LCD_SEG3X9_BIAS_1_4, // 1/4 bias
|
||||
};
|
||||
|
||||
enum LCD_SEG3X9_COM_NUMBER {
|
||||
LCD_SEG3X9_COM_NUMBER_3 = 0,
|
||||
LCD_SEG3X9_COM_NUMBER_4,
|
||||
LCD_SEG3X9_COM_NUMBER_5,
|
||||
LCD_SEG3X9_COM_NUMBER_6,
|
||||
};
|
||||
|
||||
enum LCD_SEG3X9_VOLTAGE {
|
||||
LCD_SEG3X9_VOLTAGE_2_6V = 0, //000b
|
||||
LCD_SEG3X9_VOLTAGE_2_7V, //001b
|
||||
LCD_SEG3X9_VOLTAGE_2_8V, //010b
|
||||
LCD_SEG3X9_VOLTAGE_2_9V, //011b
|
||||
LCD_SEG3X9_VOLTAGE_3_0V, //100b
|
||||
LCD_SEG3X9_VOLTAGE_3_1V, //101b
|
||||
LCD_SEG3X9_VOLTAGE_3_2V, //110b
|
||||
LCD_SEG3X9_VOLTAGE_3_3V, //111b
|
||||
};
|
||||
|
||||
|
||||
struct lcd_seg3x9_platform_data {
|
||||
enum LCD_SEG3X9_VOLTAGE vlcd;
|
||||
enum LCD_SEG3X9_BIAS bias;
|
||||
struct lcd_seg3x9_pin pin_cfg;
|
||||
};
|
||||
|
||||
|
||||
//=================================================================================//
|
||||
// 关于LCD段码屏接线问题 //
|
||||
// 1.COM口需要从COM0按顺序开始连接, 如3COM, 则IO必须占用COM0/1/2,而不能COM1/2/3;
|
||||
// 2.COM0/1/2与LCD屏可以不按照对应需要接线, 如:
|
||||
// LCD_COM0 --> CHIP_COM2;
|
||||
// LCD_COM1 --> CHIP_COM1;
|
||||
// LCD_COM2 --> CHIP_COM0;
|
||||
// 但一般建议按顺序接线;
|
||||
// 2.SEG可以根据实际情况选择SEG0~SEG21接线, 如;
|
||||
// LCD_SEG0 --> CHIP_SEG7;
|
||||
// LCD_SEG1 --> CHIP_SEG8;
|
||||
// LCD_SEG2 --> CHIP_SEG9;
|
||||
//=================================================================================//
|
||||
#define LCD_SEG3X9_PLATFORM_DATA_BEGIN(data) \
|
||||
const struct lcd_seg3x9_platform_data data = {
|
||||
|
||||
#define LCD_SEG3X9_PLATFORM_DATA_END() \
|
||||
};
|
||||
|
||||
//UI LED7 API:
|
||||
//=================================================================================//
|
||||
// 模块初始化显示接口 //
|
||||
//=================================================================================//
|
||||
void lcd_seg3x9_init(const struct lcd_seg3x9_platform_data *_data);
|
||||
const struct ui_display_api *ui_lcd_seg3x9_init(void *para);
|
||||
//=================================================================================//
|
||||
// 设置显示坐标接口 //
|
||||
/*
|
||||
___ ___ ___
|
||||
|___| |___| |___|
|
||||
|___| |___| |___|
|
||||
---0------1------2----> X
|
||||
*/
|
||||
//=================================================================================//
|
||||
void lcd_seg3x9_setX(u8 X);
|
||||
|
||||
//=================================================================================//
|
||||
// 字符类显示接口 //
|
||||
//=================================================================================//
|
||||
void lcd_seg3x9_show_char(u8 chardata); //显示字符(追加方式)
|
||||
void lcd_seg3x9_flash_char_start(u8 index); //闪烁单个字符
|
||||
void lcd_seg3x9_flash_char_stop(u8 index); //取消闪烁单个字符
|
||||
void lcd_seg3x9_show_string(u8 *str); //显示字符串(追加方式)
|
||||
void lcd_seg3x9_show_string_reset_x(u8 *str); //显示字符串, x从0开始
|
||||
void lcd_seg3x9_show_string_align_right(u8 *str); //led7显示字符串(清屏&右方式)
|
||||
void lcd_seg3x9_show_string_align_left(u8 *str); //led7显示字符串(清屏&左方式)
|
||||
|
||||
//=================================================================================//
|
||||
// 数字类显示接口 //
|
||||
//=================================================================================//
|
||||
void lcd_seg3x9_show_number(u16 val); //显示数字(清屏&高位显示0)
|
||||
void lcd_seg3x9_show_number2(u16 val); //显示数字(清屏&高位不显示)
|
||||
void lcd_seg3x9_show_number_add(u16 val); //显示数字(追加方式)
|
||||
|
||||
//=================================================================================//
|
||||
// 图标类显示接口 //
|
||||
//=================================================================================//
|
||||
void lcd_seg3x9_show_icon(UI_LCD_SEG3X9_ICON icon); //显示单个图标(追加)
|
||||
void lcd_seg3x9_flash_icon(UI_LCD_SEG3X9_ICON icon); //闪烁单个图标(追加)
|
||||
|
||||
//=================================================================================//
|
||||
// 模式类类显示接口 //
|
||||
//=================================================================================//
|
||||
|
||||
//=================================================================================//
|
||||
// 清屏类显示接口 //
|
||||
//=================================================================================//
|
||||
void lcd_seg3x9_show_null(void); //清除所有显示(数字,字符串和图标)
|
||||
void lcd_seg3x9_clear_string(void); //清除显示数字和字母
|
||||
void lcd_seg3x9_clear_icon(UI_LCD_SEG3X9_ICON icon); //清除显示单个图标
|
||||
void lcd_seg3x9_clear_all_icon(void); //清除显示所有图标
|
||||
|
||||
|
||||
#endif /* #ifndef _LCD_SEG3X9_DRV_H_ */
|
||||
|
||||
363
apps/earphone/include/ui/lcd_simple/menu.h
Normal file
363
apps/earphone/include/ui/lcd_simple/menu.h
Normal file
@ -0,0 +1,363 @@
|
||||
|
||||
//generated by ResBuilder in 2011//
|
||||
|
||||
#ifndef _MENU_H_
|
||||
#define _MENU_H_
|
||||
|
||||
////StringResID Define Table////
|
||||
#define Chinese_Simplified 1
|
||||
#define Chinese_Traditional 2
|
||||
#define Japanese 3
|
||||
#define Korean 4
|
||||
#define English 5
|
||||
#define French 6
|
||||
#define German 7
|
||||
#define Italian 8
|
||||
#define Dutch 9
|
||||
#define Portuguese 10
|
||||
#define Spanish 11
|
||||
#define Swedish 12
|
||||
#define Czech 13
|
||||
#define Danish 14
|
||||
#define Polish 15
|
||||
#define Russian 16
|
||||
#define Turkey 17
|
||||
#define Hebrew 18
|
||||
#define Thai 19
|
||||
#define Hungarian 20
|
||||
#define Romanian 21
|
||||
#define Arabic 22
|
||||
|
||||
#define LANGUAGEID_SUM 22
|
||||
|
||||
|
||||
|
||||
////Multi Language Define Table////
|
||||
#define vplaym1 1
|
||||
#define mplay2 2
|
||||
#define mplay4 3
|
||||
#define mplay5 4
|
||||
#define vstopm1 5
|
||||
#define vstopm2 6
|
||||
#define udisk 7
|
||||
#define cdelfile 8
|
||||
#define cdelall 9
|
||||
#define mstop5 10
|
||||
#define vloopm1 11
|
||||
#define vloopm2 12
|
||||
#define vloopm3 13
|
||||
#define vloopm4 14
|
||||
#define vloopm5 15
|
||||
#define vloopm6 16
|
||||
#define meq1 17
|
||||
#define meq2 18
|
||||
#define meq3 19
|
||||
#define meq4 20
|
||||
#define meq5 21
|
||||
#define meq6 22
|
||||
#define meq7 23
|
||||
#define meq8 24
|
||||
#define recpara 25
|
||||
#define mrstop3 26
|
||||
#define rsetgain 27
|
||||
#define main2 28
|
||||
#define mbps 29
|
||||
#define msrate 30
|
||||
#define smain7 31
|
||||
#define mrbps0 32
|
||||
#define mrbps1 33
|
||||
#define mrbps2 34
|
||||
#define mrbps3 35
|
||||
#define mrbps4 36
|
||||
#define mrbps5 37
|
||||
#define mrbps6 38
|
||||
#define mrbps7 39
|
||||
#define mrbps8 40
|
||||
#define mrbps9 41
|
||||
#define mrbps10 42
|
||||
#define mrbps11 43
|
||||
#define srate48k 44
|
||||
#define srate32k 45
|
||||
#define srate24k 46
|
||||
#define srate16k 47
|
||||
#define srate12k 48
|
||||
#define record1 49
|
||||
#define record2 50
|
||||
#define record 51
|
||||
#define rsaving 52
|
||||
#define fmenu16 53
|
||||
#define sreplay1 54
|
||||
#define fmenu1 55
|
||||
#define fmenu15 56
|
||||
#define fmfreq 57
|
||||
#define fmenu2 58
|
||||
#define fmenu3 59
|
||||
#define smain1 60
|
||||
#define smain2 61
|
||||
#define smain3 62
|
||||
#define s_tools 63
|
||||
#define kvoice1 64
|
||||
#define kvoice2 65
|
||||
#define smain6 66
|
||||
#define smain8 67
|
||||
#define smain9 68
|
||||
#define slan1 69
|
||||
#define slan3 70
|
||||
#define slan4 71
|
||||
#define slan5 72
|
||||
#define slan2 73
|
||||
#define slan6 74
|
||||
#define slan7 75
|
||||
#define slan8 76
|
||||
#define slan9 77
|
||||
#define slan10 78
|
||||
#define slan11 79
|
||||
#define slan12 80
|
||||
#define slan13 81
|
||||
#define slan14 82
|
||||
#define slan15 83
|
||||
#define slan16 84
|
||||
#define slan17 85
|
||||
#define slan18 86
|
||||
#define slan19 87
|
||||
#define slan20 88
|
||||
#define slan21 89
|
||||
#define slan22 90
|
||||
#define smain4 91
|
||||
#define clock 92
|
||||
#define fmset 93
|
||||
#define alarmon 94
|
||||
#define alarmoff 95
|
||||
#define alarmtm 96
|
||||
#define alarmcyc 97
|
||||
#define alarmmus 98
|
||||
#define alarmvol 99
|
||||
#define ringonce 100
|
||||
#define ringday 101
|
||||
#define ringweek 102
|
||||
#define ringinl 103
|
||||
#define fm_rmon 104
|
||||
#define fm_rtue 105
|
||||
#define fm_rwed 106
|
||||
#define fm_rthu 107
|
||||
#define fm_rfri 108
|
||||
#define fm_rsat 109
|
||||
#define fm_rsun 110
|
||||
#define timingfmon 111
|
||||
#define timingfmoff 112
|
||||
#define fmrecordon 113
|
||||
#define fmrecordoff 114
|
||||
#define fmtime 115
|
||||
#define fm_manual 116
|
||||
#define fmautoload 117
|
||||
#define fm_switch 118
|
||||
#define fm_vol 119
|
||||
#define t_cal 120
|
||||
#define t_music 121
|
||||
#define t_record 122
|
||||
#define t_fm 123
|
||||
#define t_sys 124
|
||||
#define f_browse 125
|
||||
#define alarm1 126
|
||||
#define t_ebook 127
|
||||
#define sel_file 128
|
||||
#define play_set 129
|
||||
#define handplay 130
|
||||
#define autoplay 131
|
||||
#define playspeed 132
|
||||
|
||||
#define STRINGID_SUM 132
|
||||
|
||||
|
||||
|
||||
////BmpResID Define Table////
|
||||
#define CH_NOFILE 1
|
||||
#define CLOCK 2
|
||||
#define CLOCKA 3
|
||||
#define CONTRSTW 4
|
||||
#define DELLA 5
|
||||
#define DIRROOTA 6
|
||||
#define EBOOK 7
|
||||
#define EBOOKA 8
|
||||
#define ENGDELLA 9
|
||||
#define EN_NOFILE 10
|
||||
#define FM 11
|
||||
#define FMA 12
|
||||
#define MMP3 13
|
||||
#define MUSIC1 14
|
||||
#define MUSICA 15
|
||||
#define MWAV 16
|
||||
#define MWMA 17
|
||||
#define NOUDISK 18
|
||||
#define PMDSCOM 19
|
||||
#define RTC_NUM_0 20
|
||||
#define RTC_NUM_1 21
|
||||
#define RTC_NUM_2 22
|
||||
#define RTC_NUM_3 23
|
||||
#define RTC_NUM_4 24
|
||||
#define RTC_NUM_5 25
|
||||
#define RTC_NUM_6 26
|
||||
#define RTC_NUM_7 27
|
||||
#define RTC_NUM_8 28
|
||||
#define RTC_NUM_9 29
|
||||
#define RTC_NUM_A 30
|
||||
#define RTC_NUM_B 31
|
||||
#define RECORD1 32
|
||||
#define RECORDA 33
|
||||
#define SDMMC 34
|
||||
#define SIGNAL_1 35
|
||||
#define SIGNAL_2 36
|
||||
#define SIGNAL_3 37
|
||||
#define SIGNAL_4 38
|
||||
#define SIGNAL_5 39
|
||||
#define SIGNAL_6 40
|
||||
#define SYSTEM1 41
|
||||
#define SYSTEMA 42
|
||||
#define UDISK 43
|
||||
#define UDISKOUT 44
|
||||
#define ACTIVE 45
|
||||
#define ALARM 46
|
||||
#define ALARM_C 47
|
||||
#define ALARM_CA 48
|
||||
#define ALARM_O 49
|
||||
#define ALARM_OA 50
|
||||
#define ALARM_T 51
|
||||
#define ALARM_TA 52
|
||||
#define ALARM_V 53
|
||||
#define ALARM_VA 54
|
||||
#define ALMICON 55
|
||||
#define BATTERY01 56
|
||||
#define BATTERY02 57
|
||||
#define BATTERY03 58
|
||||
#define BATTERY04 59
|
||||
#define BATTERY05 60
|
||||
#define BATTERY06 61
|
||||
#define BIGBAT1 62
|
||||
#define BIGBAT2 63
|
||||
#define BIGBAT3 64
|
||||
#define BIGBAT4 65
|
||||
#define BIGBAT5 66
|
||||
#define BKCLR1 67
|
||||
#define BPS128 68
|
||||
#define BPS160 69
|
||||
#define BPS48 70
|
||||
#define BPS64 71
|
||||
#define BPS96 72
|
||||
#define C_NOSEL 73
|
||||
#define C_SEL 74
|
||||
#define CALENDAR 75
|
||||
#define CALENDAR1 76
|
||||
#define CALENDAR2 77
|
||||
#define CARDOUT 78
|
||||
#define CDEL_NO 79
|
||||
#define CDEL_YES 80
|
||||
#define CHNDEL 81
|
||||
#define CHNSAVE 82
|
||||
#define CHNWAIT 83
|
||||
#define CONTRSTB 84
|
||||
#define CYCLE1 85
|
||||
#define CYCLE2 86
|
||||
#define CYCLE3 87
|
||||
#define CYCLE4 88
|
||||
#define DELFILE 89
|
||||
#define DISCERR 90
|
||||
#define EDELFILE 91
|
||||
#define EFICON 92
|
||||
#define ENGCOUT 93
|
||||
#define ENGDEL 94
|
||||
#define ENGDICERR 95
|
||||
#define ENGNOCARD 96
|
||||
#define ENGNODISK 97
|
||||
#define ENGNOSPAC 98
|
||||
#define ENGSAVE 99
|
||||
#define ENGUOUT 100
|
||||
#define ENGWAIT 101
|
||||
#define ENOFILE 102
|
||||
#define EQCLAS 103
|
||||
#define EQDBB 104
|
||||
#define EQJAZZ 105
|
||||
#define EQNOR 106
|
||||
#define EQPOP 107
|
||||
#define EQROCK 108
|
||||
#define EQSOFT 109
|
||||
#define EQWOW 110
|
||||
#define FLASH 111
|
||||
#define FMUSIC 112
|
||||
#define FOLDER 113
|
||||
#define FOLDERM 114
|
||||
#define FQBAR 115
|
||||
#define FQBAR2 116
|
||||
#define GOODBYTE 117
|
||||
#define LARROW 118
|
||||
#define LINEIN1 119
|
||||
#define LINEIN2 120
|
||||
#define LINEINBIG 121
|
||||
#define LINEINXXX 122
|
||||
#define LOGOFM 123
|
||||
#define LOWBAT 124
|
||||
#define MICIN 125
|
||||
#define MLOOP1 126
|
||||
#define MLOOP2 127
|
||||
#define MLOOP3 128
|
||||
#define MLOOP4 129
|
||||
#define MLOOP5 130
|
||||
#define MLOOP6 131
|
||||
#define MP3_128 132
|
||||
#define MP3_16 133
|
||||
#define MP3_192 134
|
||||
#define MP3_24K 135
|
||||
#define MP3_256 136
|
||||
#define MP3_32 137
|
||||
#define MP3_320 138
|
||||
#define MP3_32K 139
|
||||
#define MP3_48 140
|
||||
#define MP3_48K 141
|
||||
#define MP3_64 142
|
||||
#define MP3_8 143
|
||||
#define MP3_96 144
|
||||
#define MREC 145
|
||||
#define MWAV128K 146
|
||||
#define MWAV176K 147
|
||||
#define MWAV192K 148
|
||||
#define MWAV256K 149
|
||||
#define MWAV32K 150
|
||||
#define MWAV353K 151
|
||||
#define MWAV384K 152
|
||||
#define MWAV64K 153
|
||||
#define MWMA128K 154
|
||||
#define MWMA176K 155
|
||||
#define MWMA192K 156
|
||||
#define MWMA32K 157
|
||||
#define MWMA64K 158
|
||||
#define MWMA96K 159
|
||||
#define NO_ICON 160
|
||||
#define NOCARD 161
|
||||
#define NOFILE 162
|
||||
#define NOMEMORY 163
|
||||
#define NONGZI 164
|
||||
#define OFF_SEL 165
|
||||
#define ON_SEL 166
|
||||
#define PAUSE 167
|
||||
#define PAUSE1 168
|
||||
#define RARROW 169
|
||||
#define REC_FILE 170
|
||||
#define RECSAVE 171
|
||||
#define SCANSD1 172
|
||||
#define SCANSDMMC 173
|
||||
#define SCANUD1 174
|
||||
#define SCANUDISK 175
|
||||
#define SLIDER 176
|
||||
#define SLIDER_P 177
|
||||
#define TOOLP 178
|
||||
#define TOOLPA 179
|
||||
#define UNACTIVE 180
|
||||
#define WAV_12K 181
|
||||
#define WAV_16K 182
|
||||
#define WAV_24K 183
|
||||
#define WAV_32K 184
|
||||
#define WAV_48K 185
|
||||
#define WAV_8K 186
|
||||
|
||||
#define BMPID_SUM 186
|
||||
|
||||
#endif
|
||||
76
apps/earphone/include/ui/lcd_simple/ui.h
Normal file
76
apps/earphone/include/ui/lcd_simple/ui.h
Normal file
@ -0,0 +1,76 @@
|
||||
#ifndef __LCDSIMULATOR_H__
|
||||
#define __LCDSIMULATOR_H__
|
||||
|
||||
#include "menu.h"
|
||||
#include "font/language_list.h"
|
||||
#include "typedef.h"
|
||||
|
||||
// #define USE_BLANK_FUNC 1
|
||||
// #define LCDPAGE 8
|
||||
// #define LCDCOLUMN 128
|
||||
// #define SCR_WIDTH LCDCOLUMN
|
||||
// #define SCR_HEIGHT (LCDPAGE*8)
|
||||
|
||||
#define MENUICONWIDTH 12 //菜单项目左边图标的宽度(象素)
|
||||
#define MENUITEMHEIGHT 16 //菜单项目的高度(象素)
|
||||
#define SCROLLBARWIDTH 6 //垂直滚动条的宽度(象素)
|
||||
#define MENUITEMSUMPERSCR (SCR_HEIGHT/MENUITEMHEIGHT) //每屏可显示的最大菜单项
|
||||
#define MENUITEMPAGEHEIGHT 2 //每个菜单项所占的页数 2个LCDPAGE --> 2*8=16个像素
|
||||
|
||||
#define RESFILESTARTADDRESS 0 //资源文件的起始地址
|
||||
|
||||
|
||||
#define PROGRESSLENGTH 100 //进度条长度(象素)
|
||||
#define SLIDERLENGTH 100 //滑动条长度(象素)
|
||||
#define SLIDERMOVESTEP 5 //滑动块的移动步长
|
||||
#define SLIDER_NOMOVE_TIMEEXIT 10 //滑动条不动超过此时间自动退出,(*0.5S)
|
||||
|
||||
#define MENUWAITTIME (8*2) //菜单界面不操作超过MENUWAITTIME时间则自动返回
|
||||
|
||||
#define ntohl(x) (unsigned long)((x>>24)|((x>>8)&0xff00)|(x<<24)|((x&0xff00)<<8))
|
||||
#define ntoh(x) (unsigned short int )((x>>8&0x00ff)|x<<8&0xff00)
|
||||
|
||||
//#pragma pack(1)
|
||||
typedef u8(* FUN)(u8 mode);
|
||||
|
||||
typedef struct _MENULIST {
|
||||
u8 ItemSum; //菜单项目总数
|
||||
u8 ActiveItemNum; //当前活动菜单项目序号:1--ItemSum
|
||||
u8 IconID[2]; //第一个为菜单选中时显示图标的ID号,第二个为菜单未选中时显示图标的ID号
|
||||
u16 TitleID; //菜单的标题字符串ID号,没有标题此值为0
|
||||
u16 *ItemString; //菜单项目对应的字符串ID号
|
||||
// FUN fun;
|
||||
} MENULIST;
|
||||
|
||||
//////函数声明//////
|
||||
|
||||
u8 TurnPixelReverse_Page(u8 startpage, u8 pagelen);
|
||||
u8 TurnPixelReverse_Rect(u8 left, u8 top, u8 right, u8 bottom);
|
||||
|
||||
void UI_MenuSelectOn(u8 showitemnum);
|
||||
void Scrol_String(u16 StringID);
|
||||
u8 SetScrollBar(u8 Start_x);
|
||||
u8 SetSlideBlock(u8 Start_x, u8 Start_y);
|
||||
|
||||
u8 UI_Slider(FUN gslider);
|
||||
u8 UI_Progress(u8 currentpos, u8 progress_y_pos, u8 progresslength);
|
||||
u8 SetSlider(u8 start_x, u8 start_y, u8 length);
|
||||
u8 SetProgress(u8 start_x, u8 start_y, u8 length);
|
||||
u8 ClearLcdBuf_Page(u8 startpage, u8 pagelen);
|
||||
u8 ClearLcdBuf_Rect(u8 left, u8 top, u8 right, u8 bottom);
|
||||
u8 draw_slider(s8 currentpos, u8 slider_y_pos, u8 sliderlength);
|
||||
#define UI_SLIDER_CURR_VALUE 0
|
||||
#define UI_SLIDER_DEC 1
|
||||
#define UI_SLIDER_INC 2
|
||||
|
||||
extern s8 MenuItemSelectOnNum; //当前屏幕活动page序号:0--(MENUITEMSUMPERSCR-1)
|
||||
extern s8 CurrentScreenNum; //当前所处屏幕数,从0序号开始
|
||||
extern u8 NeedScreenSumViaItem; //菜单项目总数将占用屏幕的屏数
|
||||
extern u8 LaseScreenRemainMenuItem; //最后一屏只需显示的菜单项目数
|
||||
extern u8 LanguageMode;
|
||||
|
||||
extern void clear_lcd();
|
||||
extern void draw_lcd(u8 start_page, u8 page_len);
|
||||
extern void clear_lcd_area(u8 start_page, u8 end_page);
|
||||
|
||||
#endif
|
||||
21
apps/earphone/include/ui/lcd_simple/ui_mainmenu.h
Normal file
21
apps/earphone/include/ui/lcd_simple/ui_mainmenu.h
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef __UI_MAINMENU_H__
|
||||
#define __UI_MAINMENU_H__
|
||||
|
||||
#define AUTORUNTIMEMAX 10
|
||||
#define TASKTOTLE 24 //任务总数
|
||||
#define SCREENSHOWTASKSUM 5 //屏幕需显示的任务图标
|
||||
//#define SHOWTASKSUM 8 //需显示的任务图标总数
|
||||
|
||||
typedef struct {
|
||||
u8 taskname[16]; //任务名
|
||||
u16 bmpID; //该任务在主界面显示的图标
|
||||
u16 strID; //该任务在主界面显示的字符串
|
||||
u8 showflag; //标识该任务是否显式的显示任务图标
|
||||
} TASKSTRUCT;
|
||||
|
||||
extern const TASKSTRUCT taskbuf[TASKTOTLE];
|
||||
extern u8 taskshow[TASKTOTLE];
|
||||
|
||||
u8 UI_mainmenu(s8 apprun);
|
||||
void findtaskexist(u8 tasksum);
|
||||
#endif
|
||||
150
apps/earphone/include/ui/lcd_spi/lcd_drive.h
Normal file
150
apps/earphone/include/ui/lcd_spi/lcd_drive.h
Normal file
@ -0,0 +1,150 @@
|
||||
#ifndef __SPI_LCD_DRIVER_H
|
||||
#define __SPI_LCD_DRIVER_H
|
||||
|
||||
|
||||
#include "asm/spi.h"
|
||||
|
||||
|
||||
#if (SPI_LCD_DEBUG_ENABLE == 0)
|
||||
#define lcd_d(...)
|
||||
#define lcd_w(...)
|
||||
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
|
||||
#elif (SPI_LCD_DEBUG_ENABLE == 1)
|
||||
#define lcd_d(...)
|
||||
#define lcd_w(fmt, ...) printf("[LCD WARNING]: "fmt, ##__VA_ARGS__)
|
||||
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
|
||||
#else
|
||||
#define lcd_d(fmt, ...) printf("[LCD DEBUG]: "fmt, ##__VA_ARGS__)
|
||||
#define lcd_w(fmt, ...) printf("[LCD WARNING]: "fmt, ##__VA_ARGS__)
|
||||
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
// 两毫秒延时
|
||||
extern void delay_2ms(int cnt);
|
||||
#define delay2ms(t) delay_2ms(t)
|
||||
|
||||
|
||||
/* 定义初始化数据结构体 */
|
||||
typedef struct {
|
||||
u8 cmd; // 地址
|
||||
u8 cnt; // 数据个数
|
||||
u8 dat[64]; // 数据
|
||||
} InitCode;
|
||||
|
||||
#define REGFLAG_DELAY 0xFF
|
||||
|
||||
struct spi_lcd_init {
|
||||
char *name; // 名称
|
||||
u8 spi_pending;
|
||||
u8 soft_spi;
|
||||
u16 lcd_width;
|
||||
u16 lcd_height;
|
||||
u8 color_format;
|
||||
u8 interface;
|
||||
u8 column_addr_align;
|
||||
u8 row_addr_align;
|
||||
u8 backlight_status;
|
||||
u8 *dispbuf;
|
||||
u32 bufsize;
|
||||
InitCode *initcode; // 初始化代码
|
||||
u16 initcode_cnt; // 初始化代码条数
|
||||
void (*Init)(void);
|
||||
void (*WriteComm)(u16 cmd); // 写命令
|
||||
void (*WriteData)(u16 dat); // 写数据
|
||||
void (*WriteMap)(char *map, int size); // 写整个buf
|
||||
void (*WritePAGE)(char *map, u8 page_star, u8 page_len); // 写page
|
||||
void (*SetDrawArea)(int, int, int, int);
|
||||
void (*Reset)(void);
|
||||
void (*BackLightCtrl)(u8);
|
||||
void (*EnterSleep)();
|
||||
void (*ExitSleep)();
|
||||
};
|
||||
|
||||
|
||||
void spi_dma_send_byte(u8 dat);
|
||||
void spi_dma_send_map(u8 *map, u32 size);
|
||||
void SPI_LcdTest();
|
||||
|
||||
|
||||
|
||||
|
||||
struct lcd_spi_platform_data {
|
||||
u32 pin_reset;
|
||||
u32 pin_cs;
|
||||
u32 pin_rs;
|
||||
u32 pin_bl;
|
||||
spi_dev spi_cfg;
|
||||
const struct spi_platform_data *spi_pdata;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// LCD 初始化接口
|
||||
#define REGISTER_LCD_DRIVE() \
|
||||
const struct spi_lcd_init dev_drive
|
||||
|
||||
enum LCD_COLOR {
|
||||
LCD_COLOR_RGB565,
|
||||
LCD_COLOR_MONO,
|
||||
};
|
||||
|
||||
enum LCD_IF {
|
||||
LCD_SPI,
|
||||
LCD_EMI,
|
||||
};
|
||||
|
||||
struct lcd_info {
|
||||
u16 width;
|
||||
u16 height;
|
||||
u8 color_format;
|
||||
u8 interface;
|
||||
u8 col_align;
|
||||
u8 row_align;
|
||||
u8 bl_status;
|
||||
};
|
||||
|
||||
|
||||
struct lcd_interface {
|
||||
void (*init)(void *);
|
||||
void (*get_screen_info)(struct lcd_info *info);
|
||||
void (*buffer_malloc)(u8 **buf, u32 *size);
|
||||
void (*buffer_free)(u8 *buf);
|
||||
void (*draw)(u8 *buf, u32 len, u8 wait);
|
||||
void (*set_draw_area)(u16 xs, u16 xe, u16 ys, u16 ye);
|
||||
void (*clear_screen)(u16 color);
|
||||
int (*backlight_ctrl)(u8 on);
|
||||
void (*draw_page)(u8 *buf, u8 page_star, u8 page_len);
|
||||
};
|
||||
|
||||
extern struct lcd_interface lcd_interface_begin[];
|
||||
extern struct lcd_interface lcd_interface_end[];
|
||||
|
||||
#define REGISTER_LCD_INTERFACE(lcd) \
|
||||
static const struct lcd_interface lcd sec(.lcd_if_info) __attribute__((used))
|
||||
|
||||
struct lcd_interface *lcd_get_hdl();
|
||||
|
||||
#define LCD_SPI_PLATFORM_DATA_BEGIN(data) \
|
||||
const struct lcd_spi_platform_data data = {
|
||||
|
||||
#define LCD_SPI__PLATFORM_DATA_END() \
|
||||
};
|
||||
|
||||
|
||||
void lcd_reset_l();
|
||||
void lcd_reset_h();
|
||||
void lcd_cs_l();
|
||||
void lcd_cs_h();
|
||||
void lcd_rs_l();
|
||||
void lcd_rs_h();
|
||||
void lcd_bl_l();
|
||||
void lcd_bl_h();
|
||||
u8 lcd_bl_io();
|
||||
|
||||
extern int lcd_backlight_status();
|
||||
u8 lcd_spi_recv_byte();
|
||||
int lcd_spi_send_byte(u8 byte);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
143
apps/earphone/include/ui/led7/led7_driver.h
Normal file
143
apps/earphone/include/ui/led7/led7_driver.h
Normal file
@ -0,0 +1,143 @@
|
||||
#ifndef _LED7_DRV_H_
|
||||
#define _LED7_DRV_H_
|
||||
|
||||
|
||||
typedef struct _led7_VAR {
|
||||
u8 bCoordinateX;
|
||||
u8 bFlashChar;
|
||||
u8 bShowBuff[4]; //[0] ~ [3]显示的数字/字母显示的所有段
|
||||
u32 bShowIcon; //每1bit对应LED4的1段, maybe icon > 7段
|
||||
u32 bFlashIcon; //闪烁标志
|
||||
u8 bShowBuff1[9]; //[i]->第i个管脚, value的每一bit对应一个管脚, scan时使用
|
||||
} LED7_VAR;
|
||||
|
||||
#define LED7_PLAY BIT(0) //0: 播放图标
|
||||
#define LED7_PAUSE BIT(1) //1: 暂停图标
|
||||
#define LED7_USB BIT(2) //2: USB图标
|
||||
#define LED7_SD BIT(3) //3: SD图标
|
||||
#define LED7_2POINT BIT(4) //4: 冒号图标
|
||||
#define LED7_FM BIT(5) //5: FM图标
|
||||
#define LED7_DOT BIT(6) //6: 小数点图标
|
||||
#define LED7_MP3 BIT(7) //7: MP3图标
|
||||
#define LED7_REPEAT BIT(8) //8: REPEAT图标
|
||||
#define LED7_CHARGE BIT(9) //9: 充电图标
|
||||
#define LED7_BT BIT(10) //10: 充电图标
|
||||
#define LED7_AUX BIT(11) //11: AUX图标
|
||||
#define LED7_WMA BIT(12) //12: WMA图标
|
||||
|
||||
typedef u32 UI_LED7_ICON;
|
||||
|
||||
typedef enum _led7_pin_type {
|
||||
LED7_PIN7, //7个引脚
|
||||
LED7_PIN12, //12个引脚
|
||||
LED7_PIN13, //13个引脚
|
||||
} LED7_PIN_TYPE;
|
||||
|
||||
struct seg2pin {
|
||||
u8 pinH;
|
||||
u8 pinL;
|
||||
};
|
||||
|
||||
struct icon_seg2pin {
|
||||
UI_LED7_ICON icon;
|
||||
struct seg2pin seg2pin;
|
||||
};
|
||||
|
||||
struct led7_pin7 {
|
||||
u8 pin[7];
|
||||
};
|
||||
|
||||
struct led7_pin12 {
|
||||
u8 pin_comh[5];
|
||||
u8 pin_segl[7];
|
||||
};
|
||||
|
||||
struct led7_pin13 {
|
||||
u8 pin_com[6];
|
||||
u8 pin_seg[7];
|
||||
};
|
||||
|
||||
|
||||
union led7_pin_cfg {
|
||||
struct led7_pin7 pin7;
|
||||
struct led7_pin12 pin12;
|
||||
struct led7_pin13 pin13;
|
||||
};
|
||||
|
||||
#define LED_A BIT(0)
|
||||
#define LED_B BIT(1)
|
||||
#define LED_C BIT(2)
|
||||
#define LED_D BIT(3)
|
||||
#define LED_E BIT(4)
|
||||
#define LED_F BIT(5)
|
||||
#define LED_G BIT(6)
|
||||
#define LED_H BIT(7)
|
||||
|
||||
|
||||
struct led7_platform_data {
|
||||
LED7_PIN_TYPE pin_type;
|
||||
union led7_pin_cfg pin_cfg;
|
||||
};
|
||||
|
||||
#define LED7_PLATFORM_DATA_BEGIN(data) \
|
||||
const struct led7_platform_data data = {
|
||||
|
||||
#define LED7_PLATFORM_DATA_END() \
|
||||
};
|
||||
|
||||
//UI LED7 API:
|
||||
//=================================================================================//
|
||||
// 模块初始化显示接口 //
|
||||
//=================================================================================//
|
||||
void *led7_init(const struct led7_platform_data *_data);
|
||||
const struct ui_display_api *ui_led7_init(void *para);
|
||||
|
||||
//=================================================================================//
|
||||
// 设置显示坐标接口 //
|
||||
/*
|
||||
___ ___ ___ ___
|
||||
|___| |___| |___| |___|
|
||||
|___| |___| |___| |___|
|
||||
---0------1------2------3------> X
|
||||
*/
|
||||
//=================================================================================//
|
||||
void led7_setX(u8 X);
|
||||
|
||||
//=================================================================================//
|
||||
// 字符类显示接口 //
|
||||
//=================================================================================//
|
||||
void led7_show_char(u8 chardata); //显示字符(追加方式)
|
||||
void led7_flash_char_start(u8 index); //闪烁单个字符
|
||||
void led7_flash_char_stop(u8 index); //取消闪烁单个字符
|
||||
void led7_show_string(u8 *str); //显示字符串(追加方式)
|
||||
void led7_show_string_reset_x(u8 *str); //显示字符串, x从0开始
|
||||
void led7_show_string_align_right(u8 *str); //led7显示字符串(清屏&右方式)
|
||||
void led7_show_string_align_left(u8 *str); //led7显示字符串(清屏&左方式)
|
||||
|
||||
//=================================================================================//
|
||||
// 数字类显示接口 //
|
||||
//=================================================================================//
|
||||
void led7_show_number(u16 val); //显示数字(清屏&高位显示0)
|
||||
void led7_show_number2(u16 val); //显示数字(清屏&高位不显示)
|
||||
void led7_show_number_add(u16 val); //显示数字(追加方式)
|
||||
|
||||
//=================================================================================//
|
||||
// 图标类显示接口 //
|
||||
//=================================================================================//
|
||||
void led7_show_icon(UI_LED7_ICON icon); //显示单个图标(追加)
|
||||
void led7_flash_icon(UI_LED7_ICON icon); //闪烁单个图标(追加)
|
||||
|
||||
//=================================================================================//
|
||||
// 模式类类显示接口 //
|
||||
//=================================================================================//
|
||||
|
||||
//=================================================================================//
|
||||
// 清屏类显示接口 //
|
||||
//=================================================================================//
|
||||
void led7_show_null(void); //清除所有显示(数字,字符串和图标)
|
||||
void led7_clear_string(void); //清除显示数字和字母
|
||||
void led7_clear_icon(UI_LED7_ICON icon); //清除显示单个图标
|
||||
void led7_clear_all_icon(void); //清除显示所有图标
|
||||
|
||||
|
||||
#endif /* _LED_H_ */
|
||||
26
apps/earphone/include/ui/res_config.h
Normal file
26
apps/earphone/include/ui/res_config.h
Normal file
@ -0,0 +1,26 @@
|
||||
#ifndef __RES_CONFIG_H__
|
||||
#define __RES_CONFIG_H__
|
||||
|
||||
|
||||
#define EXTERN_PATH "storage/virfat_flash/C/"
|
||||
#define INTERN_PATH "mnt/sdfile/res/"
|
||||
#define RES_PATH INTERN_PATH
|
||||
|
||||
#define FONT_PATH RES_PATH
|
||||
|
||||
|
||||
#define UI_STY_CHECK_PATH \
|
||||
RES_PATH"JL.sty",
|
||||
|
||||
#define UI_RES_CHECK_PATH \
|
||||
RES_PATH"JL.res",
|
||||
|
||||
#define UI_STR_CHECK_PATH \
|
||||
RES_PATH"JL.str",
|
||||
|
||||
|
||||
|
||||
#define UI_WATCH_RES_ENABLE 0//表盘功能
|
||||
|
||||
|
||||
#endif
|
||||
130
apps/earphone/include/ui/style_led7.h
Normal file
130
apps/earphone/include/ui/style_led7.h
Normal file
@ -0,0 +1,130 @@
|
||||
#ifndef UI_STYLE_LED7_H
|
||||
#define UI_STYLE_LED7_H
|
||||
|
||||
#include "ui/ui_common.h"
|
||||
#include "ui/led7/led7_driver.h"
|
||||
#include "ui/lcd_seg/lcd_seg3x9_driver.h"
|
||||
|
||||
|
||||
|
||||
enum ui_menu_main {
|
||||
UI_MENU_MAIN_NULL = 0,
|
||||
UI_RTC_MENU_MAIN,
|
||||
UI_MUSIC_MENU_MAIN,
|
||||
UI_AUX_MENU_MAIN,
|
||||
UI_BT_MENU_MAIN,
|
||||
UI_RECORD_MENU_MAIN,
|
||||
UI_FM_MENU_MAIN,
|
||||
UI_PC_MENU_MAIN,
|
||||
UI_IDLE_MENU_MAIN,
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
enum {
|
||||
|
||||
MENU_POWER_UP = 1,
|
||||
MENU_WAIT,
|
||||
MENU_BT,
|
||||
MENU_PC,
|
||||
MENU_PC_VOL_UP,
|
||||
MENU_PC_VOL_DOWN,
|
||||
MENU_AUX,
|
||||
MENU_ALM_UP,
|
||||
|
||||
MENU_SHOW_STRING,
|
||||
MENU_MAIN_VOL,
|
||||
MENU_SET_EQ,
|
||||
MENU_SET_PLAY_MODE,
|
||||
|
||||
MENU_PLAY_TIME,
|
||||
MENU_FILENUM,
|
||||
MENU_INPUT_NUMBER,
|
||||
MENU_MUSIC_PAUSE,
|
||||
MENU_MUSIC_REPEATMODE,
|
||||
|
||||
MENU_FM_MAIN,
|
||||
MENU_FM_DISP_FRE,
|
||||
MENU_FM_SET_FRE,
|
||||
MENU_FM_STATION,
|
||||
MENU_IR_FM_SET_FRE,
|
||||
|
||||
MENU_RTC_SET,
|
||||
MENU_RTC_PWD,
|
||||
MENU_ALM_SET,
|
||||
|
||||
MENU_BT_SEARCH_DEVICE,
|
||||
MENU_BT_CONNECT_DEVICE,
|
||||
MENU_BT_DEVICE_ADD,
|
||||
MENU_BT_DEVICE_NAME,
|
||||
MENU_RECODE_MAIN,
|
||||
MENU_RECODE_ERR,
|
||||
MENU_POWER,
|
||||
MENU_LIST_DISPLAY,
|
||||
|
||||
|
||||
MENU_LED0,
|
||||
MENU_LED1,
|
||||
|
||||
|
||||
MENU_RECORD,
|
||||
|
||||
MENU_SEC_REFRESH = 0x80,
|
||||
MENU_REFRESH,
|
||||
MENU_MAIN = 0xff,
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//=================================================================================//
|
||||
// UI 配置数据结构 //
|
||||
//=================================================================================//
|
||||
struct ui_dis_api {
|
||||
int ui;
|
||||
void *(*open)(void *hd);
|
||||
void (*ui_main)(void *hd, void *private);
|
||||
int (*ui_user)(void *hd, void *private, int menu, int arg);
|
||||
void (*close)(void *hd, void *private);
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct _LCD_DISP_API {
|
||||
void (*clear)(void);
|
||||
void (*setXY)(u32 x, u32 y);
|
||||
void (*FlashChar)(u32);
|
||||
void (*Clear_FlashChar)(u32);
|
||||
void (*show_string)(u8 *);
|
||||
void (*show_char)(u8);
|
||||
void (*show_number)(u8);
|
||||
void (*show_icon)(u32);
|
||||
void (*flash_icon)(u32);
|
||||
void (*clear_icon)(u32);
|
||||
void (*show_pic)(u32);
|
||||
void (*hide_pic)(u32);
|
||||
void (*lock)(u32);
|
||||
} LCD_API;
|
||||
|
||||
|
||||
|
||||
extern const struct ui_dis_api bt_main;
|
||||
extern const struct ui_dis_api fm_main;
|
||||
extern const struct ui_dis_api music_main;
|
||||
extern const struct ui_dis_api record_main;
|
||||
extern const struct ui_dis_api rtc_main;
|
||||
extern const struct ui_dis_api pc_main;
|
||||
extern const struct ui_dis_api linein_main;
|
||||
extern const struct ui_dis_api idle_main;
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
131
apps/earphone/include/ui/ui_api.h
Normal file
131
apps/earphone/include/ui/ui_api.h
Normal file
@ -0,0 +1,131 @@
|
||||
#ifndef _UI_API_H_
|
||||
#define _UI_API_H_
|
||||
|
||||
#include "app_config.h"
|
||||
#include "ui/lcd_spi/lcd_drive.h"
|
||||
#include "ui/ui.h"
|
||||
#include "ui/ui_style.h"
|
||||
|
||||
#define GRT_CUR_MENU (0)
|
||||
#define GET_MAIN_MENU (1)
|
||||
|
||||
|
||||
enum ui_devices_type {
|
||||
LED_7,
|
||||
LCD_SEG3X9,
|
||||
TFT_LCD,//彩屏
|
||||
DOT_LCD,//点阵屏
|
||||
};
|
||||
|
||||
//板级配置数据结构
|
||||
struct ui_devices_cfg {
|
||||
enum ui_devices_type type;
|
||||
void *private_data;
|
||||
};
|
||||
|
||||
|
||||
struct touch_event {
|
||||
int event;
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
|
||||
|
||||
//led7 api
|
||||
extern int led7_ui_init(const struct ui_devices_cfg *ui_cfg);
|
||||
extern void ui_set_main_menu(enum ui_menu_main menu);
|
||||
extern void ui_menu_reflash(u8 break_in);//break_in 是否打断显示,例如显示设置过程中需要刷新新界面。是是否打断设置界面显示
|
||||
extern u8 ui_get_app_menu(u8);
|
||||
extern void ui_set_led(u8 app_menu, u8 on, u8 phase, u16 highlight, u16 period);
|
||||
extern void ui_set_auto_reflash(u32 msec);//自动刷新主页
|
||||
extern void ui_close_main_menu();
|
||||
extern void ui_set_tmp_menu(u8 app_menu, u16 ret_time, s32 arg, void (*timeout_cb)(u8 menu));
|
||||
extern void ui_common(void *hd, void *private, u8 menu, u32 arg);//公共显示
|
||||
|
||||
|
||||
//lcd api
|
||||
//
|
||||
extern int lcd_ui_init(void *arg);
|
||||
extern int ui_hide_main(int id);
|
||||
extern int ui_show_main(int id);
|
||||
|
||||
extern int ui_server_msg_post(const char *msg, ...);
|
||||
extern int ui_hide_curr_main();
|
||||
extern int ui_touch_msg_post(struct touch_event *event);
|
||||
extern int ui_key_msg_post(int msg);
|
||||
extern void key_ui_takeover(u8 on);
|
||||
extern int key_is_ui_takeover();
|
||||
extern void ui_backlight_open(void);
|
||||
extern void ui_backlight_close(void);
|
||||
|
||||
extern void ui_touch_timer_delete();
|
||||
extern void ui_touch_timer_start();
|
||||
extern void ui_auto_shut_down_modify(void);
|
||||
extern void ui_auto_shut_down_enable(void);
|
||||
extern void ui_auto_shut_down_disable(void);
|
||||
extern int ui_simple_key_msg_post(int, int);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//=================================================================================//
|
||||
// UI API //
|
||||
//=================================================================================//
|
||||
#if (TCFG_UI_ENABLE)
|
||||
#if(CONFIG_UI_STYLE == STYLE_JL_LED7)//led7 显示
|
||||
#define UI_INIT(a) led7_ui_init(a)
|
||||
#define UI_SHOW_WINDOW(a) ui_set_main_menu(a)
|
||||
#define UI_HIDE_WINDOW(...) ui_close_main_menu()
|
||||
#define UI_HIDE_CURR_WINDOW() ui_close_main_menu()
|
||||
#define UI_GET_WINDOW_ID() ui_get_app_menu(GET_MAIN_MENU)
|
||||
#define UI_GET_CURR_MENU() ui_get_app_menu(GRT_CUR_MENU)
|
||||
#define UI_REFLASH_WINDOW(a) ui_menu_reflash(a)
|
||||
#define UI_SHOW_MENU ui_set_tmp_menu
|
||||
#define UI_MSG_POST(...)
|
||||
#define UI_KEY_MSG_POST(...)
|
||||
|
||||
|
||||
#elif(CONFIG_UI_STYLE == STYLE_UI_SIMPLE)//去框架显示显示
|
||||
|
||||
#define UI_INIT(a) lcd_ui_init(a)
|
||||
#define UI_SHOW_WINDOW(...)
|
||||
#define UI_HIDE_WINDOW(...)
|
||||
#define UI_GET_WINDOW_ID() (0)
|
||||
#define UI_HIDE_CURR_WINDOW()
|
||||
#define UI_SHOW_MENU(...)
|
||||
#define UI_MSG_POST(...)
|
||||
#define UI_REFLASH_WINDOW(a)
|
||||
#define UI_KEY_MSG_POST(a)
|
||||
|
||||
#else
|
||||
|
||||
#define UI_INIT(a) lcd_ui_init(a)
|
||||
#define UI_SHOW_WINDOW(a) ui_show_main(a)
|
||||
#define UI_HIDE_WINDOW(a) ui_hide_main(a)
|
||||
#define UI_HIDE_CURR_WINDOW() ui_hide_curr_main()
|
||||
#define UI_GET_WINDOW_ID() ui_get_current_window_id()
|
||||
#define UI_MSG_POST ui_server_msg_post
|
||||
#define UI_SHOW_MENU(...)
|
||||
#define UI_GET_CURR_MENU()
|
||||
#define UI_REFLASH_WINDOW(a)
|
||||
#define UI_KEY_MSG_POST(a) ui_key_msg_post
|
||||
|
||||
|
||||
#endif//if(CONFIG_UI_STYLE == STYLE_JL_LED7)
|
||||
|
||||
#else
|
||||
|
||||
//common api lcd屏和led7 通用api
|
||||
#define UI_INIT(...)
|
||||
#define UI_SHOW_WINDOW(...)
|
||||
#define UI_HIDE_WINDOW(...)
|
||||
#define UI_GET_WINDOW_ID()
|
||||
#define UI_HIDE_CURR_WINDOW()
|
||||
#define UI_SHOW_MENU(...)
|
||||
#define UI_MSG_POST(...)
|
||||
#define UI_REFLASH_WINDOW(a)
|
||||
#define UI_KEY_MSG_POST(...)
|
||||
#endif /* #if TCFG_UI_ENABLE */
|
||||
|
||||
#endif
|
||||
15
apps/earphone/include/ui/ui_common.h
Normal file
15
apps/earphone/include/ui/ui_common.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef _UI_COMMON_H_
|
||||
#define _UI_COMMON_H_
|
||||
|
||||
#include "typedef.h"
|
||||
/* =================== 十进制数值(1位)转ASCII值 =================== */
|
||||
void itoa1(u8 i, u8 *buf);
|
||||
/* =================== 十进制数值(2位)转ASCII值 =================== */
|
||||
void itoa2(u8 i, u8 *buf);
|
||||
/* =================== 十进制数值(3位)转ASCII值 =================== */
|
||||
void itoa3(u16 i, u8 *buf);
|
||||
/* =================== 十进制数值(4位)转ASCII值 =================== */
|
||||
void itoa4(u16 i, u8 *buf);
|
||||
|
||||
|
||||
#endif
|
||||
72
apps/earphone/include/ui/ui_style.h
Normal file
72
apps/earphone/include/ui/ui_style.h
Normal file
@ -0,0 +1,72 @@
|
||||
#ifndef UI_STYLE_H
|
||||
#define UI_STYLE_H
|
||||
|
||||
#include "ui/style_led7.h"//led7
|
||||
|
||||
|
||||
|
||||
#if(CONFIG_UI_STYLE == STYLE_JL_WTACH)
|
||||
#include "ui/style_jl01.h"//彩屏//
|
||||
#define ID_WINDOW_MAIN PAGE_3
|
||||
#define ID_WINDOW_BT PAGE_0
|
||||
#define ID_WINDOW_MUSIC PAGE_1
|
||||
#define ID_WINDOW_LINEIN PAGE_1
|
||||
// #define ID_WINDOW_FM PAGE_2
|
||||
#define ID_WINDOW_CLOCK PAGE_0
|
||||
// #define ID_WINDOW_BT_MENU PAGE_3
|
||||
#define ID_WINDOW_POWER_ON PAGE_4
|
||||
#define ID_WINDOW_POWER_OFF PAGE_5
|
||||
#define CONFIG_UI_STYLE_JL_ENABLE
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if(CONFIG_UI_STYLE == STYLE_JL_SOUNDBOX)
|
||||
#include "ui/style_jl02.h"//点阵//
|
||||
#define ID_WINDOW_MAIN PAGE_0
|
||||
#define ID_WINDOW_BT PAGE_1
|
||||
#define ID_WINDOW_FM PAGE_2
|
||||
#define ID_WINDOW_CLOCK PAGE_3
|
||||
#define ID_WINDOW_MUSIC PAGE_4
|
||||
#define ID_WINDOW_LINEIN PAGE_9
|
||||
#define ID_WINDOW_POWER_ON PAGE_5
|
||||
#define ID_WINDOW_POWER_OFF PAGE_6
|
||||
#define ID_WINDOW_SYS PAGE_7
|
||||
#define ID_WINDOW_PC PAGE_8
|
||||
#define ID_WINDOW_IDLE (-1)
|
||||
#define ID_WINDOW_REC PAGE_10
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if(CONFIG_UI_STYLE == STYLE_JL_LED7)//led7 显示
|
||||
#define ID_WINDOW_BT UI_BT_MENU_MAIN
|
||||
#define ID_WINDOW_FM UI_FM_MENU_MAIN
|
||||
#define ID_WINDOW_CLOCK UI_RTC_MENU_MAIN
|
||||
#define ID_WINDOW_MUSIC UI_MUSIC_MENU_MAIN
|
||||
#define ID_WINDOW_LINEIN UI_AUX_MENU_MAIN
|
||||
#define ID_WINDOW_PC UI_PC_MENU_MAIN
|
||||
#define ID_WINDOW_REC UI_RECORD_MENU_MAIN
|
||||
#define ID_WINDOW_POWER_ON UI_IDLE_MENU_MAIN
|
||||
#define ID_WINDOW_POWER_OFF UI_IDLE_MENU_MAIN
|
||||
#define ID_WINDOW_SPDIF UI_IDLE_MENU_MAIN
|
||||
#define ID_WINDOW_IDLE UI_IDLE_MENU_MAIN
|
||||
#endif
|
||||
|
||||
#if(CONFIG_UI_STYLE == STYLE_UI_SIMPLE)//lcd 去架构
|
||||
#define ID_WINDOW_BT (0)
|
||||
#define ID_WINDOW_FM (0)
|
||||
#define ID_WINDOW_CLOCK (0)
|
||||
#define ID_WINDOW_MUSIC (0)
|
||||
#define ID_WINDOW_LINEIN (0)
|
||||
#define ID_WINDOW_PC (0)
|
||||
#define ID_WINDOW_REC (0)
|
||||
#define ID_WINDOW_POWER_ON (0)
|
||||
#define ID_WINDOW_POWER_OFF (0)
|
||||
#define ID_WINDOW_SPDIF (0)
|
||||
#define ID_WINDOW_IDLE (0)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
39
apps/earphone/include/ui_manage.h
Normal file
39
apps/earphone/include/ui_manage.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef __UI_MANAGE_H_
|
||||
#define __UI_MANAGE_H_
|
||||
|
||||
#include "typedef.h"
|
||||
|
||||
typedef enum {
|
||||
STATUS_NULL = 0,
|
||||
STATUS_POWERON,
|
||||
STATUS_POWEROFF,
|
||||
STATUS_POWERON_LOWPOWER,
|
||||
STATUS_BT_INIT_OK,
|
||||
STATUS_BT_CONN,
|
||||
STATUS_BT_SLAVE_CONN_MASTER,
|
||||
STATUS_BT_MASTER_CONN_ONE,
|
||||
STATUS_BT_DISCONN,
|
||||
STATUS_BT_TWS_CONN,
|
||||
STATUS_BT_TWS_DISCONN,
|
||||
STATUS_PHONE_INCOME,
|
||||
STATUS_PHONE_OUT,
|
||||
STATUS_PHONE_ACTIV,
|
||||
STATUS_CHARGE_START,
|
||||
STATUS_CHARGE_FULL,
|
||||
STATUS_CHARGE_CLOSE,
|
||||
STATUS_CHARGE_ERR,
|
||||
STATUS_LOWPOWER,
|
||||
STATUS_CHARGE_LDO5V_OFF,
|
||||
STATUS_EXIT_LOWPOWER,
|
||||
STATUS_NORMAL_POWER,
|
||||
STATUS_POWER_NULL,
|
||||
} UI_STATUS;
|
||||
|
||||
|
||||
int ui_manage_init(void);
|
||||
void ui_update_status(u8 status);
|
||||
u8 get_ui_busy_status();
|
||||
void led_module_enter_sniff_mode();
|
||||
void led_module_exit_sniff_mode();
|
||||
|
||||
#endif
|
||||
68
apps/earphone/include/user_cfg_id.h
Normal file
68
apps/earphone/include/user_cfg_id.h
Normal file
@ -0,0 +1,68 @@
|
||||
#ifndef _USER_CFG_ID_H_
|
||||
#define _USER_CFG_ID_H_
|
||||
|
||||
//=================================================================================//
|
||||
// 与APP CASE相关配置项[1 ~ 60] //
|
||||
//=================================================================================//
|
||||
|
||||
#define CFG_EARTCH_ENABLE_ID 1
|
||||
#define CFG_PBG_MODE_INFO 2
|
||||
#define CFG_CHARGESTORE_TWS_CHANNEL 3
|
||||
#define CFG_SYS_VOL 4
|
||||
|
||||
#define CFG_MIC_ARRAY_DIFF_CMP_VALUE 5//麦克风阵列算法前补偿值
|
||||
#define CFG_MIC_ARRAY_TRIM_EN 6//麦克风补偿使能
|
||||
#define CFG_DMS_MALFUNC_STATE_ID 7//dms故障麦克风检测默认使用哪个mic的参数id
|
||||
#define CFG_MIC_TARGET_DIFF_CMP 8//目标MIC补偿值
|
||||
|
||||
|
||||
|
||||
#define CFG_DHA_FITTING_ID 26 //辅听验配保存参数的id
|
||||
#define CFG_REMOTE_DN_00 27
|
||||
|
||||
#define CFG_IMU_GYRO_OFFEST_ID 28 //空间音频imu陀螺仪偏置
|
||||
#define CFG_IMU_ACC_OFFEST_ID 29 //空间音频imu加速度偏置
|
||||
|
||||
#define VM_LP_TOUCH_KEY0_ALOG_CFG 30
|
||||
#define VM_LP_TOUCH_KEY1_ALOG_CFG 31
|
||||
#define VM_LP_TOUCH_KEY2_ALOG_CFG 32
|
||||
#define VM_LP_TOUCH_KEY3_ALOG_CFG 33
|
||||
#define VM_LP_TOUCH_KEY4_ALOG_CFG 34
|
||||
|
||||
#define VM_UPDATE_FLAG 35
|
||||
#define VM_DMA_RAND 36
|
||||
#define VM_DMA_RAND 37
|
||||
#define VM_GMA_ALI_PARA 38
|
||||
#define CFG_BCS_MAP_WEIGHT 39
|
||||
#define CFG_RCSP_ADV_HIGH_LOW_VOL 40
|
||||
#define CFG_RCSP_ADV_EQ_MODE_SETTING 41
|
||||
#define CFG_RCSP_ADV_EQ_DATA_SETTING 42
|
||||
#define ADV_SEQ_RAND 43
|
||||
#define CFG_RCSP_ADV_TIME_STAMP 44
|
||||
#define CFG_RCSP_ADV_WORK_SETTING 45
|
||||
#define CFG_RCSP_ADV_MIC_SETTING 46
|
||||
#define CFG_RCSP_ADV_LED_SETTING 47
|
||||
#define CFG_RCSP_ADV_KEY_SETTING 48
|
||||
|
||||
#define CFG_USB_BREAKPOINT0 49
|
||||
#define CFG_SD0_BREAKPOINT0 50
|
||||
#define CFG_SD1_BREAKPOINT0 51
|
||||
|
||||
#define CFG_HAVE_MASS_STORAGE 52
|
||||
#define CFG_MUSIC_MODE 53
|
||||
|
||||
#define LP_KEY_EARTCH_TRIM_VALUE 54
|
||||
|
||||
#define CFG_RCSP_ADV_ANC_VOICE 55
|
||||
#define CFG_RCSP_ADV_ANC_VOICE_MODE 56
|
||||
#define CFG_RCSP_ADV_ANC_VOICE_KEY 57
|
||||
|
||||
|
||||
#define CFG_SPK_EQ_SEG_SAVE 58
|
||||
#define CFG_SPK_EQ_GLOBAL_GAIN_SAVE 59
|
||||
|
||||
#define CFG_ANC_ADAPTIVE_DATA_ID 60//保存ANC自适应参数id
|
||||
|
||||
#define CFG_REMOTE_DN_00 63
|
||||
|
||||
#endif /* #ifndef _USER_CFG_ID_H_ */
|
||||
9
apps/earphone/include/vol_sync.h
Normal file
9
apps/earphone/include/vol_sync.h
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef __VOL_SYNC_H__
|
||||
#define __VOL_SYNC_H__
|
||||
|
||||
void vol_sys_tab_init(void);
|
||||
void set_music_device_volume(int volume);
|
||||
int phone_get_device_vol(void);
|
||||
void opid_play_vol_sync_fun(u8 *vol, u8 mode);
|
||||
|
||||
#endif
|
||||
104
apps/earphone/include/wireless_mic/bt_edr_fun.h
Normal file
104
apps/earphone/include/wireless_mic/bt_edr_fun.h
Normal file
@ -0,0 +1,104 @@
|
||||
#ifndef __BT_EDR_FUN_H__
|
||||
#define __BT_EDR_FUN_H__
|
||||
|
||||
#include "adapter_odev_bt.h"
|
||||
#include "app_main.h"
|
||||
|
||||
/*配置通话时前面丢掉的数据包包数*/
|
||||
#define ESCO_DUMP_PACKET_ADJUST 1 /*配置使能*/
|
||||
#define ESCO_DUMP_PACKET_DEFAULT 0
|
||||
#define ESCO_DUMP_PACKET_CALL 120 /*0~0xFF*/
|
||||
|
||||
#if(TCFG_UI_ENABLE && TCFG_SPI_LCD_ENABLE)//点阵屏断开蓝牙连接时可选择不跳回蓝牙模式
|
||||
#define BACKGROUND_GOBACK 0 //后台链接是否跳回蓝牙 1:跳回
|
||||
#else
|
||||
#define BACKGROUND_GOBACK 1
|
||||
#endif
|
||||
|
||||
#define TIMEOUT_CONN_TIME 60 //超时断开之后回连的时间s
|
||||
#define POWERON_AUTO_CONN_TIME 12 //开机去回连的时间
|
||||
|
||||
#define PHONE_CALL_FORCE_POWEROFF 0 //通话时候强制关机
|
||||
|
||||
#define SBC_FILTER_TIME_MS 1000 //后台音频过滤时间ms
|
||||
#define SBC_ZERO_TIME_MS 500 //静音多长时间认为已经退出
|
||||
#define NO_SBC_TIME_MS 200 //无音频时间ms
|
||||
|
||||
#define SNIFF_CNT_TIME 5/////<空闲5S之后进入sniff模式
|
||||
#define SNIFF_MAX_INTERVALSLOT 800
|
||||
#define SNIFF_MIN_INTERVALSLOT 100
|
||||
#define SNIFF_ATTEMPT_SLOT 4
|
||||
#define SNIFF_TIMEOUT_SLOT 1
|
||||
|
||||
enum {
|
||||
BT_AS_IDEV = 0,
|
||||
BT_AS_ODEV,
|
||||
};
|
||||
|
||||
void set_bt_dev_role(u8 role);
|
||||
|
||||
struct app_bt_opr {
|
||||
u8 init_ok : 1; // 1-初始化完成
|
||||
u8 call_flag : 1; // 1-由于蓝牙打电话命令切回蓝牙模式
|
||||
u8 exit_flag : 1; // 1-可以退出蓝牙标志
|
||||
u8 exiting : 1; // 1-正在退出蓝牙模式
|
||||
u8 wait_exit : 1; // 1-等退出蓝牙模式
|
||||
u8 a2dp_decoder_type: 3; // 从后台返回时记录解码格式用
|
||||
u8 cmd_flag ; // 1-由于蓝牙命令切回蓝牙模式
|
||||
u8 init_start ; //蓝牙协议栈初始化开始 ,但未初始化不一定已经完成,要判断initok完成的标志
|
||||
u8 ignore_discon_tone; // 1-退出蓝牙模式, 不响应discon提示音
|
||||
u8 sbc_packet_valid_cnt; // 有效sbc包计数
|
||||
u8 sbc_packet_valid_cnt_max;// 最大有效sbc包计数
|
||||
u8 sbc_packet_lose_cnt; // sbc丢失的包数
|
||||
u8 sbc_packet_step; // 0-正常;1-退出中;2-后台
|
||||
u32 tws_local_back_role : 4;
|
||||
u32 tws_local_to_bt_mode : 1;
|
||||
u32 a2dp_start_flag : 1;
|
||||
u32 bt_back_flag : 4;
|
||||
u32 replay_tone_flag : 1;
|
||||
u8 esco_dump_packet;
|
||||
u8 last_connecting_addr[6];
|
||||
|
||||
u32 sbc_packet_filter_to; // 过滤超时
|
||||
u32 no_sbc_packet_to; // 无声超时
|
||||
u32 init_ok_time; // 初始化完成时间
|
||||
u32 auto_exit_limit_time; // 自动退出时间限制
|
||||
u8 bt_direct_init;
|
||||
u8 bt_close_bredr;
|
||||
u8 hid_mode;
|
||||
u8 force_poweroff;
|
||||
u8 call_back_flag; //BIT(0):hfp_status BIT(1):esco_status
|
||||
|
||||
int timer;
|
||||
int tmr_cnt;
|
||||
int back_mode_systime;
|
||||
int max_tone_timer_hdl;
|
||||
int exit_sniff_timer ;
|
||||
|
||||
u32 sco_info;
|
||||
};
|
||||
extern struct app_bt_opr app_bt_hdl;
|
||||
extern BT_USER_PRIV_VAR bt_user_priv_var;
|
||||
|
||||
void bt_init();
|
||||
void bt_close(void);
|
||||
|
||||
void sys_auto_shut_down_enable(void);
|
||||
void sys_auto_shut_down_disable(void);
|
||||
|
||||
u8 get_bt_init_status();
|
||||
void bt_set_led_status(u8 status);
|
||||
void sys_auto_sniff_controle(u8 enable, u8 *addr);
|
||||
|
||||
void bt_wait_phone_connect_control(u8 enable);
|
||||
int bt_wait_connect_and_phone_connect_switch(void *p);
|
||||
|
||||
u8 is_call_now();
|
||||
|
||||
//bt status
|
||||
int bt_connction_status_event_handler(struct bt_event *bt, struct _odev_bt *odev_bt);
|
||||
|
||||
//hci event
|
||||
int bt_hci_event_handler(struct bt_event *bt, struct _odev_bt *odev_bt);
|
||||
|
||||
#endif //__BT_EDR_FUN_H__
|
||||
12
apps/earphone/include/wireless_mic/wireless_mic_test.h
Normal file
12
apps/earphone/include/wireless_mic/wireless_mic_test.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef _WIRELESS_MIC_TEST_
|
||||
#define _WIRELESS_MIC_TEST_
|
||||
|
||||
#include "system/includes.h"
|
||||
|
||||
// struct adapter_media {
|
||||
|
||||
// };
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user