#ifndef APP_BT_TWS_H #define APP_BT_TWS_H #include "classic/tws_api.h" #include "classic/tws_event.h" #include "system/includes.h" #include "app_config.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, }; 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_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_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 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) u8 *tws_set_auto_pair_code(void); bool bt_tws_is_paired(); char bt_tws_get_local_channel(); int bt_tws_poweron(); int bt_tws_poweroff(); void bt_tws_connect_sibling(int timeout); int bt_tws_start_search_sibling(); void bt_tws_hci_event_connect(); 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 bt_tws_key_msg_sync(int key_msg); int bt_tws_connction_status_event_handler(int *msg); void bt_tws_remove_pairs(); void bt_tws_detach_and_remove_pairs(void); int bt_tws_start_pair(void); void tws_sniff_controle_check_disable(void); void tws_sniff_controle_check_enable(void); void tws_page_scan_deal_by_esco(u8 esco_flag); void tws_set_search_sbiling_state(u8 state); u16 bt_tws_get_state(void); extern void send_page_device_addr_2_sibling(); extern void tws_dual_conn_state_handler(); void bt_page_scan_for_test(u8 inquiry_en); void set_tws_task_interval(int tws_task_interval); #endif