pinebuds/services/bt_if_enhanced/inc/conmgr_api.h
2022-08-15 17:20:27 +08:00

203 lines
7.3 KiB
C

/***************************************************************************
*
* Copyright 2015-2019 BES.
* All rights reserved. All unpublished rights reserved.
*
* No part of this work may be used or reproduced in any form or by any
* means, or stored in a database or retrieval system, without prior written
* permission of BES.
*
* Use of this work is governed by a license granted by BES.
* This work contains confidential and proprietary information of
* BES. which is protected by copyright, trade secret,
* trademark and other intellectual property rights.
*
****************************************************************************/
#ifndef __CONMGR_API_H_
#define __CONMGR_API_H_
#include "me_api.h"
typedef void btif_cmgr_handler_t;
#ifndef BTIF_CMGR_DEFAULT_SNIFF_EXIT_POLICY
#define BTIF_CMGR_DEFAULT_SNIFF_EXIT_POLICY CMGR_SNIFF_EXIT_ON_AUDIO
#endif /* */
#ifndef BTIF_CMGR_DEFAULT_SNIFF_TIMER
#define BTIF_CMGR_DEFAULT_SNIFF_TIMER CMGR_SNIFF_DONT_CARE
#endif /* */
#ifndef BTIF_CMGR_AUDIO_DEFAULT_PARMS
//#define CMGR_AUDIO_DEFAULT_PARMS CMGR_AUDIO_PARMS_S3
#define BTIF_CMGR_AUDIO_DEFAULT_PARMS CMGR_AUDIO_PARMS_S4
#endif /* */
#ifndef BTIF_CMGR_SNIFF_MIN_INTERVAL
#ifdef BISTO_ENABLED
#define BTIF_CMGR_SNIFF_MIN_INTERVAL 160
#else
#define BTIF_CMGR_SNIFF_MIN_INTERVAL 800
#endif
#endif /* */
#ifndef BTIF_CMGR_SNIFF_MAX_INTERVAL
#ifdef BISTO_ENABLED
#define BTIF_CMGR_SNIFF_MAX_INTERVAL 160
#else
#define BTIF_CMGR_SNIFF_MAX_INTERVAL 800
#endif
#endif /* */
#ifndef BTIF_CMGR_SNIFF_ATTEMPT
#define BTIF_CMGR_SNIFF_ATTEMPT 3
#endif /* */
#ifndef BTIF_CMGR_SNIFF_TIMEOUT
#define BTIF_CMGR_SNIFF_TIMEOUT 1
#endif /* */
#define BTIF_CMGR_SNIFF_DISABLED (0xFF)
#define BTIF_CMGR_SNIFF_DONT_CARE (0)
#define BTIF_CMGR_SNIFF_TIMER (10000)
#define BTIF_CMGR_TWS_SNIFF_TIMER (10000)
#define BTIF_CMGR_MOBILE_SNIFF_TIMER (20000)
typedef U8 btif_cmgr_sniff_exit_policy_t;
#define BTIF_CMGR_SNIFF_EXIT_ON_SEND 0x01
#define BTIF_CMGR_SNIFF_EXIT_ON_AUDIO 0x02
/* End of CmgrSniffExitPolicy */
/*---------------------------------------------------------------------------
* cmgr_event_t type
*
* All indications and confirmations are sent through a callback function.
* The profile registers with the Connection Manager at initialization. Calls
* are made to request ACL and SCO resources. The Connection Manager calls
* the profile's callback function to indicate the results of those requests.
*/
typedef uint8_t cmgr_event_t;
#define BTIF_CMEVENT_DATA_LINK_CON_CNF 1
#define BTIF_CMEVENT_DATA_LINK_CON_IND 2
#define BTIF_CMEVENT_DATA_LINK_DIS 3
#define BTIF_CMEVENT_AUDIO_LINK_REQ 4
#define BTIF_CMEVENT_AUDIO_LINK_CON 5
#define BTIF_CMEVENT_AUDIO_LINK_DIS 6
#define BTIF_CMEVENT_AUDIO_DATA 7
#define BTIF_CMEVENT_AUDIO_DATA_SENT 8
#define BTIF_CMEVENT_ENTER_SNIFF_MODE 9
#define BTIF_CMEVENT_EXIT_SNIFF_PARK_MODE 10
/* End of cmgr_event_t */
#ifdef __cplusplus
extern "C" {
#endif /* */
btif_cmgr_handler_t *btif_cmgr_get_first_handler(btif_remote_device_t * remDev);
bt_status_t btif_cmgr_set_sniff_exit_policy(btif_cmgr_handler_t * cmgr_handler,
btif_cmgr_sniff_exit_policy_t Policy);
bt_status_t btif_cmgr_set_sniff_timer(btif_cmgr_handler_t * cmgr_handler,
btif_sniff_info_t * SniffInfo, TimeT Time);
uint32_t btif_cmgr_get_cmgrhandler_sniff_timeout(btif_cmgr_handler_t * cmgr_handler);
uint16_t btif_cmgr_get_cmgrhandler_sniff_Interval(btif_cmgr_handler_t * cmgr_handler);
btif_sniff_info_t*btif_cmgr_get_cmgrhandler_sniff_info(btif_cmgr_handler_t *cmgr_handler);
btif_remote_device_t *btif_cmgr_get_cmgrhandler_remdev(btif_cmgr_handler_t *cmgr_handler);
uint16_t btif_cmgr_get_cmgrhandler_remdev_hci_handle(btif_cmgr_handler_t * cmgr_handler);
btif_handler *btif_cmgr_get_cmgrhandler_remdev_bthandle(btif_cmgr_handler_t *cmgr_handler);
bt_status_t btif_cmgr_set_sniff_info_to_all_handler_by_remdev(btif_sniff_info_t * SniffInfo,
btif_remote_device_t * remDev);
bt_status_t btif_cmgr_set_sniff_timeout_handler_ext(void (*ext_fn)(evm_timer_t * timer,
BOOL * skipInternalHandler));
bt_status_t btif_cmgr_init_sniff_timer(btif_remote_device_t *remDev);
bt_status_t btif_cmgr_deinit_sniff_timer(btif_remote_device_t *remDev);
bt_status_t btif_cmgr_clear_sniff_timer(btif_cmgr_handler_t * Handler);
bt_status_t btif_cmgr_disable_sniff_timer(btif_cmgr_handler_t * Handler);
btif_link_type_t btif_cmgr_get_sco_connect_sco_link_type(btif_cmgr_handler_t * cmgr_handler);
uint16_t btif_cmgr_get_sco_connect_sco_Hcihandler(btif_cmgr_handler_t * cmgr_handler);
uint8_t btif_cmgr_get_sco_connect_sco_rx_parms_sco_transmission_interval(btif_cmgr_handler_t *
cmgr_handler);
uint8_t btif_cmgr_get_sco_connect_sco_rx_parms_sco_retransmission_window(btif_cmgr_handler_t *
cmgr_handler);
uint8_t btif_cmgr_set_sco_connect_sco_rx_parms_sco_transmission_interval(
btif_cmgr_handler_t * cmgr_handler,
uint8_t interval);
uint8_t btif_cmgr_set_sco_connect_sco_rx_parms_sco_retransmission_window(
btif_cmgr_handler_t *cmgr_handler,
uint8_t window);
bt_status_t btif_cmgr_remove_audio_link(btif_cmgr_handler_t * cmgr_handler);
bool btif_cmgr_is_audio_up(btif_cmgr_handler_t *Handler);
bt_status_t btif_cmgr_set_master_role(btif_cmgr_handler_t *cmgr_handler, BOOL flag);
void btif_evm_start_timer(evm_timer_t *timer, TimeT ms);
void *btif_cmgr_get_default_conn_handler(void);
void *btif_cmgr_handler_create(void);
void btif_cmgr_handler_init(void);
bt_status_t btif_cmgr_register_handler(btif_cmgr_handler_t *cmgr_handler,
btif_cmgr_callback callback);
bt_status_t btif_cmgr_create_data_link(btif_cmgr_handler_t *cmgr_handler,
bt_bdaddr_t *bd_addr);
bt_status_t btif_cmgr_remove_data_link(btif_cmgr_handler_t *cmgr_handler);
btif_cmgr_handler_t *btif_cmgr_get_acl_handler(btif_remote_device_t *remDev);
btif_cmgr_handler_t * btif_cmgr_get_conn_ind_handler(btif_remote_device_t *remDev);
bool btif_cmgr_is_link_up(btif_cmgr_handler_t *cmgr_handler);
btif_remote_device_t *btif_cmgr_pts_get_remDev(btif_cmgr_handler_t *cmgr_handler);
#if defined(IBRT)
uint32_t btif_save_cmgr_cxt(uint8_t * ctx_buffer);
uint32_t btif_set_cmgr_cxt(uint8_t * ctx_buffer, uint8_t bt_devices_idx,uint8_t rm_devtbl_idx);
uint32_t btif_save_avrcp_ctx(uint8_t * ctx_buffer);
uint32_t btif_set_avrcp_ctx(uint8_t * ctx_buffer, uint8_t bt_devices_idx,uint8_t rm_devtbl_idx, uint8_t avd_ctx_device_idx);
#endif
#ifdef __cplusplus
}
#endif /* */
#endif /* */