38#define BTA_HL_DEBUG TRUE
41#ifndef BTA_HL_NUM_APPS
42#define BTA_HL_NUM_APPS 3
45#ifndef BTA_HL_NUM_MDEPS
46#define BTA_HL_NUM_MDEPS 5
49#ifndef BTA_HL_NUM_MCLS
50#define BTA_HL_NUM_MCLS 7
53#ifndef BTA_HL_NUM_MDLS_PER_MDEP
54#define BTA_HL_NUM_MDLS_PER_MDEP 4
57#ifndef BTA_HL_NUM_MDLS_PER_MCL
58#define BTA_HL_NUM_MDLS_PER_MCL 10
61#ifndef BTA_HL_NUM_DATA_TYPES
62#define BTA_HL_NUM_DATA_TYPES 5
66#define BTA_HL_MCAP_RSP_TOUT 2
68#ifndef BTA_HL_CCH_NUM_FILTER_ELEMS
69#define BTA_HL_CCH_NUM_FILTER_ELEMS 3
72#ifndef BTA_HL_NUM_SDP_CBACKS
73#define BTA_HL_NUM_SDP_CBACKS 7
76#ifndef BTA_HL_NUM_SDP_RECS
77#define BTA_HL_NUM_SDP_RECS 3
80#ifndef BTA_HL_NUM_SDP_MDEPS
81#define BTA_HL_NUM_SDP_MDEPS 10
84#ifndef BTA_HL_NUM_SVC_ELEMS
85#define BTA_HL_NUM_SVC_ELEMS 2
88#ifndef BTA_HL_NUM_PROTO_ELEMS
89#define BTA_HL_NUM_PROTO_ELEMS 2
92#define BTA_HL_VERSION_01_00 0x0100
93#define BTA_HL_NUM_ADD_PROTO_LISTS 1
94#define BTA_HL_NUM_ADD_PROTO_ELEMS 2
95#define BTA_HL_MDEP_SEQ_SIZE 20
96#define BTA_HL_VAL_ARRY_SIZE 320
98#ifndef BTA_HL_NUM_MDL_CFGS
99#define BTA_HL_NUM_MDL_CFGS 16
102#define BTA_HL_NUM_TIMERS 7
104#define BTA_HL_CCH_RSP_TOUT 2000
105#define BTA_HL_LRG_POOL_ID GKI_POOL_ID_7
106#define BTA_HL_MAX_TIME 255
107#define BTA_HL_MIN_TIME 1
108#define BTA_HL_INVALID_APP_HANDLE 0xFF
109#define BTA_HL_INVALID_MCL_HANDLE 0xFF
110#define BTA_HL_INVALID_MDL_HANDLE 0xFFFF
112#define BTA_HL_STATUS_OK 0
113#define BTA_HL_STATUS_FAIL 1
114#define BTA_HL_STATUS_ABORTED 2
115#define BTA_HL_STATUS_NO_RESOURCE 3
116#define BTA_HL_STATUS_LAST_ITEM 4
117#define BTA_HL_STATUS_DUPLICATE_APP_ID 5
118#define BTA_HL_STATUS_INVALID_APP_HANDLE 6
119#define BTA_HL_STATUS_INVALID_MCL_HANDLE 7
120#define BTA_HL_STATUS_MCAP_REG_FAIL 8
121#define BTA_HL_STATUS_MDEP_CO_FAIL 9
122#define BTA_HL_STATUS_ECHO_CO_FAIL 10
123#define BTA_HL_STATUS_MDL_CFG_CO_FAIL 11
124#define BTA_HL_STATUS_SDP_NO_RESOURCE 12
125#define BTA_HL_STATUS_SDP_FAIL 13
126#define BTA_HL_STATUS_NO_CCH 14
127#define BTA_HL_STATUS_NO_MCL 15
129#define BTA_HL_STATUS_NO_FIRST_RELIABLE 17
130#define BTA_HL_STATUS_INVALID_DCH_CFG 18
131#define BTA_HL_STATUS_INVALID_MDL_HANDLE 19
132#define BTA_HL_STATUS_INVALID_BD_ADDR 20
133#define BTA_HL_STATUS_INVALID_RECONNECT_CFG 21
134#define BTA_HL_STATUS_ECHO_TEST_BUSY 22
135#define BTA_HL_STATUS_INVALID_LOCAL_MDEP_ID 23
136#define BTA_HL_STATUS_INVALID_MDL_ID 24
137#define BTA_HL_STATUS_NO_MDL_ID_FOUND 25
138#define BTA_HL_STATUS_DCH_BUSY 26
139#define BTA_HL_STATUS_INVALID_CTRL_PSM 27
141typedef UINT8 tBTA_HL_STATUS;
142typedef tMCA_HANDLE tBTA_HL_APP_HANDLE;
143typedef tMCA_CL tBTA_HL_MCL_HANDLE;
144typedef tMCA_DL tBTA_HL_MDL_HANDLE;
147 BTA_HL_DEVICE_TYPE_SINK,
148 BTA_HL_DEVICE_TYPE_SOURCE,
149 BTA_HL_DEVICE_TYPE_DUAL
152typedef UINT8 tBTA_HL_DEVICE_TYPE;
156#define BTA_HL_SDP_IEEE_11073_20601 0x01
158#define BTA_HL_MCAP_SUP_RECONNECT_MASK_INIT 2
159#define BTA_HL_MCAP_SUP_RECONNECT_MASK_ACCEPT 4
160#define BTA_HL_MCAP_SUP_CSP_MASK_SYNC_SLAVE 0
161#define BTA_HL_MCAP_SUP_CSP_MASK_SYNC_MASTER 0
163#define BTA_HL_MCAP_SUP_PROC_MASK (BTA_HL_MCAP_SUP_RECONNECT_MASK_INIT | \
164 BTA_HL_MCAP_SUP_RECONNECT_MASK_ACCEPT | \
165 BTA_HL_MCAP_SUP_CSP_MASK_SYNC_SLAVE | \
166 BTA_HL_MCAP_SUP_CSP_MASK_SYNC_MASTER)
167#define BTA_HL_MDEP_ROLE_SOURCE 0x00
168#define BTA_HL_MDEP_ROLE_SINK 0x01
170typedef UINT8 tBTA_HL_MDEP_ROLE;
172#define BTA_HL_MDEP_ROLE_MASK_SOURCE 0x01
173#define BTA_HL_MDEP_ROLE_MASK_SINK 0x02
174typedef UINT8 tBTA_HL_MDEP_ROLE_MASK;
177#define BTA_HL_ECHO_TEST_MDEP_ID 0
178#define BTA_HL_ECHO_TEST_MDEP_CFG_IDX 0
180#define BTA_HL_INVALID_MDEP_ID 0xFF
181typedef tMCA_DEP tBTA_HL_MDEP_ID;
186#define BTA_HL_DELETE_ALL_MDL_IDS 0xFFFF
187#define BTA_HL_MAX_MDL_VAL 0xFEFF
188typedef UINT16 tBTA_HL_MDL_ID;
193#define BTA_HL_MDEP_DESP_LEN 35
195#define BTA_HL_DCH_MODE_RELIABLE 0
196#define BTA_HL_DCH_MODE_STREAMING 1
198typedef UINT8 tBTA_HL_DCH_MODE;
200#define BTA_HL_DCH_CFG_NO_PREF 0
201#define BTA_HL_DCH_CFG_RELIABLE 1
202#define BTA_HL_DCH_CFG_STREAMING 2
203#define BTA_HL_DCH_CFG_UNKNOWN 0xFF
205typedef UINT8 tBTA_HL_DCH_CFG;
208#define BTA_HL_DEFAULT_ECHO_TEST_SRC_DCH_CFG BTA_HL_DCH_CFG_RELIABLE
210#define BTA_HL_DCH_CREATE_RSP_SUCCESS 0
211#define BTA_HL_DCH_CREATE_RSP_CFG_REJ 1
213typedef UINT8 tBTA_HL_DCH_CREATE_RSP;
215#define BTA_HL_MCAP_SUP_PROC_RECONNECT_INIT 0x02
216#define BTA_HL_MCAP_SUP_PROC_RECONNECT_APT 0x04
217#define BTA_HL_MCAP_SUP_PROC_CSP_SLAVE 0x08
218#define BTA_HL_MCAP_SUP_PROC_CSP_MASTER 0x10
220typedef UINT8 tBTA_HL_SUP_PROC_MASK;
224 UINT16 max_rx_apdu_size;
225 UINT16 max_tx_apdu_size;
232 UINT16 max_rx_apdu_size;
233 UINT16 max_tx_apdu_size;
234 char desp[BTA_HL_MDEP_DESP_LEN+1];
240 tBTA_HL_MDEP_ROLE mdep_role;
241 UINT8 num_of_mdep_data_types;
247 tBTA_HL_MDEP_ID mdep_id;
255 tBTA_HL_MDEP_ROLE_MASK app_role_mask;
256 BOOLEAN advertize_source_sdp;
262 BOOLEAN delete_req_pending;
263 tBTA_HL_MDL_ID mdl_id;
264 tBTA_HL_MCL_HANDLE mcl_handle;
271 tBTA_HL_MDL_ID mdl_id;
272 tBTA_HL_MDEP_ID local_mdep_id;
273 tBTA_HL_MDEP_ROLE local_mdep_role;
275 tBTA_HL_DCH_MODE dch_mode;
277 BD_ADDR peer_bd_addr;
282#define BTA_HL_NUM_SUP_FEATURE_ELEMS 10
283#define BTA_HL_SUP_FEATURE_SDP_BUF_SIZE 512
289 tBTA_HL_MDEP_ROLE mdep_role;
302 tBTA_HL_DEVICE_TYPE dev_type;
304 const char *p_srv_name;
305 const char *p_srv_desp;
306 const char *p_provider_name;
320 tBTA_HL_MDEP_ID local_mdep_id;
321 tBTA_HL_MDEP_ID peer_mdep_id;
322 tBTA_HL_DCH_CFG local_cfg;
330 tBTA_HL_MDL_ID mdl_id;
338 tBTA_HL_DCH_CFG local_cfg;
349 tBTA_HL_MDEP_ID local_mdep_id;
350 tBTA_HL_MDL_ID mdl_id;
351 tBTA_HL_DCH_CREATE_RSP rsp_code;
352 tBTA_HL_DCH_CFG cfg_rsp;
359 tBTA_HL_MDEP_ROLE mdep_role;
360 char mdep_desp[BTA_HL_MDEP_DESP_LEN+1];
369 char srv_name[BTA_SERVICE_NAME_LEN+1];
370 char srv_desp[BTA_SERVICE_DESP_LEN+1];
371 char provider_name[BTA_PROVIDER_NAME_LEN+1];
384 BTA_HL_CTRL_ENABLE_CFM_EVT = 0,
385 BTA_HL_CTRL_DISABLE_CFM_EVT
387typedef UINT8 tBTA_HL_CTRL_EVT;
393 tBTA_HL_STATUS status;
405 BTA_HL_REGISTER_CFM_EVT =0,
406 BTA_HL_DEREGISTER_CFM_EVT,
407 BTA_HL_CCH_OPEN_IND_EVT,
408 BTA_HL_CCH_OPEN_CFM_EVT,
409 BTA_HL_CCH_CLOSE_IND_EVT,
410 BTA_HL_CCH_CLOSE_CFM_EVT,
411 BTA_HL_DCH_CREATE_IND_EVT,
412 BTA_HL_DCH_OPEN_IND_EVT,
413 BTA_HL_DCH_OPEN_CFM_EVT,
414 BTA_HL_DCH_CLOSE_IND_EVT,
415 BTA_HL_DCH_CLOSE_CFM_EVT,
416 BTA_HL_DCH_RECONNECT_IND_EVT,
417 BTA_HL_DCH_RECONNECT_CFM_EVT,
419 BTA_HL_DCH_ABORT_IND_EVT,
420 BTA_HL_DCH_ABORT_CFM_EVT,
421 BTA_HL_DELETE_MDL_IND_EVT,
422 BTA_HL_DELETE_MDL_CFM_EVT,
423 BTA_HL_DCH_SEND_DATA_CFM_EVT,
424 BTA_HL_DCH_RCV_DATA_IND_EVT,
425 BTA_HL_CONG_CHG_IND_EVT,
426 BTA_HL_DCH_ECHO_TEST_CFM_EVT,
427 BTA_HL_SDP_QUERY_CFM_EVT,
428 BTA_HL_SDP_INFO_IND_EVT
430typedef UINT8 tBTA_HL_EVT;
435 tBTA_HL_STATUS status;
437 tBTA_HL_APP_HANDLE app_handle;
443 tBTA_HL_STATUS status;
444 tBTA_HL_APP_HANDLE app_handle;
451 tBTA_HL_MCL_HANDLE mcl_handle;
452 tBTA_HL_APP_HANDLE app_handle;
458 tBTA_HL_MCL_HANDLE mcl_handle;
459 tBTA_HL_APP_HANDLE app_handle;
464 tBTA_HL_STATUS status;
465 tBTA_HL_MCL_HANDLE mcl_handle;
466 tBTA_HL_APP_HANDLE app_handle;
471 tBTA_HL_MCL_HANDLE mcl_handle;
472 tBTA_HL_APP_HANDLE app_handle;
478 tBTA_HL_STATUS status;
479 tBTA_HL_MCL_HANDLE mcl_handle;
480 tBTA_HL_APP_HANDLE app_handle;
486 tBTA_HL_MCL_HANDLE mcl_handle;
487 tBTA_HL_APP_HANDLE app_handle;
488 tBTA_HL_MDEP_ID local_mdep_id;
489 tBTA_HL_MDL_ID mdl_id;
496 tBTA_HL_MDL_HANDLE mdl_handle;
497 tBTA_HL_MCL_HANDLE mcl_handle;
498 tBTA_HL_APP_HANDLE app_handle;
499 tBTA_HL_MDEP_ID local_mdep_id;
500 tBTA_HL_MDL_ID mdl_id;
502 tBTA_HL_DCH_MODE dch_mode;
504 BOOLEAN first_reliable;
510 tBTA_HL_STATUS status;
511 tBTA_HL_MDL_HANDLE mdl_handle;
512 tBTA_HL_MCL_HANDLE mcl_handle;
513 tBTA_HL_APP_HANDLE app_handle;
514 tBTA_HL_MDEP_ID local_mdep_id;
515 tBTA_HL_MDL_ID mdl_id;
517 tBTA_HL_DCH_MODE dch_mode;
518 BOOLEAN first_reliable;
526 tBTA_HL_MDL_HANDLE mdl_handle;
527 tBTA_HL_MCL_HANDLE mcl_handle;
528 tBTA_HL_APP_HANDLE app_handle;
534 tBTA_HL_MDL_HANDLE mdl_handle;
535 tBTA_HL_MCL_HANDLE mcl_handle;
536 tBTA_HL_APP_HANDLE app_handle;
541 tBTA_HL_STATUS status;
542 tBTA_HL_MDL_HANDLE mdl_handle;
543 tBTA_HL_MCL_HANDLE mcl_handle;
544 tBTA_HL_APP_HANDLE app_handle;
549 tBTA_HL_MCL_HANDLE mcl_handle;
550 tBTA_HL_APP_HANDLE app_handle;
551 tBTA_HL_MDL_ID mdl_id;
556 tBTA_HL_STATUS status;
557 tBTA_HL_MCL_HANDLE mcl_handle;
558 tBTA_HL_APP_HANDLE app_handle;
559 tBTA_HL_MDL_ID mdl_id;
564 tBTA_HL_MDL_HANDLE mdl_handle;
565 tBTA_HL_MCL_HANDLE mcl_handle;
566 tBTA_HL_APP_HANDLE app_handle;
572 tBTA_HL_APP_HANDLE app_handle;
576 UINT8 mcap_sup_procs;
581 tBTA_HL_STATUS status;
582 tBTA_HL_APP_HANDLE app_handle;
616typedef void tBTA_HL_CTRL_CBACK(tBTA_HL_CTRL_EVT event,
tBTA_HL_CTRL *p_data);
617typedef void tBTA_HL_CBACK(tBTA_HL_EVT event,
tBTA_HL *p_data);
646 BTA_API
extern void BTA_HlEnable(tBTA_HL_CTRL_CBACK *p_ctrl_cback);
656 BTA_API
extern void BTA_HlDisable(
void);
672 BTA_API
extern void BTA_HlRegister(UINT8 app_id,
674 tBTA_HL_CBACK *p_cback);
687 BTA_API
extern void BTA_HlDeregister(tBTA_HL_APP_HANDLE app_handle);
707 BTA_API
extern void BTA_HlCchOpen(tBTA_HL_APP_HANDLE app_handle,
722 BTA_API
extern void BTA_HlCchClose(tBTA_HL_MCL_HANDLE mcl_handle);
736 BTA_API
extern void BTA_HlDchOpen(tBTA_HL_MCL_HANDLE mcl_handle,
750 BTA_API
extern void BTA_HlDchReconnect(tBTA_HL_MCL_HANDLE mcl_handle,
763 BTA_API
extern void BTA_HlDchClose(tBTA_HL_MDL_HANDLE mdl_handle);
778 BTA_API
extern void BTA_HlDchAbort(tBTA_HL_MCL_HANDLE mcl_handle);
792 BTA_API
extern void BTA_HlSendData(tBTA_HL_MDL_HANDLE mdl_handle,
811 BTA_API
extern void BTA_HlDeleteMdl(tBTA_HL_MCL_HANDLE mcl_handle,
812 tBTA_HL_MDL_ID mdl_id );
826 BTA_API
extern void BTA_HlDchEchoTest( tBTA_HL_MCL_HANDLE mcl_handle,
841 BTA_API
extern void BTA_HlSdpQuery(tBTA_HL_APP_HANDLE app_handle,
860 BTA_API
extern void BTA_HlDchCreateRsp(tBTA_HL_MCL_HANDLE mcl_handle,