/*
?* 通過搜索碼搜索tws設備
?*/
int tws_api_search_sibling_by_code();
/*
?*打開可發現, 可連接,可被手機和tws搜索到
?*/
int tws_api_wait_pair_by_code(u16 code, const char *name, int timeout_ms);
int tws_api_wait_pair_by_ble(u16 code, const char *name, int timeout_ms);
int tws_api_wait_tws_pair(int code, const char *name);
int tws_api_wait_phone_pair(int code, const char *name);
int tws_api_auto_pair(int timeout);
int tws_wait_tws_pair(u16 code, const char *name);
int tws_wait_phone_pair(u16 code, const char *name);
/*
?*取消可發現, 可連接,可被tws搜索到
?*/
int tws_api_cancle_wait_pair();
/*
?* 搜索并連接已經配對過的tws
?* timeout: 單位ms, 0 表示不超時
?* 返回值: ?0: 函數調用成功
?*/
int tws_api_create_connection(int timeout);
/*
?* 取消搜索已配對的tws
?*/
int tws_api_cancle_create_connection();
/*
?* 打開可發現,可連接, 可以被手機和已配對過的tws連接
?*/
int tws_api_wait_connection();
/*
?* 斷開tws直接的連接
?* reason: 斷開原因
?*/
int tws_api_detach(enum tws_detach_reason reason, int timeout);
/*
?* 獲取主從, 播歌和打電話狀態下結果不可靠,請勿調用
?*/
int tws_api_get_role();
int tws_api_get_role_async();
/*
?* 獲取tws 連接的狀態
?* 返回值: 詳見頂部TWS_STA_**
?*/
int tws_api_get_tws_state();
int tws_api_get_lmp_state(u8 *bt_addr);
bool tws_api_is_connect();
/*
?* 設置tws對方地址
?*/
int tws_api_set_sibling_addr(u8 *addr);
/*
?* 獲取tws對方地址
?*/
int tws_api_get_sibling_addr(u8 *addr);
/*
?* 獲取tws本地地址
?*/
int tws_api_get_local_addr(u8 *addr);
/*
?*發送解除配對命令給對方, 成功后會收到TWS_EVENT_REMOVE_PAIRS事件
?*/
int tws_api_remove_pairs();
/*
?* 設置本地聲道
?* 'L': 左聲道
?* 'R': 右聲道
?* 'U': 雙聲道合并
?*/
void tws_api_set_local_channel(char channel);
/*
?* 獲取本地聲道
?*/
char tws_api_get_local_channel();
/*
?* 通過uuid,主從同步調用相同函數
?*/
int tws_api_sync_call_by_uuid(int uuid, int priv, int delay_ms);
/*
?* tws 數據發送函數, 要求 len <= 512
?*/
int tws_api_send_data_to_sibling(void *data, u16 len, u32 func_id);
int tws_api_send_data_to_slave(void *data, int len, u32 func_id);
int tws_profile_init();
int tws_profile_exit();
int tws_api_connect_in_esco();
int tws_api_cancle_connect_in_esco();
/*
?* 使能對耳自動主從切換
?*/
void tws_api_auto_role_switch_enable();
/*
?* 關閉對耳自動主從切換
?*/
void tws_api_auto_role_switch_disable();
int tws_api_get_low_latency_state();
int tws_api_low_latency_enable(bool enable);
void tws_api_set_quick_connect_addr(u8 *addr);//tws快連
u8 *tws_api_get_quick_connect_addr();
void tws_api_common_addr_en(u8 en);
void tws_api_pair_all_way(u8 en);
int tws_api_power_saving_mode_enable();
int tws_api_power_saving_mode_disable();
int tws_api_enter_pure_monitor_mode();
int tws_api_tx_sniff_req(u16 interval, u16 run_slot);
void tws_api_tx_unsniff_req();
void tws_try_connect_disable(void);
void tws_api_role_switch();
int tws_open_tws_conn(int timeout);
int tws_close_tws_pair();
int tws_close_phone_wait_pair();
int tws_remove_tws_pairs();
int tws_disconnect();
int tws_fast_conn_with_pair(u8 role_type);
void tws_tx_sniff_req(void);
void tws_tx_unsniff_req(void);
int tws_api_is_sniff_state();
int tws_in_sniff_state(void);
int tws_sniff_state_check(void);
void tws_api_set_pair_code(u16 pair_code);
int tws_api_get_mclkn();
void tws_api_role_switch_lock_msec(int msec);
void tws_api_esco_rssi_role_switch(bool en);//通話根據信號強度主從切換使能
int tws_api_wait_pair_when_phone_connect(int timeout_ms);
void tws_api_set_quick_rxtx_time(u16 time_msec);
void tws_api_cancel_search_sibling(void);
extern u32 tws_conn_get_mclkn(u32 *timebase);
extern int bredr_clkn2offset(int clkn_begin, int clkn_end);
u32 bt_audio_reference_clock_time(u8 network);
#endif