| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1 | /****************************************************************************** | 
|  | 2 | * | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 3 | *  Copyright (C) 2003-2014 Broadcom Corporation | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 4 | * | 
|  | 5 | *  Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | 6 | *  you may not use this file except in compliance with the License. | 
|  | 7 | *  You may obtain a copy of the License at: | 
|  | 8 | * | 
|  | 9 | *  http://www.apache.org/licenses/LICENSE-2.0 | 
|  | 10 | * | 
|  | 11 | *  Unless required by applicable law or agreed to in writing, software | 
|  | 12 | *  distributed under the License is distributed on an "AS IS" BASIS, | 
|  | 13 | *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | 14 | *  See the License for the specific language governing permissions and | 
|  | 15 | *  limitations under the License. | 
|  | 16 | * | 
|  | 17 | ******************************************************************************/ | 
|  | 18 |  | 
|  | 19 | /****************************************************************************** | 
|  | 20 | * | 
|  | 21 | *  This is the public interface file for BTA, Broadcom's Bluetooth | 
|  | 22 | *  application layer for mobile phones. | 
|  | 23 | * | 
|  | 24 | ******************************************************************************/ | 
|  | 25 | #ifndef BTA_API_H | 
|  | 26 | #define BTA_API_H | 
|  | 27 |  | 
|  | 28 | #include "data_types.h" | 
|  | 29 | #include "bt_target.h" | 
|  | 30 | #include "bt_types.h" | 
|  | 31 | #include "btm_api.h" | 
|  | 32 | #include "uipc_msg.h" | 
|  | 33 |  | 
|  | 34 | #if BLE_INCLUDED == TRUE | 
|  | 35 | #include "btm_ble_api.h" | 
|  | 36 | #endif | 
|  | 37 |  | 
|  | 38 | /***************************************************************************** | 
|  | 39 | **  Constants and data types | 
|  | 40 | *****************************************************************************/ | 
|  | 41 |  | 
|  | 42 | /* Status Return Value */ | 
|  | 43 | #define BTA_SUCCESS             0           /* Successful operation. */ | 
|  | 44 | #define BTA_FAILURE             1           /* Generic failure. */ | 
|  | 45 | #define BTA_PENDING             2           /* API cannot be completed right now */ | 
|  | 46 | #define BTA_BUSY                3 | 
|  | 47 | #define BTA_NO_RESOURCES        4 | 
|  | 48 | #define BTA_WRONG_MODE          5 | 
|  | 49 |  | 
|  | 50 | typedef UINT8 tBTA_STATUS; | 
|  | 51 |  | 
|  | 52 | /* | 
|  | 53 | * Service ID | 
|  | 54 | * | 
|  | 55 | * NOTES: When you add a new Service ID for BTA AND require to change the value of BTA_MAX_SERVICE_ID, | 
|  | 56 | *        make sure that the correct security ID of the new service from Security service definitions (btm_api.h) | 
|  | 57 | *        should be added to bta_service_id_to_btm_srv_id_lkup_tbl table in bta_dm_act.c. | 
|  | 58 | */ | 
|  | 59 |  | 
|  | 60 | #define BTA_RES_SERVICE_ID      0           /* Reserved */ | 
|  | 61 | #define BTA_SPP_SERVICE_ID      1           /* Serial port profile. */ | 
|  | 62 | #define BTA_DUN_SERVICE_ID      2           /* Dial-up networking profile. */ | 
|  | 63 | #define BTA_A2DP_SOURCE_SERVICE_ID      3   /* A2DP Source profile. */ | 
|  | 64 | #define BTA_LAP_SERVICE_ID      4           /* LAN access profile. */ | 
|  | 65 | #define BTA_HSP_SERVICE_ID      5           /* Headset profile. */ | 
|  | 66 | #define BTA_HFP_SERVICE_ID      6           /* Hands-free profile. */ | 
|  | 67 | #define BTA_OPP_SERVICE_ID      7           /* Object push  */ | 
|  | 68 | #define BTA_FTP_SERVICE_ID      8           /* File transfer */ | 
|  | 69 | #define BTA_CTP_SERVICE_ID      9           /* Cordless Terminal */ | 
|  | 70 | #define BTA_ICP_SERVICE_ID      10          /* Intercom Terminal */ | 
|  | 71 | #define BTA_SYNC_SERVICE_ID     11          /* Synchronization */ | 
|  | 72 | #define BTA_BPP_SERVICE_ID      12          /* Basic printing profile */ | 
|  | 73 | #define BTA_BIP_SERVICE_ID      13          /* Basic Imaging profile */ | 
|  | 74 | #define BTA_PANU_SERVICE_ID     14          /* PAN User */ | 
|  | 75 | #define BTA_NAP_SERVICE_ID      15          /* PAN Network access point */ | 
|  | 76 | #define BTA_GN_SERVICE_ID       16          /* PAN Group Ad-hoc networks */ | 
|  | 77 | #define BTA_SAP_SERVICE_ID      17          /* SIM Access profile */ | 
|  | 78 | #define BTA_A2DP_SERVICE_ID     18          /* A2DP Sink */ | 
|  | 79 | #define BTA_AVRCP_SERVICE_ID    19          /* A/V remote control */ | 
|  | 80 | #define BTA_HID_SERVICE_ID      20          /* HID */ | 
|  | 81 | #define BTA_VDP_SERVICE_ID      21          /* Video distribution */ | 
|  | 82 | #define BTA_PBAP_SERVICE_ID     22          /* PhoneBook Access Server*/ | 
|  | 83 | #define BTA_HSP_HS_SERVICE_ID   23          /* HFP HS role */ | 
|  | 84 | #define BTA_HFP_HS_SERVICE_ID   24          /* HSP HS role */ | 
|  | 85 | #define BTA_MAP_SERVICE_ID      25          /* Message Access Profile */ | 
|  | 86 | #define BTA_MN_SERVICE_ID       26          /* Message Notification Service */ | 
|  | 87 | #define BTA_HDP_SERVICE_ID      27          /* Health Device Profile */ | 
|  | 88 | #define BTA_PCE_SERVICE_ID      28          /* PhoneBook Access Client*/ | 
|  | 89 |  | 
|  | 90 | #if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE | 
|  | 91 | /* BLE profile service ID */ | 
|  | 92 | #define BTA_BLE_SERVICE_ID      29          /* GATT profile */ | 
|  | 93 |  | 
|  | 94 | // btla-specific ++ | 
|  | 95 | #define BTA_USER_SERVICE_ID     30          /* User requested UUID */ | 
|  | 96 |  | 
|  | 97 | #define BTA_MAX_SERVICE_ID      31 | 
|  | 98 | // btla-specific -- | 
|  | 99 | #else | 
|  | 100 | #define BTA_USER_SERVICE_ID     29          /* User requested UUID */ | 
|  | 101 | #define BTA_MAX_SERVICE_ID      30 | 
|  | 102 | #endif | 
|  | 103 | /* service IDs (BTM_SEC_SERVICE_FIRST_EMPTY + 1) to (BTM_SEC_MAX_SERVICES - 1) | 
|  | 104 | * are used by BTA JV */ | 
|  | 105 | #define BTA_FIRST_JV_SERVICE_ID     (BTM_SEC_SERVICE_FIRST_EMPTY + 1) | 
|  | 106 | #define BTA_LAST_JV_SERVICE_ID      (BTM_SEC_MAX_SERVICES - 1) | 
|  | 107 |  | 
|  | 108 | typedef UINT8 tBTA_SERVICE_ID; | 
|  | 109 |  | 
|  | 110 | /* Service ID Mask */ | 
|  | 111 | #define BTA_RES_SERVICE_MASK        0x00000001  /* Reserved */ | 
|  | 112 | #define BTA_SPP_SERVICE_MASK        0x00000002  /* Serial port profile. */ | 
|  | 113 | #define BTA_DUN_SERVICE_MASK        0x00000004  /* Dial-up networking profile. */ | 
|  | 114 | #define BTA_FAX_SERVICE_MASK        0x00000008  /* Fax profile. */ | 
|  | 115 | #define BTA_LAP_SERVICE_MASK        0x00000010  /* LAN access profile. */ | 
|  | 116 | #define BTA_HSP_SERVICE_MASK        0x00000020  /* HSP AG role. */ | 
|  | 117 | #define BTA_HFP_SERVICE_MASK        0x00000040  /* HFP AG role */ | 
|  | 118 | #define BTA_OPP_SERVICE_MASK        0x00000080  /* Object push  */ | 
|  | 119 | #define BTA_FTP_SERVICE_MASK        0x00000100  /* File transfer */ | 
|  | 120 | #define BTA_CTP_SERVICE_MASK        0x00000200  /* Cordless Terminal */ | 
|  | 121 | #define BTA_ICP_SERVICE_MASK        0x00000400  /* Intercom Terminal */ | 
|  | 122 | #define BTA_SYNC_SERVICE_MASK       0x00000800  /* Synchronization */ | 
|  | 123 | #define BTA_BPP_SERVICE_MASK        0x00001000  /* Print server */ | 
|  | 124 | #define BTA_BIP_SERVICE_MASK        0x00002000  /* Basic Imaging */ | 
|  | 125 | #define BTA_PANU_SERVICE_MASK       0x00004000  /* PAN User */ | 
|  | 126 | #define BTA_NAP_SERVICE_MASK        0x00008000  /* PAN Network access point */ | 
|  | 127 | #define BTA_GN_SERVICE_MASK         0x00010000  /* PAN Group Ad-hoc networks */ | 
|  | 128 | #define BTA_SAP_SERVICE_MASK        0x00020000  /* PAN Group Ad-hoc networks */ | 
|  | 129 | #define BTA_A2DP_SERVICE_MASK       0x00040000  /* Advanced audio distribution */ | 
|  | 130 | #define BTA_AVRCP_SERVICE_MASK      0x00080000  /* A/V remote control */ | 
|  | 131 | #define BTA_HID_SERVICE_MASK        0x00100000  /* HID */ | 
|  | 132 | #define BTA_VDP_SERVICE_MASK        0x00200000  /* Video distribution */ | 
|  | 133 | #define BTA_PBAP_SERVICE_MASK       0x00400000  /* Phone Book Server */ | 
|  | 134 | #define BTA_HSP_HS_SERVICE_MASK     0x00800000  /* HFP HS role */ | 
|  | 135 | #define BTA_HFP_HS_SERVICE_MASK     0x01000000  /* HSP HS role */ | 
|  | 136 | #define BTA_MAS_SERVICE_MASK        0x02000000  /* Message Access Profile */ | 
|  | 137 | #define BTA_MN_SERVICE_MASK         0x04000000  /* Message Notification Profile */ | 
|  | 138 | #define BTA_HL_SERVICE_MASK         0x08000000  /* Health Device Profile */ | 
|  | 139 | #define BTA_PCE_SERVICE_MASK        0x10000000  /* Phone Book Client */ | 
|  | 140 |  | 
|  | 141 | #if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE | 
|  | 142 | #define BTA_BLE_SERVICE_MASK        0x20000000  /* GATT based service */ | 
|  | 143 | // btla-specific ++ | 
|  | 144 | #define BTA_USER_SERVICE_MASK       0x40000000  /* Message Notification Profile */ | 
|  | 145 | // btla-specific -- | 
|  | 146 | #else | 
|  | 147 | // btla-specific ++ | 
|  | 148 | #define BTA_USER_SERVICE_MASK       0x20000000  /* Message Notification Profile */ | 
|  | 149 | // btla-specific -- | 
|  | 150 | #endif | 
|  | 151 |  | 
|  | 152 | #if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE | 
|  | 153 | #define BTA_ALL_SERVICE_MASK        0x3FFFFFFF  /* All services supported by BTA. */ | 
|  | 154 | #else | 
|  | 155 | #define BTA_ALL_SERVICE_MASK        0x1FFFFFFF  /* All services supported by BTA. */ | 
|  | 156 | #endif | 
|  | 157 |  | 
|  | 158 | typedef UINT32 tBTA_SERVICE_MASK; | 
|  | 159 |  | 
|  | 160 | /* extended service mask, including mask with one or more GATT UUID */ | 
|  | 161 | typedef struct | 
|  | 162 | { | 
|  | 163 | tBTA_SERVICE_MASK   srvc_mask; | 
|  | 164 | UINT8               num_uuid; | 
|  | 165 | tBT_UUID            *p_uuid; | 
|  | 166 | }tBTA_SERVICE_MASK_EXT; | 
|  | 167 |  | 
|  | 168 | /* Security Setting Mask */ | 
|  | 169 | #define BTA_SEC_NONE            BTM_SEC_NONE                                         /* No security. */ | 
|  | 170 | #define BTA_SEC_AUTHORIZE       (BTM_SEC_IN_AUTHORIZE )                              /* Authorization required (only needed for out going connection )*/ | 
|  | 171 | #define BTA_SEC_AUTHENTICATE    (BTM_SEC_IN_AUTHENTICATE | BTM_SEC_OUT_AUTHENTICATE) /* Authentication required. */ | 
|  | 172 | #define BTA_SEC_ENCRYPT         (BTM_SEC_IN_ENCRYPT | BTM_SEC_OUT_ENCRYPT)           /* Encryption required. */ | 
|  | 173 |  | 
|  | 174 | typedef UINT8 tBTA_SEC; | 
|  | 175 |  | 
|  | 176 | /* Ignore for Discoverable, Connectable, Pairable and Connectable Paired only device modes */ | 
|  | 177 |  | 
|  | 178 | #define BTA_DM_IGNORE           0xFF | 
|  | 179 |  | 
| Andre Eisenbach | 781b5ad | 2013-05-28 15:11:43 +0900 | [diff] [blame] | 180 | #define BTA_ALL_APP_ID          0xFF | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 181 |  | 
|  | 182 | /* Discoverable Modes */ | 
|  | 183 | #define BTA_DM_NON_DISC         BTM_NON_DISCOVERABLE        /* Device is not discoverable. */ | 
|  | 184 | #define BTA_DM_GENERAL_DISC     BTM_GENERAL_DISCOVERABLE    /* General discoverable. */ | 
|  | 185 | #define BTA_DM_LIMITED_DISC     BTM_LIMITED_DISCOVERABLE    /* Limited discoverable. */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 186 | #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) | 
|  | 187 | #define BTA_DM_BLE_NON_DISCOVERABLE        BTM_BLE_NON_DISCOVERABLE        /* Device is not LE discoverable */ | 
|  | 188 | #define BTA_DM_BLE_GENERAL_DISCOVERABLE    BTM_BLE_GENERAL_DISCOVERABLE    /* Device is LE General discoverable */ | 
|  | 189 | #define BTA_DM_BLE_LIMITED_DISCOVERABLE    BTM_BLE_LIMITED_DISCOVERABLE    /* Device is LE Limited discoverable */ | 
|  | 190 | #endif | 
|  | 191 | typedef UINT16 tBTA_DM_DISC;        /* this discoverability mode is a bit mask among BR mode and LE mode */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 192 |  | 
|  | 193 | /* Connectable Modes */ | 
|  | 194 | #define BTA_DM_NON_CONN         BTM_NON_CONNECTABLE         /* Device is not connectable. */ | 
|  | 195 | #define BTA_DM_CONN             BTM_CONNECTABLE             /* Device is connectable. */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 196 | #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) | 
|  | 197 | #define BTA_DM_BLE_NON_CONNECTABLE      BTM_BLE_NON_CONNECTABLE     /* Device is LE non-connectable. */ | 
|  | 198 | #define BTA_DM_BLE_CONNECTABLE          BTM_BLE_CONNECTABLE         /* Device is LE connectable. */ | 
|  | 199 | #endif | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 200 |  | 
|  | 201 | // btla-specific ++ | 
|  | 202 | typedef UINT16 tBTA_DM_CONN; | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 203 |  | 
|  | 204 | #define BTA_TRANSPORT_UNKNOWN   0 | 
|  | 205 | #define BTA_TRANSPORT_BR_EDR    BT_TRANSPORT_BR_EDR | 
|  | 206 | #define BTA_TRANSPORT_LE        BT_TRANSPORT_LE | 
|  | 207 | typedef tBT_TRANSPORT tBTA_TRANSPORT; | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 208 |  | 
|  | 209 | /* Pairable Modes */ | 
|  | 210 | #define BTA_DM_PAIRABLE         1 | 
|  | 211 | #define BTA_DM_NON_PAIRABLE     0 | 
|  | 212 |  | 
|  | 213 | /* Connectable Paired Only Mode */ | 
|  | 214 | #define BTA_DM_CONN_ALL         0 | 
|  | 215 | #define BTA_DM_CONN_PAIRED      1 | 
|  | 216 |  | 
|  | 217 | /* Inquiry Modes */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 218 | #define BTA_DM_INQUIRY_NONE		BTM_INQUIRY_NONE            /*No BR inquiry. */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 219 | #define BTA_DM_GENERAL_INQUIRY  BTM_GENERAL_INQUIRY         /* Perform general inquiry. */ | 
|  | 220 | #define BTA_DM_LIMITED_INQUIRY  BTM_LIMITED_INQUIRY         /* Perform limited inquiry. */ | 
|  | 221 |  | 
|  | 222 | #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) | 
|  | 223 | #define BTA_BLE_INQUIRY_NONE    BTM_BLE_INQUIRY_NONE | 
|  | 224 | #define BTA_BLE_GENERAL_INQUIRY BTM_BLE_GENERAL_INQUIRY      /* Perform LE general inquiry. */ | 
|  | 225 | #define BTA_BLE_LIMITED_INQUIRY BTM_BLE_LIMITED_INQUIRY      /* Perform LE limited inquiry. */ | 
|  | 226 | #endif | 
|  | 227 | typedef UINT8 tBTA_DM_INQ_MODE; | 
|  | 228 |  | 
|  | 229 | /* Inquiry Filter Type */ | 
|  | 230 | #define BTA_DM_INQ_CLR          BTM_CLR_INQUIRY_FILTER          /* Clear inquiry filter. */ | 
|  | 231 | #define BTA_DM_INQ_DEV_CLASS    BTM_FILTER_COND_DEVICE_CLASS    /* Filter on device class. */ | 
|  | 232 | #define BTA_DM_INQ_BD_ADDR      BTM_FILTER_COND_BD_ADDR         /* Filter on a specific  BD address. */ | 
|  | 233 |  | 
|  | 234 | typedef UINT8 tBTA_DM_INQ_FILT; | 
|  | 235 |  | 
|  | 236 | /* Authorize Response */ | 
|  | 237 | #define BTA_DM_AUTH_PERM        0      /* Authorized for future connections to the service */ | 
|  | 238 | #define BTA_DM_AUTH_TEMP        1      /* Authorized for current connection only */ | 
|  | 239 | #define BTA_DM_NOT_AUTH         2      /* Not authorized for the service */ | 
|  | 240 |  | 
|  | 241 | typedef UINT8 tBTA_AUTH_RESP; | 
|  | 242 |  | 
|  | 243 | /* M/S preferred roles */ | 
|  | 244 | #define BTA_ANY_ROLE          0x00 | 
|  | 245 | #define BTA_MASTER_ROLE_PREF  0x01 | 
|  | 246 | #define BTA_MASTER_ROLE_ONLY  0x02 | 
|  | 247 |  | 
|  | 248 | typedef UINT8 tBTA_PREF_ROLES; | 
|  | 249 |  | 
|  | 250 | enum | 
|  | 251 | { | 
|  | 252 |  | 
|  | 253 | BTA_DM_NO_SCATTERNET,        /* Device doesn't support scatternet, it might | 
|  | 254 | support "role switch during connection" for | 
|  | 255 | an incoming connection, when it already has | 
|  | 256 | another connection in master role */ | 
|  | 257 | BTA_DM_PARTIAL_SCATTERNET,   /* Device supports partial scatternet. It can have | 
|  | 258 | simulateous connection in Master and Slave roles | 
|  | 259 | for short period of time */ | 
|  | 260 | BTA_DM_FULL_SCATTERNET       /* Device can have simultaneous connection in master | 
|  | 261 | and slave roles */ | 
|  | 262 |  | 
|  | 263 | }; | 
|  | 264 |  | 
|  | 265 |  | 
|  | 266 | /* Inquiry filter device class condition */ | 
|  | 267 | typedef struct | 
|  | 268 | { | 
|  | 269 | DEV_CLASS       dev_class;        /* device class of interest */ | 
|  | 270 | DEV_CLASS       dev_class_mask;   /* mask to determine the bits of device class of interest */ | 
|  | 271 | } tBTA_DM_COD_COND; | 
|  | 272 |  | 
|  | 273 |  | 
|  | 274 | /* Inquiry Filter Condition */ | 
|  | 275 | typedef union | 
|  | 276 | { | 
|  | 277 | BD_ADDR              bd_addr;            /* BD address of  device to filter. */ | 
|  | 278 | tBTA_DM_COD_COND     dev_class_cond;     /* Device class filter condition */ | 
|  | 279 | } tBTA_DM_INQ_COND; | 
|  | 280 |  | 
|  | 281 | /* Inquiry Parameters */ | 
|  | 282 | typedef struct | 
|  | 283 | { | 
|  | 284 | tBTA_DM_INQ_MODE    mode;           /* Inquiry mode, limited or general. */ | 
|  | 285 | UINT8               duration;       /* Inquiry duration in 1.28 sec units. */ | 
|  | 286 | UINT8               max_resps;      /* Maximum inquiry responses.  Set to zero for unlimited responses. */ | 
|  | 287 | BOOLEAN             report_dup;     /* report duplicated inquiry response with higher RSSI value */ | 
|  | 288 | tBTA_DM_INQ_FILT    filter_type;    /* Filter condition type. */ | 
|  | 289 | tBTA_DM_INQ_COND    filter_cond;    /* Filter condition data. */ | 
| Matthew Xie | 7f3e429 | 2013-09-30 12:44:10 -0700 | [diff] [blame] | 290 | #if (defined(BTA_HOST_INTERLEAVE_SEARCH) && BTA_HOST_INTERLEAVE_SEARCH == TRUE) | 
|  | 291 | UINT8               intl_duration[4];/*duration array storing the interleave scan's time portions*/ | 
|  | 292 | #endif | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 293 | } tBTA_DM_INQ; | 
|  | 294 |  | 
|  | 295 | typedef struct | 
|  | 296 | { | 
|  | 297 | UINT8   bta_dm_eir_min_name_len;        /* minimum length of local name when it is shortened */ | 
|  | 298 | #if (BTA_EIR_CANNED_UUID_LIST == TRUE) | 
|  | 299 | UINT8   bta_dm_eir_uuid16_len;          /* length of 16-bit UUIDs */ | 
|  | 300 | UINT8  *bta_dm_eir_uuid16;              /* 16-bit UUIDs */ | 
|  | 301 | #else | 
|  | 302 | UINT32  uuid_mask[BTM_EIR_SERVICE_ARRAY_SIZE]; /* mask of UUID list in EIR */ | 
|  | 303 | #endif | 
|  | 304 | INT8   *bta_dm_eir_inq_tx_power;        /* Inquiry TX power         */ | 
|  | 305 | UINT8   bta_dm_eir_flag_len;            /* length of flags in bytes */ | 
|  | 306 | UINT8  *bta_dm_eir_flags;               /* flags for EIR */ | 
|  | 307 | UINT8   bta_dm_eir_manufac_spec_len;    /* length of manufacturer specific in bytes */ | 
|  | 308 | UINT8  *bta_dm_eir_manufac_spec;        /* manufacturer specific */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 309 | UINT8   bta_dm_eir_additional_len;      /* length of additional data in bytes */ | 
|  | 310 | UINT8  *bta_dm_eir_additional;          /* additional data */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 311 | } tBTA_DM_EIR_CONF; | 
|  | 312 |  | 
|  | 313 | #if BLE_INCLUDED == TRUE | 
|  | 314 | /* ADV data flag bit definition used for BTM_BLE_AD_TYPE_FLAG */ | 
|  | 315 | #define BTA_BLE_LIMIT_DISC_FLAG     BTM_BLE_LIMIT_DISC_FLAG | 
|  | 316 | #define BTA_BLE_GEN_DISC_FLAG       BTM_BLE_GEN_DISC_FLAG | 
|  | 317 | #define BTA_BLE_BREDR_NOT_SPT       BTM_BLE_BREDR_NOT_SPT | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 318 | #define BTA_BLE_DMT_CONTROLLER_SPT  BTM_BLE_DMT_CONTROLLER_SPT | 
|  | 319 | #define BTA_BLE_DMT_HOST_SPT        BTM_BLE_DMT_HOST_SPT | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 320 | #define BTA_BLE_NON_LIMIT_DISC_FLAG BTM_BLE_NON_LIMIT_DISC_FLAG | 
|  | 321 | #define BTA_BLE_ADV_FLAG_MASK       BTM_BLE_ADV_FLAG_MASK | 
|  | 322 | #define BTA_BLE_LIMIT_DISC_MASK     BTM_BLE_LIMIT_DISC_MASK | 
|  | 323 |  | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 324 | /* ADV data bit 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_INT_RANGE       BTM_BLE_AD_BIT_INT_RANGE | 
|  | 330 | #define BTA_BLE_AD_BIT_SERVICE         BTM_BLE_AD_BIT_SERVICE | 
|  | 331 | #define BTA_BLE_AD_BIT_APPEARANCE      BTM_BLE_AD_BIT_APPEARANCE | 
|  | 332 | #define BTA_BLE_AD_BIT_PROPRIETARY     BTM_BLE_AD_BIT_PROPRIETARY | 
|  | 333 | #define BTA_DM_BLE_AD_BIT_SERVICE_SOL     BTM_BLE_AD_BIT_SERVICE_SOL | 
|  | 334 | #define BTA_DM_BLE_AD_BIT_SERVICE_DATA    BTM_BLE_AD_BIT_SERVICE_DATA | 
|  | 335 | #define BTA_DM_BLE_AD_BIT_SIGN_DATA       BTM_BLE_AD_BIT_SIGN_DATA | 
|  | 336 | #define BTA_DM_BLE_AD_BIT_SERVICE_128SOL  BTM_BLE_AD_BIT_SERVICE_128SOL | 
|  | 337 | #define BTA_DM_BLE_AD_BIT_PUBLIC_ADDR     BTM_BLE_AD_BIT_PUBLIC_ADDR | 
|  | 338 | #define BTA_DM_BLE_AD_BIT_RANDOM_ADDR     BTM_BLE_AD_BIT_RANDOM_ADDR | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 339 | #define BTA_DM_BLE_AD_BIT_SERVICE_128     BTM_BLE_AD_BIT_SERVICE_128      /*128-bit Service UUIDs*/ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 340 |  | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 341 | typedef  tBTM_BLE_AD_MASK  tBTA_BLE_AD_MASK; | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 342 |  | 
|  | 343 | /* slave preferred connection interval range */ | 
|  | 344 | typedef struct | 
|  | 345 | { | 
|  | 346 | UINT16  low; | 
|  | 347 | UINT16  hi; | 
|  | 348 |  | 
|  | 349 | }tBTA_BLE_INT_RANGE; | 
|  | 350 |  | 
|  | 351 | /* Service tag supported in the device */ | 
|  | 352 | typedef struct | 
|  | 353 | { | 
|  | 354 | UINT8       num_service; | 
|  | 355 | BOOLEAN     list_cmpl; | 
|  | 356 | UINT16      *p_uuid; | 
|  | 357 | }tBTA_BLE_SERVICE; | 
|  | 358 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 359 |  | 
|  | 360 | typedef struct | 
|  | 361 | { | 
|  | 362 | UINT8       len; | 
|  | 363 | UINT8      *p_val; | 
|  | 364 | }tBTA_BLE_MANU; | 
|  | 365 |  | 
|  | 366 | typedef struct | 
|  | 367 | { | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 368 | UINT8       adv_type; | 
|  | 369 | UINT8       len; | 
|  | 370 | UINT8       *p_val;     /* number of len byte */ | 
|  | 371 | }tBTA_BLE_PROP_ELEM; | 
|  | 372 |  | 
|  | 373 | /* vendor proprietary adv type */ | 
|  | 374 | typedef struct | 
|  | 375 | { | 
|  | 376 | UINT8                   num_elem; | 
|  | 377 | tBTA_BLE_PROP_ELEM      *p_elem; | 
|  | 378 | }tBTA_BLE_PROPRIETARY; | 
|  | 379 |  | 
|  | 380 | typedef struct | 
|  | 381 | { | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 382 | tBT_UUID    service_uuid; | 
|  | 383 | UINT8       len; | 
|  | 384 | UINT8      *p_val; | 
|  | 385 | }tBTA_BLE_SERVICE_DATA; | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 386 |  | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 387 | typedef tBTM_BLE_128SERVICE tBTA_BLE_128SERVICE; | 
|  | 388 | typedef tBTM_BLE_32SERVICE  tBTA_BLE_32SERVICE; | 
|  | 389 |  | 
|  | 390 | typedef struct | 
|  | 391 | { | 
|  | 392 | tBTA_BLE_INT_RANGE      int_range;          /* slave prefered conn interval range */ | 
|  | 393 | tBTA_BLE_MANU           *p_manu;            /* manufacturer data */ | 
|  | 394 | tBTA_BLE_SERVICE        *p_services;        /* 16 bits services */ | 
|  | 395 | tBTA_BLE_128SERVICE     *p_services_128b;   /* 128 bits service */ | 
|  | 396 | tBTA_BLE_32SERVICE      *p_service_32b;     /* 32 bits Service UUID */ | 
|  | 397 | tBTA_BLE_SERVICE        *p_sol_services;    /* 16 bits services Solicitation UUIDs */ | 
|  | 398 | tBTA_BLE_32SERVICE      *p_sol_service_32b; /* List of 32 bit Service Solicitation UUIDs */ | 
|  | 399 | tBTA_BLE_128SERVICE     *p_sol_service_128b;/* List of 128 bit Service Solicitation UUIDs */ | 
|  | 400 | tBTA_BLE_PROPRIETARY    *p_proprietary;     /* proprietary data */ | 
|  | 401 | tBTA_BLE_SERVICE_DATA   *p_service_data;    /* service data */ | 
|  | 402 | UINT16                  appearance;         /* appearance data */ | 
|  | 403 | UINT8                   flag; | 
|  | 404 | UINT8                   tx_power; | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 405 | }tBTA_BLE_ADV_DATA; | 
|  | 406 |  | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 407 | typedef void (tBTA_SET_ADV_DATA_CMPL_CBACK) (tBTA_STATUS status); | 
|  | 408 |  | 
|  | 409 | /* advertising channel map */ | 
|  | 410 | #define BTA_BLE_ADV_CHNL_37 BTM_BLE_ADV_CHNL_37 | 
|  | 411 | #define BTA_BLE_ADV_CHNL_38 BTM_BLE_ADV_CHNL_38 | 
|  | 412 | #define BTA_BLE_ADV_CHNL_39 BTM_BLE_ADV_CHNL_39 | 
|  | 413 | typedef tBTM_BLE_ADV_CHNL_MAP tBTA_BLE_ADV_CHNL_MAP; /* use as a bit mask */ | 
|  | 414 |  | 
|  | 415 | /* advertising filter policy */ | 
|  | 416 | typedef tBTM_BLE_AFP   tBTA_BLE_AFP; | 
|  | 417 |  | 
|  | 418 | /* adv event type */ | 
|  | 419 | #define BTA_BLE_CONNECT_EVT         BTM_BLE_CONNECT_EVT     /* Connectable undirected advertising */ | 
|  | 420 | #define BTA_BLE_CONNECT_DIR_EVT     BTM_BLE_CONNECT_DIR_EVT /* Connectable directed advertising */ | 
|  | 421 | #define BTA_BLE_DISCOVER_EVT        BTM_BLE_DISCOVER_EVT    /* Scannable undirected advertising */ | 
|  | 422 | #define BTA_BLE_NON_CONNECT_EVT     BTM_BLE_NON_CONNECT_EVT /* Non connectable undirected advertising */ | 
|  | 423 | typedef UINT8 tBTA_BLE_ADV_EVT; | 
|  | 424 |  | 
|  | 425 | /* adv tx power level */ | 
|  | 426 | #define BTA_BLE_ADV_TX_POWER_MIN        0           /* minimum tx power */ | 
|  | 427 | #define BTA_BLE_ADV_TX_POWER_LOW        1           /* low tx power     */ | 
|  | 428 | #define BTA_BLE_ADV_TX_POWER_MID        2           /* middle tx power  */ | 
|  | 429 | #define BTA_BLE_ADV_TX_POWER_UPPER      3           /* upper tx power   */ | 
|  | 430 | #define BTA_BLE_ADV_TX_POWER_MAX        4           /* maximum tx power */ | 
|  | 431 | typedef UINT8 tBTA_BLE_ADV_TX_POWER; | 
|  | 432 |  | 
|  | 433 | /* advertising instance parameters */ | 
|  | 434 | typedef struct | 
|  | 435 | { | 
|  | 436 | UINT16                  adv_int_min;            /* minimum adv interval */ | 
|  | 437 | UINT16                  adv_int_max;            /* maximum adv interval */ | 
|  | 438 | tBTA_BLE_ADV_EVT        adv_type;               /* adv event type */ | 
|  | 439 | tBTA_BLE_ADV_CHNL_MAP   channel_map;            /* adv channel map */ | 
|  | 440 | tBTA_BLE_AFP            adv_filter_policy;      /* advertising filter policy */ | 
|  | 441 | tBTA_BLE_ADV_TX_POWER   tx_power;               /* adv tx power */ | 
|  | 442 | }tBTA_BLE_ADV_PARAMS; | 
|  | 443 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 444 | /* These are the fields returned in each device adv packet.  It | 
|  | 445 | ** is returned in the results callback if registered. | 
|  | 446 | */ | 
|  | 447 | typedef struct | 
|  | 448 | { | 
|  | 449 | UINT8               conn_mode; | 
|  | 450 | tBTA_BLE_AD_MASK    ad_mask;        /* mask of the valid adv data field */ | 
|  | 451 | UINT8               flag; | 
|  | 452 | UINT8               tx_power_level; | 
|  | 453 | UINT8               remote_name_len; | 
|  | 454 | UINT8               *p_remote_name; | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 455 | tBTA_BLE_SERVICE    service; | 
|  | 456 | } tBTA_BLE_INQ_DATA; | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 457 |  | 
|  | 458 | enum | 
|  | 459 | { | 
|  | 460 | BTA_BLE_SCAN_MODE_PASS=1, | 
|  | 461 | BTA_BLE_SCAN_MODE_ACTI=2, | 
|  | 462 | BTA_BLE_SCAN_MODE_PASS_ACTI=3 | 
|  | 463 | }; | 
|  | 464 | typedef UINT8 tBTA_BLE_SCAN_MODE; | 
|  | 465 |  | 
|  | 466 | enum | 
|  | 467 | { | 
|  | 468 | BTA_BLE_DISCARD_OLD_ITEMS=0, | 
|  | 469 | BTA_BLE_DISCARD_LOWER_RSSI_ITEMS=1 | 
|  | 470 | }; | 
|  | 471 | typedef UINT8 tBTA_BLE_DISCARD_RULE; | 
|  | 472 |  | 
|  | 473 | enum | 
|  | 474 | { | 
|  | 475 | BTA_BLE_ADV_SEEN_FIRST_TIME=0, | 
|  | 476 | BTA_BLE_ADV_TRACKING_TIMEOUT=1 | 
|  | 477 | }; | 
|  | 478 | typedef UINT8 tBTA_BLE_ADV_CHANGE_REASON; | 
|  | 479 |  | 
|  | 480 | enum | 
|  | 481 | { | 
|  | 482 | BTA_BLE_BATCH_SCAN_ENB_EVT      = 1, | 
|  | 483 | BTA_BLE_BATCH_SCAN_CFG_STRG_EVT = 2, | 
|  | 484 | BTA_BLE_BATCH_SCAN_DATA_EVT     = 3, | 
|  | 485 | BTA_BLE_BATCH_SCAN_THRES_EVT    = 4, | 
|  | 486 | BTA_BLE_BATCH_SCAN_PARAM_EVT    = 5, | 
|  | 487 | BTA_BLE_BATCH_SCAN_DIS_EVT      = 6 | 
|  | 488 | }; | 
|  | 489 | typedef tBTM_BLE_BATCH_SCAN_EVT tBTA_BLE_BATCH_SCAN_EVT; | 
|  | 490 |  | 
|  | 491 | typedef tBTM_BLE_TRACK_ADV_ACTION tBTA_BLE_TRACK_ADV_ACTION; | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 492 | #endif | 
|  | 493 |  | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 494 | /* BLE customer specific feature function type definitions */ | 
|  | 495 | /* data type used on customer specific feature for RSSI monitoring */ | 
|  | 496 | #define BTA_BLE_RSSI_ALERT_HI        0 | 
|  | 497 | #define BTA_BLE_RSSI_ALERT_RANGE     1 | 
|  | 498 | #define BTA_BLE_RSSI_ALERT_LO        2 | 
|  | 499 | typedef UINT8 tBTA_DM_BLE_RSSI_ALERT_TYPE; | 
|  | 500 |  | 
|  | 501 | #define BTA_BLE_RSSI_ALERT_NONE		    BTM_BLE_RSSI_ALERT_NONE		/*	(0) */ | 
|  | 502 | #define BTA_BLE_RSSI_ALERT_HI_BIT		BTM_BLE_RSSI_ALERT_HI_BIT		/*	(1) */ | 
|  | 503 | #define BTA_BLE_RSSI_ALERT_RANGE_BIT	BTM_BLE_RSSI_ALERT_RANGE_BIT	/*	(1 << 1) */ | 
|  | 504 | #define BTA_BLE_RSSI_ALERT_LO_BIT		BTM_BLE_RSSI_ALERT_LO_BIT		/*	(1 << 2) */ | 
|  | 505 | typedef UINT8     tBTA_DM_BLE_RSSI_ALERT_MASK; | 
|  | 506 |  | 
|  | 507 |  | 
|  | 508 | typedef void (tBTA_DM_BLE_RSSI_CBACK) (BD_ADDR bd_addr, tBTA_DM_BLE_RSSI_ALERT_TYPE alert_type, INT8 rssi); | 
|  | 509 |  | 
|  | 510 | /* max number of filter spot for different filter type */ | 
|  | 511 | #define BTA_DM_BLE_MAX_UUID_FILTER     BTM_BLE_MAX_UUID_FILTER    /* 8 */ | 
|  | 512 | #define BTA_DM_BLE_MAX_ADDR_FILTER     BTM_BLE_MAX_ADDR_FILTER    /* 8 */ | 
|  | 513 | #define BTA_DM_BLE_PF_STR_COND_MAX     BTM_BLE_PF_STR_COND_MAX    /* 4    apply to manu data , or local name */ | 
|  | 514 | #define BTA_DM_BLE_PF_STR_LEN_MAX      BTM_BLE_PF_STR_LEN_MAX  /* match for first 20 bytes */ | 
|  | 515 |  | 
|  | 516 | #define BTA_DM_BLE_PF_LOGIC_OR              0 | 
|  | 517 | #define BTA_DM_BLE_PF_LOGIC_AND             1 | 
|  | 518 | typedef UINT8 tBTA_DM_BLE_PF_LOGIC_TYPE; | 
|  | 519 |  | 
|  | 520 | enum | 
|  | 521 | { | 
|  | 522 | BTA_DM_BLE_SCAN_COND_ADD, | 
|  | 523 | BTA_DM_BLE_SCAN_COND_DELETE, | 
|  | 524 | BTA_DM_BLE_SCAN_COND_CLEAR = 2 | 
|  | 525 | }; | 
|  | 526 | typedef UINT8 tBTA_DM_BLE_SCAN_COND_OP; | 
|  | 527 |  | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 528 | /* ADV payload filtering vendor specific call event */ | 
|  | 529 | enum | 
|  | 530 | { | 
|  | 531 | BTA_BLE_SCAN_PF_ENABLE_EVT = 7, | 
|  | 532 | BTA_BLE_SCAN_PF_COND_EVT | 
|  | 533 | }; | 
|  | 534 |  | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 535 | /* filter selection bit index  */ | 
|  | 536 | #define BTA_DM_BLE_PF_ADDR_FILTER          BTM_BLE_PF_ADDR_FILTER | 
| Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 537 | #define BTA_DM_BLE_PF_SRVC_DATA            BTM_BLE_PF_SRVC_DATA | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 538 | #define BTA_DM_BLE_PF_SRVC_UUID            BTM_BLE_PF_SRVC_UUID | 
|  | 539 | #define BTA_DM_BLE_PF_SRVC_SOL_UUID        BTM_BLE_PF_SRVC_SOL_UUID | 
|  | 540 | #define BTA_DM_BLE_PF_LOCAL_NAME           BTM_BLE_PF_LOCAL_NAME | 
|  | 541 | #define BTA_DM_BLE_PF_MANU_DATA            BTM_BLE_PF_MANU_DATA | 
| Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 542 | #define BTA_DM_BLE_PF_SRVC_DATA_PATTERN    BTM_BLE_PF_SRVC_DATA_PATTERN | 
| Andre Eisenbach | 3aa6054 | 2013-03-22 18:00:51 -0700 | [diff] [blame] | 543 | #define BTA_DM_BLE_PF_TYPE_ALL             BTM_BLE_PF_TYPE_ALL | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 544 | #define BTA_DM_BLE_PF_TYPE_MAX             BTM_BLE_PF_TYPE_MAX | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 545 | typedef UINT8   tBTA_DM_BLE_PF_COND_TYPE; | 
|  | 546 |  | 
| Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 547 | typedef union | 
|  | 548 | { | 
|  | 549 | UINT16              uuid16_mask; | 
|  | 550 | UINT32              uuid32_mask; | 
|  | 551 | UINT8               uuid128_mask[LEN_UUID_128]; | 
|  | 552 | }tBTA_DM_BLE_PF_COND_MASK; | 
|  | 553 |  | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 554 | typedef struct | 
|  | 555 | { | 
|  | 556 | tBLE_BD_ADDR                *p_target_addr;     /* target address, if NULL, generic UUID filter */ | 
|  | 557 | tBT_UUID                    uuid;           /* UUID condition */ | 
|  | 558 | tBTA_DM_BLE_PF_LOGIC_TYPE   cond_logic;    /* AND/OR */ | 
| Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 559 | tBTA_DM_BLE_PF_COND_MASK    *p_uuid_mask;           /* UUID condition mask, if NULL, match exact as UUID condition */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 560 | }tBTA_DM_BLE_PF_UUID_COND; | 
|  | 561 |  | 
|  | 562 | typedef struct | 
|  | 563 | { | 
|  | 564 | UINT8                   data_len;       /* <= 20 bytes */ | 
|  | 565 | UINT8                   *p_data; | 
|  | 566 | }tBTA_DM_BLE_PF_LOCAL_NAME_COND; | 
|  | 567 |  | 
|  | 568 | typedef struct | 
|  | 569 | { | 
|  | 570 | UINT16                  company_id;     /* company ID */ | 
|  | 571 | UINT8                   data_len;       /* <= 20 bytes */ | 
|  | 572 | UINT8                   *p_pattern; | 
| Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 573 | UINT16                  company_id_mask; /* UUID value mask */ | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 574 | UINT8                   *p_pattern_mask; /* Manufacturer data matching mask, same length | 
|  | 575 | as data pattern, set to all 0xff, match exact data */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 576 | }tBTA_DM_BLE_PF_MANU_COND; | 
|  | 577 |  | 
| Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 578 | typedef struct | 
|  | 579 | { | 
|  | 580 | UINT16                  uuid;     /* service ID */ | 
|  | 581 | UINT8                   data_len;       /* <= 20 bytes */ | 
|  | 582 | UINT8                   *p_pattern; | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 583 | UINT8                   *p_pattern_mask; /* Service data matching mask, same length | 
|  | 584 | as data pattern, set to all 0xff, match exact data */ | 
| Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 585 | }tBTA_DM_BLE_PF_SRVC_PATTERN_COND; | 
|  | 586 |  | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 587 | typedef union | 
|  | 588 | { | 
|  | 589 | tBLE_BD_ADDR                            target_addr; | 
|  | 590 | tBTA_DM_BLE_PF_LOCAL_NAME_COND             local_name; /* lcoal name filtering */ | 
|  | 591 | tBTA_DM_BLE_PF_MANU_COND                   manu_data;  /* manufactuer data filtering */ | 
|  | 592 | tBTA_DM_BLE_PF_UUID_COND                   srvc_uuid;  /* service UUID filtering */ | 
|  | 593 | tBTA_DM_BLE_PF_UUID_COND                   solicitate_uuid;   /* solicitated service UUID filtering */ | 
| Andre Eisenbach | b203d47 | 2013-11-20 17:23:06 -0800 | [diff] [blame] | 594 | tBTA_DM_BLE_PF_SRVC_PATTERN_COND           srvc_data;      /* service data pattern */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 595 | }tBTA_DM_BLE_PF_COND_PARAM; | 
|  | 596 |  | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 597 | typedef UINT8 tBTA_DM_BLE_PF_FILT_INDEX; | 
|  | 598 | typedef UINT8 tBTA_DM_BLE_PF_AVBL_SPACE; | 
|  | 599 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 600 | typedef INT8 tBTA_DM_RSSI_VALUE; | 
|  | 601 | typedef UINT8 tBTA_DM_LINK_QUALITY_VALUE; | 
|  | 602 |  | 
|  | 603 |  | 
|  | 604 | /* signal strength mask */ | 
|  | 605 | #define BTA_SIG_STRENGTH_RSSI_MASK          1 | 
|  | 606 | #define BTA_SIG_STRENGTH_LINK_QUALITY_MASK  2 | 
|  | 607 |  | 
|  | 608 | typedef UINT8 tBTA_SIG_STRENGTH_MASK; | 
|  | 609 |  | 
|  | 610 |  | 
|  | 611 | /* Security Callback Events */ | 
|  | 612 | #define BTA_DM_ENABLE_EVT               0       /* Enable Event */ | 
|  | 613 | #define BTA_DM_DISABLE_EVT              1       /* Disable Event */ | 
|  | 614 | #define BTA_DM_PIN_REQ_EVT              2       /* PIN request. */ | 
|  | 615 | #define BTA_DM_AUTH_CMPL_EVT            3       /* Authentication complete indication. */ | 
|  | 616 | #define BTA_DM_AUTHORIZE_EVT            4       /* Authorization request. */ | 
|  | 617 | #define BTA_DM_LINK_UP_EVT              5       /* Connection UP event */ | 
|  | 618 | #define BTA_DM_LINK_DOWN_EVT            6       /* Connection DOWN event */ | 
|  | 619 | #define BTA_DM_SIG_STRENGTH_EVT         7       /* Signal strength for bluetooth connection */ | 
|  | 620 | #define BTA_DM_BUSY_LEVEL_EVT           8       /* System busy level */ | 
|  | 621 | #define BTA_DM_BOND_CANCEL_CMPL_EVT     9       /* Bond cancel complete indication */ | 
|  | 622 | #define BTA_DM_SP_CFM_REQ_EVT           10      /* Simple Pairing User Confirmation request. */ | 
|  | 623 | #define BTA_DM_SP_KEY_NOTIF_EVT         11      /* Simple Pairing Passkey Notification */ | 
|  | 624 | #define BTA_DM_SP_RMT_OOB_EVT           12      /* Simple Pairing Remote OOB Data request. */ | 
|  | 625 | #define BTA_DM_SP_KEYPRESS_EVT          13      /* Key press notification event. */ | 
|  | 626 | #define BTA_DM_ROLE_CHG_EVT             14      /* Role Change event. */ | 
|  | 627 | #define BTA_DM_BLE_KEY_EVT              15      /* BLE SMP key event for peer device keys */ | 
|  | 628 | #define BTA_DM_BLE_SEC_REQ_EVT          16      /* BLE SMP security request */ | 
|  | 629 | #define BTA_DM_BLE_PASSKEY_NOTIF_EVT    17      /* SMP passkey notification event */ | 
|  | 630 | #define BTA_DM_BLE_PASSKEY_REQ_EVT      18      /* SMP passkey request event */ | 
|  | 631 | #define BTA_DM_BLE_OOB_REQ_EVT          19      /* SMP OOB request event */ | 
|  | 632 | #define BTA_DM_BLE_LOCAL_IR_EVT         20      /* BLE local IR event */ | 
|  | 633 | #define BTA_DM_BLE_LOCAL_ER_EVT         21      /* BLE local ER event */ | 
|  | 634 | // btla-specific ++ | 
|  | 635 | #define BTA_DM_BLE_AUTH_CMPL_EVT        22      /* BLE Auth complete */ | 
|  | 636 | // btla-specific -- | 
|  | 637 | #define BTA_DM_DEV_UNPAIRED_EVT         23 | 
|  | 638 | #define BTA_DM_HW_ERROR_EVT             24      /* BT Chip H/W error */ | 
| Ganesh Ganapathi Batta | 8d41691 | 2014-05-30 16:28:00 -0700 | [diff] [blame] | 639 | #define BTA_DM_LE_FEATURES_READ         25      /* Cotroller specific LE features are read */ | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 640 | #define BTA_DM_ENER_INFO_READ           26      /* Energy info read */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 641 | typedef UINT8 tBTA_DM_SEC_EVT; | 
|  | 642 |  | 
|  | 643 | /* Structure associated with BTA_DM_ENABLE_EVT */ | 
|  | 644 | typedef struct | 
|  | 645 | { | 
|  | 646 | BD_ADDR         bd_addr;            /* BD address of local device. */ | 
|  | 647 | tBTA_STATUS    status; | 
|  | 648 | } tBTA_DM_ENABLE; | 
|  | 649 |  | 
|  | 650 | /* Structure associated with BTA_DM_PIN_REQ_EVT */ | 
|  | 651 | typedef struct | 
|  | 652 | { | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 653 | /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in order */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 654 | BD_ADDR         bd_addr;            /* BD address peer device. */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 655 | DEV_CLASS       dev_class;          /* Class of Device */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 656 | BD_NAME         bd_name;            /* Name of peer device. */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 657 | } tBTA_DM_PIN_REQ; | 
|  | 658 |  | 
|  | 659 | /* BLE related definition */ | 
|  | 660 |  | 
|  | 661 | #define BTA_DM_AUTH_FAIL_BASE                   (HCI_ERR_MAX_ERR + 10) | 
|  | 662 | #define BTA_DM_AUTH_CONVERT_SMP_CODE(x)        (BTA_DM_AUTH_FAIL_BASE + (x)) | 
|  | 663 | #define BTA_DM_AUTH_SMP_PASSKEY_FAIL             BTA_DM_AUTH_CONVERT_SMP_CODE (SMP_PASSKEY_ENTRY_FAIL) | 
|  | 664 | #define BTA_DM_AUTH_SMP_OOB_FAIL                (BTA_DM_AUTH_FAIL_BASE + SMP_OOB_FAIL) | 
|  | 665 | #define BTA_DM_AUTH_SMP_PAIR_AUTH_FAIL          (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_AUTH_FAIL) | 
|  | 666 | #define BTA_DM_AUTH_SMP_CONFIRM_VALUE_FAIL      (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_VALUE_ERR) | 
|  | 667 | #define BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT        (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_NOT_SUPPORT) | 
|  | 668 | #define BTA_DM_AUTH_SMP_ENC_KEY_SIZE            (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_KEY_SIZE) | 
|  | 669 | #define BTA_DM_AUTH_SMP_INVALID_CMD             (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_CMD) | 
|  | 670 | #define BTA_DM_AUTH_SMP_UNKNOWN_ERR             (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_FAIL_UNKNOWN) | 
|  | 671 | #define BTA_DM_AUTH_SMP_REPEATED_ATTEMPT        (BTA_DM_AUTH_FAIL_BASE + SMP_REPEATED_ATTEMPTS) | 
|  | 672 | #define BTA_DM_AUTH_SMP_INTERNAL_ERR            (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_INTERNAL_ERR) | 
|  | 673 | #define BTA_DM_AUTH_SMP_UNKNOWN_IO              (BTA_DM_AUTH_FAIL_BASE + SMP_UNKNOWN_IO_CAP) | 
|  | 674 | #define BTA_DM_AUTH_SMP_INIT_FAIL               (BTA_DM_AUTH_FAIL_BASE + SMP_INIT_FAIL) | 
|  | 675 | #define BTA_DM_AUTH_SMP_CONFIRM_FAIL            (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_FAIL) | 
|  | 676 | #define BTA_DM_AUTH_SMP_BUSY                    (BTA_DM_AUTH_FAIL_BASE + SMP_BUSY) | 
|  | 677 | #define BTA_DM_AUTH_SMP_ENC_FAIL                (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_FAIL) | 
|  | 678 | #define BTA_DM_AUTH_SMP_RSP_TIMEOUT             (BTA_DM_AUTH_FAIL_BASE + SMP_RSP_TIMEOUT) | 
|  | 679 |  | 
|  | 680 | /* connection parameter boundary value and dummy value */ | 
|  | 681 | #define BTA_DM_BLE_SCAN_INT_MIN          BTM_BLE_SCAN_INT_MIN | 
|  | 682 | #define BTA_DM_BLE_SCAN_INT_MAX          BTM_BLE_SCAN_INT_MAX | 
|  | 683 | #define BTA_DM_BLE_SCAN_WIN_MIN          BTM_BLE_SCAN_WIN_MIN | 
|  | 684 | #define BTA_DM_BLE_SCAN_WIN_MAX          BTM_BLE_SCAN_WIN_MAX | 
|  | 685 | #define BTA_DM_BLE_CONN_INT_MIN          BTM_BLE_CONN_INT_MIN | 
|  | 686 | #define BTA_DM_BLE_CONN_INT_MAX          BTM_BLE_CONN_INT_MAX | 
|  | 687 | #define BTA_DM_BLE_CONN_LATENCY_MAX      BTM_BLE_CONN_LATENCY_MAX | 
|  | 688 | #define BTA_DM_BLE_CONN_SUP_TOUT_MIN     BTM_BLE_CONN_SUP_TOUT_MIN | 
|  | 689 | #define BTA_DM_BLE_CONN_SUP_TOUT_MAX     BTM_BLE_CONN_SUP_TOUT_MAX | 
|  | 690 | #define BTA_DM_BLE_CONN_PARAM_UNDEF      BTM_BLE_CONN_PARAM_UNDEF  /* use this value when a specific value not to be overwritten */ | 
|  | 691 |  | 
|  | 692 |  | 
|  | 693 | #define BTA_LE_KEY_PENC      BTM_LE_KEY_PENC  /* encryption information of peer device */ | 
|  | 694 | #define BTA_LE_KEY_PID       BTM_LE_KEY_PID   /* identity key of the peer device */ | 
|  | 695 | #define BTA_LE_KEY_PCSRK     BTM_LE_KEY_PCSRK   /* peer SRK */ | 
|  | 696 | #define BTA_LE_KEY_LENC      BTM_LE_KEY_LENC        /* master role security information:div */ | 
|  | 697 | #define BTA_LE_KEY_LID       BTM_LE_KEY_LID         /* master device ID key */ | 
|  | 698 | #define BTA_LE_KEY_LCSRK     BTM_LE_KEY_LCSRK        /* local CSRK has been deliver to peer */ | 
|  | 699 | typedef UINT8 tBTA_LE_KEY_TYPE; /* can be used as a bit mask */ | 
|  | 700 |  | 
|  | 701 |  | 
|  | 702 | typedef tBTM_LE_PENC_KEYS  tBTA_LE_PENC_KEYS ; | 
|  | 703 | typedef tBTM_LE_PCSRK_KEYS tBTA_LE_PCSRK_KEYS; | 
|  | 704 | typedef tBTM_LE_LENC_KEYS  tBTA_LE_LENC_KEYS  ; | 
|  | 705 | typedef tBTM_LE_LCSRK_KEYS tBTA_LE_LCSRK_KEYS ; | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 706 | typedef tBTM_LE_PID_KEYS   tBTA_LE_PID_KEYS ; | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 707 |  | 
|  | 708 | typedef union | 
|  | 709 | { | 
|  | 710 | tBTA_LE_PENC_KEYS   penc_key;       /* received peer encryption key */ | 
|  | 711 | tBTA_LE_PCSRK_KEYS  psrk_key;       /* received peer device SRK */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 712 | tBTA_LE_PID_KEYS    pid_key;        /* peer device ID key */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 713 | tBTA_LE_LENC_KEYS   lenc_key;       /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/ | 
|  | 714 | tBTA_LE_LCSRK_KEYS  lcsrk_key;      /* local device CSRK = d1(ER,DIV,1)*/ | 
|  | 715 | }tBTA_LE_KEY_VALUE; | 
|  | 716 |  | 
|  | 717 | #define BTA_BLE_LOCAL_KEY_TYPE_ID         1 | 
|  | 718 | #define BTA_BLE_LOCAL_KEY_TYPE_ER         2 | 
|  | 719 | typedef UINT8 tBTA_DM_BLE_LOCAL_KEY_MASK; | 
|  | 720 |  | 
|  | 721 | typedef struct | 
|  | 722 | { | 
|  | 723 | BT_OCTET16       ir; | 
|  | 724 | BT_OCTET16       irk; | 
|  | 725 | BT_OCTET16       dhk; | 
|  | 726 | }tBTA_BLE_LOCAL_ID_KEYS; | 
|  | 727 |  | 
|  | 728 | #define BTA_DM_SEC_GRANTED              BTA_SUCCESS | 
|  | 729 | #define BTA_DM_SEC_PAIR_NOT_SPT         BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT | 
|  | 730 | #define BTA_DM_SEC_REP_ATTEMPTS         BTA_DM_AUTH_SMP_REPEATED_ATTEMPT | 
|  | 731 | typedef UINT8 tBTA_DM_BLE_SEC_GRANT; | 
|  | 732 |  | 
|  | 733 |  | 
|  | 734 | #define BTA_DM_BLE_ONN_NONE             BTM_BLE_CONN_NONE | 
|  | 735 | #define BTA_DM_BLE_CONN_AUTO            BTM_BLE_CONN_AUTO | 
|  | 736 | #define BTA_DM_BLE_CONN_SELECTIVE       BTM_BLE_CONN_SELECTIVE | 
|  | 737 | typedef UINT8 tBTA_DM_BLE_CONN_TYPE; | 
|  | 738 |  | 
|  | 739 | typedef BOOLEAN (tBTA_DM_BLE_SEL_CBACK)(BD_ADDR random_bda, UINT8 *p_remote_name); | 
|  | 740 |  | 
|  | 741 | /* Structure associated with BTA_DM_BLE_SEC_REQ_EVT */ | 
|  | 742 | typedef struct | 
|  | 743 | { | 
|  | 744 | BD_ADDR         bd_addr;        /* peer address */ | 
|  | 745 | BD_NAME         bd_name;        /* peer device name */ | 
|  | 746 | } tBTA_DM_BLE_SEC_REQ; | 
|  | 747 |  | 
|  | 748 | typedef struct | 
|  | 749 | { | 
|  | 750 | BD_ADDR                 bd_addr;        /* peer address */ | 
|  | 751 | tBTM_LE_KEY_TYPE        key_type; | 
|  | 752 | tBTM_LE_KEY_VALUE       key_value; | 
|  | 753 | }tBTA_DM_BLE_KEY; | 
|  | 754 |  | 
|  | 755 | /* Structure associated with BTA_DM_AUTH_CMPL_EVT */ | 
|  | 756 | typedef struct | 
|  | 757 | { | 
|  | 758 | BD_ADDR         bd_addr;            /* BD address peer device. */ | 
|  | 759 | BD_NAME         bd_name;            /* Name of peer device. */ | 
|  | 760 | BOOLEAN         key_present;        /* Valid link key value in key element */ | 
|  | 761 | LINK_KEY        key;                /* Link key associated with peer device. */ | 
|  | 762 | UINT8           key_type;           /* The type of Link Key */ | 
|  | 763 | BOOLEAN         success;            /* TRUE of authentication succeeded, FALSE if failed. */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 764 | #if BLE_INCLUDED == TRUE | 
|  | 765 | BOOLEAN         privacy_enabled;    /* used for BLE device only */ | 
|  | 766 | #endif | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 767 | UINT8           fail_reason;        /* The HCI reason/error code for when success=FALSE */ | 
|  | 768 |  | 
|  | 769 | } tBTA_DM_AUTH_CMPL; | 
|  | 770 |  | 
|  | 771 |  | 
|  | 772 | /* Structure associated with BTA_DM_AUTHORIZE_EVT */ | 
|  | 773 | typedef struct | 
|  | 774 | { | 
|  | 775 | BD_ADDR         bd_addr;            /* BD address peer device. */ | 
|  | 776 | BD_NAME         bd_name;            /* Name of peer device. */ | 
|  | 777 | tBTA_SERVICE_ID service;            /* Service ID to authorize. */ | 
|  | 778 | // btla-specific ++ | 
|  | 779 | DEV_CLASS      dev_class; | 
|  | 780 | // btla-specific -- | 
|  | 781 | } tBTA_DM_AUTHORIZE; | 
|  | 782 |  | 
|  | 783 | /* Structure associated with BTA_DM_LINK_UP_EVT */ | 
|  | 784 | typedef struct | 
|  | 785 | { | 
|  | 786 | BD_ADDR         bd_addr;            /* BD address peer device. */ | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 787 | #if BLE_INCLUDED == TRUE | 
|  | 788 | tBTA_TRANSPORT  link_type; | 
|  | 789 | #endif | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 790 | } tBTA_DM_LINK_UP; | 
|  | 791 |  | 
|  | 792 | /* Structure associated with BTA_DM_LINK_DOWN_EVT */ | 
|  | 793 | typedef struct | 
|  | 794 | { | 
|  | 795 | BD_ADDR         bd_addr;            /* BD address peer device. */ | 
|  | 796 | UINT8           status;             /* connection open/closed */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 797 | BOOLEAN         is_removed;         /* TRUE if device is removed when link is down */ | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 798 | #if BLE_INCLUDED == TRUE | 
|  | 799 | tBTA_TRANSPORT  link_type; | 
|  | 800 | #endif | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 801 | } tBTA_DM_LINK_DOWN; | 
|  | 802 |  | 
|  | 803 | /* Structure associated with BTA_DM_ROLE_CHG_EVT */ | 
|  | 804 | typedef struct | 
|  | 805 | { | 
|  | 806 | BD_ADDR         bd_addr;            /* BD address peer device. */ | 
|  | 807 | UINT8           new_role;           /* the new connection role */ | 
|  | 808 | } tBTA_DM_ROLE_CHG; | 
|  | 809 |  | 
|  | 810 | /* Structure associated with BTA_DM_SIG_STRENGTH_EVT */ | 
|  | 811 | typedef struct | 
|  | 812 | { | 
|  | 813 | BD_ADDR         bd_addr;            /* BD address peer device. */ | 
|  | 814 | tBTA_SIG_STRENGTH_MASK mask;        /* mask for the values that are valid */ | 
|  | 815 | tBTA_DM_RSSI_VALUE  rssi_value; | 
|  | 816 | tBTA_DM_LINK_QUALITY_VALUE link_quality_value; | 
|  | 817 |  | 
|  | 818 | } tBTA_DM_SIG_STRENGTH; | 
|  | 819 |  | 
|  | 820 | /* Structure associated with BTA_DM_BUSY_LEVEL_EVT */ | 
|  | 821 | typedef struct | 
|  | 822 | { | 
|  | 823 | UINT8           level;     /* when paging or inquiring, level is 10. | 
|  | 824 | Otherwise, the number of ACL links */ | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 825 | UINT8           level_flags; /* indicates individual flags */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 826 | } tBTA_DM_BUSY_LEVEL; | 
|  | 827 |  | 
|  | 828 | #define BTA_IO_CAP_OUT      BTM_IO_CAP_OUT      /* DisplayOnly */ | 
|  | 829 | #define BTA_IO_CAP_IO       BTM_IO_CAP_IO       /* DisplayYesNo */ | 
|  | 830 | #define BTA_IO_CAP_IN       BTM_IO_CAP_IN       /* KeyboardOnly */ | 
|  | 831 | #define BTA_IO_CAP_NONE     BTM_IO_CAP_NONE     /* NoInputNoOutput */ | 
|  | 832 | typedef tBTM_IO_CAP     tBTA_IO_CAP; | 
|  | 833 |  | 
|  | 834 | #define BTA_AUTH_SP_NO    BTM_AUTH_SP_NO      /* 0 MITM Protection Not Required - Single Profile/non-bonding | 
|  | 835 | Numeric comparison with automatic accept allowed */ | 
|  | 836 | #define BTA_AUTH_SP_YES   BTM_AUTH_SP_YES     /* 1 MITM Protection Required - Single Profile/non-bonding | 
|  | 837 | Use IO Capabilities to determine authentication procedure */ | 
|  | 838 | #define BTA_AUTH_AP_NO    BTM_AUTH_AP_NO      /* 2 MITM Protection Not Required - All Profiles/dedicated bonding | 
|  | 839 | Numeric comparison with automatic accept allowed */ | 
|  | 840 | #define BTA_AUTH_AP_YES   BTM_AUTH_AP_YES     /* 3 MITM Protection Required - All Profiles/dedicated bonding | 
|  | 841 | Use IO Capabilities to determine authentication procedure */ | 
|  | 842 | #define BTA_AUTH_SPGB_NO  BTM_AUTH_SPGB_NO    /* 4 MITM Protection Not Required - Single Profiles/general bonding | 
|  | 843 | Numeric comparison with automatic accept allowed */ | 
|  | 844 | #define BTA_AUTH_SPGB_YES BTM_AUTH_SPGB_YES   /* 5 MITM Protection Required - Single Profiles/general bonding | 
|  | 845 | Use IO Capabilities to determine authentication procedure */ | 
|  | 846 | typedef tBTM_AUTH_REQ   tBTA_AUTH_REQ; | 
|  | 847 |  | 
|  | 848 | #define BTA_AUTH_DD_BOND    BTM_AUTH_DD_BOND  /* 2 this bit is set for dedicated bonding */ | 
|  | 849 | #define BTA_AUTH_GEN_BOND   BTM_AUTH_SPGB_NO  /* 4 this bit is set for general bonding */ | 
|  | 850 | #define BTA_AUTH_BONDS      BTM_AUTH_BONDS    /* 6 the general/dedicated bonding bits  */ | 
|  | 851 |  | 
|  | 852 | #define BTA_LE_AUTH_NO_BOND    BTM_LE_AUTH_REQ_NO_BOND  /* 0*/ | 
|  | 853 | #define BTA_LE_AUTH_BOND       BTM_LE_AUTH_REQ_BOND     /* 1 << 0 */ | 
|  | 854 | #define BTA_LE_AUTH_REQ_MITM   BTM_LE_AUTH_REQ_MITM    /* 1 << 2 */ | 
|  | 855 | typedef tBTM_LE_AUTH_REQ       tBTA_LE_AUTH_REQ;       /* combination of the above bit pattern */ | 
|  | 856 |  | 
|  | 857 | #define BTA_OOB_NONE        BTM_OOB_NONE | 
|  | 858 | #define BTA_OOB_PRESENT     BTM_OOB_PRESENT | 
|  | 859 | #if BTM_OOB_INCLUDED == TRUE | 
|  | 860 | #define BTA_OOB_UNKNOWN     BTM_OOB_UNKNOWN | 
|  | 861 | #endif | 
|  | 862 | typedef tBTM_OOB_DATA   tBTA_OOB_DATA; | 
|  | 863 |  | 
|  | 864 | /* Structure associated with BTA_DM_SP_CFM_REQ_EVT */ | 
|  | 865 | typedef struct | 
|  | 866 | { | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 867 | /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in order */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 868 | BD_ADDR         bd_addr;        /* peer address */ | 
|  | 869 | DEV_CLASS       dev_class;      /* peer CoD */ | 
|  | 870 | BD_NAME         bd_name;        /* peer device name */ | 
|  | 871 | UINT32          num_val;        /* the numeric value for comparison. If just_works, do not show this number to UI */ | 
|  | 872 | BOOLEAN         just_works;     /* TRUE, if "Just Works" association model */ | 
|  | 873 | tBTA_AUTH_REQ   loc_auth_req;   /* Authentication required for local device */ | 
|  | 874 | tBTA_AUTH_REQ   rmt_auth_req;   /* Authentication required for peer device */ | 
|  | 875 | tBTA_IO_CAP     loc_io_caps;    /* IO Capabilities of local device */ | 
|  | 876 | tBTA_AUTH_REQ   rmt_io_caps;    /* IO Capabilities of remote device */ | 
|  | 877 | } tBTA_DM_SP_CFM_REQ; | 
|  | 878 |  | 
|  | 879 | enum | 
|  | 880 | { | 
|  | 881 | BTA_SP_KEY_STARTED,         /* passkey entry started */ | 
|  | 882 | BTA_SP_KEY_ENTERED,         /* passkey digit entered */ | 
|  | 883 | BTA_SP_KEY_ERASED,          /* passkey digit erased */ | 
|  | 884 | BTA_SP_KEY_CLEARED,         /* passkey cleared */ | 
|  | 885 | BTA_SP_KEY_COMPLT           /* passkey entry completed */ | 
|  | 886 | }; | 
|  | 887 | typedef UINT8   tBTA_SP_KEY_TYPE; | 
|  | 888 |  | 
|  | 889 | /* Structure associated with BTA_DM_SP_KEYPRESS_EVT */ | 
|  | 890 | typedef struct | 
|  | 891 | { | 
|  | 892 | BD_ADDR             bd_addr;        /* peer address */ | 
|  | 893 | tBTA_SP_KEY_TYPE   notif_type; | 
|  | 894 | }tBTA_DM_SP_KEY_PRESS; | 
|  | 895 |  | 
|  | 896 | /* Structure associated with BTA_DM_SP_KEY_NOTIF_EVT */ | 
|  | 897 | typedef struct | 
|  | 898 | { | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 899 | /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in order */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 900 | BD_ADDR         bd_addr;        /* peer address */ | 
|  | 901 | DEV_CLASS       dev_class;      /* peer CoD */ | 
|  | 902 | BD_NAME         bd_name;        /* peer device name */ | 
|  | 903 | UINT32          passkey;        /* the numeric value for comparison. If just_works, do not show this number to UI */ | 
|  | 904 | } tBTA_DM_SP_KEY_NOTIF; | 
|  | 905 |  | 
|  | 906 | /* Structure associated with BTA_DM_SP_RMT_OOB_EVT */ | 
|  | 907 | typedef struct | 
|  | 908 | { | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 909 | /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in order */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 910 | BD_ADDR         bd_addr;        /* peer address */ | 
|  | 911 | DEV_CLASS       dev_class;      /* peer CoD */ | 
|  | 912 | BD_NAME         bd_name;        /* peer device name */ | 
|  | 913 | } tBTA_DM_SP_RMT_OOB; | 
|  | 914 |  | 
|  | 915 | /* Structure associated with BTA_DM_BOND_CANCEL_CMPL_EVT */ | 
|  | 916 | typedef struct | 
|  | 917 | { | 
|  | 918 | tBTA_STATUS     result;    /* TRUE of bond cancel succeeded, FALSE if failed. */ | 
|  | 919 | } tBTA_DM_BOND_CANCEL_CMPL; | 
|  | 920 |  | 
|  | 921 | /* Union of all security callback structures */ | 
|  | 922 | typedef union | 
|  | 923 | { | 
|  | 924 | tBTA_DM_ENABLE      enable;         /* BTA enabled */ | 
|  | 925 | tBTA_DM_PIN_REQ     pin_req;        /* PIN request. */ | 
|  | 926 | tBTA_DM_AUTH_CMPL   auth_cmpl;      /* Authentication complete indication. */ | 
|  | 927 | tBTA_DM_AUTHORIZE   authorize;      /* Authorization request. */ | 
|  | 928 | tBTA_DM_LINK_UP     link_up;       /* ACL connection down event */ | 
|  | 929 | tBTA_DM_LINK_DOWN   link_down;       /* ACL connection down event */ | 
|  | 930 | tBTA_DM_SIG_STRENGTH sig_strength;  /* rssi and link quality value */ | 
|  | 931 | tBTA_DM_BUSY_LEVEL  busy_level;     /* System busy level */ | 
|  | 932 | tBTA_DM_SP_CFM_REQ  cfm_req;        /* user confirm request */ | 
|  | 933 | tBTA_DM_SP_KEY_NOTIF key_notif;     /* passkey notification */ | 
|  | 934 | tBTA_DM_SP_RMT_OOB  rmt_oob;        /* remote oob */ | 
|  | 935 | tBTA_DM_BOND_CANCEL_CMPL bond_cancel_cmpl; /* Bond Cancel Complete indication */ | 
|  | 936 | tBTA_DM_SP_KEY_PRESS   key_press;   /* key press notification event */ | 
|  | 937 | tBTA_DM_ROLE_CHG     role_chg;       /* role change event */ | 
|  | 938 | tBTA_DM_BLE_SEC_REQ  ble_req;        /* BLE SMP related request */ | 
|  | 939 | tBTA_DM_BLE_KEY      ble_key;        /* BLE SMP keys used when pairing */ | 
|  | 940 | tBTA_BLE_LOCAL_ID_KEYS  ble_id_keys;  /* IR event */ | 
|  | 941 | BT_OCTET16              ble_er;       /* ER event data */ | 
|  | 942 | } tBTA_DM_SEC; | 
|  | 943 |  | 
|  | 944 | /* Security callback */ | 
|  | 945 | typedef void (tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC *p_data); | 
|  | 946 |  | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 947 | #define BTA_BLE_MULTI_ADV_MAX BTM_BLE_MULTI_ADV_MAX | 
|  | 948 | #define BTA_BLE_MULTI_ADV_ILLEGAL 0 | 
|  | 949 |  | 
|  | 950 | /* multi adv callback event */ | 
|  | 951 | #define BTA_BLE_MULTI_ADV_ENB_EVT           1 | 
|  | 952 | #define BTA_BLE_MULTI_ADV_DISABLE_EVT       2 | 
|  | 953 | #define BTA_BLE_MULTI_ADV_PARAM_EVT         3 | 
|  | 954 | #define BTA_BLE_MULTI_ADV_DATA_EVT          4 | 
|  | 955 |  | 
|  | 956 | typedef UINT8 tBTA_BLE_MULTI_ADV_EVT; | 
|  | 957 |  | 
|  | 958 | /* multi adv callback */ | 
|  | 959 | typedef void (tBTA_BLE_MULTI_ADV_CBACK)(tBTA_BLE_MULTI_ADV_EVT event, | 
|  | 960 | UINT8 inst_id, void *p_ref, tBTA_STATUS status); | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 961 | typedef UINT32 tBTA_DM_BLE_REF_VALUE; | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 962 |  | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 963 | #define BTA_DM_BLE_PF_ENABLE_EVT       BTM_BLE_PF_ENABLE | 
|  | 964 | #define BTA_DM_BLE_PF_CONFIG_EVT       BTM_BLE_PF_CONFIG | 
|  | 965 | typedef UINT8 tBTA_DM_BLE_PF_EVT; | 
|  | 966 |  | 
|  | 967 | typedef UINT8   tBTA_DM_BLE_PF_COND_TYPE; | 
|  | 968 |  | 
|  | 969 | #define BTA_DM_BLE_PF_LOGIC_OR              0 | 
|  | 970 | #define BTA_DM_BLE_PF_LOGIC_AND             1 | 
|  | 971 | typedef UINT8 tBTA_DM_BLE_PF_LOGIC_TYPE; | 
|  | 972 |  | 
|  | 973 | #define BTA_DM_BLE_PF_ENABLE       1 | 
|  | 974 | #define BTA_DM_BLE_PF_CONFIG       2 | 
|  | 975 | typedef UINT8 tBTA_DM_BLE_PF_ACTION; | 
|  | 976 |  | 
|  | 977 | typedef UINT8 tBTA_DM_BLE_PF_FILT_INDEX; | 
|  | 978 |  | 
|  | 979 | typedef UINT8 tBTA_DM_BLE_PF_AVBL_SPACE; | 
|  | 980 |  | 
|  | 981 | /* Config callback */ | 
|  | 982 | typedef void (tBTA_DM_BLE_PF_CFG_CBACK) (tBTA_DM_BLE_PF_ACTION action, | 
|  | 983 | tBTA_DM_BLE_PF_COND_TYPE cfg_cond, | 
|  | 984 | tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, tBTA_STATUS status, | 
|  | 985 | tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 986 | /* Param callback */ | 
|  | 987 | typedef void (tBTA_DM_BLE_PF_PARAM_CBACK) (UINT8 action_type, tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, | 
|  | 988 | tBTA_DM_BLE_REF_VALUE ref_value, tBTA_STATUS status); | 
|  | 989 |  | 
|  | 990 | /* Status callback */ | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 991 | typedef void (tBTA_DM_BLE_PF_STATUS_CBACK) (UINT8 action, tBTA_STATUS status, | 
|  | 992 | tBTA_DM_BLE_REF_VALUE ref_value); | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 993 |  | 
|  | 994 |  | 
|  | 995 | #define BTA_DM_BLE_PF_BRDCAST_ADDR_FILT  1 | 
|  | 996 | #define BTA_DM_BLE_PF_SERV_DATA_CHG_FILT 2 | 
|  | 997 | #define BTA_DM_BLE_PF_SERV_UUID          4 | 
|  | 998 | #define BTA_DM_BLE_PF_SERV_SOLC_UUID     8 | 
|  | 999 | #define BTA_DM_BLE_PF_LOC_NAME_CHECK    16 | 
|  | 1000 | #define BTA_DM_BLE_PF_MANUF_NAME_CHECK  32 | 
|  | 1001 | #define BTA_DM_BLE_PF_SERV_DATA_CHECK   64 | 
|  | 1002 | typedef UINT16 tBTA_DM_BLE_PF_FEAT_SEL; | 
|  | 1003 |  | 
|  | 1004 | #define BTA_DM_BLE_PF_LIST_LOGIC_OR   1 | 
|  | 1005 | #define BTA_DM_BLE_PF_LIST_LOGIC_AND  2 | 
|  | 1006 | typedef UINT16 tBTA_DM_BLE_PF_LIST_LOGIC_TYPE; | 
|  | 1007 |  | 
|  | 1008 | #define BTA_DM_BLE_PF_FILT_LOGIC_OR   0 | 
|  | 1009 | #define BTA_DM_BLE_PF_FILT_LOGIC_AND  1 | 
|  | 1010 | typedef UINT16 tBTA_DM_BLE_PF_FILT_LOGIC_TYPE; | 
|  | 1011 |  | 
|  | 1012 | typedef UINT8  tBTA_DM_BLE_PF_RSSI_THRESHOLD; | 
|  | 1013 | typedef UINT8  tBTA_DM_BLE_PF_DELIVERY_MODE; | 
|  | 1014 | typedef UINT16 tBTA_DM_BLE_PF_TIMEOUT; | 
|  | 1015 | typedef UINT8  tBTA_DM_BLE_PF_TIMEOUT_CNT; | 
|  | 1016 |  | 
|  | 1017 | typedef struct | 
|  | 1018 | { | 
|  | 1019 | tBTA_DM_BLE_PF_FEAT_SEL feat_seln; | 
|  | 1020 | tBTA_DM_BLE_PF_LIST_LOGIC_TYPE list_logic_type; | 
|  | 1021 | tBTA_DM_BLE_PF_FILT_LOGIC_TYPE filt_logic_type; | 
|  | 1022 | tBTA_DM_BLE_PF_RSSI_THRESHOLD  rssi_high_thres; | 
|  | 1023 | tBTA_DM_BLE_PF_RSSI_THRESHOLD  rssi_low_thres; | 
|  | 1024 | tBTA_DM_BLE_PF_DELIVERY_MODE dely_mode; | 
|  | 1025 | tBTA_DM_BLE_PF_TIMEOUT found_timeout; | 
|  | 1026 | tBTA_DM_BLE_PF_TIMEOUT lost_timeout; | 
|  | 1027 | tBTA_DM_BLE_PF_TIMEOUT_CNT found_timeout_cnt; | 
|  | 1028 | } tBTA_DM_BLE_PF_FILT_PARAMS; | 
|  | 1029 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1030 | /* Vendor Specific Command Callback */ | 
|  | 1031 | typedef tBTM_VSC_CMPL_CB        tBTA_VENDOR_CMPL_CBACK; | 
|  | 1032 |  | 
|  | 1033 | /* Search callback events */ | 
|  | 1034 | #define BTA_DM_INQ_RES_EVT              0       /* Inquiry result for a peer device. */ | 
|  | 1035 | #define BTA_DM_INQ_CMPL_EVT             1       /* Inquiry complete. */ | 
|  | 1036 | #define BTA_DM_DISC_RES_EVT             2       /* Discovery result for a peer device. */ | 
|  | 1037 | #define BTA_DM_DISC_BLE_RES_EVT         3       /* Discovery result for BLE GATT based servoce on a peer device. */ | 
|  | 1038 | #define BTA_DM_DISC_CMPL_EVT            4       /* Discovery complete. */ | 
|  | 1039 | #define BTA_DM_DI_DISC_CMPL_EVT         5       /* Discovery complete. */ | 
|  | 1040 | #define BTA_DM_SEARCH_CANCEL_CMPL_EVT   6       /* Search cancelled */ | 
|  | 1041 |  | 
|  | 1042 | typedef UINT8 tBTA_DM_SEARCH_EVT; | 
|  | 1043 |  | 
|  | 1044 | #define BTA_DM_INQ_RES_IGNORE_RSSI      BTM_INQ_RES_IGNORE_RSSI /* 0x7f RSSI value not supplied (ignore it) */ | 
|  | 1045 |  | 
|  | 1046 | /* Structure associated with BTA_DM_INQ_RES_EVT */ | 
|  | 1047 | typedef struct | 
|  | 1048 | { | 
|  | 1049 | BD_ADDR         bd_addr;                /* BD address peer device. */ | 
|  | 1050 | DEV_CLASS       dev_class;              /* Device class of peer device. */ | 
|  | 1051 | BOOLEAN         remt_name_not_required; /* Application sets this flag if it already knows the name of the device */ | 
|  | 1052 | /* If the device name is known to application BTA skips the remote name request */ | 
|  | 1053 | BOOLEAN         is_limited;             /* TRUE, if the limited inquiry bit is set in the CoD */ | 
|  | 1054 | INT8            rssi;                   /* The rssi value */ | 
|  | 1055 | UINT8           *p_eir;                 /* received EIR */ | 
|  | 1056 | #if (BLE_INCLUDED == TRUE) | 
|  | 1057 | UINT8               inq_result_type; | 
|  | 1058 | UINT8               ble_addr_type; | 
|  | 1059 | tBTM_BLE_EVT_TYPE   ble_evt_type; | 
|  | 1060 | tBT_DEVICE_TYPE     device_type; | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 1061 | UINT8               flag; | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1062 | #endif | 
|  | 1063 |  | 
|  | 1064 | } tBTA_DM_INQ_RES; | 
|  | 1065 |  | 
|  | 1066 | /* Structure associated with BTA_DM_INQ_CMPL_EVT */ | 
|  | 1067 | typedef struct | 
|  | 1068 | { | 
|  | 1069 | UINT8           num_resps;          /* Number of inquiry responses. */ | 
|  | 1070 | } tBTA_DM_INQ_CMPL; | 
|  | 1071 |  | 
|  | 1072 | /* Structure associated with BTA_DM_DI_DISC_CMPL_EVT */ | 
|  | 1073 | typedef struct | 
|  | 1074 | { | 
|  | 1075 | BD_ADDR             bd_addr;        /* BD address peer device. */ | 
|  | 1076 | UINT8               num_record;     /* Number of DI record */ | 
|  | 1077 | tBTA_STATUS         result; | 
|  | 1078 | } tBTA_DM_DI_DISC_CMPL; | 
|  | 1079 |  | 
|  | 1080 | /* Structure associated with BTA_DM_DISC_RES_EVT */ | 
|  | 1081 | typedef struct | 
|  | 1082 | { | 
|  | 1083 | BD_ADDR             bd_addr;        /* BD address peer device. */ | 
|  | 1084 | BD_NAME             bd_name;        /* Name of peer device. */ | 
|  | 1085 | tBTA_SERVICE_MASK   services;       /* Services found on peer device. */ | 
|  | 1086 | // btla-specific ++ | 
|  | 1087 | UINT8           *   p_raw_data;     /* Raw data for discovery DB */ | 
|  | 1088 | UINT32              raw_data_size;  /* size of raw data */ | 
|  | 1089 | tBT_DEVICE_TYPE     device_type;    /* device type in case it is BLE device */ | 
|  | 1090 | UINT32              num_uuids; | 
|  | 1091 | UINT8               *p_uuid_list; | 
|  | 1092 | // btla-specific -- | 
|  | 1093 | tBTA_STATUS         result; | 
|  | 1094 | } tBTA_DM_DISC_RES; | 
|  | 1095 |  | 
|  | 1096 | /* Structure associated with tBTA_DM_DISC_BLE_RES */ | 
|  | 1097 | typedef struct | 
|  | 1098 | { | 
|  | 1099 | BD_ADDR             bd_addr;        /* BD address peer device. */ | 
|  | 1100 | BD_NAME             bd_name;        /* Name of peer device. */ | 
|  | 1101 | tBT_UUID            service;        /* GATT based Services UUID found on peer device. */ | 
|  | 1102 | } tBTA_DM_DISC_BLE_RES; | 
|  | 1103 |  | 
|  | 1104 |  | 
|  | 1105 | /* Union of all search callback structures */ | 
|  | 1106 | typedef union | 
|  | 1107 | { | 
|  | 1108 | tBTA_DM_INQ_RES     inq_res;        /* Inquiry result for a peer device. */ | 
|  | 1109 | tBTA_DM_INQ_CMPL    inq_cmpl;       /* Inquiry complete. */ | 
|  | 1110 | tBTA_DM_DISC_RES    disc_res;       /* Discovery result for a peer device. */ | 
|  | 1111 | tBTA_DM_DISC_BLE_RES    disc_ble_res;   /* discovery result for GATT based service */ | 
|  | 1112 | tBTA_DM_DI_DISC_CMPL    di_disc;        /* DI discovery result for a peer device */ | 
|  | 1113 |  | 
|  | 1114 | } tBTA_DM_SEARCH; | 
|  | 1115 |  | 
|  | 1116 | /* Search callback */ | 
|  | 1117 | typedef void (tBTA_DM_SEARCH_CBACK)(tBTA_DM_SEARCH_EVT event, tBTA_DM_SEARCH *p_data); | 
|  | 1118 |  | 
|  | 1119 | /* Execute call back */ | 
|  | 1120 | typedef void (tBTA_DM_EXEC_CBACK) (void * p_param); | 
|  | 1121 |  | 
|  | 1122 | /* Encryption callback*/ | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 1123 | typedef void (tBTA_DM_ENCRYPT_CBACK) (BD_ADDR bd_addr, tBTA_TRANSPORT transport, tBTA_STATUS result); | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1124 |  | 
|  | 1125 | #if BLE_INCLUDED == TRUE | 
|  | 1126 | #define BTA_DM_BLE_SEC_NONE         BTM_BLE_SEC_NONE | 
|  | 1127 | #define BTA_DM_BLE_SEC_ENCRYPT      BTM_BLE_SEC_ENCRYPT | 
|  | 1128 | #define BTA_DM_BLE_SEC_NO_MITM      BTM_BLE_SEC_ENCRYPT_NO_MITM | 
|  | 1129 | #define BTA_DM_BLE_SEC_MITM         BTM_BLE_SEC_ENCRYPT_MITM | 
|  | 1130 | typedef tBTM_BLE_SEC_ACT            tBTA_DM_BLE_SEC_ACT; | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 1131 |  | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 1132 | typedef tBTM_BLE_TX_TIME_MS         tBTA_DM_BLE_TX_TIME_MS; | 
|  | 1133 | typedef tBTM_BLE_RX_TIME_MS         tBTA_DM_BLE_RX_TIME_MS; | 
|  | 1134 | typedef tBTM_BLE_IDLE_TIME_MS       tBTA_DM_BLE_IDLE_TIME_MS; | 
|  | 1135 | typedef tBTM_BLE_ENERGY_USED        tBTA_DM_BLE_ENERGY_USED; | 
|  | 1136 |  | 
|  | 1137 | #define BTA_DM_CONTRL_UNKNOWN 0       /* Unknown state */ | 
|  | 1138 | #define BTA_DM_CONTRL_ACTIVE  1       /* ACL link on, SCO link ongoing, sniff mode */ | 
|  | 1139 | #define BTA_DM_CONTRL_SCAN    2       /* Scan state - paging/inquiry/trying to connect*/ | 
|  | 1140 | #define BTA_DM_CONTRL_IDLE    3       /* Idle state - page scan, LE advt, inquiry scan */ | 
|  | 1141 |  | 
|  | 1142 | typedef UINT8 tBTA_DM_CONTRL_STATE; | 
|  | 1143 |  | 
|  | 1144 |  | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 1145 | typedef void (tBTA_BLE_SCAN_THRESHOLD_CBACK)(tBTA_DM_BLE_REF_VALUE ref_value); | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 1146 |  | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 1147 | typedef void (tBTA_BLE_SCAN_REP_CBACK) (tBTA_DM_BLE_REF_VALUE ref_value, UINT8 report_format, | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 1148 | UINT8 num_records, UINT16 data_len, | 
|  | 1149 | UINT8* p_rep_data, tBTA_STATUS status); | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 1150 |  | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 1151 | typedef void (tBTA_BLE_SCAN_SETUP_CBACK) (tBTA_BLE_BATCH_SCAN_EVT evt, | 
|  | 1152 | tBTA_DM_BLE_REF_VALUE ref_value, | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 1153 | tBTA_STATUS status); | 
|  | 1154 |  | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 1155 | typedef void (tBTA_BLE_TRACK_ADV_CMPL_CBACK)(int action, tBTA_STATUS status, | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 1156 | tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, | 
|  | 1157 | tBTA_DM_BLE_REF_VALUE ref_value); | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 1158 |  | 
|  | 1159 | typedef void (tBTA_BLE_TRACK_ADV_CBACK)(int filt_index, tBLE_ADDR_TYPE addr_type, BD_ADDR bda, | 
|  | 1160 | int adv_state, tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 1161 |  | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 1162 | typedef void (tBTA_BLE_ENERGY_INFO_CBACK)(tBTA_DM_BLE_TX_TIME_MS tx_time, | 
|  | 1163 | tBTA_DM_BLE_RX_TIME_MS rx_time, | 
|  | 1164 | tBTA_DM_BLE_IDLE_TIME_MS idle_time, | 
|  | 1165 | tBTA_DM_BLE_ENERGY_USED  energy_used, | 
|  | 1166 | tBTA_DM_CONTRL_STATE ctrl_state, | 
|  | 1167 | tBTA_STATUS status); | 
|  | 1168 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1169 | #else | 
|  | 1170 | typedef UINT8                       tBTA_DM_BLE_SEC_ACT; | 
|  | 1171 | #endif | 
|  | 1172 |  | 
|  | 1173 | /* Maximum service name length */ | 
|  | 1174 | #define BTA_SERVICE_NAME_LEN    35 | 
|  | 1175 | #define BTA_SERVICE_DESP_LEN    BTA_SERVICE_NAME_LEN | 
|  | 1176 | #define BTA_PROVIDER_NAME_LEN   BTA_SERVICE_NAME_LEN | 
|  | 1177 |  | 
|  | 1178 |  | 
|  | 1179 | /* link policy masks  */ | 
|  | 1180 | #define BTA_DM_LP_SWITCH        HCI_ENABLE_MASTER_SLAVE_SWITCH | 
|  | 1181 | #define BTA_DM_LP_HOLD          HCI_ENABLE_HOLD_MODE | 
|  | 1182 | #define BTA_DM_LP_SNIFF         HCI_ENABLE_SNIFF_MODE | 
|  | 1183 | #define BTA_DM_LP_PARK          HCI_ENABLE_PARK_MODE | 
|  | 1184 | typedef UINT16 tBTA_DM_LP_MASK; | 
|  | 1185 |  | 
|  | 1186 | /* power mode actions  */ | 
|  | 1187 | #define BTA_DM_PM_NO_ACTION    0x00       /* no change to the current pm setting */ | 
|  | 1188 | #define BTA_DM_PM_PARK         0x10       /* prefers park mode */ | 
|  | 1189 | #define BTA_DM_PM_SNIFF        0x20       /* prefers sniff mode */ | 
|  | 1190 | #define BTA_DM_PM_SNIFF1       0x21       /* prefers sniff1 mode */ | 
|  | 1191 | #define BTA_DM_PM_SNIFF2       0x22       /* prefers sniff2 mode */ | 
|  | 1192 | #define BTA_DM_PM_SNIFF3       0x23       /* prefers sniff3 mode */ | 
|  | 1193 | #define BTA_DM_PM_SNIFF4       0x24       /* prefers sniff4 mode */ | 
|  | 1194 | #define BTA_DM_PM_SNIFF5       0x25       /* prefers sniff5 mode */ | 
|  | 1195 | #define BTA_DM_PM_SNIFF6       0x26       /* prefers sniff6 mode */ | 
|  | 1196 | #define BTA_DM_PM_SNIFF7       0x27       /* prefers sniff7 mode */ | 
|  | 1197 | #define BTA_DM_PM_SNIFF_USER0  0x28       /* prefers user-defined sniff0 mode (testtool only) */ | 
|  | 1198 | #define BTA_DM_PM_SNIFF_USER1  0x29       /* prefers user-defined sniff1 mode (testtool only) */ | 
|  | 1199 | #define BTA_DM_PM_ACTIVE       0x40       /* prefers active mode */ | 
|  | 1200 | #define BTA_DM_PM_RETRY        0x80       /* retry power mode based on current settings */ | 
|  | 1201 | #define BTA_DM_PM_NO_PREF      0x01       /* service has no prefernce on power mode setting. eg. connection to service got closed */ | 
|  | 1202 |  | 
|  | 1203 | typedef UINT8 tBTA_DM_PM_ACTTION; | 
|  | 1204 |  | 
|  | 1205 | /* index to bta_dm_ssr_spec */ | 
|  | 1206 | #define BTA_DM_PM_SSR0          0 | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 1207 | #define BTA_DM_PM_SSR1          1       /* BTA_DM_PM_SSR1 will be dedicated for | 
|  | 1208 | HH SSR setting entry, no other profile can use it */ | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1209 | #define BTA_DM_PM_SSR2          2 | 
|  | 1210 | #define BTA_DM_PM_SSR3          3 | 
|  | 1211 | #define BTA_DM_PM_SSR4          4 | 
|  | 1212 | #define BTA_DM_PM_SSR5          5 | 
|  | 1213 | #define BTA_DM_PM_SSR6          6 | 
|  | 1214 |  | 
|  | 1215 | #define BTA_DM_PM_NUM_EVTS      9 | 
|  | 1216 |  | 
|  | 1217 | #ifndef BTA_DM_PM_PARK_IDX | 
|  | 1218 | #define BTA_DM_PM_PARK_IDX      5 /* the actual index to bta_dm_pm_md[] for PARK mode */ | 
|  | 1219 | #endif | 
|  | 1220 |  | 
| Adam Hampson | 63399d9 | 2014-05-19 16:23:45 -0700 | [diff] [blame] | 1221 | #ifndef BTA_DM_PM_SNIFF_A2DP_IDX | 
|  | 1222 | #define BTA_DM_PM_SNIFF_A2DP_IDX      BTA_DM_PM_SNIFF | 
|  | 1223 | #endif | 
|  | 1224 |  | 
|  | 1225 | #ifndef BTA_DM_PM_SNIFF_HD_IDLE_IDX | 
|  | 1226 | #define BTA_DM_PM_SNIFF_HD_IDLE_IDX   BTA_DM_PM_SNIFF2 | 
|  | 1227 | #endif | 
|  | 1228 |  | 
|  | 1229 | #ifndef BTA_DM_PM_SNIFF_SCO_OPEN_IDX | 
|  | 1230 | #define BTA_DM_PM_SNIFF_SCO_OPEN_IDX  BTA_DM_PM_SNIFF3 | 
|  | 1231 | #endif | 
|  | 1232 |  | 
|  | 1233 | #ifndef BTA_DM_PM_SNIFF_HD_ACTIVE_IDX | 
|  | 1234 | #define BTA_DM_PM_SNIFF_HD_ACTIVE_IDX BTA_DM_PM_SNIFF4 | 
|  | 1235 | #endif | 
|  | 1236 |  | 
|  | 1237 | #ifndef BTA_DM_PM_SNIFF_HH_OPEN_IDX | 
|  | 1238 | #define BTA_DM_PM_SNIFF_HH_OPEN_IDX BTA_DM_PM_SNIFF2 | 
|  | 1239 | #endif | 
|  | 1240 |  | 
|  | 1241 | #ifndef BTA_DM_PM_SNIFF_HH_ACTIVE_IDX | 
|  | 1242 | #define BTA_DM_PM_SNIFF_HH_ACTIVE_IDX BTA_DM_PM_SNIFF2 | 
|  | 1243 | #endif | 
|  | 1244 |  | 
|  | 1245 | #ifndef BTA_DM_PM_SNIFF_HH_IDLE_IDX | 
|  | 1246 | #define BTA_DM_PM_SNIFF_HH_IDLE_IDX BTA_DM_PM_SNIFF2 | 
|  | 1247 | #endif | 
|  | 1248 |  | 
|  | 1249 |  | 
|  | 1250 | #ifndef BTA_DM_PM_HH_OPEN_DELAY | 
|  | 1251 | #define BTA_DM_PM_HH_OPEN_DELAY 30000 | 
|  | 1252 | #endif | 
|  | 1253 |  | 
|  | 1254 | #ifndef BTA_DM_PM_HH_ACTIVE_DELAY | 
|  | 1255 | #define BTA_DM_PM_HH_ACTIVE_DELAY 30000 | 
|  | 1256 | #endif | 
|  | 1257 |  | 
|  | 1258 | #ifndef BTA_DM_PM_HH_IDLE_DELAY | 
|  | 1259 | #define BTA_DM_PM_HH_IDLE_DELAY 30000 | 
|  | 1260 | #endif | 
|  | 1261 |  | 
|  | 1262 | /* The Sniff Parameters defined below must be ordered from highest | 
|  | 1263 | * latency (biggest interval) to lowest latency.  If there is a conflict | 
|  | 1264 | * among the connected services the setting with the lowest latency will | 
|  | 1265 | * be selected.  If a device should override a sniff parameter then it | 
|  | 1266 | * must insure that order is maintained. | 
|  | 1267 | */ | 
|  | 1268 | #ifndef BTA_DM_PM_SNIFF_MAX | 
|  | 1269 | #define BTA_DM_PM_SNIFF_MAX      800 | 
|  | 1270 | #define BTA_DM_PM_SNIFF_MIN      400 | 
|  | 1271 | #define BTA_DM_PM_SNIFF_ATTEMPT  4 | 
|  | 1272 | #define BTA_DM_PM_SNIFF_TIMEOUT  1 | 
|  | 1273 | #endif | 
|  | 1274 |  | 
|  | 1275 | #ifndef BTA_DM_PM_SNIFF1_MAX | 
|  | 1276 | #define BTA_DM_PM_SNIFF1_MAX     400 | 
|  | 1277 | #define BTA_DM_PM_SNIFF1_MIN     200 | 
|  | 1278 | #define BTA_DM_PM_SNIFF1_ATTEMPT 4 | 
|  | 1279 | #define BTA_DM_PM_SNIFF1_TIMEOUT 1 | 
|  | 1280 | #endif | 
|  | 1281 |  | 
|  | 1282 | #ifndef BTA_DM_PM_SNIFF2_MAX | 
|  | 1283 | #define BTA_DM_PM_SNIFF2_MAX     180 | 
|  | 1284 | #define BTA_DM_PM_SNIFF2_MIN     150 | 
|  | 1285 | #define BTA_DM_PM_SNIFF2_ATTEMPT 4 | 
|  | 1286 | #define BTA_DM_PM_SNIFF2_TIMEOUT 1 | 
|  | 1287 | #endif | 
|  | 1288 |  | 
|  | 1289 | #ifndef BTA_DM_PM_SNIFF3_MAX | 
|  | 1290 | #define BTA_DM_PM_SNIFF3_MAX     150 | 
|  | 1291 | #define BTA_DM_PM_SNIFF3_MIN     50 | 
|  | 1292 | #define BTA_DM_PM_SNIFF3_ATTEMPT 4 | 
|  | 1293 | #define BTA_DM_PM_SNIFF3_TIMEOUT 1 | 
|  | 1294 | #endif | 
|  | 1295 |  | 
|  | 1296 | #ifndef BTA_DM_PM_SNIFF4_MAX | 
|  | 1297 | #define BTA_DM_PM_SNIFF4_MAX     54 | 
|  | 1298 | #define BTA_DM_PM_SNIFF4_MIN     30 | 
|  | 1299 | #define BTA_DM_PM_SNIFF4_ATTEMPT 4 | 
|  | 1300 | #define BTA_DM_PM_SNIFF4_TIMEOUT 1 | 
|  | 1301 | #endif | 
|  | 1302 |  | 
|  | 1303 | #ifndef BTA_DM_PM_PARK_MAX | 
|  | 1304 | #define BTA_DM_PM_PARK_MAX       800 | 
|  | 1305 | #define BTA_DM_PM_PARK_MIN       400 | 
|  | 1306 | #define BTA_DM_PM_PARK_ATTEMPT   0 | 
|  | 1307 | #define BTA_DM_PM_PARK_TIMEOUT   0 | 
|  | 1308 | #endif | 
|  | 1309 |  | 
|  | 1310 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1311 | /* Switch callback events */ | 
|  | 1312 | #define BTA_DM_SWITCH_CMPL_EVT      0       /* Completion of the Switch API */ | 
|  | 1313 |  | 
|  | 1314 | typedef UINT8 tBTA_DM_SWITCH_EVT; | 
|  | 1315 | typedef void (tBTA_DM_SWITCH_CBACK)(tBTA_DM_SWITCH_EVT event, tBTA_STATUS status); | 
|  | 1316 |  | 
|  | 1317 | /* Audio routing out configuration */ | 
|  | 1318 | #define BTA_DM_ROUTE_NONE       0x00    /* No Audio output */ | 
|  | 1319 | #define BTA_DM_ROUTE_DAC        0x01    /* routing over analog output */ | 
|  | 1320 | #define BTA_DM_ROUTE_I2S        0x02    /* routing over digital (I2S) output */ | 
|  | 1321 | #define BTA_DM_ROUTE_BT_MONO    0x04    /* routing over SCO */ | 
|  | 1322 | #define BTA_DM_ROUTE_BT_STEREO  0x08    /* routing over BT Stereo */ | 
|  | 1323 | #define BTA_DM_ROUTE_HOST       0x10    /* routing over Host */ | 
|  | 1324 | #define BTA_DM_ROUTE_FMTX       0x20    /* routing over FMTX */ | 
|  | 1325 | #define BTA_DM_ROUTE_FMRX       0x40    /* routing over FMRX */ | 
|  | 1326 | #define BTA_DM_ROUTE_BTSNK      0x80    /* routing over BT SNK */ | 
|  | 1327 |  | 
|  | 1328 | typedef UINT8 tBTA_DM_ROUTE_PATH; | 
|  | 1329 |  | 
|  | 1330 |  | 
|  | 1331 | /* Device Identification (DI) data structure | 
|  | 1332 | */ | 
|  | 1333 | /* Used to set the DI record */ | 
|  | 1334 | typedef tSDP_DI_RECORD          tBTA_DI_RECORD; | 
|  | 1335 | /* Used to get the DI record */ | 
|  | 1336 | typedef tSDP_DI_GET_RECORD      tBTA_DI_GET_RECORD; | 
|  | 1337 | /* SDP discovery database */ | 
|  | 1338 | typedef tSDP_DISCOVERY_DB       tBTA_DISCOVERY_DB; | 
|  | 1339 |  | 
|  | 1340 | #ifndef         BTA_DI_NUM_MAX | 
|  | 1341 | #define         BTA_DI_NUM_MAX       3 | 
|  | 1342 | #endif | 
|  | 1343 |  | 
| Andre Eisenbach | 3aa6054 | 2013-03-22 18:00:51 -0700 | [diff] [blame] | 1344 | /* Device features mask definitions */ | 
|  | 1345 | #define BTA_FEATURE_BYTES_PER_PAGE  BTM_FEATURE_BYTES_PER_PAGE | 
|  | 1346 | #define BTA_EXT_FEATURES_PAGE_MAX   BTM_EXT_FEATURES_PAGE_MAX | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 1347 | /* ACL type | 
|  | 1348 | */ | 
|  | 1349 | #define BTA_DM_LINK_TYPE_BR_EDR    0x01 | 
|  | 1350 | #define BTA_DM_LINK_TYPE_LE        0x02 | 
|  | 1351 | #define BTA_DM_LINK_TYPE_ALL       0xFF | 
|  | 1352 | typedef UINT8 tBTA_DM_LINK_TYPE; | 
| Andre Eisenbach | 3aa6054 | 2013-03-22 18:00:51 -0700 | [diff] [blame] | 1353 |  | 
| Satya Calloji | 6e2d9db | 2014-07-08 16:18:58 -0700 | [diff] [blame^] | 1354 | #define IMMEDIATE_DELY_MODE  0x00 | 
|  | 1355 | #define ONFOUND_DELY_MODE    0x01 | 
|  | 1356 | #define BATCH_DELY_MODE      0x02 | 
|  | 1357 | #define ALLOW_ALL_FILTER     0x00 | 
|  | 1358 | #define LOWEST_RSSI_VALUE     129 | 
|  | 1359 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1360 | /***************************************************************************** | 
|  | 1361 | **  External Function Declarations | 
|  | 1362 | *****************************************************************************/ | 
|  | 1363 | #ifdef __cplusplus | 
|  | 1364 | extern "C" | 
|  | 1365 | { | 
|  | 1366 | #endif | 
|  | 1367 |  | 
|  | 1368 | /******************************************************************************* | 
|  | 1369 | ** | 
|  | 1370 | ** Function         BTA_EnableBluetooth | 
|  | 1371 | ** | 
|  | 1372 | ** Description      This function initializes BTA and prepares BTA and the | 
|  | 1373 | **                  Bluetooth protocol stack for use.  This function is | 
|  | 1374 | **                  typically called at startup or when Bluetooth services | 
|  | 1375 | **                  are required by the phone.  This function must be called | 
|  | 1376 | **                  before calling any other API function. | 
|  | 1377 | ** | 
|  | 1378 | ** | 
|  | 1379 | ** Returns          BTA_SUCCESS if successful. | 
|  | 1380 | **                  BTA_FAIL if internal failure. | 
|  | 1381 | ** | 
|  | 1382 | *******************************************************************************/ | 
|  | 1383 | BTA_API extern tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK *p_cback); | 
|  | 1384 |  | 
|  | 1385 | /******************************************************************************* | 
|  | 1386 | ** | 
|  | 1387 | ** Function         BTA_DisableBluetooth | 
|  | 1388 | ** | 
|  | 1389 | ** Description      This function disables BTA and the Bluetooth protocol | 
|  | 1390 | **                  stack.  It is called when BTA is no longer being used | 
|  | 1391 | **                  by any application in the system. | 
|  | 1392 | ** | 
|  | 1393 | ** | 
|  | 1394 | ** Returns          void | 
|  | 1395 | ** | 
|  | 1396 | *******************************************************************************/ | 
|  | 1397 | BTA_API extern tBTA_STATUS BTA_DisableBluetooth(void); | 
|  | 1398 |  | 
|  | 1399 | /******************************************************************************* | 
|  | 1400 | ** | 
|  | 1401 | ** Function         BTA_EnableTestMode | 
|  | 1402 | ** | 
|  | 1403 | ** Description      Enables bluetooth device under test mode | 
|  | 1404 | ** | 
|  | 1405 | ** | 
|  | 1406 | ** Returns          tBTA_STATUS | 
|  | 1407 | ** | 
|  | 1408 | *******************************************************************************/ | 
|  | 1409 | BTA_API extern tBTA_STATUS BTA_EnableTestMode(void); | 
|  | 1410 |  | 
|  | 1411 | /******************************************************************************* | 
|  | 1412 | ** | 
|  | 1413 | ** Function         BTA_DisableTestMode | 
|  | 1414 | ** | 
|  | 1415 | ** Description      Disable bluetooth device under test mode | 
|  | 1416 | ** | 
|  | 1417 | ** | 
|  | 1418 | ** Returns          None | 
|  | 1419 | ** | 
|  | 1420 | *******************************************************************************/ | 
|  | 1421 | BTA_API extern void BTA_DisableTestMode(void); | 
|  | 1422 |  | 
|  | 1423 | /******************************************************************************* | 
|  | 1424 | ** | 
|  | 1425 | ** Function         BTA_DmIsDeviceUp | 
|  | 1426 | ** | 
|  | 1427 | ** Description      This function tests whether the Bluetooth module is up | 
|  | 1428 | **                  and ready.  This is a direct execution function that | 
|  | 1429 | **                  may lock task scheduling on some platforms. | 
|  | 1430 | ** | 
|  | 1431 | ** | 
|  | 1432 | ** Returns          TRUE if the module is ready. | 
|  | 1433 | **                  FALSE if the module is not ready. | 
|  | 1434 | ** | 
|  | 1435 | *******************************************************************************/ | 
|  | 1436 | BTA_API extern BOOLEAN BTA_DmIsDeviceUp(void); | 
|  | 1437 |  | 
|  | 1438 | /******************************************************************************* | 
|  | 1439 | ** | 
|  | 1440 | ** Function         BTA_DmSetDeviceName | 
|  | 1441 | ** | 
|  | 1442 | ** Description      This function sets the Bluetooth name of the local device. | 
|  | 1443 | ** | 
|  | 1444 | ** | 
|  | 1445 | ** Returns          void | 
|  | 1446 | ** | 
|  | 1447 | *******************************************************************************/ | 
|  | 1448 | BTA_API extern void BTA_DmSetDeviceName(char *p_name); | 
|  | 1449 |  | 
|  | 1450 | /******************************************************************************* | 
|  | 1451 | ** | 
|  | 1452 | ** Function         BTA_DmSetVisibility | 
|  | 1453 | ** | 
|  | 1454 | ** Description      This function sets the Bluetooth connectable,discoverable, | 
|  | 1455 | **                  pairable and conn paired only modesmodes of the local device. | 
|  | 1456 | **                  This controls whether other Bluetooth devices can find and connect to | 
|  | 1457 | **                  the local device. | 
|  | 1458 | ** | 
|  | 1459 | ** | 
|  | 1460 | ** Returns          void | 
|  | 1461 | ** | 
|  | 1462 | *******************************************************************************/ | 
|  | 1463 | BTA_API extern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode, UINT8 pairable_mode, UINT8 conn_filter); | 
|  | 1464 |  | 
|  | 1465 | /******************************************************************************* | 
|  | 1466 | ** | 
|  | 1467 | ** Function         BTA_DmSetScanParam | 
|  | 1468 | ** | 
|  | 1469 | ** Description      This function sets the parameters for page scan and | 
|  | 1470 | **                  inquiry scan. | 
|  | 1471 | ** | 
|  | 1472 | ** | 
|  | 1473 | ** Returns          void | 
|  | 1474 | ** | 
|  | 1475 | *******************************************************************************/ | 
|  | 1476 | BTA_API extern void BTA_DmSetScanParam (UINT16 page_scan_interval, UINT16 page_scan_window, | 
|  | 1477 | UINT16 inquiry_scan_interval, UINT16 inquiry_scan_window); | 
|  | 1478 |  | 
|  | 1479 | /******************************************************************************* | 
|  | 1480 | ** | 
|  | 1481 | ** Function         BTA_DmSetAfhChannels | 
|  | 1482 | ** | 
|  | 1483 | ** Description      This function sets the AFH first and | 
|  | 1484 | **                  last disable channel, so channels within | 
|  | 1485 | **                  that range are disabled. | 
|  | 1486 | **                  In order to use this API, BTM_BYPASS_AMP_AUTO_AFH must be set | 
|  | 1487 | **                  to be TRUE | 
|  | 1488 | ** | 
|  | 1489 | ** Returns          void | 
|  | 1490 | ** | 
|  | 1491 | *******************************************************************************/ | 
|  | 1492 | BTA_API extern void BTA_DmSetAfhChannels(UINT8 first, UINT8 last); | 
|  | 1493 |  | 
|  | 1494 |  | 
|  | 1495 | /******************************************************************************* | 
|  | 1496 | ** | 
|  | 1497 | ** Function         BTA_DmVendorSpecificCommand | 
|  | 1498 | ** | 
|  | 1499 | ** Description      This function sends the vendor specific command | 
|  | 1500 | **                  to the controller | 
|  | 1501 | ** | 
|  | 1502 | ** | 
|  | 1503 | ** Returns          tBTA_STATUS | 
|  | 1504 | ** | 
|  | 1505 | *******************************************************************************/ | 
|  | 1506 | BTA_API extern tBTA_STATUS BTA_DmVendorSpecificCommand (UINT16 opcode, UINT8 param_len,UINT8 *p_param_buf, tBTA_VENDOR_CMPL_CBACK *p_cback); | 
|  | 1507 |  | 
|  | 1508 |  | 
|  | 1509 | /******************************************************************************* | 
|  | 1510 | ** | 
|  | 1511 | ** Function         BTA_DmSearch | 
|  | 1512 | ** | 
|  | 1513 | ** Description      This function searches for peer Bluetooth devices.  It | 
|  | 1514 | **                  first performs an inquiry; for each device found from the | 
|  | 1515 | **                  inquiry it gets the remote name of the device.  If | 
|  | 1516 | **                  parameter services is nonzero, service discovery will be | 
|  | 1517 | **                  performed on each device for the services specified. | 
|  | 1518 | ** | 
|  | 1519 | ** | 
|  | 1520 | ** Returns          void | 
|  | 1521 | ** | 
|  | 1522 | *******************************************************************************/ | 
|  | 1523 | BTA_API extern void BTA_DmSearch(tBTA_DM_INQ *p_dm_inq, tBTA_SERVICE_MASK services, | 
|  | 1524 | tBTA_DM_SEARCH_CBACK *p_cback); | 
|  | 1525 |  | 
|  | 1526 | /******************************************************************************* | 
|  | 1527 | ** | 
|  | 1528 | ** Function         BTA_DmSearchCancel | 
|  | 1529 | ** | 
|  | 1530 | ** Description      This function cancels a search that has been initiated | 
|  | 1531 | **                  by calling BTA_DmSearch(). | 
|  | 1532 | ** | 
|  | 1533 | ** | 
|  | 1534 | ** Returns          void | 
|  | 1535 | ** | 
|  | 1536 | *******************************************************************************/ | 
|  | 1537 | BTA_API extern void BTA_DmSearchCancel(void); | 
|  | 1538 |  | 
|  | 1539 | /******************************************************************************* | 
|  | 1540 | ** | 
|  | 1541 | ** Function         BTA_DmDiscover | 
|  | 1542 | ** | 
|  | 1543 | ** Description      This function performs service discovery for the services | 
|  | 1544 | **                  of a particular peer device. | 
|  | 1545 | ** | 
|  | 1546 | ** | 
|  | 1547 | ** Returns          void | 
|  | 1548 | ** | 
|  | 1549 | *******************************************************************************/ | 
|  | 1550 | BTA_API extern void BTA_DmDiscover(BD_ADDR bd_addr, tBTA_SERVICE_MASK services, | 
|  | 1551 | tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search); | 
|  | 1552 |  | 
|  | 1553 | // btla-specific ++ | 
|  | 1554 | /******************************************************************************* | 
|  | 1555 | ** | 
|  | 1556 | ** Function         BTA_DmDiscoverUUID | 
|  | 1557 | ** | 
|  | 1558 | ** Description      This function performs service discovery for the services | 
|  | 1559 | **                  of a particular peer device. | 
|  | 1560 | ** | 
|  | 1561 | ** | 
|  | 1562 | ** Returns          void | 
|  | 1563 | ** | 
|  | 1564 | *******************************************************************************/ | 
|  | 1565 | BTA_API extern void BTA_DmDiscoverUUID(BD_ADDR bd_addr, tSDP_UUID *uuid, | 
|  | 1566 | tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search); | 
|  | 1567 |  | 
|  | 1568 | /******************************************************************************* | 
|  | 1569 | ** | 
|  | 1570 | ** Function         BTA_DmGetCachedRemoteName | 
|  | 1571 | ** | 
|  | 1572 | ** Description      Retieve cached remote name if available | 
|  | 1573 | ** | 
|  | 1574 | ** Returns          BTA_SUCCESS if cached name was retrieved | 
|  | 1575 | **                  BTA_FAILURE if cached name is not available | 
|  | 1576 | ** | 
|  | 1577 | *******************************************************************************/ | 
|  | 1578 | tBTA_STATUS BTA_DmGetCachedRemoteName(BD_ADDR remote_device, UINT8 **pp_cached_name); | 
|  | 1579 | // btla-specific -- | 
|  | 1580 |  | 
|  | 1581 | /******************************************************************************* | 
|  | 1582 | ** | 
|  | 1583 | ** Function         BTA_DmIsMaster | 
|  | 1584 | ** | 
|  | 1585 | ** Description      This function checks if the local device is the master of | 
|  | 1586 | **                  the link to the given device | 
|  | 1587 | ** | 
|  | 1588 | ** Returns          TRUE if master. | 
|  | 1589 | **                  FALSE if not. | 
|  | 1590 | ** | 
|  | 1591 | *******************************************************************************/ | 
|  | 1592 | BTA_API extern BOOLEAN BTA_DmIsMaster(BD_ADDR bd_addr); | 
|  | 1593 |  | 
|  | 1594 | /******************************************************************************* | 
|  | 1595 | ** | 
|  | 1596 | ** Function         BTA_DmBond | 
|  | 1597 | ** | 
|  | 1598 | ** Description      This function initiates a bonding procedure with a peer | 
|  | 1599 | **                  device.  The bonding procedure enables authentication | 
|  | 1600 | **                  and optionally encryption on the Bluetooth link. | 
|  | 1601 | ** | 
|  | 1602 | ** | 
|  | 1603 | ** Returns          void | 
|  | 1604 | ** | 
|  | 1605 | *******************************************************************************/ | 
|  | 1606 | BTA_API extern void BTA_DmBond(BD_ADDR bd_addr); | 
|  | 1607 |  | 
|  | 1608 | /******************************************************************************* | 
|  | 1609 | ** | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 1610 | ** Function         BTA_DmBondByTransport | 
|  | 1611 | ** | 
|  | 1612 | ** Description      This function initiates a bonding procedure with a peer | 
|  | 1613 | **                  device by designated transport.  The bonding procedure enables | 
|  | 1614 | **                  authentication and optionally encryption on the Bluetooth link. | 
|  | 1615 | ** | 
|  | 1616 | ** | 
|  | 1617 | ** Returns          void | 
|  | 1618 | ** | 
|  | 1619 | *******************************************************************************/ | 
|  | 1620 | BTA_API extern void BTA_DmBondByTransport(BD_ADDR bd_addr, tBTA_TRANSPORT transport); | 
|  | 1621 |  | 
|  | 1622 |  | 
|  | 1623 | /******************************************************************************* | 
|  | 1624 | ** | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1625 | ** Function         BTA_DmBondCancel | 
|  | 1626 | ** | 
|  | 1627 | ** Description      This function cancels a bonding procedure with a peer | 
|  | 1628 | **                  device. | 
|  | 1629 | ** | 
|  | 1630 | ** | 
|  | 1631 | ** Returns          void | 
|  | 1632 | ** | 
|  | 1633 | *******************************************************************************/ | 
|  | 1634 | BTA_API extern void BTA_DmBondCancel(BD_ADDR bd_addr); | 
|  | 1635 |  | 
|  | 1636 | /******************************************************************************* | 
|  | 1637 | ** | 
|  | 1638 | ** Function         BTA_DmPinReply | 
|  | 1639 | ** | 
|  | 1640 | ** Description      This function provides a PIN when one is requested by DM | 
|  | 1641 | **                  during a bonding procedure.  The application should call | 
|  | 1642 | **                  this function after the security callback is called with | 
|  | 1643 | **                  a BTA_DM_PIN_REQ_EVT. | 
|  | 1644 | ** | 
|  | 1645 | ** | 
|  | 1646 | ** Returns          void | 
|  | 1647 | ** | 
|  | 1648 | *******************************************************************************/ | 
|  | 1649 | BTA_API extern void BTA_DmPinReply(BD_ADDR bd_addr, BOOLEAN accept, UINT8 pin_len, | 
|  | 1650 | UINT8 *p_pin); | 
|  | 1651 |  | 
|  | 1652 | /******************************************************************************* | 
|  | 1653 | ** | 
|  | 1654 | ** Function         BTA_DmLinkPolicy | 
|  | 1655 | ** | 
|  | 1656 | ** Description      This function sets/clears the link policy mask to the given | 
|  | 1657 | **                  bd_addr. | 
|  | 1658 | **                  If clearing the sniff or park mode mask, the link is put | 
|  | 1659 | **                  in active mode. | 
|  | 1660 | ** | 
|  | 1661 | ** Returns          void | 
|  | 1662 | ** | 
|  | 1663 | *******************************************************************************/ | 
|  | 1664 | BTA_API extern void BTA_DmLinkPolicy(BD_ADDR bd_addr, tBTA_DM_LP_MASK policy_mask, | 
|  | 1665 | BOOLEAN set); | 
|  | 1666 |  | 
|  | 1667 | #if (BTM_OOB_INCLUDED == TRUE) | 
|  | 1668 | /******************************************************************************* | 
|  | 1669 | ** | 
|  | 1670 | ** Function         BTA_DmLocalOob | 
|  | 1671 | ** | 
|  | 1672 | ** Description      This function retrieves the OOB data from local controller. | 
|  | 1673 | **                  The result is reported by bta_dm_co_loc_oob(). | 
|  | 1674 | ** | 
|  | 1675 | ** Returns          void | 
|  | 1676 | ** | 
|  | 1677 | *******************************************************************************/ | 
|  | 1678 | BTA_API extern void BTA_DmLocalOob(void); | 
|  | 1679 | #endif /* BTM_OOB_INCLUDED */ | 
|  | 1680 |  | 
|  | 1681 | /******************************************************************************* | 
|  | 1682 | ** | 
|  | 1683 | ** Function         BTA_DmConfirm | 
|  | 1684 | ** | 
|  | 1685 | ** Description      This function accepts or rejects the numerical value of the | 
|  | 1686 | **                  Simple Pairing process on BTA_DM_SP_CFM_REQ_EVT | 
|  | 1687 | ** | 
|  | 1688 | ** Returns          void | 
|  | 1689 | ** | 
|  | 1690 | *******************************************************************************/ | 
|  | 1691 | BTA_API extern void BTA_DmConfirm(BD_ADDR bd_addr, BOOLEAN accept); | 
|  | 1692 |  | 
|  | 1693 | /******************************************************************************* | 
|  | 1694 | ** | 
|  | 1695 | ** Function         BTA_DmPasskeyCancel | 
|  | 1696 | ** | 
|  | 1697 | ** Description      This function is called to cancel the simple pairing process | 
|  | 1698 | **                  reported by BTA_DM_SP_KEY_NOTIF_EVT | 
|  | 1699 | ** | 
|  | 1700 | ** Returns          void | 
|  | 1701 | ** | 
|  | 1702 | *******************************************************************************/ | 
|  | 1703 | BTA_API extern void BTA_DmPasskeyCancel(BD_ADDR bd_addr); | 
|  | 1704 |  | 
|  | 1705 | /******************************************************************************* | 
|  | 1706 | ** | 
|  | 1707 | ** Function         BTA_DmAddDevice | 
|  | 1708 | ** | 
|  | 1709 | ** Description      This function adds a device to the security database list | 
|  | 1710 | **                  of peer devices. This function would typically be called | 
|  | 1711 | **                  at system startup to initialize the security database with | 
|  | 1712 | **                  known peer devices.  This is a direct execution function | 
|  | 1713 | **                  that may lock task scheduling on some platforms. | 
|  | 1714 | ** | 
|  | 1715 | ** Returns          void | 
|  | 1716 | ** | 
|  | 1717 | *******************************************************************************/ | 
|  | 1718 | BTA_API extern void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class, | 
|  | 1719 | LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask, | 
|  | 1720 | BOOLEAN is_trusted, UINT8 key_type, | 
|  | 1721 | tBTA_IO_CAP io_cap); | 
|  | 1722 |  | 
|  | 1723 | /******************************************************************************* | 
|  | 1724 | ** | 
|  | 1725 | ** Function         BTA_DmAddDevWithName | 
|  | 1726 | ** | 
|  | 1727 | ** Description      This function is newer version of  BTA_DmAddDevice() | 
|  | 1728 | **                  which added bd_name and features as input parameters. | 
|  | 1729 | ** | 
|  | 1730 | ** | 
|  | 1731 | ** Returns          void | 
|  | 1732 | ** | 
| Andre Eisenbach | 3aa6054 | 2013-03-22 18:00:51 -0700 | [diff] [blame] | 1733 | ** Note:            features points to the remote device features array. | 
|  | 1734 | **                  The array size is | 
|  | 1735 | **                  BTA_FEATURE_BYTES_PER_PAGE * (BTA_EXT_FEATURES_PAGE_MAX + 1) | 
|  | 1736 | ** | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1737 | *******************************************************************************/ | 
|  | 1738 | BTA_API extern void BTA_DmAddDevWithName (BD_ADDR bd_addr, DEV_CLASS dev_class, | 
| Andre Eisenbach | 3aa6054 | 2013-03-22 18:00:51 -0700 | [diff] [blame] | 1739 | BD_NAME bd_name, UINT8 *features, | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1740 | LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask, | 
|  | 1741 | BOOLEAN is_trusted, UINT8 key_type, tBTA_IO_CAP io_cap); | 
|  | 1742 |  | 
|  | 1743 | /******************************************************************************* | 
|  | 1744 | ** | 
|  | 1745 | ** Function         BTA_DmRemoveDevice | 
|  | 1746 | ** | 
|  | 1747 | ** Description      This function removes a device from the security database. | 
|  | 1748 | **                  This is a direct execution function that may lock task | 
|  | 1749 | **                  scheduling on some platforms. | 
|  | 1750 | ** | 
|  | 1751 | ** | 
|  | 1752 | ** Returns          BTA_SUCCESS if successful. | 
|  | 1753 | **                  BTA_FAIL if operation failed. | 
|  | 1754 | ** | 
|  | 1755 | *******************************************************************************/ | 
|  | 1756 | BTA_API extern tBTA_STATUS BTA_DmRemoveDevice(BD_ADDR bd_addr); | 
|  | 1757 |  | 
|  | 1758 | /******************************************************************************* | 
|  | 1759 | ** | 
|  | 1760 | ** Function         BTA_DmAuthorizeReply | 
|  | 1761 | ** | 
|  | 1762 | ** Description      This function provides an authorization reply when | 
|  | 1763 | **                  authorization is requested by BTA.  The application calls | 
|  | 1764 | **                  this function after the security callback is called with | 
|  | 1765 | **                  a BTA_DM_AUTHORIZE_EVT. | 
|  | 1766 | ** | 
|  | 1767 | ** | 
|  | 1768 | ** Returns          void | 
|  | 1769 | ** | 
|  | 1770 | *******************************************************************************/ | 
|  | 1771 | BTA_API extern void BTA_DmAuthorizeReply(BD_ADDR bd_addr, tBTA_SERVICE_ID service, | 
|  | 1772 | tBTA_AUTH_RESP response); | 
|  | 1773 |  | 
|  | 1774 | /******************************************************************************* | 
|  | 1775 | ** | 
|  | 1776 | ** Function         BTA_DmSignalStrength | 
|  | 1777 | ** | 
|  | 1778 | ** Description      This function initiates RSSI and channnel quality | 
|  | 1779 | **                  measurments. BTA_DM_SIG_STRENGTH_EVT is sent to | 
|  | 1780 | **                  application with the values of RSSI and channel | 
|  | 1781 | **                  quality | 
|  | 1782 | ** | 
|  | 1783 | ** | 
|  | 1784 | ** Returns          void | 
|  | 1785 | ** | 
|  | 1786 | *******************************************************************************/ | 
|  | 1787 | BTA_API extern void BTA_DmSignalStrength(tBTA_SIG_STRENGTH_MASK mask, UINT16 period, BOOLEAN start); | 
|  | 1788 |  | 
|  | 1789 | /******************************************************************************* | 
|  | 1790 | ** | 
|  | 1791 | ** Function         BTA_DmWriteInqTxPower | 
|  | 1792 | ** | 
|  | 1793 | ** Description      This command is used to write the inquiry transmit power level | 
|  | 1794 | **                  used to transmit the inquiry (ID) data packets. | 
|  | 1795 | ** | 
|  | 1796 | ** Parameters       tx_power - tx inquiry power to use, valid value is -70 ~ 20 | 
|  | 1797 |  | 
|  | 1798 | ** Returns          void | 
|  | 1799 | ** | 
|  | 1800 | *******************************************************************************/ | 
|  | 1801 | BTA_API extern void BTA_DmWriteInqTxPower(INT8 tx_power); | 
|  | 1802 |  | 
|  | 1803 | /******************************************************************************* | 
|  | 1804 | ** | 
|  | 1805 | ** Function         BTA_DmEirAddUUID | 
|  | 1806 | ** | 
|  | 1807 | ** Description      This function is called to add UUID into EIR. | 
|  | 1808 | ** | 
|  | 1809 | ** Parameters       tBT_UUID - UUID | 
|  | 1810 | ** | 
|  | 1811 | ** Returns          None | 
|  | 1812 | ** | 
|  | 1813 | *******************************************************************************/ | 
|  | 1814 | BTA_API extern void BTA_DmEirAddUUID (tBT_UUID *p_uuid); | 
|  | 1815 |  | 
|  | 1816 | /******************************************************************************* | 
|  | 1817 | ** | 
|  | 1818 | ** Function         BTA_DmEirRemoveUUID | 
|  | 1819 | ** | 
|  | 1820 | ** Description      This function is called to remove UUID from EIR. | 
|  | 1821 | ** | 
|  | 1822 | ** Parameters       tBT_UUID - UUID | 
|  | 1823 | ** | 
|  | 1824 | ** Returns          None | 
|  | 1825 | ** | 
|  | 1826 | *******************************************************************************/ | 
|  | 1827 | BTA_API extern void BTA_DmEirRemoveUUID (tBT_UUID *p_uuid); | 
|  | 1828 |  | 
|  | 1829 | /******************************************************************************* | 
|  | 1830 | ** | 
|  | 1831 | ** Function         BTA_DmSetEIRConfig | 
|  | 1832 | ** | 
|  | 1833 | ** Description      This function is called to override the BTA default EIR parameters. | 
|  | 1834 | **                  This funciton is only valid in a system where BTU & App task | 
|  | 1835 | **                  are in the same memory space. | 
|  | 1836 | ** | 
|  | 1837 | ** Parameters       Pointer to User defined EIR config | 
|  | 1838 | ** | 
|  | 1839 | ** Returns          None | 
|  | 1840 | ** | 
|  | 1841 | *******************************************************************************/ | 
|  | 1842 | BTA_API extern void BTA_DmSetEIRConfig (tBTA_DM_EIR_CONF *p_eir_cfg); | 
|  | 1843 |  | 
|  | 1844 | /******************************************************************************* | 
|  | 1845 | ** | 
|  | 1846 | ** Function         BTA_CheckEirData | 
|  | 1847 | ** | 
|  | 1848 | ** Description      This function is called to get EIR data from significant part. | 
|  | 1849 | ** | 
|  | 1850 | ** Parameters       p_eir - pointer of EIR significant part | 
|  | 1851 | **                  type   - finding EIR data type | 
|  | 1852 | **                  p_length - return the length of EIR data | 
|  | 1853 | ** | 
|  | 1854 | ** Returns          pointer of EIR data | 
|  | 1855 | ** | 
|  | 1856 | *******************************************************************************/ | 
|  | 1857 | BTA_API extern UINT8 *BTA_CheckEirData( UINT8 *p_eir, UINT8 tag, UINT8 *p_length ); | 
|  | 1858 |  | 
|  | 1859 | /******************************************************************************* | 
|  | 1860 | ** | 
|  | 1861 | ** Function         BTA_GetEirService | 
|  | 1862 | ** | 
|  | 1863 | ** Description      This function is called to get BTA service mask from EIR. | 
|  | 1864 | ** | 
|  | 1865 | ** Parameters       p_eir - pointer of EIR significant part | 
|  | 1866 | **                  p_services - return the BTA service mask | 
|  | 1867 | ** | 
|  | 1868 | ** Returns          None | 
|  | 1869 | ** | 
|  | 1870 | *******************************************************************************/ | 
|  | 1871 | BTA_API extern void BTA_GetEirService( UINT8 *p_eir, tBTA_SERVICE_MASK *p_services ); | 
|  | 1872 |  | 
|  | 1873 | /******************************************************************************* | 
|  | 1874 | ** | 
|  | 1875 | ** Function         BTA_DmUseSsr | 
|  | 1876 | ** | 
|  | 1877 | ** Description      This function is called to check if the connected peer device | 
|  | 1878 | **                  supports SSR or not. | 
|  | 1879 | ** | 
|  | 1880 | ** Returns          TRUE, if SSR is supported | 
|  | 1881 | ** | 
|  | 1882 | *******************************************************************************/ | 
|  | 1883 | BTA_API extern BOOLEAN BTA_DmUseSsr( BD_ADDR bd_addr ); | 
|  | 1884 |  | 
| Andre Eisenbach | 5c0b052 | 2014-06-18 12:20:37 -0700 | [diff] [blame] | 1885 | /******************************************************************************* | 
|  | 1886 | ** | 
|  | 1887 | ** Function         BTA_DmGetConnectionState | 
|  | 1888 | ** | 
|  | 1889 | ** Description      Returns whether the remote device is currently connected. | 
|  | 1890 | ** | 
|  | 1891 | ** Returns          0 if the device is NOT connected. | 
|  | 1892 | ** | 
|  | 1893 | *******************************************************************************/ | 
|  | 1894 | BTA_API extern UINT16 BTA_DmGetConnectionState( BD_ADDR bd_addr ); | 
|  | 1895 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1896 |  | 
|  | 1897 | /******************************************************************************* | 
|  | 1898 | ** | 
|  | 1899 | ** Function         BTA_DmSetLocalDiRecord | 
|  | 1900 | ** | 
|  | 1901 | ** Description      This function adds a DI record to the local SDP database. | 
|  | 1902 | ** | 
|  | 1903 | ** Returns          BTA_SUCCESS if record set sucessfully, otherwise error code. | 
|  | 1904 | ** | 
|  | 1905 | *******************************************************************************/ | 
|  | 1906 | BTA_API extern tBTA_STATUS BTA_DmSetLocalDiRecord( tBTA_DI_RECORD *p_device_info, | 
|  | 1907 | UINT32 *p_handle ); | 
|  | 1908 |  | 
|  | 1909 | /******************************************************************************* | 
|  | 1910 | ** | 
|  | 1911 | ** Function         BTA_DmGetLocalDiRecord | 
|  | 1912 | ** | 
|  | 1913 | ** Description      Get a specified DI record to the local SDP database. If no | 
|  | 1914 | **                  record handle is provided, the primary DI record will be | 
|  | 1915 | **                  returned. | 
|  | 1916 | ** | 
|  | 1917 | ** Returns          BTA_SUCCESS if record set sucessfully, otherwise error code. | 
|  | 1918 | ** | 
|  | 1919 | *******************************************************************************/ | 
|  | 1920 | BTA_API extern tBTA_STATUS BTA_DmGetLocalDiRecord( tBTA_DI_GET_RECORD *p_device_info, | 
|  | 1921 | UINT32 *p_handle ); | 
|  | 1922 |  | 
|  | 1923 | /******************************************************************************* | 
|  | 1924 | ** | 
|  | 1925 | ** Function         BTA_DmDiDiscover | 
|  | 1926 | ** | 
|  | 1927 | ** Description      This function queries a remote device for DI information. | 
|  | 1928 | ** | 
|  | 1929 | ** Returns          None. | 
|  | 1930 | ** | 
|  | 1931 | *******************************************************************************/ | 
|  | 1932 | BTA_API extern void BTA_DmDiDiscover( BD_ADDR remote_device, tBTA_DISCOVERY_DB *p_db, | 
|  | 1933 | UINT32 len, tBTA_DM_SEARCH_CBACK *p_cback ); | 
|  | 1934 |  | 
|  | 1935 | /******************************************************************************* | 
|  | 1936 | ** | 
|  | 1937 | ** Function         BTA_DmGetDiRecord | 
|  | 1938 | ** | 
|  | 1939 | ** Description      This function retrieves a remote device's DI record from | 
|  | 1940 | **                  the specified database. | 
|  | 1941 | ** | 
|  | 1942 | ** Returns          None. | 
|  | 1943 | ** | 
|  | 1944 | *******************************************************************************/ | 
|  | 1945 | BTA_API extern tBTA_STATUS BTA_DmGetDiRecord( UINT8 get_record_index, tBTA_DI_GET_RECORD *p_device_info, | 
|  | 1946 | tBTA_DISCOVERY_DB *p_db ); | 
|  | 1947 |  | 
|  | 1948 | /******************************************************************************* | 
|  | 1949 | ** | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 1950 | ** | 
|  | 1951 | ** Function         BTA_DmCloseACL | 
|  | 1952 | ** | 
|  | 1953 | ** Description      This function force to close an ACL connection and remove the | 
|  | 1954 | **                  device from the security database list of known devices. | 
|  | 1955 | ** | 
|  | 1956 | ** Parameters:      bd_addr       - Address of the peer device | 
|  | 1957 | **                  remove_dev    - remove device or not after link down | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 1958 | **                  transport     - which transport to close | 
|  | 1959 |  | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 1960 | ** | 
|  | 1961 | ** Returns          void. | 
|  | 1962 | ** | 
|  | 1963 | *******************************************************************************/ | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 1964 | BTA_API extern void BTA_DmCloseACL(BD_ADDR bd_addr, BOOLEAN remove_dev, tBTA_TRANSPORT transport); | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 1965 |  | 
|  | 1966 | /******************************************************************************* | 
|  | 1967 | ** | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 1968 | ** Function         BTA_SysFeatures | 
|  | 1969 | ** | 
|  | 1970 | ** Description      This function is called to set system features. | 
|  | 1971 | ** | 
|  | 1972 | ** Returns          void | 
|  | 1973 | ** | 
|  | 1974 | *******************************************************************************/ | 
|  | 1975 | BTA_API extern void BTA_SysFeatures (UINT16 sys_features); | 
|  | 1976 |  | 
|  | 1977 | /******************************************************************************* | 
|  | 1978 | ** | 
|  | 1979 | ** Function         bta_dmexecutecallback | 
|  | 1980 | ** | 
|  | 1981 | ** Description      This function will request BTA to execute a call back in the context of BTU task | 
|  | 1982 | **                  This API was named in lower case because it is only intended | 
|  | 1983 | **                  for the internal customers(like BTIF). | 
|  | 1984 | ** | 
|  | 1985 | ** Returns          void | 
|  | 1986 | ** | 
|  | 1987 | *******************************************************************************/ | 
|  | 1988 | BTA_API extern void bta_dmexecutecallback (tBTA_DM_EXEC_CBACK* p_callback, void * p_param); | 
|  | 1989 |  | 
|  | 1990 | #if (BTM_SCO_HCI_INCLUDED == TRUE) | 
|  | 1991 | /******************************************************************************* | 
|  | 1992 | ** | 
|  | 1993 | ** Function         BTA_DmPcmInitSamples | 
|  | 1994 | ** | 
|  | 1995 | ** Description      initialize the down sample converter. | 
|  | 1996 | ** | 
|  | 1997 | **                  src_sps: original samples per second (source audio data) | 
|  | 1998 | **                            (ex. 44100, 48000) | 
|  | 1999 | **                  bits: number of bits per pcm sample (16) | 
|  | 2000 | **                  n_channels: number of channels (i.e. mono(1), stereo(2)...) | 
|  | 2001 | ** | 
|  | 2002 | ** Returns          none | 
|  | 2003 | ** | 
|  | 2004 | *******************************************************************************/ | 
|  | 2005 | BTA_API extern void BTA_DmPcmInitSamples (UINT32 src_sps, UINT32 bits, UINT32 n_channels); | 
|  | 2006 |  | 
|  | 2007 | /************************************************************************************** | 
|  | 2008 | ** Function         BTA_DmPcmResample | 
|  | 2009 | ** | 
|  | 2010 | ** Description      Down sampling utility to convert higher sampling rate into 8K/16bits | 
|  | 2011 | **                  PCM samples. | 
|  | 2012 | ** | 
|  | 2013 | ** Parameters       p_src: pointer to the buffer where the original sampling PCM | 
|  | 2014 | **                              are stored. | 
|  | 2015 | **                  in_bytes:  Length of the input PCM sample buffer in byte. | 
|  | 2016 | **                  p_dst:      pointer to the buffer which is to be used to store | 
|  | 2017 | **                              the converted PCM samples. | 
|  | 2018 | ** | 
|  | 2019 | ** | 
|  | 2020 | ** Returns          INT32: number of samples converted. | 
|  | 2021 | ** | 
|  | 2022 | **************************************************************************************/ | 
|  | 2023 | BTA_API extern INT32 BTA_DmPcmResample (void *p_src, UINT32 in_bytes, void *p_dst); | 
|  | 2024 | #endif | 
|  | 2025 |  | 
|  | 2026 | #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE)) | 
|  | 2027 | /* BLE related API functions */ | 
|  | 2028 | /******************************************************************************* | 
|  | 2029 | ** | 
|  | 2030 | ** Function         BTA_DmBleSecurityGrant | 
|  | 2031 | ** | 
|  | 2032 | ** Description      Grant security request access. | 
|  | 2033 | ** | 
|  | 2034 | ** Parameters:      bd_addr          - BD address of the peer | 
|  | 2035 | **                  res              - security grant status. | 
|  | 2036 | ** | 
|  | 2037 | ** Returns          void | 
|  | 2038 | ** | 
|  | 2039 | *******************************************************************************/ | 
|  | 2040 | BTA_API extern void BTA_DmBleSecurityGrant(BD_ADDR bd_addr, tBTA_DM_BLE_SEC_GRANT res); | 
|  | 2041 |  | 
|  | 2042 |  | 
|  | 2043 |  | 
|  | 2044 | /******************************************************************************* | 
|  | 2045 | ** | 
|  | 2046 | ** Function         BTA_DmBleSetBgConnType | 
|  | 2047 | ** | 
|  | 2048 | ** Description      This function is called to set BLE connectable mode for a | 
|  | 2049 | **                  peripheral device. | 
|  | 2050 | ** | 
|  | 2051 | ** Parameters       bg_conn_type: it can be auto connection, or selective connection. | 
|  | 2052 | **                  p_select_cback: callback function when selective connection procedure | 
|  | 2053 | **                              is being used. | 
|  | 2054 | ** | 
|  | 2055 | ** Returns          void | 
|  | 2056 | ** | 
|  | 2057 | *******************************************************************************/ | 
|  | 2058 | BTA_API extern void BTA_DmBleSetBgConnType(tBTA_DM_BLE_CONN_TYPE bg_conn_type, tBTA_DM_BLE_SEL_CBACK *p_select_cback); | 
|  | 2059 |  | 
|  | 2060 | /******************************************************************************* | 
|  | 2061 | ** | 
|  | 2062 | ** Function         BTA_DmBlePasskeyReply | 
|  | 2063 | ** | 
|  | 2064 | ** Description      Send BLE SMP passkey reply. | 
|  | 2065 | ** | 
|  | 2066 | ** Parameters:      bd_addr          - BD address of the peer | 
|  | 2067 | **                  accept           - passkey entry sucessful or declined. | 
|  | 2068 | **                  passkey          - passkey value, must be a 6 digit number, | 
|  | 2069 | **                                     can be lead by 0. | 
|  | 2070 | ** | 
|  | 2071 | ** Returns          void | 
|  | 2072 | ** | 
|  | 2073 | *******************************************************************************/ | 
|  | 2074 | BTA_API extern void BTA_DmBlePasskeyReply(BD_ADDR bd_addr, BOOLEAN accept, UINT32 passkey); | 
|  | 2075 |  | 
|  | 2076 | /******************************************************************************* | 
|  | 2077 | ** | 
|  | 2078 | ** Function         BTA_DmAddBleDevice | 
|  | 2079 | ** | 
|  | 2080 | ** Description      Add a BLE device.  This function will be normally called | 
|  | 2081 | **                  during host startup to restore all required information | 
|  | 2082 | **                  for a LE device stored in the NVRAM. | 
|  | 2083 | ** | 
|  | 2084 | ** Parameters:      bd_addr          - BD address of the peer | 
|  | 2085 | **                  dev_type         - Remote device's device type. | 
|  | 2086 | **                  addr_type        - LE device address type. | 
|  | 2087 | ** | 
|  | 2088 | ** Returns          void | 
|  | 2089 | ** | 
|  | 2090 | *******************************************************************************/ | 
|  | 2091 | BTA_API extern void BTA_DmAddBleDevice(BD_ADDR bd_addr, tBLE_ADDR_TYPE addr_type, | 
|  | 2092 | tBT_DEVICE_TYPE dev_type); | 
|  | 2093 |  | 
|  | 2094 |  | 
|  | 2095 | /******************************************************************************* | 
|  | 2096 | ** | 
|  | 2097 | ** Function         BTA_DmAddBleKey | 
|  | 2098 | ** | 
|  | 2099 | ** Description      Add/modify LE device information.  This function will be | 
|  | 2100 | **                  normally called during host startup to restore all required | 
|  | 2101 | **                  information stored in the NVRAM. | 
|  | 2102 | ** | 
|  | 2103 | ** Parameters:      bd_addr          - BD address of the peer | 
|  | 2104 | **                  p_le_key         - LE key values. | 
|  | 2105 | **                  key_type         - LE SMP key type. | 
|  | 2106 | ** | 
|  | 2107 | ** Returns          void | 
|  | 2108 | ** | 
|  | 2109 | *******************************************************************************/ | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 2110 | BTA_API extern void BTA_DmAddBleKey (BD_ADDR bd_addr, | 
|  | 2111 | tBTA_LE_KEY_VALUE *p_le_key, | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 2112 | tBTA_LE_KEY_TYPE key_type); | 
|  | 2113 |  | 
|  | 2114 | /******************************************************************************* | 
|  | 2115 | ** | 
|  | 2116 | ** Function         BTA_DmSetBlePrefConnParams | 
|  | 2117 | ** | 
|  | 2118 | ** Description      This function is called to set the preferred connection | 
|  | 2119 | **                  parameters when default connection parameter is not desired. | 
|  | 2120 | ** | 
|  | 2121 | ** Parameters:      bd_addr          - BD address of the peripheral | 
|  | 2122 | **                  min_conn_int     - minimum preferred connection interval | 
|  | 2123 | **                  max_conn_int     - maximum preferred connection interval | 
|  | 2124 | **                  slave_latency    - preferred slave latency | 
|  | 2125 | **                  supervision_tout - preferred supervision timeout | 
|  | 2126 | ** | 
|  | 2127 | ** | 
|  | 2128 | ** Returns          void | 
|  | 2129 | ** | 
|  | 2130 | *******************************************************************************/ | 
|  | 2131 | BTA_API extern void BTA_DmSetBlePrefConnParams(BD_ADDR bd_addr, | 
|  | 2132 | UINT16 min_conn_int, UINT16 max_conn_int, | 
|  | 2133 | UINT16 slave_latency, UINT16 supervision_tout ); | 
|  | 2134 |  | 
|  | 2135 | /******************************************************************************* | 
|  | 2136 | ** | 
|  | 2137 | ** Function         BTA_DmSetBleConnScanParams | 
|  | 2138 | ** | 
|  | 2139 | ** Description      This function is called to set scan parameters used in | 
|  | 2140 | **                  BLE connection request | 
|  | 2141 | ** | 
|  | 2142 | ** Parameters:      bd_addr          - BD address of the peripheral | 
|  | 2143 | **                  scan_interval    - scan interval | 
|  | 2144 | **                  scan_window      - scan window | 
|  | 2145 | ** | 
|  | 2146 | ** Returns          void | 
|  | 2147 | ** | 
|  | 2148 | *******************************************************************************/ | 
|  | 2149 | BTA_API extern void BTA_DmSetBleConnScanParams(UINT16 scan_interval, | 
|  | 2150 | UINT16 scan_window ); | 
|  | 2151 |  | 
|  | 2152 | /******************************************************************************* | 
|  | 2153 | ** | 
| Andre Eisenbach | 5c44e45 | 2013-08-06 18:19:37 -0700 | [diff] [blame] | 2154 | ** Function         BTA_DmSetBleAdvParams | 
|  | 2155 | ** | 
|  | 2156 | ** Description      This function sets the advertising parameters BLE functionality. | 
|  | 2157 | **                  It is to be called when device act in peripheral or broadcaster | 
|  | 2158 | **                  role. | 
|  | 2159 | ** | 
|  | 2160 | ** Parameters:      adv_int_min    - adv interval minimum | 
|  | 2161 | **                  adv_int_max    - adv interval max | 
|  | 2162 | **                  p_dir_bda      - directed adv initator address | 
|  | 2163 | ** | 
|  | 2164 | ** Returns          void | 
|  | 2165 | ** | 
|  | 2166 | *******************************************************************************/ | 
|  | 2167 | BTA_API extern void BTA_DmSetBleAdvParams (UINT16 adv_int_min, UINT16 adv_int_max, | 
|  | 2168 | tBLE_BD_ADDR *p_dir_bda); | 
|  | 2169 | /******************************************************************************* | 
|  | 2170 | ** | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 2171 | ** Function         BTA_DmSearchExt | 
|  | 2172 | ** | 
|  | 2173 | ** Description      This function searches for peer Bluetooth devices. It performs | 
|  | 2174 | **                  an inquiry and gets the remote name for devices. Service | 
|  | 2175 | **                  discovery is done if services is non zero | 
|  | 2176 | ** | 
|  | 2177 | ** Parameters       p_dm_inq: inquiry conditions | 
|  | 2178 | **                  services: if service is not empty, service discovery will be done. | 
|  | 2179 | **                            for all GATT based service condition, put num_uuid, and | 
|  | 2180 | **                            p_uuid is the pointer to the list of UUID values. | 
|  | 2181 | **                  p_cback: callback functino when search is completed. | 
|  | 2182 | ** | 
|  | 2183 | ** | 
|  | 2184 | ** | 
|  | 2185 | ** Returns          void | 
|  | 2186 | ** | 
|  | 2187 | *******************************************************************************/ | 
|  | 2188 | BTA_API extern void BTA_DmSearchExt(tBTA_DM_INQ *p_dm_inq, tBTA_SERVICE_MASK_EXT *p_services, | 
|  | 2189 | tBTA_DM_SEARCH_CBACK *p_cback); | 
|  | 2190 |  | 
|  | 2191 | /******************************************************************************* | 
|  | 2192 | ** | 
|  | 2193 | ** Function         BTA_DmDiscoverExt | 
|  | 2194 | ** | 
|  | 2195 | ** Description      This function does service discovery for services of a | 
|  | 2196 | **                  peer device. When services.num_uuid is 0, it indicates all | 
|  | 2197 | **                  GATT based services are to be searched; other wise a list of | 
|  | 2198 | **                  UUID of interested services should be provided through | 
|  | 2199 | **                  services.p_uuid. | 
|  | 2200 | ** | 
|  | 2201 | ** | 
|  | 2202 | ** | 
|  | 2203 | ** Returns          void | 
|  | 2204 | ** | 
|  | 2205 | *******************************************************************************/ | 
|  | 2206 | BTA_API extern void BTA_DmDiscoverExt(BD_ADDR bd_addr, tBTA_SERVICE_MASK_EXT *p_services, | 
|  | 2207 | tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search); | 
|  | 2208 |  | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 2209 | /******************************************************************************* | 
|  | 2210 | ** | 
|  | 2211 | ** Function         BTA_DmDiscoverByTransport | 
|  | 2212 | ** | 
|  | 2213 | ** Description      This function does service discovery on particular transport | 
|  | 2214 | **                  for services of a | 
|  | 2215 | **                  peer device. When services.num_uuid is 0, it indicates all | 
|  | 2216 | **                  GATT based services are to be searched; other wise a list of | 
|  | 2217 | **                  UUID of interested services should be provided through | 
|  | 2218 | **                  p_services->p_uuid. | 
|  | 2219 | ** | 
|  | 2220 | ** | 
|  | 2221 | ** | 
|  | 2222 | ** Returns          void | 
|  | 2223 | ** | 
|  | 2224 | *******************************************************************************/ | 
|  | 2225 | BTA_API extern void BTA_DmDiscoverByTransport(BD_ADDR bd_addr, tBTA_SERVICE_MASK_EXT *p_services, | 
|  | 2226 | tBTA_DM_SEARCH_CBACK *p_cback, BOOLEAN sdp_search, | 
|  | 2227 | tBTA_TRANSPORT transport); | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 2228 |  | 
|  | 2229 | /******************************************************************************* | 
|  | 2230 | ** | 
|  | 2231 | ** Function         BTA_DmSetEncryption | 
|  | 2232 | ** | 
|  | 2233 | ** Description      This function is called to ensure that connection is | 
|  | 2234 | **                  encrypted.  Should be called only on an open connection. | 
|  | 2235 | **                  Typically only needed for connections that first want to | 
|  | 2236 | **                  bring up unencrypted links, then later encrypt them. | 
|  | 2237 | ** | 
|  | 2238 | ** Parameters:      bd_addr       - Address of the peer device | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 2239 | **                  transport     - transport of the link to be encruypted | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 2240 | **                  p_callback    - Pointer to callback function to indicat the | 
|  | 2241 | **                                  link encryption status | 
|  | 2242 | **                  sec_act       - This is the security action to indicate | 
|  | 2243 | **                                  what knid of BLE security level is required for | 
|  | 2244 | **                                  the BLE link if the BLE is supported | 
|  | 2245 | **                                  Note: This parameter is ignored for the BR/EDR link | 
|  | 2246 | **                                        or the BLE is not supported | 
|  | 2247 | ** | 
|  | 2248 | ** Returns          void | 
|  | 2249 | ** | 
|  | 2250 | ** | 
|  | 2251 | *******************************************************************************/ | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 2252 | BTA_API extern void BTA_DmSetEncryption(BD_ADDR bd_addr, tBTA_TRANSPORT transport, | 
|  | 2253 | tBTA_DM_ENCRYPT_CBACK *p_callback, | 
|  | 2254 | tBTA_DM_BLE_SEC_ACT sec_act); | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 2255 |  | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 2256 |  | 
|  | 2257 | /******************************************************************************* | 
|  | 2258 | ** | 
|  | 2259 | ** Function         BTA_DmBleObserve | 
|  | 2260 | ** | 
|  | 2261 | ** Description      This procedure keep the device listening for advertising | 
|  | 2262 | **                  events from a broadcast device. | 
|  | 2263 | ** | 
|  | 2264 | ** Parameters       start: start or stop observe. | 
|  | 2265 | **                  duration : Duration of the scan. Continuous scan if 0 is passed | 
|  | 2266 | **                  p_results_cb: Callback to be called with scan results | 
|  | 2267 | ** | 
|  | 2268 | ** Returns          void | 
|  | 2269 | ** | 
|  | 2270 | *******************************************************************************/ | 
|  | 2271 | BTA_API extern void BTA_DmBleObserve(BOOLEAN start, UINT8 duration, | 
|  | 2272 | tBTA_DM_SEARCH_CBACK *p_results_cb); | 
|  | 2273 |  | 
|  | 2274 |  | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 2275 | #endif | 
|  | 2276 |  | 
|  | 2277 | // btla-specific ++ | 
|  | 2278 | /******************************************************************************* | 
|  | 2279 | ** | 
|  | 2280 | ** Function         BTA_DmSetAfhChannelAssessment | 
|  | 2281 | ** | 
|  | 2282 | ** Description      This function is called to set the channel assessment mode on or off | 
|  | 2283 | ** | 
|  | 2284 | ** Returns          status | 
|  | 2285 | ** | 
|  | 2286 | *******************************************************************************/ | 
|  | 2287 | BTA_API extern void BTA_DmSetAfhChannelAssessment (BOOLEAN enable_or_disable); | 
| Matthew Xie | fc4b2f1 | 2013-05-06 20:51:02 -0700 | [diff] [blame] | 2288 |  | 
| Andre Eisenbach | eeeac99 | 2013-11-08 10:23:52 -0800 | [diff] [blame] | 2289 | #if BLE_INCLUDED == TRUE | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 2290 | // btla-specific -- | 
| Ganesh Ganapathi Batta | ead3cde | 2013-02-05 15:22:31 -0800 | [diff] [blame] | 2291 | /******************************************************************************* | 
|  | 2292 | ** | 
|  | 2293 | ** Function         BTA_DmBleConfigLocalPrivacy | 
|  | 2294 | ** | 
|  | 2295 | ** Description      Enable/disable privacy on the local device | 
|  | 2296 | ** | 
|  | 2297 | ** Parameters:      privacy_enable   - enable/disabe privacy on remote device. | 
|  | 2298 | ** | 
|  | 2299 | ** Returns          void | 
|  | 2300 | ** | 
|  | 2301 | *******************************************************************************/ | 
|  | 2302 | BTA_API extern void BTA_DmBleConfigLocalPrivacy(BOOLEAN privacy_enable); | 
|  | 2303 |  | 
|  | 2304 | /******************************************************************************* | 
|  | 2305 | ** | 
|  | 2306 | ** Function         BTA_DmBleEnableRemotePrivacy | 
|  | 2307 | ** | 
|  | 2308 | ** Description      Enable/disable privacy on a remote device | 
|  | 2309 | ** | 
|  | 2310 | ** Parameters:      bd_addr          - BD address of the peer | 
|  | 2311 | **                  privacy_enable   - enable/disabe privacy on remote device. | 
|  | 2312 | ** | 
|  | 2313 | ** Returns          void | 
|  | 2314 | ** | 
|  | 2315 | *******************************************************************************/ | 
|  | 2316 | BTA_API extern void BTA_DmBleEnableRemotePrivacy(BD_ADDR bd_addr, BOOLEAN privacy_enable); | 
|  | 2317 |  | 
|  | 2318 |  | 
|  | 2319 | /******************************************************************************* | 
|  | 2320 | ** | 
|  | 2321 | ** Function         BTA_DmBleSetAdvConfig | 
|  | 2322 | ** | 
|  | 2323 | ** Description      This function is called to override the BTA default ADV parameters. | 
|  | 2324 | ** | 
|  | 2325 | ** Parameters       Pointer to User defined ADV data structure | 
|  | 2326 | ** | 
|  | 2327 | ** Returns          None | 
|  | 2328 | ** | 
|  | 2329 | *******************************************************************************/ | 
|  | 2330 | BTA_API extern void BTA_DmBleSetAdvConfig (tBTA_BLE_AD_MASK data_mask, | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 2331 | tBTA_BLE_ADV_DATA *p_adv_cfg, | 
|  | 2332 | tBTA_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback); | 
| Andre Eisenbach | eeeac99 | 2013-11-08 10:23:52 -0800 | [diff] [blame] | 2333 |  | 
|  | 2334 | /******************************************************************************* | 
|  | 2335 | ** | 
|  | 2336 | ** Function         BTA_DmBleSetScanRsp | 
|  | 2337 | ** | 
|  | 2338 | ** Description      This function is called to override the BTA scan response. | 
|  | 2339 | ** | 
|  | 2340 | ** Parameters       Pointer to User defined ADV data structure | 
|  | 2341 | ** | 
|  | 2342 | ** Returns          None | 
|  | 2343 | ** | 
|  | 2344 | *******************************************************************************/ | 
|  | 2345 | BTA_API extern void BTA_DmBleSetScanRsp (tBTA_BLE_AD_MASK data_mask, | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 2346 | tBTA_BLE_ADV_DATA *p_adv_cfg, | 
|  | 2347 | tBTA_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback); | 
| Andre Eisenbach | eeeac99 | 2013-11-08 10:23:52 -0800 | [diff] [blame] | 2348 |  | 
|  | 2349 | /******************************************************************************* | 
|  | 2350 | ** | 
|  | 2351 | ** Function         BTA_DmBleBroadcast | 
|  | 2352 | ** | 
|  | 2353 | ** Description      This function starts or stops LE broadcasting. | 
|  | 2354 | ** | 
|  | 2355 | ** Parameters       start: start or stop broadcast. | 
|  | 2356 | ** | 
|  | 2357 | ** Returns          None | 
|  | 2358 | ** | 
|  | 2359 | *******************************************************************************/ | 
|  | 2360 | BTA_API extern void BTA_DmBleBroadcast (BOOLEAN start); | 
|  | 2361 |  | 
| Wei Wang | a6ce775 | 2014-05-20 06:30:32 +0000 | [diff] [blame] | 2362 |  | 
|  | 2363 | /******************************************************************************* | 
|  | 2364 | ** | 
|  | 2365 | ** Function         BTA_BleEnableAdvInstance | 
|  | 2366 | ** | 
|  | 2367 | ** Description      This function enables the Multi ADV instance feature | 
|  | 2368 | ** | 
|  | 2369 | ** Parameters       p_params Pointer to ADV param user defined structure | 
|  | 2370 | **                  p_cback  Pointer to Multi ADV callback structure | 
|  | 2371 | **                  p_ref - Reference pointer | 
|  | 2372 | ** | 
|  | 2373 | ** Returns          None | 
|  | 2374 | ** | 
|  | 2375 | *******************************************************************************/ | 
|  | 2376 | BTA_API extern tBTA_STATUS BTA_BleEnableAdvInstance (tBTA_BLE_ADV_PARAMS *p_params, | 
|  | 2377 | tBTA_BLE_MULTI_ADV_CBACK *p_cback,void *p_ref); | 
|  | 2378 |  | 
|  | 2379 | /******************************************************************************* | 
|  | 2380 | ** | 
|  | 2381 | ** Function         BTA_BleUpdateAdvInstParam | 
|  | 2382 | ** | 
|  | 2383 | ** Description      This function updates the Multi ADV instance params | 
|  | 2384 | ** | 
|  | 2385 | ** Parameters       inst_id Instance ID | 
|  | 2386 | **                  p_params Pointer to ADV param user defined structure | 
|  | 2387 | ** | 
|  | 2388 | ** Returns          None | 
|  | 2389 | ** | 
|  | 2390 | *******************************************************************************/ | 
|  | 2391 | BTA_API extern tBTA_STATUS BTA_BleUpdateAdvInstParam (UINT8 inst_id, | 
|  | 2392 | tBTA_BLE_ADV_PARAMS *p_params); | 
|  | 2393 |  | 
|  | 2394 | /******************************************************************************* | 
|  | 2395 | ** | 
|  | 2396 | ** Function         BTA_BleCfgAdvInstData | 
|  | 2397 | ** | 
|  | 2398 | ** Description      This function is called to configure the ADV instance data | 
|  | 2399 | ** | 
|  | 2400 | ** Parameters       inst_id - Instance ID | 
|  | 2401 | **                  is_scan_rsp - Boolean value Scan response | 
|  | 2402 | **                  Pointer to User defined ADV data structure | 
|  | 2403 | ** Returns          None | 
|  | 2404 | ** | 
|  | 2405 | *******************************************************************************/ | 
|  | 2406 | BTA_API extern tBTA_STATUS BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp, | 
|  | 2407 | tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_data); | 
|  | 2408 |  | 
|  | 2409 | /******************************************************************************* | 
|  | 2410 | ** | 
|  | 2411 | ** Function         BTA_BleDisableAdvInstance | 
|  | 2412 | ** | 
|  | 2413 | ** Description      This function is called to disable the ADV instance | 
|  | 2414 | ** | 
|  | 2415 | ** Parameters       inst_id - Instance ID to be disabled | 
|  | 2416 | ** | 
|  | 2417 | ** Returns          None | 
|  | 2418 | ** | 
|  | 2419 | *******************************************************************************/ | 
|  | 2420 | BTA_API extern tBTA_STATUS BTA_BleDisableAdvInstance(UINT8 inst_id); | 
|  | 2421 |  | 
| Ganesh Ganapathi Batta | 7fa4fba | 2014-04-16 16:50:09 -0700 | [diff] [blame] | 2422 | /******************************************************************************* | 
|  | 2423 | ** | 
|  | 2424 | ** Function         BTA_DmBleUpdateConnectionParams | 
|  | 2425 | ** | 
|  | 2426 | ** Description      Update connection parameters, can only be used when connection is up. | 
|  | 2427 | ** | 
|  | 2428 | ** Parameters:      bd_addr   - BD address of the peer | 
|  | 2429 | **                  min_int   -     minimum connection interval, [0x0004~ 0x4000] | 
|  | 2430 | **                  max_int   -     maximum connection interval, [0x0004~ 0x4000] | 
|  | 2431 | **                  latency   -     slave latency [0 ~ 500] | 
|  | 2432 | **                  timeout   -     supervision timeout [0x000a ~ 0xc80] | 
|  | 2433 | ** | 
|  | 2434 | ** Returns          void | 
|  | 2435 | ** | 
|  | 2436 | *******************************************************************************/ | 
|  | 2437 | BTA_API extern void BTA_DmBleUpdateConnectionParams(BD_ADDR bd_addr, UINT16 min_int, | 
|  | 2438 | UINT16 max_int, UINT16 latency, UINT16 timeout); | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 2439 |  | 
|  | 2440 | /******************************************************************************* | 
|  | 2441 | ** | 
|  | 2442 | ** Function         BTA_DmBleSetStorageParams | 
|  | 2443 | ** | 
|  | 2444 | ** Description      This function is called to set the storage parameters | 
|  | 2445 | ** | 
|  | 2446 | ** Parameters       batch_scan_full_max -Max storage space (in %) allocated to full scanning | 
|  | 2447 | **                  batch_scan_trunc_max -Max storage space (in %) allocated to truncated scanning | 
|  | 2448 | **                  batch_scan_notify_threshold - Setup notification level based on total space | 
|  | 2449 | **                  consumed by both pools. Setting it to 0 will disable threshold notification | 
|  | 2450 | **                  p_setup_cback - Setup callback | 
|  | 2451 | **                  p_thres_cback - Threshold callback | 
|  | 2452 | **                  p_rep_cback - Reports callback | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2453 | **                  ref_value - Reference value | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 2454 | ** | 
|  | 2455 | ** Returns           None | 
|  | 2456 | ** | 
|  | 2457 | *******************************************************************************/ | 
|  | 2458 | BTA_API extern void BTA_DmBleSetStorageParams(UINT8 batch_scan_full_max, | 
|  | 2459 | UINT8 batch_scan_trunc_max, | 
|  | 2460 | UINT8 batch_scan_notify_threshold, | 
|  | 2461 | tBTA_BLE_SCAN_SETUP_CBACK *p_setup_cback, | 
|  | 2462 | tBTA_BLE_SCAN_THRESHOLD_CBACK *p_thres_cback, | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 2463 | tBTA_BLE_SCAN_REP_CBACK* p_rep_cback, | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 2464 | tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 2465 |  | 
|  | 2466 | /******************************************************************************* | 
|  | 2467 | ** | 
|  | 2468 | ** Function         BTA_DmBleEnableBatchScan | 
|  | 2469 | ** | 
|  | 2470 | ** Description      This function is called to enable the batch scan | 
|  | 2471 | ** | 
|  | 2472 | ** Parameters       scan_mode -Batch scan mode | 
|  | 2473 | **                  scan_interval - Scan interval | 
|  | 2474 | **                  scan_window - Scan window | 
|  | 2475 | **                  discard_rule -Discard rules | 
|  | 2476 | **                  addr_type - Address type | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2477 | **                  ref_value - Reference value | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 2478 | ** | 
|  | 2479 | ** Returns           None | 
|  | 2480 | ** | 
|  | 2481 | *******************************************************************************/ | 
|  | 2482 | BTA_API extern void BTA_DmBleEnableBatchScan(tBTA_BLE_SCAN_MODE scan_mode, | 
|  | 2483 | UINT32 scan_interval, UINT32 scan_window, | 
|  | 2484 | tBTA_BLE_DISCARD_RULE discard_rule, | 
|  | 2485 | tBLE_ADDR_TYPE        addr_type, | 
|  | 2486 | tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 2487 |  | 
|  | 2488 | /******************************************************************************* | 
|  | 2489 | ** | 
|  | 2490 | ** Function         BTA_DmBleReadScanReports | 
|  | 2491 | ** | 
|  | 2492 | ** Description      This function is called to read the batch scan reports | 
|  | 2493 | ** | 
|  | 2494 | ** Parameters       scan_mode -Batch scan mode | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2495 | **                  ref_value - Reference value | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 2496 | ** | 
|  | 2497 | ** Returns          None | 
|  | 2498 | ** | 
|  | 2499 | *******************************************************************************/ | 
|  | 2500 | BTA_API extern void BTA_DmBleReadScanReports(tBTA_BLE_SCAN_MODE scan_type, | 
|  | 2501 | tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 2502 |  | 
|  | 2503 | /******************************************************************************* | 
|  | 2504 | ** | 
|  | 2505 | ** Function         BTA_DmBleDisableBatchScan | 
|  | 2506 | ** | 
|  | 2507 | ** Description      This function is called to disable the batch scanning | 
|  | 2508 | ** | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2509 | ** Parameters       ref_value - Reference value | 
| Satya Calloji | c4e2596 | 2014-05-10 23:46:24 -0700 | [diff] [blame] | 2510 | ** | 
|  | 2511 | ** Returns          None | 
|  | 2512 | ** | 
|  | 2513 | *******************************************************************************/ | 
|  | 2514 | BTA_API extern void BTA_DmBleDisableBatchScan(tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 2515 |  | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 2516 | /******************************************************************************* | 
|  | 2517 | ** | 
|  | 2518 | ** Function         BTA_DmEnableScanFilter | 
|  | 2519 | ** | 
|  | 2520 | ** Description      This function is called to enable the adv data payload filter | 
|  | 2521 | ** | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2522 | ** Parameters       action - enable or disable the APCF feature | 
|  | 2523 | **                  p_cmpl_cback - Command completed callback | 
|  | 2524 | **                  ref_value - Reference value | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 2525 | ** | 
|  | 2526 | ** Returns          void | 
|  | 2527 | ** | 
|  | 2528 | *******************************************************************************/ | 
|  | 2529 | BTA_API extern void BTA_DmEnableScanFilter(UINT8 action, | 
|  | 2530 | tBTA_DM_BLE_PF_STATUS_CBACK *p_cmpl_cback, | 
|  | 2531 | tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 2532 |  | 
|  | 2533 | /******************************************************************************* | 
|  | 2534 | ** | 
|  | 2535 | ** Function         BTA_DmBleScanFilterSetup | 
|  | 2536 | ** | 
|  | 2537 | ** Description      This function is called to setup the filter params | 
|  | 2538 | ** | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2539 | ** Parameters       p_target: enable the filter condition on a target device; if NULL | 
|  | 2540 | **                  filt_index - Filter index | 
|  | 2541 | **                  p_filt_params -Filter parameters | 
|  | 2542 | **                  ref_value - Reference value | 
|  | 2543 | **                  action - Add, delete or clear | 
|  | 2544 | **                  p_cmpl_back - Command completed callback | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 2545 | ** | 
|  | 2546 | ** Returns          void | 
|  | 2547 | ** | 
|  | 2548 | *******************************************************************************/ | 
|  | 2549 | BTA_API extern void BTA_DmBleScanFilterSetup(UINT8 action, | 
|  | 2550 | tBTA_DM_BLE_PF_FILT_INDEX filt_index, | 
|  | 2551 | tBTA_DM_BLE_PF_FILT_PARAMS *p_filt_params, | 
|  | 2552 | tBLE_BD_ADDR *p_target, | 
|  | 2553 | tBTA_DM_BLE_PF_PARAM_CBACK *p_cmpl_cback, | 
|  | 2554 | tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 2555 |  | 
|  | 2556 | /******************************************************************************* | 
|  | 2557 | ** | 
|  | 2558 | ** Function         BTA_DmBleCfgFilterCondition | 
|  | 2559 | ** | 
|  | 2560 | ** Description      This function is called to configure the adv data payload filter | 
|  | 2561 | **                  condition. | 
|  | 2562 | ** | 
|  | 2563 | ** Parameters       action: to read/write/clear | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2564 | **                  cond_type: filter condition type | 
|  | 2565 | **                  filt_index - Filter index | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 2566 | **                  p_cond: filter condition parameter | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2567 | **                  p_cmpl_back - Command completed callback | 
|  | 2568 | **                  ref_value - Reference value | 
| Satya Calloji | 1a9247a | 2014-06-05 13:15:15 -0700 | [diff] [blame] | 2569 | ** | 
|  | 2570 | ** Returns          void | 
|  | 2571 | ** | 
|  | 2572 | *******************************************************************************/ | 
|  | 2573 | BTA_API extern void BTA_DmBleCfgFilterCondition(tBTA_DM_BLE_SCAN_COND_OP action, | 
|  | 2574 | tBTA_DM_BLE_PF_COND_TYPE cond_type, | 
|  | 2575 | tBTA_DM_BLE_PF_FILT_INDEX filt_index, | 
|  | 2576 | tBTA_DM_BLE_PF_COND_PARAM *p_cond, | 
|  | 2577 | tBTA_DM_BLE_PF_CFG_CBACK *p_cmpl_cback, | 
|  | 2578 | tBTA_DM_BLE_REF_VALUE ref_value); | 
|  | 2579 |  | 
| Satya Calloji | 1acb61c | 2014-06-14 23:16:18 -0700 | [diff] [blame] | 2580 |  | 
|  | 2581 | /******************************************************************************* | 
|  | 2582 | ** | 
|  | 2583 | ** Function         BTA_DmBleTrackAdvertiser | 
|  | 2584 | ** | 
|  | 2585 | ** Description      This function is called to track the advertiser | 
|  | 2586 | ** | 
|  | 2587 | ** Parameters    ref_value - Reference value | 
|  | 2588 | **               p_track_adv_cback - ADV callback | 
|  | 2589 | ** | 
|  | 2590 | ** Returns          None | 
|  | 2591 | ** | 
|  | 2592 | *******************************************************************************/ | 
|  | 2593 | BTA_API extern void BTA_DmBleTrackAdvertiser(tBTA_DM_BLE_REF_VALUE ref_value, | 
|  | 2594 | tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback); | 
|  | 2595 |  | 
| Satya Calloji | e5ba884 | 2014-07-03 17:18:02 -0700 | [diff] [blame] | 2596 | /******************************************************************************* | 
|  | 2597 | ** | 
|  | 2598 | ** Function         BTA_DmBleGetEnergyInfo | 
|  | 2599 | ** | 
|  | 2600 | ** Description      This function is called to obtain the energy info | 
|  | 2601 | ** | 
|  | 2602 | ** Parameters       p_cmpl_cback - Command complete callback | 
|  | 2603 | ** | 
|  | 2604 | ** Returns          void | 
|  | 2605 | ** | 
|  | 2606 | *******************************************************************************/ | 
|  | 2607 | BTA_API extern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK *p_cmpl_cback); | 
|  | 2608 |  | 
| Matthew Xie | fc4b2f1 | 2013-05-06 20:51:02 -0700 | [diff] [blame] | 2609 | #endif | 
| The Android Open Source Project | 5738f83 | 2012-12-12 16:00:35 -0800 | [diff] [blame] | 2610 |  | 
|  | 2611 | #ifdef __cplusplus | 
|  | 2612 | } | 
|  | 2613 | #endif | 
|  | 2614 |  | 
|  | 2615 | #endif /* BTA_API_H */ | 
|  | 2616 |  |