48#include "data_types.h"
54#if BLE_INCLUDED == TRUE
55#include "btm_ble_api.h"
67#define BTA_NO_RESOURCES 4
68#define BTA_WRONG_MODE 5
70typedef UINT8 tBTA_STATUS;
80#define BTA_RES_SERVICE_ID 0
81#define BTA_SPP_SERVICE_ID 1
82#define BTA_DUN_SERVICE_ID 2
83#define BTA_A2DP_SOURCE_SERVICE_ID 3
84#define BTA_LAP_SERVICE_ID 4
85#define BTA_HSP_SERVICE_ID 5
86#define BTA_HFP_SERVICE_ID 6
87#define BTA_OPP_SERVICE_ID 7
88#define BTA_FTP_SERVICE_ID 8
89#define BTA_CTP_SERVICE_ID 9
90#define BTA_ICP_SERVICE_ID 10
91#define BTA_SYNC_SERVICE_ID 11
92#define BTA_BPP_SERVICE_ID 12
93#define BTA_BIP_SERVICE_ID 13
94#define BTA_PANU_SERVICE_ID 14
95#define BTA_NAP_SERVICE_ID 15
96#define BTA_GN_SERVICE_ID 16
97#define BTA_SAP_SERVICE_ID 17
98#define BTA_A2DP_SERVICE_ID 18
99#define BTA_AVRCP_SERVICE_ID 19
100#define BTA_HID_SERVICE_ID 20
101#define BTA_VDP_SERVICE_ID 21
102#define BTA_PBAP_SERVICE_ID 22
103#define BTA_HSP_HS_SERVICE_ID 23
104#define BTA_HFP_HS_SERVICE_ID 24
105#define BTA_MAP_SERVICE_ID 25
106#define BTA_MN_SERVICE_ID 26
107#define BTA_HDP_SERVICE_ID 27
108#define BTA_PCE_SERVICE_ID 28
110#if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE
112#define BTA_BLE_SERVICE_ID 29
115#define BTA_USER_SERVICE_ID 30
117#define BTA_MAX_SERVICE_ID 31
120#define BTA_USER_SERVICE_ID 29
121#define BTA_MAX_SERVICE_ID 30
125#define BTA_FIRST_JV_SERVICE_ID (BTM_SEC_SERVICE_FIRST_EMPTY + 1)
126#define BTA_LAST_JV_SERVICE_ID (BTM_SEC_MAX_SERVICES - 1)
128typedef UINT8 tBTA_SERVICE_ID;
131#define BTA_RES_SERVICE_MASK 0x00000001
132#define BTA_SPP_SERVICE_MASK 0x00000002
133#define BTA_DUN_SERVICE_MASK 0x00000004
134#define BTA_FAX_SERVICE_MASK 0x00000008
135#define BTA_LAP_SERVICE_MASK 0x00000010
136#define BTA_HSP_SERVICE_MASK 0x00000020
137#define BTA_HFP_SERVICE_MASK 0x00000040
138#define BTA_OPP_SERVICE_MASK 0x00000080
139#define BTA_FTP_SERVICE_MASK 0x00000100
140#define BTA_CTP_SERVICE_MASK 0x00000200
141#define BTA_ICP_SERVICE_MASK 0x00000400
142#define BTA_SYNC_SERVICE_MASK 0x00000800
143#define BTA_BPP_SERVICE_MASK 0x00001000
144#define BTA_BIP_SERVICE_MASK 0x00002000
145#define BTA_PANU_SERVICE_MASK 0x00004000
146#define BTA_NAP_SERVICE_MASK 0x00008000
147#define BTA_GN_SERVICE_MASK 0x00010000
148#define BTA_SAP_SERVICE_MASK 0x00020000
149#define BTA_A2DP_SERVICE_MASK 0x00040000
150#define BTA_AVRCP_SERVICE_MASK 0x00080000
151#define BTA_HID_SERVICE_MASK 0x00100000
152#define BTA_VDP_SERVICE_MASK 0x00200000
153#define BTA_PBAP_SERVICE_MASK 0x00400000
154#define BTA_HSP_HS_SERVICE_MASK 0x00800000
155#define BTA_HFP_HS_SERVICE_MASK 0x01000000
156#define BTA_MAS_SERVICE_MASK 0x02000000
157#define BTA_MN_SERVICE_MASK 0x04000000
158#define BTA_HL_SERVICE_MASK 0x08000000
159#define BTA_PCE_SERVICE_MASK 0x10000000
161#if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE
162#define BTA_BLE_SERVICE_MASK 0x20000000
164#define BTA_USER_SERVICE_MASK 0x40000000
168#define BTA_USER_SERVICE_MASK 0x20000000
172#if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE
173#define BTA_ALL_SERVICE_MASK 0x3FFFFFFF
175#define BTA_ALL_SERVICE_MASK 0x1FFFFFFF
178typedef UINT32 tBTA_SERVICE_MASK;
183 tBTA_SERVICE_MASK srvc_mask;
189#define BTA_SEC_NONE BTM_SEC_NONE
190#define BTA_SEC_AUTHORIZE (BTM_SEC_IN_AUTHORIZE )
191#define BTA_SEC_AUTHENTICATE (BTM_SEC_IN_AUTHENTICATE | BTM_SEC_OUT_AUTHENTICATE)
192#define BTA_SEC_ENCRYPT (BTM_SEC_IN_ENCRYPT | BTM_SEC_OUT_ENCRYPT)
194typedef UINT8 tBTA_SEC;
198#define BTA_DM_IGNORE 0xFF
202#define BTA_DM_NON_DISC BTM_NON_DISCOVERABLE
203#define BTA_DM_GENERAL_DISC BTM_GENERAL_DISCOVERABLE
204#define BTA_DM_LIMITED_DISC BTM_LIMITED_DISCOVERABLE
207typedef UINT16 tBTA_DM_DISC;
211#define BTA_DM_NON_CONN BTM_NON_CONNECTABLE
212#define BTA_DM_CONN BTM_CONNECTABLE
215typedef UINT16 tBTA_DM_CONN;
219#define BTA_DM_PAIRABLE 1
220#define BTA_DM_NON_PAIRABLE 0
223#define BTA_DM_CONN_ALL 0
224#define BTA_DM_CONN_PAIRED 1
227#define BTA_DM_GENERAL_INQUIRY BTM_GENERAL_INQUIRY
228#define BTA_DM_LIMITED_INQUIRY BTM_LIMITED_INQUIRY
230#if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE))
231#define BTA_BLE_INQUIRY_NONE BTM_BLE_INQUIRY_NONE
232#define BTA_BLE_GENERAL_INQUIRY BTM_BLE_GENERAL_INQUIRY
233#define BTA_BLE_LIMITED_INQUIRY BTM_BLE_LIMITED_INQUIRY
235typedef UINT8 tBTA_DM_INQ_MODE;
238#define BTA_DM_INQ_CLR BTM_CLR_INQUIRY_FILTER
239#define BTA_DM_INQ_DEV_CLASS BTM_FILTER_COND_DEVICE_CLASS
240#define BTA_DM_INQ_BD_ADDR BTM_FILTER_COND_BD_ADDR
242typedef UINT8 tBTA_DM_INQ_FILT;
245#define BTA_DM_AUTH_PERM 0
246#define BTA_DM_AUTH_TEMP 1
247#define BTA_DM_NOT_AUTH 2
249typedef UINT8 tBTA_AUTH_RESP;
252#define BTA_ANY_ROLE 0x00
253#define BTA_MASTER_ROLE_PREF 0x01
254#define BTA_MASTER_ROLE_ONLY 0x02
256typedef UINT8 tBTA_PREF_ROLES;
261 BTA_DM_NO_SCATTERNET,
265 BTA_DM_PARTIAL_SCATTERNET,
268 BTA_DM_FULL_SCATTERNET
278 DEV_CLASS dev_class_mask;
292 tBTA_DM_INQ_MODE mode;
296 tBTA_DM_INQ_FILT filter_type;
302 UINT8 bta_dm_eir_min_name_len;
303#if (BTA_EIR_CANNED_UUID_LIST == TRUE)
304 UINT8 bta_dm_eir_uuid16_len;
305 UINT8 *bta_dm_eir_uuid16;
307 UINT32 uuid_mask[BTM_EIR_SERVICE_ARRAY_SIZE];
309 INT8 *bta_dm_eir_inq_tx_power;
310 UINT8 bta_dm_eir_flag_len;
311 UINT8 *bta_dm_eir_flags;
312 UINT8 bta_dm_eir_manufac_spec_len;
313 UINT8 *bta_dm_eir_manufac_spec;
316#if BLE_INCLUDED == TRUE
318#define BTA_BLE_LIMIT_DISC_FLAG BTM_BLE_LIMIT_DISC_FLAG
319#define BTA_BLE_GEN_DISC_FLAG BTM_BLE_GEN_DISC_FLAG
320#define BTA_BLE_BREDR_NOT_SPT BTM_BLE_BREDR_NOT_SPT
321#define BTA_BLE_NON_LIMIT_DISC_FLAG BTM_BLE_NON_LIMIT_DISC_FLAG
322#define BTA_BLE_ADV_FLAG_MASK BTM_BLE_ADV_FLAG_MASK
323#define BTA_BLE_LIMIT_DISC_MASK BTM_BLE_LIMIT_DISC_MASK
325#define BTA_BLE_AD_BIT_DEV_NAME BTM_BLE_AD_BIT_DEV_NAME
326#define BTA_BLE_AD_BIT_FLAGS BTM_BLE_AD_BIT_FLAGS
327#define BTA_BLE_AD_BIT_MANU BTM_BLE_AD_BIT_MANU
328#define BTA_BLE_AD_BIT_TX_PWR BTM_BLE_AD_BIT_TX_PWR
329#define BTA_BLE_AD_BIT_ATTR BTM_BLE_AD_BIT_ATTR
330#define BTA_BLE_AD_BIT_INT_RANGE BTM_BLE_AD_BIT_INT_RANGE
331#define BTA_BLE_AD_BIT_SERVICE BTM_BLE_AD_BIT_SERVICE
332#define BTA_BLE_AD_BIT_SERVICE_SOL BTM_BLE_AD_BIT_SERVICE_SOL
333#define BTA_BLE_AD_BIT_SERVICE_DATA BTM_BLE_AD_BIT_SERVICE_DATA
334#define BTA_BLE_AD_BIT_SIGN_DATA BTM_BLE_AD_BIT_SIGN_DATA
335typedef UINT16 tBTA_BLE_AD_MASK;
361#define BTA_BLE_NUM_AD_ATTR_MAX BTM_BLE_NUM_AD_ATTR_MAX
391 tBTA_BLE_AD_MASK ad_mask;
393 UINT8 tx_power_level;
394 UINT8 remote_name_len;
395 UINT8 *p_remote_name;
401typedef INT8 tBTA_DM_RSSI_VALUE;
402typedef UINT8 tBTA_DM_LINK_QUALITY_VALUE;
406#define BTA_SIG_STRENGTH_RSSI_MASK 1
407#define BTA_SIG_STRENGTH_LINK_QUALITY_MASK 2
409typedef UINT8 tBTA_SIG_STRENGTH_MASK;
413#define BTA_DM_ENABLE_EVT 0
414#define BTA_DM_DISABLE_EVT 1
415#define BTA_DM_PIN_REQ_EVT 2
416#define BTA_DM_AUTH_CMPL_EVT 3
417#define BTA_DM_AUTHORIZE_EVT 4
418#define BTA_DM_LINK_UP_EVT 5
419#define BTA_DM_LINK_DOWN_EVT 6
420#define BTA_DM_SIG_STRENGTH_EVT 7
421#define BTA_DM_BUSY_LEVEL_EVT 8
422#define BTA_DM_BOND_CANCEL_CMPL_EVT 9
423#define BTA_DM_SP_CFM_REQ_EVT 10
424#define BTA_DM_SP_KEY_NOTIF_EVT 11
425#define BTA_DM_SP_RMT_OOB_EVT 12
426#define BTA_DM_SP_KEYPRESS_EVT 13
427#define BTA_DM_ROLE_CHG_EVT 14
428#define BTA_DM_BLE_KEY_EVT 15
429#define BTA_DM_BLE_SEC_REQ_EVT 16
430#define BTA_DM_BLE_PASSKEY_NOTIF_EVT 17
431#define BTA_DM_BLE_PASSKEY_REQ_EVT 18
432#define BTA_DM_BLE_OOB_REQ_EVT 19
433#define BTA_DM_BLE_LOCAL_IR_EVT 20
434#define BTA_DM_BLE_LOCAL_ER_EVT 21
436#define BTA_DM_BLE_AUTH_CMPL_EVT 22
438#define BTA_DM_DEV_UNPAIRED_EVT 23
439#define BTA_DM_HW_ERROR_EVT 24
440typedef UINT8 tBTA_DM_SEC_EVT;
459#define BTA_DM_AUTH_FAIL_BASE (HCI_ERR_MAX_ERR + 10)
460#define BTA_DM_AUTH_CONVERT_SMP_CODE(x) (BTA_DM_AUTH_FAIL_BASE + (x))
461#define BTA_DM_AUTH_SMP_PASSKEY_FAIL BTA_DM_AUTH_CONVERT_SMP_CODE (SMP_PASSKEY_ENTRY_FAIL)
462#define BTA_DM_AUTH_SMP_OOB_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_OOB_FAIL)
463#define BTA_DM_AUTH_SMP_PAIR_AUTH_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_AUTH_FAIL)
464#define BTA_DM_AUTH_SMP_CONFIRM_VALUE_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_VALUE_ERR)
465#define BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_NOT_SUPPORT)
466#define BTA_DM_AUTH_SMP_ENC_KEY_SIZE (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_KEY_SIZE)
467#define BTA_DM_AUTH_SMP_INVALID_CMD (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_CMD)
468#define BTA_DM_AUTH_SMP_UNKNOWN_ERR (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_FAIL_UNKNOWN)
469#define BTA_DM_AUTH_SMP_REPEATED_ATTEMPT (BTA_DM_AUTH_FAIL_BASE + SMP_REPEATED_ATTEMPTS)
470#define BTA_DM_AUTH_SMP_INTERNAL_ERR (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_INTERNAL_ERR)
471#define BTA_DM_AUTH_SMP_UNKNOWN_IO (BTA_DM_AUTH_FAIL_BASE + SMP_UNKNOWN_IO_CAP)
472#define BTA_DM_AUTH_SMP_INIT_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_INIT_FAIL)
473#define BTA_DM_AUTH_SMP_CONFIRM_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_FAIL)
474#define BTA_DM_AUTH_SMP_BUSY (BTA_DM_AUTH_FAIL_BASE + SMP_BUSY)
475#define BTA_DM_AUTH_SMP_ENC_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_FAIL)
476#define BTA_DM_AUTH_SMP_RSP_TIMEOUT (BTA_DM_AUTH_FAIL_BASE + SMP_RSP_TIMEOUT)
479#define BTA_DM_BLE_SCAN_INT_MIN BTM_BLE_SCAN_INT_MIN
480#define BTA_DM_BLE_SCAN_INT_MAX BTM_BLE_SCAN_INT_MAX
481#define BTA_DM_BLE_SCAN_WIN_MIN BTM_BLE_SCAN_WIN_MIN
482#define BTA_DM_BLE_SCAN_WIN_MAX BTM_BLE_SCAN_WIN_MAX
483#define BTA_DM_BLE_CONN_INT_MIN BTM_BLE_CONN_INT_MIN
484#define BTA_DM_BLE_CONN_INT_MAX BTM_BLE_CONN_INT_MAX
485#define BTA_DM_BLE_CONN_LATENCY_MAX BTM_BLE_CONN_LATENCY_MAX
486#define BTA_DM_BLE_CONN_SUP_TOUT_MIN BTM_BLE_CONN_SUP_TOUT_MIN
487#define BTA_DM_BLE_CONN_SUP_TOUT_MAX BTM_BLE_CONN_SUP_TOUT_MAX
488#define BTA_DM_BLE_CONN_PARAM_UNDEF BTM_BLE_CONN_PARAM_UNDEF
491#define BTA_LE_KEY_PENC BTM_LE_KEY_PENC
492#define BTA_LE_KEY_PID BTM_LE_KEY_PID
493#define BTA_LE_KEY_PCSRK BTM_LE_KEY_PCSRK
494#define BTA_LE_KEY_LENC BTM_LE_KEY_LENC
495#define BTA_LE_KEY_LID BTM_LE_KEY_LID
496#define BTA_LE_KEY_LCSRK BTM_LE_KEY_LCSRK
497typedef UINT8 tBTA_LE_KEY_TYPE;
507 tBTA_LE_PENC_KEYS penc_key;
508 tBTA_LE_PCSRK_KEYS psrk_key;
510 tBTA_LE_LENC_KEYS lenc_key;
511 tBTA_LE_LCSRK_KEYS lcsrk_key;
514#define BTA_BLE_LOCAL_KEY_TYPE_ID 1
515#define BTA_BLE_LOCAL_KEY_TYPE_ER 2
516typedef UINT8 tBTA_DM_BLE_LOCAL_KEY_MASK;
525#define BTA_DM_SEC_GRANTED BTA_SUCCESS
526#define BTA_DM_SEC_PAIR_NOT_SPT BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT
527#define BTA_DM_SEC_REP_ATTEMPTS BTA_DM_AUTH_SMP_REPEATED_ATTEMPT
528typedef UINT8 tBTA_DM_BLE_SEC_GRANT;
531#define BTA_DM_BLE_ONN_NONE BTM_BLE_CONN_NONE
532#define BTA_DM_BLE_CONN_AUTO BTM_BLE_CONN_AUTO
533#define BTA_DM_BLE_CONN_SELECTIVE BTM_BLE_CONN_SELECTIVE
534typedef UINT8 tBTA_DM_BLE_CONN_TYPE;
536typedef BOOLEAN (tBTA_DM_BLE_SEL_CBACK)(BD_ADDR random_bda, UINT8 *p_remote_name);
548 tBTM_LE_KEY_TYPE key_type;
571 tBTA_SERVICE_ID service;
601 tBTA_SIG_STRENGTH_MASK mask;
602 tBTA_DM_RSSI_VALUE rssi_value;
603 tBTA_DM_LINK_QUALITY_VALUE link_quality_value;
614#define BTA_IO_CAP_OUT BTM_IO_CAP_OUT
615#define BTA_IO_CAP_IO BTM_IO_CAP_IO
616#define BTA_IO_CAP_IN BTM_IO_CAP_IN
617#define BTA_IO_CAP_NONE BTM_IO_CAP_NONE
618typedef tBTM_IO_CAP tBTA_IO_CAP;
620#define BTA_AUTH_SP_NO BTM_AUTH_SP_NO
622#define BTA_AUTH_SP_YES BTM_AUTH_SP_YES
624#define BTA_AUTH_AP_NO BTM_AUTH_AP_NO
626#define BTA_AUTH_AP_YES BTM_AUTH_AP_YES
628#define BTA_AUTH_SPGB_NO BTM_AUTH_SPGB_NO
630#define BTA_AUTH_SPGB_YES BTM_AUTH_SPGB_YES
632typedef tBTM_AUTH_REQ tBTA_AUTH_REQ;
634#define BTA_AUTH_DD_BOND BTM_AUTH_DD_BOND
635#define BTA_AUTH_GEN_BOND BTM_AUTH_SPGB_NO
636#define BTA_AUTH_BONDS BTM_AUTH_BONDS
638#define BTA_LE_AUTH_NO_BOND BTM_LE_AUTH_REQ_NO_BOND
639#define BTA_LE_AUTH_BOND BTM_LE_AUTH_REQ_BOND
640#define BTA_LE_AUTH_REQ_MITM BTM_LE_AUTH_REQ_MITM
641typedef tBTM_LE_AUTH_REQ tBTA_LE_AUTH_REQ;
643#define BTA_OOB_NONE BTM_OOB_NONE
644#define BTA_OOB_PRESENT BTM_OOB_PRESENT
645#if BTM_OOB_INCLUDED == TRUE
646#define BTA_OOB_UNKNOWN BTM_OOB_UNKNOWN
648typedef tBTM_OOB_DATA tBTA_OOB_DATA;
658 tBTA_AUTH_REQ loc_auth_req;
659 tBTA_AUTH_REQ rmt_auth_req;
660 tBTA_IO_CAP loc_io_caps;
661 tBTA_AUTH_REQ rmt_io_caps;
672typedef UINT8 tBTA_SP_KEY_TYPE;
678 tBTA_SP_KEY_TYPE notif_type;
728typedef void (tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event,
tBTA_DM_SEC *p_data);
731typedef tBTM_VSC_CMPL_CB tBTA_VENDOR_CMPL_CBACK;
735#define BTA_DM_INQ_RES_EVT 0
736#define BTA_DM_INQ_CMPL_EVT 1
737#define BTA_DM_DISC_RES_EVT 2
738#define BTA_DM_DISC_CMPL_EVT 3
739#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 4
741#define BTA_DM_INQ_RES_EVT 0
742#define BTA_DM_INQ_CMPL_EVT 1
743#define BTA_DM_DISC_RES_EVT 2
744#define BTA_DM_DISC_BLE_RES_EVT 3
745#define BTA_DM_DISC_CMPL_EVT 4
746#define BTA_DM_DI_DISC_CMPL_EVT 5
747#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 6
750typedef UINT8 tBTA_DM_SEARCH_EVT;
752#define BTA_DM_INQ_RES_IGNORE_RSSI BTM_INQ_RES_IGNORE_RSSI
760 BOOLEAN remt_name_not_required;
766#if (BLE_INCLUDED == TRUE)
767 UINT8 inq_result_type;
769 tBTM_BLE_EVT_TYPE ble_evt_type;
770 tBT_DEVICE_TYPE device_type;
794 tBTA_SERVICE_MASK services;
797 UINT32 raw_data_size;
798 tBT_DEVICE_TYPE device_type;
826typedef void (tBTA_DM_SEARCH_CBACK)(tBTA_DM_SEARCH_EVT event,
tBTA_DM_SEARCH *p_data);
829typedef void (tBTA_DM_EXEC_CBACK) (
void * p_param);
832typedef void (tBTA_DM_ENCRYPT_CBACK) (BD_ADDR bd_addr, tBTA_STATUS result);
834#if BLE_INCLUDED == TRUE
835#define BTA_DM_BLE_SEC_NONE BTM_BLE_SEC_NONE
836#define BTA_DM_BLE_SEC_ENCRYPT BTM_BLE_SEC_ENCRYPT
837#define BTA_DM_BLE_SEC_NO_MITM BTM_BLE_SEC_ENCRYPT_NO_MITM
838#define BTA_DM_BLE_SEC_MITM BTM_BLE_SEC_ENCRYPT_MITM
839typedef tBTM_BLE_SEC_ACT tBTA_DM_BLE_SEC_ACT;
841typedef UINT8 tBTA_DM_BLE_SEC_ACT;
845#define BTA_SERVICE_NAME_LEN 35
846#define BTA_SERVICE_DESP_LEN BTA_SERVICE_NAME_LEN
847#define BTA_PROVIDER_NAME_LEN BTA_SERVICE_NAME_LEN
851#define BTA_DM_LP_SWITCH HCI_ENABLE_MASTER_SLAVE_SWITCH
852#define BTA_DM_LP_HOLD HCI_ENABLE_HOLD_MODE
853#define BTA_DM_LP_SNIFF HCI_ENABLE_SNIFF_MODE
854#define BTA_DM_LP_PARK HCI_ENABLE_PARK_MODE
855typedef UINT16 tBTA_DM_LP_MASK;
858#define BTA_DM_PM_NO_ACTION 0x00
859#define BTA_DM_PM_PARK 0x10
860#define BTA_DM_PM_SNIFF 0x20
861#define BTA_DM_PM_SNIFF1 0x21
862#define BTA_DM_PM_SNIFF2 0x22
863#define BTA_DM_PM_SNIFF3 0x23
864#define BTA_DM_PM_SNIFF4 0x24
865#define BTA_DM_PM_SNIFF5 0x25
866#define BTA_DM_PM_SNIFF6 0x26
867#define BTA_DM_PM_SNIFF7 0x27
868#define BTA_DM_PM_SNIFF_USER0 0x28
869#define BTA_DM_PM_SNIFF_USER1 0x29
870#define BTA_DM_PM_ACTIVE 0x40
871#define BTA_DM_PM_RETRY 0x80
872#define BTA_DM_PM_NO_PREF 0x01
876#define BTA_DM_PM_SNIFF_RVL 0x02
877#define BTA_DM_PM_RETRY_RVL 0x08
880typedef UINT8 tBTA_DM_PM_ACTTION;
883#define BTA_DM_PM_SSR0 0
884#define BTA_DM_PM_SSR1 1
885#define BTA_DM_PM_SSR2 2
886#define BTA_DM_PM_SSR3 3
887#define BTA_DM_PM_SSR4 4
888#define BTA_DM_PM_SSR5 5
889#define BTA_DM_PM_SSR6 6
891#define BTA_DM_PM_NUM_EVTS 9
893#ifndef BTA_DM_PM_PARK_IDX
894#define BTA_DM_PM_PARK_IDX 5
897#define BTA_DM_SW_BB_TO_MM BTM_SW_BB_TO_MM
898#define BTA_DM_SW_MM_TO_BB BTM_SW_MM_TO_BB
899#define BTA_DM_SW_BB_TO_BTC BTM_SW_BB_TO_BTC
900#define BTA_DM_SW_BTC_TO_BB BTM_SW_BTC_TO_BB
902typedef tBTM_SW_DIR tBTA_DM_SW_DIR;
905#define BTA_DM_SWITCH_CMPL_EVT 0
907typedef UINT8 tBTA_DM_SWITCH_EVT;
908typedef void (tBTA_DM_SWITCH_CBACK)(tBTA_DM_SWITCH_EVT event, tBTA_STATUS status);
911#define BTA_DM_ROUTE_NONE 0x00
912#define BTA_DM_ROUTE_DAC 0x01
913#define BTA_DM_ROUTE_I2S 0x02
914#define BTA_DM_ROUTE_BT_MONO 0x04
915#define BTA_DM_ROUTE_BT_STEREO 0x08
916#define BTA_DM_ROUTE_HOST 0x10
917#define BTA_DM_ROUTE_FMTX 0x20
918#define BTA_DM_ROUTE_FMRX 0x40
919#define BTA_DM_ROUTE_BTSNK 0x80
921typedef UINT8 tBTA_DM_ROUTE_PATH;
927typedef tSDP_DI_RECORD tBTA_DI_RECORD;
929typedef tSDP_DI_GET_RECORD tBTA_DI_GET_RECORD;
933#ifndef BTA_DI_NUM_MAX
934#define BTA_DI_NUM_MAX 3
960BTA_API
extern tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK *p_cback);
974BTA_API
extern tBTA_STATUS BTA_DisableBluetooth(
void);
986BTA_API
extern tBTA_STATUS BTA_EnableTestMode(
void);
998BTA_API
extern void BTA_DisableTestMode(
void);
1013BTA_API
extern BOOLEAN BTA_DmIsDeviceUp(
void);
1025BTA_API
extern void BTA_DmSetDeviceName(
char *p_name);
1041BTA_API
extern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode);
1043BTA_API
extern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode, UINT8 pairable_mode, UINT8 conn_filter);
1057BTA_API
extern void BTA_DmSetScanParam (UINT16 page_scan_interval, UINT16 page_scan_window,
1058 UINT16 inquiry_scan_interval, UINT16 inquiry_scan_window);
1073BTA_API
extern void BTA_DmSetAfhChannels(UINT8 first, UINT8 last);
1087BTA_API
extern tBTA_STATUS BTA_DmVendorSpecificCommand (UINT16 opcode, UINT8 param_len,UINT8 *p_param_buf, tBTA_VENDOR_CMPL_CBACK *p_cback);
1104BTA_API
extern void BTA_DmSearch(
tBTA_DM_INQ *p_dm_inq, tBTA_SERVICE_MASK services,
1105 tBTA_DM_SEARCH_CBACK *p_cback);
1118BTA_API
extern void BTA_DmSearchCancel(
void);
1131BTA_API
extern void BTA_DmDiscover(BD_ADDR bd_addr, tBTA_SERVICE_MASK services,
1132 tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search);
1146BTA_API
extern void BTA_DmDiscoverUUID(BD_ADDR bd_addr, tSDP_UUID *uuid,
1147 tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search);
1159tBTA_STATUS BTA_DmGetCachedRemoteName(BD_ADDR remote_device, UINT8 **pp_cached_name);
1173BTA_API
extern BOOLEAN BTA_DmIsMaster(BD_ADDR bd_addr);
1187BTA_API
extern void BTA_DmBond(BD_ADDR bd_addr);
1200BTA_API
extern void BTA_DmBondCancel(BD_ADDR bd_addr);
1215BTA_API
extern void BTA_DmPinReply(BD_ADDR bd_addr, BOOLEAN accept, UINT8 pin_len,
1230BTA_API
extern void BTA_DmLinkPolicy(BD_ADDR bd_addr, tBTA_DM_LP_MASK policy_mask,
1233#if (BTM_OOB_INCLUDED == TRUE)
1244BTA_API
extern void BTA_DmLocalOob(
void);
1257BTA_API
extern void BTA_DmConfirm(BD_ADDR bd_addr, BOOLEAN accept);
1269BTA_API
extern void BTA_DmPasskeyCancel(BD_ADDR bd_addr);
1285BTA_API
extern tBTA_STATUS BTA_DmAddDevice(BD_ADDR bd_addr, LINK_KEY link_key,
1286 tBTA_SERVICE_MASK trusted_mask,
1287 BOOLEAN is_trusted);
1289BTA_API
extern void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class,
1290 LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask,
1291 BOOLEAN is_trusted, UINT8 key_type,
1292 tBTA_IO_CAP io_cap);
1306BTA_API
extern void BTA_DmAddDevWithName (BD_ADDR bd_addr, DEV_CLASS dev_class,
1307 BD_NAME bd_name, BD_FEATURES features,
1308 LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask,
1309 BOOLEAN is_trusted, UINT8 key_type, tBTA_IO_CAP io_cap);
1324BTA_API
extern tBTA_STATUS BTA_DmRemoveDevice(BD_ADDR bd_addr);
1339BTA_API
extern void BTA_DmAuthorizeReply(BD_ADDR bd_addr, tBTA_SERVICE_ID service,
1340 tBTA_AUTH_RESP response);
1355BTA_API
extern void BTA_DmSignalStrength(tBTA_SIG_STRENGTH_MASK mask, UINT16 period, BOOLEAN start);
1365void BTA_DmSendHciReset(
void);
1380BTA_API
extern void BTA_DmWriteInqTxPower(INT8 tx_power);
1393BTA_API
extern void BTA_DmEirAddUUID (
tBT_UUID *p_uuid);
1406BTA_API
extern void BTA_DmEirRemoveUUID (
tBT_UUID *p_uuid);
1436BTA_API
extern UINT8 *BTA_CheckEirData( UINT8 *p_eir, UINT8 tag, UINT8 *p_length );
1450BTA_API
extern void BTA_GetEirService( UINT8 *p_eir, tBTA_SERVICE_MASK *p_services );
1462BTA_API
extern BOOLEAN BTA_DmUseSsr( BD_ADDR bd_addr );
1474BTA_API
extern tBTA_STATUS BTA_DmSetLocalDiRecord( tBTA_DI_RECORD *p_device_info,
1488BTA_API
extern tBTA_STATUS BTA_DmGetLocalDiRecord( tBTA_DI_GET_RECORD *p_device_info,
1500BTA_API
extern void BTA_DmDiDiscover( BD_ADDR remote_device, tBTA_DISCOVERY_DB *p_db,
1501 UINT32 len, tBTA_DM_SEARCH_CBACK *p_cback );
1513BTA_API
extern tBTA_STATUS BTA_DmGetDiRecord( UINT8 get_record_index, tBTA_DI_GET_RECORD *p_device_info,
1514 tBTA_DISCOVERY_DB *p_db );
1525BTA_API
extern void BTA_SysFeatures (UINT16 sys_features);
1538BTA_API
extern void bta_dmexecutecallback (tBTA_DM_EXEC_CBACK* p_callback,
void * p_param);
1540#if (BTM_SCO_HCI_INCLUDED == TRUE)
1555BTA_API
extern void BTA_DmPcmInitSamples (UINT32 src_sps, UINT32 bits, UINT32 n_channels);
1573BTA_API
extern INT32 BTA_DmPcmResample (
void *p_src, UINT32 in_bytes,
void *p_dst);
1576#if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE))
1590BTA_API
extern void BTA_DmBleSecurityGrant(BD_ADDR bd_addr, tBTA_DM_BLE_SEC_GRANT res);
1608BTA_API
extern void BTA_DmBleSetBgConnType(tBTA_DM_BLE_CONN_TYPE bg_conn_type, tBTA_DM_BLE_SEL_CBACK *p_select_cback);
1624BTA_API
extern void BTA_DmBlePasskeyReply(BD_ADDR bd_addr, BOOLEAN accept, UINT32 passkey);
1641BTA_API
extern void BTA_DmAddBleDevice(BD_ADDR bd_addr, tBLE_ADDR_TYPE addr_type,
1642 tBT_DEVICE_TYPE dev_type);
1660BTA_API
extern void BTA_DmAddBleKey (BD_ADDR bd_addr,
tBTA_LE_KEY_VALUE *p_le_key,
1661 tBTA_LE_KEY_TYPE key_type);
1680BTA_API
extern void BTA_DmSetBlePrefConnParams(BD_ADDR bd_addr,
1681 UINT16 min_conn_int, UINT16 max_conn_int,
1682 UINT16 slave_latency, UINT16 supervision_tout );
1698BTA_API
extern void BTA_DmSetBleConnScanParams(UINT16 scan_interval,
1699 UINT16 scan_window );
1721 tBTA_DM_SEARCH_CBACK *p_cback);
1739 tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search);
1764BTA_API
extern void BTA_DmSetEncryption(BD_ADDR bd_addr, tBTA_DM_ENCRYPT_CBACK *p_callback,
1765 tBTA_DM_BLE_SEC_ACT sec_act);
1779BTA_API
extern void BTA_DmSetAfhChannelAssessment (BOOLEAN enable_or_disable);