123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544 |
- #ifndef _API_BTSTACK_H
- #define _API_BTSTACK_H
- //工作模式
- #define MODE_NORMAL 0 //正常连接模式,关闭DUT测试
- #define MODE_NORMAL_DUT 1 //正常连接模式,使能DUT测试
- #define MODE_FCC_TEST 2 //FCC测试模式,通过串口通信
- #define MODE_BQB_RF_BREDR 3 //BR/EDR DUT测试模式,通过蓝牙通信
- #define MODE_BQB_RF_BLE 4 //BLE DUT测试模式,通过串口通信
- #define MODE_IODM_TEST 5 //IODM测试模式,通过串口通信
- //蓝牙功能
- #define PROF_A2DP 0x0007 //蓝牙音乐功能
- #define PROF_HID 0x0018 //蓝牙键盘功能
- #define PROF_HFP 0x0060 //蓝牙通话功能
- #define PROF_SPP 0x0080 //蓝牙串口功能
- #define PROF_PBAP 0x0100 //蓝牙电话本功能
- #define PROF_HSP 0x0200
- #define PROF_MAP 0x0400 //蓝牙短息功能
- #define PROF_TWS 0x8000 //TWS功能
- #define PROF_AVDTP_SIGNAL 0x0001
- #define PROF_AVDTP_MEDIA 0x0002
- #define PROF_AVCTP 0x0004
- #define PROF_AVDTP (PROF_AVDTP_SIGNAL|PROF_AVDTP_MEDIA)
- //蓝牙特性
- #define HFP_BAT_REPORT 0x01 //是否支持手机电量显示
- #define HFP_3WAY_CALL 0x02 //是否支持三通电话
- #define HFP_INBAND_RING_TONE 0x04 //是否支持IOS来电铃声
- #define HFP_CALL_PRIVATE 0x08 //是否打开强制私密接听
- #define HFP_SIRI_CMD 0x10 //是否打开siri控制命令
- #define HFP_EC_AND_NR 0x20 //是否打开手机端回音和降噪
- #define HFP_RING_NUMBER_EN 0x40 //是否支持来电报号
- #define A2DP_AVRCP_VOL_CTRL 0x01 //是否支持手机音量控制同步
- #define A2DP_RECON_CTRL 0x02 //是否打开A2DP控制键回连
- #define A2DP_AVRCP_PLAY_STATUS 0x04 //是否支持手机播放状态同步,可加快播放暂停响应速度,蓝牙后台建议打开
- #define A2DP_RESTORE_PLAYING 0x08 //是否支持掉线回连后恢复播放
- #define A2DP_AVDTP_DELAY_REPORT 0x10 //是否支持AVDTP delay report功能
- #define A2DP_IOS_FLAG 0x80 //是否iso系统
- #define HID_CONN_IOS_ONLY 0x01 //是否支持HID只连接IOS系统的功能
- //扩展标志
- #define BT_FLAG0_TWS_SCAN 0x01
- #define BT_FLAG0_CLK_ADVANCE 0x02
- #define BT_FLAG0_TWS_M_RECON 0x04
- #define BT_FLAG0_TWS_FAST_RECON 0x08 //快速版TWS回连
- #define BT_FLAG0_TWS_MENU_PAIR 0x10 //手动控制tws连接
- #define BT_FLAG0_TWS_FAST_PAIR 0x20 //开机TWS不回连直接进入搜索配对
- #define BT_FLAG0_POPUP_3BAT 0x40
- #define BT_FLAG0_NAME_MENU 0x80
- #define BT_TWS_SYNC_TO 50 //BT同步等待,对齐到一个50ms,250ms超时
- //AVRCP消息
- #define AVC_VOLUME_UP 0x41
- #define AVC_VOLUME_DOWN 0x42
- #define AVC_MUTE 0x43
- #define AVC_PLAY 0x44
- #define AVC_STOP 0x45
- #define AVC_PAUSE 0x46
- #define AVC_RECORD 0x47
- #define AVC_REWIND 0x48
- #define AVC_FAST_FORWARD 0x49
- #define AVC_EJECT 0x4a
- #define AVC_FORWARD 0x4b
- #define AVC_BACKWARD 0x4c
- #define AVC_SPEED_DOUBLE 0x4d
- #define AVC_SPEED_HALF 0x4e
- //自定义的USER KEY
- #define TWS_USER_KEY_RING_STOP 0x101
- #define TWS_USER_KEY_ATMOS 0x102
- #define TWS_USER_KEY_DOUYIN_CTRL 0x110 //0x110~0x120, 抖音控制
- #define TWS_USER_KEY_DOUYIN_DOWN 0x110
- #define TWS_USER_KEY_DOUYIN_UP 0x111
- #define TWS_USER_KEY_DOUYIN_PP 0x112
- #define TWS_USER_KEY_DOUYIN_P 0x113
- #if TRY_SYNC_KL_4S_FACTORY_SWITCH
- #define TWS_USER_KEY_SYNC_KL_L 0x114
- #define TWS_USER_KEY_SYNC_KL_R 0x115
- #endif // TRY_SYNC_KL_4S_FACTORY_SWITCH
- #if TRY_TWS_USER_KEY_SWITCH
- #define TWS_USER_KEY_CONNECTED 0x116
- #define TWS_USER_KEY_DISCONNECT 0x117
- #endif // TRY_TWS_USER_KEY_SWITCH
- //TWS FEAT
- #define BT_FEAT_NEGO_TSCO 0x0001
- #define BT_FEAT_NEGO_RING 0x0002
- #define BT_FEAT_NEGO_MSBC 0x0004
- #define BT_FEAT_NEGO_AAC 0x0008
- #define BT_FEAT_NEGO_SW 0x0010
- #define BT_FEAT_NEGO_WARNING 0x0020
- #define BT_FEAT_NEGO_LINK_TICKS 0x0040 //建立snoop link时同步ticks。增加一个feat, 兼容之前旧版本TWS组队。
- #define BT_FEAT_NEGO_TICKS 0x0080
- #define BT_FEAT_NEGO_PUBLIC_ADDR 0x0100 //TWS连接后主耳使用公共地址连接手机
- #define BT_FEAT_NEGO_CHK1 0x0200 //res
- #define BT_FEAT_NEGO_CHK2 0x0400 //res
- #define BT_FEAT_NEGO_CHK3 0x0800 //res
- #define BT_FEAT_NEGO_RECONNECT 0x4000 //是否在发起回连手机
- typedef struct {
- u8 pwrup_connect_times; //单耳(无TWS功能)上电回连手机次数
- u8 sup_to_connect_times; //远距离掉线回连次数
- u8 nor_connect_times; //对耳回连手机次数
- u8 tws_connect_times; //对耳TWS回连次数
- u8 tws_sup_to_connect_times; //TWS远距离掉线回连次数
- u16 profile;
- u8 max_acl_link;
- u8 max_nor_link;
- u8 a2dp_feature;
- u8 hfp_feature;
- u8 vx_set;
- u8 max_nr_link_key;
- u16 scan_timeout;
- u16 supervision_to_dft; //SUPERVISION_TO_DFT
- u8 new_conn_timeout_add;
- u8 res[2];
- u16 dual_mode : 1;
- u16 tws_mode : 1;
- u16 simple_pair_mode : 1;
- u16 scan_ctrl : 1;
- u16 sco_plc_en : 1;
- u16 sco_msbc_en : 1;
- u16 tws_fast_con_en : 1; //TWS快速配对连接
- u16 remote_name_req_en : 1;
- u16 sdp_client_avrcp_en : 1;
- //#if BT_QUICK_TEST_EN
- u16 bt_quick_test : 1;
- //#endif
- } bt_cfg_t;
- extern bt_cfg_t bt_cfg;
- //蓝牙状态
- enum {
- BT_STA_OFF, //蓝牙模块已关闭
- BT_STA_INITING, //初始化中
- BT_STA_IDLE, //蓝牙模块打开,未连接
- BT_STA_SCANNING, //扫描中
- BT_STA_DISCONNECTING, //断开中
- BT_STA_CONNECTING, //连接中
- BT_STA_CONNECTED, //已连接
- BT_STA_PLAYING, //播放
- BT_STA_INCOMING, //来电响铃
- BT_STA_OUTGOING, //正在呼出
- BT_STA_INCALL, //通话中
- };
- //通话状态
- enum {
- BT_CALL_IDLE, //
- BT_CALL_INCOMING, //来电响铃
- BT_CALL_OUTGOING, //正在呼出
- BT_CALL_ACTIVE, //通话中
- BT_CALL_3WAY_CALL, //三通电话或两部手机通话
- };
- //蓝牙通知
- enum {
- BT_NOTICE_INIT_FINISH, //蓝牙初始化完成
- BT_NOTICE_CONNECT_START, //开始回连手机, param[0]=nouse, param[6:1]=bd_addr
- BT_NOTICE_CONNECT_FAIL, //回连手机失败, param[0]=reason, param[6:1]=bd_addr
- BT_NOTICE_DISCONNECT, //蓝牙断开, param[0]=reason, param[6:1]=bd_addr
- BT_NOTICE_LOSTCONNECT, //蓝牙连接丢失, param[0]=nouse, param[6:1]=bd_addr
- BT_NOTICE_CONNECTED, //蓝牙连接成功, param[0]=feat,index, param[6:1]=bd_addr
- BT_NOTICE_CONNECT_STATUS,
- BT_NOTICE_DISCONNECT_STATUS,
- BT_NOTICE_RECON_FINISH, //蓝牙回连结束
- BT_NOTICE_SCO_SETUP,
- BT_NOTICE_SCO_KILL,
- BT_NOTICE_INCOMING, //来电
- BT_NOTICE_RING, //来电响铃
- BT_NOTICE_OUTGOING, //去电
- BT_NOTICE_CALL, //建立通话
- BT_NOTICE_SET_SPK_GAIN, //设置通话音量
- BT_NOTICE_MUSIC_PLAY, //蓝牙音乐开始播放
- BT_NOTICE_MUSIC_STOP, //蓝牙音乐停止播放
- BT_NOTICE_MUSIC_CHANGE_VOL, //改变蓝牙音乐音量
- BT_NOTICE_MUSIC_SET_VOL, //设置蓝牙音乐音量
- BT_NOTICE_HID_CONN_EVT, //HID服务连接事件
- BT_NOTICE_SET_QTEST_CH,
- BT_NOTICE_FIRST_CONNECT, //第一次连接手机, param[5:0]=bd_addr
- BT_NOTICE_A2DP_VOL_CTRL,
- BT_NOTICE_TWS_SEARCH_TIMEOUT = 0x40, //搜索TWS超时
- BT_NOTICE_TWS_CONNECT_START, //开始回连TWS, param[0]=nouse, param[6:1]=bd_addr
- BT_NOTICE_TWS_CONNECT_FAIL, //TWS回连失败, param[0]=reason, param[6:1]=bd_addr
- BT_NOTICE_TWS_DISCONNECT, //TWS牙断开, param[0]=reason, param[6:1]=bd_addr
- BT_NOTICE_TWS_LOSTCONNECT, //TWS连接丢失, param[0]=nouse, param[6:1]=bd_addr
- BT_NOTICE_TWS_CONNECTED, //TWS连接成功, param[0]=feat,index, param[6:1]=bd_addr
- BT_NOTICE_TWS_SET_VOL, //设置TWS音乐音量
- BT_NOTICE_TWS_HID_SHUTTER, //远端TWS拍照键
- BT_NOTICE_TWS_INFO, //TWS同步信息
- BT_NOTICE_TWS_USER_KEY, //TWS自定义按键
- BT_NOTICE_TWS_SEARCH_STATUS,
- BT_NOTICE_TWS_TO_STATUS,
- BT_NOTICE_TWS_GET_MAP_TIME,
- BT_NOTICE_TWS_SET_OPERATION,
- BT_NOTICE_TWS_RES_PLAY,
- BT_NOTICE_TWS_PLAY_STA_SYNC,
- BT_NOTICE_TWS_EQ_SYNC,
- BT_NOTICE_TWS_RES7,
- };
- //控制消息
- enum bt_msg_t {
- BT_MSG_OFF = 0, //关闭蓝牙
- BT_MSG_ON, //打开蓝牙
- BT_MSG_RES0,
- BT_MSG_RES1,
- BT_MSG_CONNECT, //连接蓝牙
- BT_MSG_DISCONNECT, //断开蓝牙
- BT_MSG_PLAY_PAUSE, //切换播放、暂停
- BT_MSG_VOL_CHANGE, //音量调整
- BT_MSG_CALL_REDIAL, //回拨电话(最后一次通话)
- BT_MSG_CALL_ANSWER_INCOM, //接听来电
- BT_MSG_CALL_TERMINATE, //挂断通话或来电
- BT_MSG_CALL_SWAP, //切换三通电话
- BT_MSG_HFP_REPORT_BAT, //报告电池电量
- BT_MSG_HFP_SPK_GAIN, //设置通话扬声器音量
- BT_MSG_HFP_MIC_GAIN, //设置通话麦克风音量
- BT_MSG_HFP_PRIVATE_SWITCH, //切换私密通话
- BT_MSG_HID_CONNECT, //连接HID
- BT_MSG_HID_DISCONNECT, //断开HID
- BT_MSG_AUDIO_BYPASS, //忽略蓝牙SBC/SCO AUDIO
- BT_MSG_AUDIO_ENABLE, //使能蓝牙SBC/SCO AUDIO
- BT_MSG_LOW_LATENCY_EN,
- BT_MSG_LOW_LATENCY_DIS,
- BT_MSG_TWS_DISCONNECT, //断开TWS连接
- BT_MSG_TWS_CONNECT, //建立TWS连接
- BT_MSG_TWS_SEARCH_SLAVE, //搜索并建立TWS连接
- BT_MSG_TWS_NOTICE_RING,
- BT_MSG_SWITCH_SIRI,
- BT_MSG_EAR_STA_CHANGE,
- BT_MSG_NR_STA_CHANGE,
- BT_MSG_TWS_NOTICE_INCOME_NUMBER,
- BT_MSG_HFP_AT_CMD, //回拨电话(从hfp_get_outgoing_number获取号码)
- BT_MSG_SIRI_ON,
- BT_MSG_CALL_ANSWER_INCOM_REJ_OTHER, //接听来电,三通时挂断当前通话
- BT_MSG_CONNECT_ADDRESS,
- BT_MSG_FCC_TEST_FUNC,
- BT_MSG_PLAY_PRIVATE_SWITCH, //切换手机播放/蓝牙播放
- BT_MSG_TWS_SYNC_INFO,
- BT_MSG_NOR_CONNECT,
- BT_MSG_NOR_DISCONNECT,
- BT_MSG_2ACL_PALY_SWITCH, //一拖二播放切换
- BT_MSG_TWS_SET_BYPASS,
- BT_MSG_RESET_BT_NAME,
- BT_MSG_TWS_SWITCH, //主从切换
- BT_MSG_CALL_REDIAL_NUMBER,
- BT_MSG_MAX,
- BT_MSG_HID_KEY = 0x30, //HID按键
- BT_MSG_HID_CONSUMER, //CONSUMER按键
- BT_MSG_TWS_USER_KEY, //TWS用户自定义消息
- BT_MSG_HID_TOUCH_SCREEN, //触摸屏
- BT_MSG_PBAP,
- BT_MSG_BAT_HOUSE_CTRL,
- BT_MSG_HSP_SEND,
- BT_MSG_SYNC_INFO, //主副耳同步一些状态消息
- BT_MSG_TWS_SET_SCAN,
- BT_MSG_SET_SCAN,
- BT_MSG_START_WORK,
- BT_MSG_ATT_VA,
- BT_MSG_STORE_A2DP_VOLUME, //保存连接的同步音量
- BT_MSG_MAP,
- BT_MSG_PARAM_MAX,
- BT_MSG_PLAY = AVC_PLAY, //播放
- BT_MSG_PAUSE = AVC_PAUSE, //暂停
- BT_MSG_STOP = AVC_STOP, //停止
- BT_MSG_PREV = AVC_BACKWARD, //上一曲
- BT_MSG_NEXT = AVC_FORWARD, //下一曲
- BT_MSG_REWIND = AVC_REWIND, //开始快退
- BT_MSG_FAST_FORWARD = AVC_FAST_FORWARD, //开始快进
- BT_MSG_REWIND_END = AVC_REWIND|0x80, //结束快退
- BT_MSG_FAST_FORWARD_END = AVC_FAST_FORWARD|0x80, //结束快进
- BT_MSG_SPEED_DOUBLE = AVC_SPEED_DOUBLE|0x80, //快播*2
- BT_MSG_SPEED_HALF = AVC_SPEED_HALF|0x80, //慢放1/2
- BT_MSG_NO = 0xff,
- };
- enum sync_info_enum {
- TWS_SYNC_INFO_LEDCNT, //同步 led cnt
- TWS_SYNC_INFO_EQ,
- TWS_SYNC_TWS_RES0 = 0x40, //0x40~0x7f for tws_res
- TWS_SYNC_TWS_RES_MAX = 0x7f,
- TWS_SYNC_RUN = 0x80, //同步运行
- };
- //control
- void bt_init(void); //初始化蓝牙变量
- int bt_setup(void); //打开蓝牙模块
- void bt_off(void); //关闭蓝牙模块
- void bt_wakeup(void); //唤醒蓝牙模块
- void bt_start_work(uint8_t opcode, uint8_t scan_en); //蓝牙开始工作,opcode: 0=回连, 1=不回连, 2=tws不回连,直接自动配对
- void bt_send_msg(uint msg); //蓝牙控制消息,参数详见bt_msg_t
- void bt_audio_bypass(void); //蓝牙SBC/SCO通路关闭
- void bt_audio_enable(void); //蓝牙SBC/SCO通路使能
- void bt_connect_address(void); //蓝牙根据地址链接 需要把 uint8_t bt_get_connect_addr(uint8_t *bd_addr);函数打开
- void bt_set_sco_far_delay(void *buf, uint size, uint delay);
- void bt_set_scan(uint8_t scan_en); //打开/关闭可被发现和可被连接, bit0=可被发现, bit1=可被连接
- void bt_connect(void); //蓝牙设备回连
- void bt_disconnect(void); //蓝牙设备断开
- void bt_hid_connect(void); //蓝牙HID服务回连
- void bt_hid_disconnect(void); //蓝牙HID服务断开
- int bt_hid_is_connected(void);
- bool bt_hid_is_ready_to_discon(void);
- void ble_popup_ctrl(uint opcode);
- bool sco_is_connected(void);
- bool bt_sco_is_msbc(void);
- //status
- uint bt_get_disp_status(void); //获取蓝牙的当前显示状态, V060
- uint bt_get_status(void); //获取蓝牙的当前状态
- uint8_t bt_get_scan(void); //判断当前可被连接可被扫描状态
- uint bt_get_call_indicate(void); //获取通话的当前状态
- uint bt_get_siri_status(void); //获取SIRI当前状态, 0=SIRI已退出, 1=SIRI已唤出
- bool bt_is_calling(void); //判断是否正在通话
- bool bt_is_playing(void); //判断是否正在播放
- bool bt_is_ring(void); //判断是否正在响铃
- bool bt_is_testmode(void); //判断当前蓝牙是否处于测试模式
- bool bt_is_sleep(void); //判断蓝牙是否进入休眠状态
- bool bt_is_connected(void); //判断蓝牙是否已连接(TWS副耳被连接,或主耳与手机已连接)
- bool bt_is_ios_device(void); //判断当前播放的是否ios设备
- uint32_t bt_sleep_proc(void);
- void bt_enter_sleep(void);
- void bt_exit_sleep(void);
- bool bt_is_silence(void);
- bool bt_cur_dev_is_silence(void);
- void bt_other_dev_silence_reset(void);
- bool bt_sync_tick(void); //根据蓝牙时钟同步到50ms,误差为5ms
- //tws
- bool bt_tws_is_connected(void); //tws设备是否已连接
- bool bt_tws_is_slave(void); //tws主从判断,注意要先判断tws是否已连接
- uint8_t bt_tws_get_scan(void); //tws是否已打开可被搜索与连接
- void bt_tws_set_scan(uint8_t scan_en); //打开/关闭tws可被搜索与连接, bit0=可被发现, bit1=可被连接
- void bt_tws_disconnect(void); //断开tws设备
- void bt_tws_connect(void); //回连tws设备
- void bt_tws_search_slave(void); //搜索tws设备,并建立连接
- uint bt_tws_get_link_info(uint8_t *bd_addr); //获取tws配对信息,可作为是否配对过TWS的判断
- bool bt_tws_user_key(uint keycode); //发送tws自定义按键, 10bit有效
- bool bt_tws_sync_ring_tone(void); //同步等tws来电号码
- void bt_tws_clr_ring_tone(void); //
- bool bt_tws_need_ring_sync(void);
- void bt_tws_switch(void); //主从切换,例如通话时切主副MIC
- bool tws_switch_is_need(void); //查看是否需要切换
- void bt_tws_sync(uint sync_info); //同步状态信息 sync_info_enum
- void bt_tws_sync_run(uint ntick); //同步到ntick * 50ms
- bool bt_nor_is_connected(void); //是否已连接手机
- void bt_nor_connect(void); //回连手机
- void bt_nor_disconnect(void); //断开手机
- bool bt_nor_get_link_info(uint8_t *bd_addr); //获取手机配对信息,bd_addr=NULL时仅查询是否存在回连信息
- uint8_t bt_connect_for_the_first_time(uint8_t *bd_addr);//检查给定的蓝牙地址是否为第一次连接。0:first_time, 1:not_first_time, 255:no record for given bd_addr
- bool bt_nor_get_link_info_addr(uint8_t *bd_addr, uint8_t order); //获取第n个手机配对信息,bd_addr=NULL时仅查询是否存在回连信息
- bool bt_tws_is_auto_switch(void);
- bool bt_tws_get_auto_channel(void);
- bool btstack_tws_atmos_led(void);
- bool btstack_tws_qtest_channel(uint8_t ch);
- void lm_set_name_buf(const char *bt_name, uint max_len);
- bool bt_tws_get_link_rssi(int8_t *buffer, bool left_channel);
- void bt_clr_all_link_info(u8 flag); //删除全部配对信息
- void bt_nor_clr_link_info(u8 flag); //删除手机配对信息
- void bt_tws_clr_link_info(u8 flag); //删除tws配对信息
- enum {
- TWS_RES_NUM_0,
- TWS_RES_NUM_1,
- TWS_RES_NUM_2,
- TWS_RES_NUM_3,
- TWS_RES_NUM_4,
- TWS_RES_NUM_5,
- TWS_RES_NUM_6,
- TWS_RES_NUM_7,
- TWS_RES_NUM_8,
- TWS_RES_NUM_9,
- TWS_RES_RING,
- TWS_RES_LANGUAGE,
- TWS_RES_LOW_BATTERY,
- TWS_RES_NOR_CONNECTED,
- TWS_RES_CONNECTED,
- TWS_RES_DISCONNECT,
- TWS_RES_PAIRING,
- TWS_RES_CALL_HANGUP,
- TWS_RES_CALL_REJECT,
- TWS_RES_REDIALING,
- TWS_RES_MAX_VOL,
- TWS_RES_MIN_VOL,
- TWS_RES_MUSIC_MODE,
- TWS_RES_GAME_MODE,
- TWS_RES_NR_DISABLE,
- TWS_RES_ANC,
- TWS_RES_TRANSPARENCY,
- TWS_RES_TONE,
- TWS_RES_WAV_TEST,
- #if TRY_WARNING_SWITCH
- TWS_RES_SIRI,
- #endif // TRY_WARNING_SWITCH
- TWS_RES_MAX,
- //下面MSG不打断当前播放的提示音
- TWS_RES_RING_STOP = 50,
- TWS_BRE_LED_START,
- TWS_BRE_LED_START1,
- TWS_BRE_LED_STOP,
- TWS_ATMOS_LED_ON,
- TWS_ATMOS_LED_OFF,
- #if TRY_SYNC_KL_4S_FACTORY_SWITCH
- TWS_SYNC_FACTORY,
- #endif // TRY_SYNC_KL_4S_FACTORY_SWITCH
- #if TRY_KSE_SYNC_DUT_SWITCH
- TWS_SYNC_DUT,
- #endif // TRY_KSE_SYNC_DUT_SWITCH
- //最大只能63
- };
- void tws_res_init(void); //api
- void tws_res_play(uint8_t index); //api
- void tws_mp3_res_play_kick(u32 addr, u32 len); //tws_res开始播放
- u32 tws_res_sync(u32 limit); //tws_res同步
- void tws_res_add(u8 index, u32 ticks); //tws_res加入列表
- void tws_res_proc(void); //tws_res流程处理
- bool tws_res_play_sync(u32 flag);
- void tws_res_done(void);
- void tws_res_reset(void);
- u32 tws_res_get_ticks(u8 index);
- bool tws_res_hssi_sync_wait(isr_t isr_callback);
- bool tws_res_is_busy(void);
- //蓝牙连接
- #define bt_scan_enable() bt_set_scan(0x03) //打开扫描
- #define bt_scan_disable() bt_set_scan(0x00)
- #define bt_fcc_test_start() bt_send_msg(BT_MSG_FCC_TEST_FUNC) //fcc kick
- //蓝牙音乐
- #define bt_music_play() bt_send_msg(BT_MSG_PLAY) //播放
- #define bt_music_pause() bt_send_msg(BT_MSG_PAUSE) //暂停
- #define bt_music_play_pause() bt_send_msg(BT_MSG_PLAY_PAUSE) //切换播放/暂停
- #define bt_music_stop() bt_send_msg(BT_MSG_STOP) //停止
- #define bt_music_prev() bt_send_msg(BT_MSG_PREV) //上一曲
- #define bt_music_next() bt_send_msg(BT_MSG_NEXT) //下一曲
- #define bt_music_rewind() bt_send_msg(BT_MSG_REWIND) //开始快退
- #define bt_music_rewind_end() bt_send_msg(BT_MSG_REWIND_END) //结束快退
- #define bt_music_fast_forward() bt_send_msg(BT_MSG_FAST_FORWARD) //开始快进
- #define bt_music_fast_forward_end() bt_send_msg(BT_MSG_FAST_FORWARD_END)//结束快进
- #define bt_low_latency_enble() bt_send_msg(BT_MSG_LOW_LATENCY_EN) //蓝牙使能低延时
- #define bt_low_latency_disable() bt_send_msg(BT_MSG_LOW_LATENCY_DIS) //蓝牙关闭低延时
- #define bt_music_play_switch() bt_send_msg(BT_MSG_2ACL_PALY_SWITCH)
- #define bt_music_play_private_switch() bt_send_msg(BT_MSG_PLAY_PRIVATE_SWITCH) //切换手机播放/蓝牙播放音乐
- bool bt_is_low_latency(void);
- //蓝牙通话
- #define bt_call_redial_last_number() bt_send_msg(BT_MSG_CALL_REDIAL) //电话回拨(最后一次通话)
- #define bt_call_answer_incoming() bt_send_msg(BT_MSG_CALL_ANSWER_INCOM) //接听电话,三通时挂起当前通话
- #define bt_call_answer_incom_rej_other() bt_send_msg(BT_MSG_CALL_ANSWER_INCOM_REJ_OTHER) //接听电话,三通时挂断当前通话
- #define bt_call_terminate() bt_send_msg(BT_MSG_CALL_TERMINATE) //挂断电话
- #define bt_call_swap() bt_send_msg(BT_MSG_CALL_SWAP) //切换三通电话
- #define bt_call_private_switch() bt_send_msg(BT_MSG_HFP_PRIVATE_SWITCH) //切换三通电话
- #define bt_siri_switch() bt_send_msg(BT_MSG_SWITCH_SIRI) //开关SIRI, android需要在语音助手中打开“蓝牙耳机按键启动”, ios需要打开siri功能
- #define bt_siri_on() bt_send_msg(BT_MSG_SIRI_ON) //打开语音助手
- #define bt_ctl_ear_sta_change() bt_send_msg(BT_MSG_EAR_STA_CHANGE)
- #define bt_ctl_nr_sta_change() bt_send_msg(BT_MSG_NR_STA_CHANGE)
- enum {
- VA_STA_IDLE = 0,
- VA_STA_CONNECT,
- VA_STA_STOP,
- VA_STA_START,
- VA_STA_END,
- };
- void bt_va_operate(u8 enble);
- u8 bt_va_is_connect(void);
- extern uint8_t cfg_bt_work_mode;
- extern uint8_t cfg_bt_sw_ver_major;
- extern uint8_t cfg_bt_tws_slot_inc;
- extern uint8_t cfg_bt_tws_limit_pair_time;
- extern uint8_t cfg_bt_a2dp_media_discard;
- extern uint32_t cfg_a2dp_aac_max_bitrate;
- extern uint16_t cfg_bt_tws_sniff_interval;
- extern uint16_t cfg_bt_tws_feat;
- extern uint8_t cfg_bt_hci_disc_only_spp;
- extern uint8_t cfg_bt_hid_feature;
- uint bt_get_hfp_feature(void);
- int bt_spp_tx(uint8_t *packet, uint16_t len); //发送SPP命令
- bool bt_spp_tx_ex(u8 idx, const char * cmd, u8 len); //带长度的发送SPP命令
- //hid
- bool bt_hid_send_key(uint msg, uint keycode);
- #define bt_hid_key(keycode) bt_hid_send_key(BT_MSG_HID_KEY, keycode) //标准HID键, 如Enter
- #define bt_hid_consumer(keycode) bt_hid_send_key(BT_MSG_HID_CONSUMER, keycode) //自定义HID键, 如VOL+ VOL-
- /**
- * @brief 模拟触点函数
- 注意:IOS 范围是-2047-2048 ,安卓是0-4096;
- IOS设备,x,y是相对位置,比如10,10是相对当前位置移动10,10;
- 安卓设备,x,y是绝对位置,10,10是在手机10,10的位置上;
- * @param is_press 1按下,0抬起
- * @param x 模拟触点横坐标
- * @param y 模拟触点纵坐标
- **/
- void bt_hid_point_pos(bool is_press, s16 x, s16 y);
- #define bt_hid_finger_select_ios() bt_send_msg(BT_MSG_HID_TOUCH_SCREEN | 1 << 8) //抖音视频选择IOS系统, 需要在bt连接前调用区分
- #define bt_hid_finger_select_andriod() bt_send_msg(BT_MSG_HID_TOUCH_SCREEN | 2 << 8) //抖音视频选择andriod系统, 需要在bt连接前调用区分
- //抖音神器
- void bt_hid_douyin_down(void);
- void bt_hid_douyin_up(void);
- void bt_hid_douyin_p(void);
- void bt_hid_douyin_pp(void);
- void bt_hid_douyin_ctrl(u8 ctrl);
- /*****************************************************************************
- * BLE API函数接口
- *****************************************************************************/
- void le_set_adv_interval(u16 interval);
- #endif //_API_BTSTACK_H
|