bta_api.h revision 709843216679a3c7852d7d254fde47a9d503abd8
15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 3c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji * Copyright (C) 2003-2014 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * This is the public interface file for BTA, Broadcom's Bluetooth 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * application layer for mobile phones. 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_API_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_API_H 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 28709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski#include <hardware/bt_common_types.h> 29709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski#include <memory> 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_types.h" 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btm_api.h" 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btm_ble_api.h" 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Constants and data types 378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/ 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Status Return Value */ 40cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SUCCESS 0 /* Successful operation. */ 41cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FAILURE 1 /* Generic failure. */ 42cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PENDING 2 /* API cannot be completed right now */ 43cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BUSY 3 44cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_NO_RESOURCES 4 45cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_WRONG_MODE 5 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 47e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_STATUS; 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Service ID 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 52cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * NOTES: When you add a new Service ID for BTA AND require to change the value 53cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * of BTA_MAX_SERVICE_ID, 54cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * make sure that the correct security ID of the new service from 55cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Security service definitions (btm_api.h) 56cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * should be added to bta_service_id_to_btm_srv_id_lkup_tbl table in 57cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * bta_dm_act.c. 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project */ 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 60cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_RES_SERVICE_ID 0 /* Reserved */ 61cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SPP_SERVICE_ID 1 /* Serial port profile. */ 62cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DUN_SERVICE_ID 2 /* Dial-up networking profile. */ 63cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_A2DP_SOURCE_SERVICE_ID 3 /* A2DP Source profile. */ 64cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LAP_SERVICE_ID 4 /* LAN access profile. */ 65cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_SERVICE_ID 5 /* Headset profile. */ 66cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_SERVICE_ID 6 /* Hands-free profile. */ 67cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OPP_SERVICE_ID 7 /* Object push */ 68cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FTP_SERVICE_ID 8 /* File transfer */ 69cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_CTP_SERVICE_ID 9 /* Cordless Terminal */ 70cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ICP_SERVICE_ID 10 /* Intercom Terminal */ 71cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SYNC_SERVICE_ID 11 /* Synchronization */ 72cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BPP_SERVICE_ID 12 /* Basic printing profile */ 73cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BIP_SERVICE_ID 13 /* Basic Imaging profile */ 74cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PANU_SERVICE_ID 14 /* PAN User */ 75cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_NAP_SERVICE_ID 15 /* PAN Network access point */ 76cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_GN_SERVICE_ID 16 /* PAN Group Ad-hoc networks */ 77cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SAP_SERVICE_ID 17 /* SIM Access profile */ 78cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_A2DP_SINK_SERVICE_ID 18 /* A2DP Sink */ 79cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AVRCP_SERVICE_ID 19 /* A/V remote control */ 80cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HID_SERVICE_ID 20 /* HID */ 81cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_VDP_SERVICE_ID 21 /* Video distribution */ 82cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PBAP_SERVICE_ID 22 /* PhoneBook Access Server*/ 83cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_HS_SERVICE_ID 23 /* HFP HS role */ 84cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_HS_SERVICE_ID 24 /* HSP HS role */ 85cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MAP_SERVICE_ID 25 /* Message Access Profile */ 86cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MN_SERVICE_ID 26 /* Message Notification Service */ 87cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HDP_SERVICE_ID 27 /* Health Device Profile */ 88cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PCE_SERVICE_ID 28 /* PhoneBook Access Client*/ 89cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SDP_SERVICE_ID 29 /* SDP Search*/ 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 919979121f0865e07432215529f9b157792ae3ef21Myles Watson/* BLE profile service ID */ 929979121f0865e07432215529f9b157792ae3ef21Myles Watson#define BTA_BLE_SERVICE_ID 30 /* GATT profile */ 93cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_USER_SERVICE_ID 31 /* User requested UUID */ 94cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MAX_SERVICE_ID 32 959979121f0865e07432215529f9b157792ae3ef21Myles Watson 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* service IDs (BTM_SEC_SERVICE_FIRST_EMPTY + 1) to (BTM_SEC_MAX_SERVICES - 1) 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * are used by BTA JV */ 98cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FIRST_JV_SERVICE_ID (BTM_SEC_SERVICE_FIRST_EMPTY + 1) 99cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LAST_JV_SERVICE_ID (BTM_SEC_MAX_SERVICES - 1) 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 101e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_SERVICE_ID; 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Service ID Mask */ 104cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_RES_SERVICE_MASK 0x00000001 /* Reserved */ 105cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SPP_SERVICE_MASK 0x00000002 /* Serial port profile. */ 106cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DUN_SERVICE_MASK 0x00000004 /* Dial-up networking profile. */ 107cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FAX_SERVICE_MASK 0x00000008 /* Fax profile. */ 108cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LAP_SERVICE_MASK 0x00000010 /* LAN access profile. */ 109cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_SERVICE_MASK 0x00000020 /* HSP AG role. */ 110cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_SERVICE_MASK 0x00000040 /* HFP AG role */ 111cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OPP_SERVICE_MASK 0x00000080 /* Object push */ 112cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FTP_SERVICE_MASK 0x00000100 /* File transfer */ 113cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_CTP_SERVICE_MASK 0x00000200 /* Cordless Terminal */ 114cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ICP_SERVICE_MASK 0x00000400 /* Intercom Terminal */ 115cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SYNC_SERVICE_MASK 0x00000800 /* Synchronization */ 116cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BPP_SERVICE_MASK 0x00001000 /* Print server */ 117cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BIP_SERVICE_MASK 0x00002000 /* Basic Imaging */ 118cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PANU_SERVICE_MASK 0x00004000 /* PAN User */ 119cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_NAP_SERVICE_MASK 0x00008000 /* PAN Network access point */ 120cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_GN_SERVICE_MASK 0x00010000 /* PAN Group Ad-hoc networks */ 121cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SAP_SERVICE_MASK 0x00020000 /* PAN Group Ad-hoc networks */ 122cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_A2DP_SERVICE_MASK 0x00040000 /* Advanced audio distribution */ 123cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AVRCP_SERVICE_MASK 0x00080000 /* A/V remote control */ 124cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HID_SERVICE_MASK 0x00100000 /* HID */ 125cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_VDP_SERVICE_MASK 0x00200000 /* Video distribution */ 126cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PBAP_SERVICE_MASK 0x00400000 /* Phone Book Server */ 127cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_HS_SERVICE_MASK 0x00800000 /* HFP HS role */ 128cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_HS_SERVICE_MASK 0x01000000 /* HSP HS role */ 129cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MAS_SERVICE_MASK 0x02000000 /* Message Access Profile */ 130cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MN_SERVICE_MASK 0x04000000 /* Message Notification Profile */ 131cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HL_SERVICE_MASK 0x08000000 /* Health Device Profile */ 132cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PCE_SERVICE_MASK 0x10000000 /* Phone Book Client */ 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 134cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_SERVICE_MASK 0x20000000 /* GATT based service */ 1359979121f0865e07432215529f9b157792ae3ef21Myles Watson#define BTA_ALL_SERVICE_MASK 0x3FFFFFFF /* All services supported by BTA. */ 136cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_USER_SERVICE_MASK 0x40000000 /* Message Notification Profile */ 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 138e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint32_t tBTA_SERVICE_MASK; 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* extended service mask, including mask with one or more GATT UUID */ 141cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 142cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK srvc_mask; 143cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_uuid; 144cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_UUID* p_uuid; 145cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_SERVICE_MASK_EXT; 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Setting Mask */ 148cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_NONE BTM_SEC_NONE /* No security. */ 149cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_AUTHORIZE \ 150cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_AUTHORIZE) /* Authorization required (only needed for out \ 151cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson going connection )*/ 152cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_AUTHENTICATE \ 153cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_AUTHENTICATE | \ 154cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_SEC_OUT_AUTHENTICATE) /* Authentication required. */ 155cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_ENCRYPT \ 156cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_ENCRYPT | BTM_SEC_OUT_ENCRYPT) /* Encryption required. */ 157cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_MODE4_LEVEL4 \ 158cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_MODE4_LEVEL4) /* Mode 4 level 4 service, i.e. incoming/outgoing \ 159cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson MITM and P-256 encryption */ 160cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_MITM \ 161cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_MITM | BTM_SEC_OUT_MITM) /* Man-In-The_Middle protection */ 162cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_IN_16_DIGITS \ 163cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_MIN_16_DIGIT_PIN) /* Min 16 digit for pin code */ 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 165e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_SEC; 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 167cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson/* Ignore for Discoverable, Connectable, Pairable and Connectable Paired only 168cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * device modes */ 169cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_IGNORE 0x00FF 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17176356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan/* Ignore for Discoverable, Connectable only for LE modes */ 172cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LE_IGNORE 0xFF00 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 174cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_APP_ID_PAN_MULTI 0xFE /* app id for pan multiple connection */ 175cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ALL_APP_ID 0xFF 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Discoverable Modes */ 178cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_DISC BTM_NON_DISCOVERABLE /* Device is not discoverable. */ 179cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_GENERAL_DISC \ 180cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_GENERAL_DISCOVERABLE /* General discoverable. \ 181cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 182cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NON_DISCOVERABLE \ 183cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_NON_DISCOVERABLE /* Device is not LE discoverable */ 184cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_GENERAL_DISCOVERABLE \ 185cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_GENERAL_DISCOVERABLE /* Device is LE General discoverable */ 186cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LIMITED_DISCOVERABLE \ 187cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_LIMITED_DISCOVERABLE /* Device is LE Limited discoverable */ 188cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint16_t 189cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DISC; /* this discoverability mode is a bit mask among BR mode and 190cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson LE mode */ 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connectable Modes */ 193cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_CONN BTM_NON_CONNECTABLE /* Device is not connectable. */ 194cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN BTM_CONNECTABLE /* Device is connectable. */ 195cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NON_CONNECTABLE \ 196cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_NON_CONNECTABLE /* Device is LE non-connectable. */ 197cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONNECTABLE \ 198cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_CONNECTABLE /* Device is LE connectable. */ 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 200e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_CONN; 2017fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 202cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_UNKNOWN 0 203cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_BR_EDR BT_TRANSPORT_BR_EDR 204cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_LE BT_TRANSPORT_LE 2057fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Battatypedef tBT_TRANSPORT tBTA_TRANSPORT; 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Pairable Modes */ 208cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PAIRABLE 1 209cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_PAIRABLE 0 2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connectable Paired Only Mode */ 212cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN_ALL 0 213cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN_PAIRED 1 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Modes */ 216cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQUIRY_NONE BTM_INQUIRY_NONE /*No BR inquiry. */ 217cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_GENERAL_INQUIRY \ 218cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_GENERAL_INQUIRY /* Perform general inquiry. */ 219cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LIMITED_INQUIRY \ 220cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LIMITED_INQUIRY /* Perform limited inquiry. */ 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 222cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_INQUIRY_NONE BTM_BLE_INQUIRY_NONE 223cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_GENERAL_INQUIRY \ 224cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_GENERAL_INQUIRY /* Perform LE general inquiry. */ 225cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LIMITED_INQUIRY \ 226cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_LIMITED_INQUIRY /* Perform LE limited inquiry. */ 227e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_INQ_MODE; 2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Filter Type */ 230cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_CLR BTM_CLR_INQUIRY_FILTER /* Clear inquiry filter. */ 231cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_DEV_CLASS \ 232cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_FILTER_COND_DEVICE_CLASS /* Filter on device class. */ 233cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_BD_ADDR \ 234cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_FILTER_COND_BD_ADDR /* Filter on a specific BD address. */ 2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 236e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_INQ_FILT; 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Authorize Response */ 239cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_PERM \ 240cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0 /* Authorized for future connections to the service */ 241cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_TEMP 1 /* Authorized for current connection only */ 242cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NOT_AUTH 2 /* Not authorized for the service */ 2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 244e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_AUTH_RESP; 2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* M/S preferred roles */ 247cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ANY_ROLE 0x00 248cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MASTER_ROLE_PREF 0x01 249cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MASTER_ROLE_ONLY 0x02 250cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SLAVE_ROLE_ONLY \ 251cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x03 /* Used for PANU only, skip role switch to master */ 2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 253e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_PREF_ROLES; 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 255cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 257cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_NO_SCATTERNET, /* Device doesn't support scatternet, it might 258cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson support "role switch during connection" for 259cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson an incoming connection, when it already has 260cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson another connection in master role */ 261cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_PARTIAL_SCATTERNET, /* Device supports partial scatternet. It can have 262cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson simulateous connection in Master and Slave roles 263cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson for short period of time */ 264cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_FULL_SCATTERNET /* Device can have simultaneous connection in master 265cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson and slave roles */ 2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry filter device class condition */ 270cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 271cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* device class of interest */ 272cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class_mask; /* mask to determine the bits of device class of 273cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson interest */ 2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_COD_COND; 2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Filter Condition */ 277cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 278cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address of device to filter. */ 279cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_COD_COND dev_class_cond; /* Device class filter condition */ 2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_COND; 2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Parameters */ 283cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 284cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_MODE mode; /* Inquiry mode, limited or general. */ 285cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t duration; /* Inquiry duration in 1.28 sec units. */ 286cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t max_resps; /* Maximum inquiry responses. Set to zero for unlimited 287cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson responses. */ 288cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool report_dup; /* report duplicated inquiry response with higher RSSI value 289cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 290cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_FILT filter_type; /* Filter condition type. */ 291cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_COND filter_cond; /* Filter condition data. */ 292e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen#if (BTA_HOST_INTERLEAVE_SEARCH == TRUE) 293cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t intl_duration 294cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson [4]; /*duration array storing the interleave scan's time portions*/ 2957f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie#endif 2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ; 2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 298cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 299cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_min_name_len; /* minimum length of local name when it is 300cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson shortened */ 3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTA_EIR_CANNED_UUID_LIST == TRUE) 302cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_uuid16_len; /* length of 16-bit UUIDs */ 303cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_uuid16; /* 16-bit UUIDs */ 3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 305cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t uuid_mask[BTM_EIR_SERVICE_ARRAY_SIZE]; /* mask of UUID list in EIR */ 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 307cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t* bta_dm_eir_inq_tx_power; /* Inquiry TX power */ 308cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_flag_len; /* length of flags in bytes */ 309cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_flags; /* flags for EIR */ 310cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_manufac_spec_len; /* length of manufacturer specific in 311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bytes */ 312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_manufac_spec; /* manufacturer specific */ 313cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_additional_len; /* length of additional data in bytes */ 314cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_additional; /* additional data */ 3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_EIR_CONF; 3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 317a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* advertising filter policy */ 318cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_AFP tBTA_BLE_AFP; 319a6ce7751d84218c193eb90d390aef23217b1737eWei Wang 320cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 321cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_PASS = 1, 322cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_ACTI = 2, 323cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_PASS_ACTI = 3 324c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji}; 325e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_BATCH_SCAN_MODE; 326c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 327cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_DISCARD_OLD_ITEMS = 0, BTA_BLE_DISCARD_LOWER_RSSI_ITEMS = 1 }; 328e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_DISCARD_RULE; 329c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 330cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_ADV_SEEN_FIRST_TIME = 0, BTA_BLE_ADV_TRACKING_TIMEOUT = 1 }; 331e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_ADV_CHANGE_REASON; 332c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 333cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 334cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_ENB_EVT = 1, 335cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_CFG_STRG_EVT = 2, 336cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_DATA_EVT = 3, 337cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_THRES_EVT = 4, 338cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_PARAM_EVT = 5, 339cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_DIS_EVT = 6 340c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji}; 341c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Callojitypedef tBTM_BLE_BATCH_SCAN_EVT tBTA_BLE_BATCH_SCAN_EVT; 342c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 343c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Callojitypedef tBTM_BLE_TRACK_ADV_ACTION tBTA_BLE_TRACK_ADV_ACTION; 3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 345ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* BLE customer specific feature function type definitions */ 346ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* data type used on customer specific feature for RSSI monitoring */ 347cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI 0 348cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE 1 349cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO 2 350e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_TYPE; 351ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 352cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_NONE BTM_BLE_RSSI_ALERT_NONE /* (0) */ 353cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI_BIT BTM_BLE_RSSI_ALERT_HI_BIT /* (1) */ 354cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE_BIT \ 355cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_RSSI_ALERT_RANGE_BIT /* (1 << 1) */ 356cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO_BIT BTM_BLE_RSSI_ALERT_LO_BIT /* (1 << 2) */ 357cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_MASK; 358ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 359cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_RSSI_CBACK)(BD_ADDR bd_addr, 360cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_RSSI_ALERT_TYPE alert_type, 361cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t rssi); 362ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 363ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* max number of filter spot for different filter type */ 364cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_MAX_UUID_FILTER BTM_BLE_MAX_UUID_FILTER /* 8 */ 365cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_MAX_ADDR_FILTER BTM_BLE_MAX_ADDR_FILTER /* 8 */ 366cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_STR_COND_MAX \ 367cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_PF_STR_COND_MAX /* 4 apply to manu data , or local name */ 368cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_STR_LEN_MAX \ 369cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_PF_STR_LEN_MAX /* match for first 20 bytes */ 370cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 371cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LOGIC_OR 0 372cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LOGIC_AND 1 373e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_LOGIC_TYPE; 374ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 375cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 376cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_BLE_SCAN_COND_ADD, 377cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_BLE_SCAN_COND_DELETE, 378cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_BLE_SCAN_COND_CLEAR = 2 379ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta}; 380e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_SCAN_COND_OP; 381ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 3821a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* ADV payload filtering vendor specific call event */ 383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_SCAN_PF_ENABLE_EVT = 7, BTA_BLE_SCAN_PF_COND_EVT }; 3841a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 385ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* filter selection bit index */ 386cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_ADDR_FILTER BTM_BLE_PF_ADDR_FILTER 387cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_SRVC_DATA BTM_BLE_PF_SRVC_DATA 388cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_SRVC_UUID BTM_BLE_PF_SRVC_UUID 389cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_SRVC_SOL_UUID BTM_BLE_PF_SRVC_SOL_UUID 390cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LOCAL_NAME BTM_BLE_PF_LOCAL_NAME 391cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_MANU_DATA BTM_BLE_PF_MANU_DATA 392cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_SRVC_DATA_PATTERN BTM_BLE_PF_SRVC_DATA_PATTERN 393cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_TYPE_ALL BTM_BLE_PF_TYPE_ALL 394cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_TYPE_MAX BTM_BLE_PF_TYPE_MAX 395cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_DM_BLE_PF_COND_TYPE; 396cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 397cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 398cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t uuid16_mask; 399cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t uuid32_mask; 400cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t uuid128_mask[LEN_UUID_128]; 401cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_COND_MASK; 402cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 403cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 404cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_BD_ADDR* 405cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson p_target_addr; /* target address, if NULL, generic UUID filter */ 406cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_UUID uuid; /* UUID condition */ 407cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_LOGIC_TYPE cond_logic; /* AND/OR */ 408cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_COND_MASK* 409cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson p_uuid_mask; /* UUID condition mask, if NULL, match exact as UUID 410cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson condition */ 411cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_UUID_COND; 412cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 413cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 414cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t data_len; /* <= 20 bytes */ 415cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_data; 416cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_LOCAL_NAME_COND; 417cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 418cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 419cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t company_id; /* company ID */ 420cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t data_len; /* <= 20 bytes */ 421cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_pattern; 422cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t company_id_mask; /* UUID value mask */ 423cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* 424cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson p_pattern_mask; /* Manufacturer data matching mask, same length 425cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson as data pattern, set to all 0xff, match exact data */ 426cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_MANU_COND; 427cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 428cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 429cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t uuid; /* service ID */ 430cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t data_len; /* <= 20 bytes */ 431cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_pattern; 432cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* 433cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson p_pattern_mask; /* Service data matching mask, same length 434cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson as data pattern, set to all 0xff, match exact data */ 435cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_SRVC_PATTERN_COND; 436cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 437cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 438cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_BD_ADDR target_addr; 439cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_LOCAL_NAME_COND local_name; /* lcoal name filtering */ 440cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_MANU_COND manu_data; /* manufactuer data filtering */ 441cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_UUID_COND srvc_uuid; /* service UUID filtering */ 442cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_UUID_COND 443cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson solicitate_uuid; /* solicitated service UUID filtering */ 444cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_SRVC_PATTERN_COND srvc_data; /* service data pattern */ 445cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_COND_PARAM; 446ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 447e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_FILT_INDEX; 448e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_AVBL_SPACE; 4491a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 450e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef int8_t tBTA_DM_RSSI_VALUE; 451e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_QUALITY_VALUE; 4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 453e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_SIG_STRENGTH_MASK; 4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Callback Events */ 456cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENABLE_EVT 0 /* Enable Event */ 457cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISABLE_EVT 1 /* Disable Event */ 458cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PIN_REQ_EVT 2 /* PIN request. */ 459cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CMPL_EVT 3 /* Authentication complete indication. */ 460cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTHORIZE_EVT 4 /* Authorization request. */ 461cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_UP_EVT 5 /* Connection UP event */ 462cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_DOWN_EVT 6 /* Connection DOWN event */ 463cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SIG_STRENGTH_EVT \ 464cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 7 /* Signal strength for bluetooth connection \ 465cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 466cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BUSY_LEVEL_EVT 8 /* System busy level */ 467cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BOND_CANCEL_CMPL_EVT 9 /* Bond cancel complete indication */ 468cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_CFM_REQ_EVT \ 469cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 10 /* Simple Pairing User Confirmation request. \ 470cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 471cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEY_NOTIF_EVT 11 /* Simple Pairing Passkey Notification */ 472cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EVT 12 /* Simple Pairing Remote OOB Data request. */ 473cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEYPRESS_EVT 13 /* Key press notification event. */ 474cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROLE_CHG_EVT 14 /* Role Change event. */ 475cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_KEY_EVT 15 /* BLE SMP key event for peer device keys */ 476cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_REQ_EVT 16 /* BLE SMP security request */ 477cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_NOTIF_EVT 17 /* SMP passkey notification event */ 478cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_REQ_EVT 18 /* SMP passkey request event */ 479cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_OOB_REQ_EVT 19 /* SMP OOB request event */ 480cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_IR_EVT 20 /* BLE local IR event */ 481cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_ER_EVT 21 /* BLE local ER event */ 482cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NC_REQ_EVT 22 /* SMP Numeric Comparison request event */ 483cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EXT_EVT \ 484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 23 /* Simple Pairing Remote OOB Extended Data request. */ 485cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_AUTH_CMPL_EVT 24 /* BLE Auth complete */ 486cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DEV_UNPAIRED_EVT 25 487cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_HW_ERROR_EVT 26 /* BT Chip H/W error */ 488cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LE_FEATURES_READ \ 489cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 27 /* Cotroller specific LE features are read \ 490cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 491cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENER_INFO_READ 28 /* Energy info read */ 492cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SC_OOB_REQ_EVT 29 /* SMP SC OOB request event */ 493e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEC_EVT; 4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ENABLE_EVT */ 496cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { tBTA_STATUS status; } tBTA_DM_ENABLE; 4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_PIN_REQ_EVT */ 499cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 500cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 501cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 502cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 503cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* Class of Device */ 504cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 505cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool min_16_digit; /* true if the pin returned must be at least 16 digits */ 5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PIN_REQ; 5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related definition */ 5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 510cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_FAIL_BASE (HCI_ERR_MAX_ERR + 10) 511cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 512cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson/* Converts SMP error codes defined in smp_api.h to SMP auth fail reasons below. 513cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 514cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CONVERT_SMP_CODE(x) (BTA_DM_AUTH_FAIL_BASE + (x)) 515cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 516cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PASSKEY_FAIL \ 517cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PASSKEY_ENTRY_FAIL) 518cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_OOB_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_OOB_FAIL) 519cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_AUTH_FAIL \ 520cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_AUTH_FAIL) 521cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_VALUE_FAIL \ 522cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_VALUE_ERR) 523cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT \ 524cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_NOT_SUPPORT) 525cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_KEY_SIZE (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_KEY_SIZE) 526cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_CMD (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_CMD) 527cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_ERR \ 528cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_FAIL_UNKNOWN) 529cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_REPEATED_ATTEMPT \ 530cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_REPEATED_ATTEMPTS) 531cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_PARAMETERS \ 532cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_PARAMETERS) 533cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INTERNAL_ERR \ 534cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_INTERNAL_ERR) 535cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_IO (BTA_DM_AUTH_FAIL_BASE + SMP_UNKNOWN_IO_CAP) 536cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INIT_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_INIT_FAIL) 537cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_FAIL) 538cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_BUSY (BTA_DM_AUTH_FAIL_BASE + SMP_BUSY) 539cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_FAIL) 540cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_RSP_TIMEOUT (BTA_DM_AUTH_FAIL_BASE + SMP_RSP_TIMEOUT) 541cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONN_TOUT (BTA_DM_AUTH_FAIL_BASE + SMP_CONN_TOUT) 5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* connection parameter boundary value and dummy value */ 544cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MIN BTM_BLE_SCAN_INT_MIN 545cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MAX BTM_BLE_SCAN_INT_MAX 546cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MIN BTM_BLE_SCAN_WIN_MIN 547cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MAX BTM_BLE_SCAN_WIN_MAX 548cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MIN BTM_BLE_CONN_INT_MIN 549cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MAX BTM_BLE_CONN_INT_MAX 550cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_LATENCY_MAX BTM_BLE_CONN_LATENCY_MAX 551cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MIN BTM_BLE_CONN_SUP_TOUT_MIN 552cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MAX BTM_BLE_CONN_SUP_TOUT_MAX 553cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_PARAM_UNDEF \ 554cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_CONN_PARAM_UNDEF /* use this value when a specific value not to be \ 555cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson overwritten */ 556cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 557cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PENC \ 558cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_PENC /* encryption information of peer device */ 559cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PID BTM_LE_KEY_PID /* identity key of the peer device */ 560cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PCSRK BTM_LE_KEY_PCSRK /* peer SRK */ 561cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LENC \ 562cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_LENC /* master role security information:div */ 563cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LID BTM_LE_KEY_LID /* master device ID key */ 564cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LCSRK \ 565cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_LCSRK /* local CSRK has been deliver to peer */ 566e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_LE_KEY_TYPE; /* can be used as a bit mask */ 5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 568cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PENC_KEYS tBTA_LE_PENC_KEYS; 5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef tBTM_LE_PCSRK_KEYS tBTA_LE_PCSRK_KEYS; 570cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LENC_KEYS tBTA_LE_LENC_KEYS; 571cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LCSRK_KEYS tBTA_LE_LCSRK_KEYS; 572cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PID_KEYS tBTA_LE_PID_KEYS; 573cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 574cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 575cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PENC_KEYS penc_key; /* received peer encryption key */ 576cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PCSRK_KEYS psrk_key; /* received peer device SRK */ 577cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PID_KEYS pid_key; /* peer device ID key */ 578cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_LENC_KEYS 579cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/ 580cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/ 581cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PID_KEYS lid_key; /* local device ID key for the particular remote */ 582cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_LE_KEY_VALUE; 583cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 584cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ID 1 585cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ER 2 586e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_LOCAL_KEY_MASK; 5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 588cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 589cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 ir; 590cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 irk; 591cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 dhk; 592cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_BLE_LOCAL_ID_KEYS; 5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 594cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_GRANTED BTA_SUCCESS 595cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_PAIR_NOT_SPT BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT 596cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_REP_ATTEMPTS BTA_DM_AUTH_SMP_REPEATED_ATTEMPT 597e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_SEC_GRANT; 5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BLE_SEC_REQ_EVT */ 600cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 601cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* peer address */ 602cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BLE_SEC_REQ; 6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 605cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 606cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* peer address */ 607cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTM_LE_KEY_TYPE key_type; 608cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTM_LE_KEY_VALUE* p_key_value; 609cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_KEY; 6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTH_CMPL_EVT */ 612cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 613cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 614cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 615cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool key_present; /* Valid link key value in key element */ 616cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson LINK_KEY key; /* Link key associated with peer device. */ 617cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t key_type; /* The type of Link Key */ 618cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool success; /* true of authentication succeeded, false if failed. */ 619cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t fail_reason; /* The HCI reason/error code for when success=false */ 620cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_ADDR_TYPE addr_type; /* Peer device address type */ 621cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE dev_type; 6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTH_CMPL; 6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTHORIZE_EVT */ 625cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 626cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 627cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 628cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_ID service; /* Service ID to authorize. */ 629cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; 6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTHORIZE; 6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_UP_EVT */ 633cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 634cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 635cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT link_type; 6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_UP; 6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_DOWN_EVT */ 639cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 640cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 641cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t status; /* connection open/closed */ 642cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool is_removed; /* true if device is removed when link is down */ 643cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT link_type; 6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_DOWN; 6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ROLE_CHG_EVT */ 647cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 648cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 649cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t new_role; /* the new connection role */ 6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_ROLE_CHG; 6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BUSY_LEVEL_EVT */ 653cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 654cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t level; /* when paging or inquiring, level is 10. 655cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Otherwise, the number of ACL links */ 656cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t level_flags; /* indicates individual flags */ 6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BUSY_LEVEL; 6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6592e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_OUT BTM_IO_CAP_OUT /* 0 DisplayOnly */ 6602e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IO BTM_IO_CAP_IO /* 1 DisplayYesNo */ 6612e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IN BTM_IO_CAP_IN /* 2 KeyboardOnly */ 6622e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_NONE BTM_IO_CAP_NONE /* 3 NoInputNoOutput */ 663cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_IO_CAP_KBDISP BTM_IO_CAP_KBDISP /* 4 Keyboard display */ 664cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_IO_CAP tBTA_IO_CAP; 665cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 666cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_NO \ 667cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SP_NO /* 0 MITM Protection Not Required - Single \ 668cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Profile/non-bonding \ 669cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 670cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_YES \ 671cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SP_YES /* 1 MITM Protection Required - Single Profile/non-bonding \ 672cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication procedure \ 673cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 674cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_NO \ 675cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_AP_NO /* 2 MITM Protection Not Required - All Profiles/dedicated \ 676cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 677cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 678cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_YES \ 679cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_AP_YES /* 3 MITM Protection Required - All Profiles/dedicated \ 680cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 681cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication procedure \ 682cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 683cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_NO \ 684cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_NO /* 4 MITM Protection Not Required - Single Profiles/general \ 685cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 686cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 687cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_YES \ 688cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_YES /* 5 MITM Protection Required - Single Profiles/general \ 689cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 690cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication \ 691cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson procedure */ 692cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_AUTH_REQ tBTA_AUTH_REQ; 693cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 694cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_DD_BOND \ 695cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_DD_BOND /* 2 this bit is set for dedicated bonding */ 696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_GEN_BOND \ 697cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_NO /* 4 this bit is set for general bonding */ 698cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_BONDS \ 699cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_BONDS /* 6 the general/dedicated bonding bits */ 700cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 701cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_NO_BOND BTM_LE_AUTH_REQ_NO_BOND /* 0*/ 702cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_BOND BTM_LE_AUTH_REQ_BOND /* 1 << 0 */ 703cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_MITM BTM_LE_AUTH_REQ_MITM /* 1 << 2 */ 704cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 705cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_ONLY BTM_LE_AUTH_REQ_SC_ONLY /* 1 << 3 */ 706cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_BOND BTM_LE_AUTH_REQ_SC_BOND /* 1001 */ 707cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM BTM_LE_AUTH_REQ_SC_MITM /* 1100 */ 708cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM_BOND BTM_LE_AUTH_REQ_SC_MITM_BOND /* 1101 */ 709cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_AUTH_REQ 710cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_AUTH_REQ; /* combination of the above bit pattern */ 711cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 712cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_NONE BTM_OOB_NONE 713cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_PRESENT BTM_OOB_PRESENT 714cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_UNKNOWN BTM_OOB_UNKNOWN 715cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 716cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_OOB_DATA tBTA_OOB_DATA; 7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_CFM_REQ_EVT */ 719cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 720cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 721cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 722cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* peer address */ 723cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 724cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 725cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t num_val; /* the numeric value for comparison. If just_works, do not 726cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson show this number to UI */ 727cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool just_works; /* true, if "Just Works" association model */ 728cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ loc_auth_req; /* Authentication required for local device */ 729cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */ 730cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_IO_CAP loc_io_caps; /* IO Capabilities of local device */ 731cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ rmt_io_caps; /* IO Capabilities of remote device */ 7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_CFM_REQ; 7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 734cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 735cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_STARTED, /* passkey entry started */ 736cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_ENTERED, /* passkey digit entered */ 737cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_ERASED, /* passkey digit erased */ 738cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_CLEARED, /* passkey cleared */ 739cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_COMPLT /* passkey entry completed */ 7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 741cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_SP_KEY_TYPE; 7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEYPRESS_EVT */ 744cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 745cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* peer address */ 746cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SP_KEY_TYPE notif_type; 747cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_SP_KEY_PRESS; 7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEY_NOTIF_EVT */ 750cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 751cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 752cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 753cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* peer address */ 754cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 755cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 756cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t passkey; /* the numeric value for comparison. If just_works, do not 757cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson show this number to UI */ 7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_KEY_NOTIF; 7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_RMT_OOB_EVT */ 761cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 762cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 763cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 764cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* peer address */ 765cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 766cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_RMT_OOB; 7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BOND_CANCEL_CMPL_EVT */ 770cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 771cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; /* true of bond cancel succeeded, false if failed. */ 7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BOND_CANCEL_CMPL; 7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all security callback structures */ 775cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 776cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ENABLE enable; /* BTA enabled */ 777cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_PIN_REQ pin_req; /* PIN request. */ 778cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_AUTH_CMPL auth_cmpl; /* Authentication complete indication. */ 779cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_AUTHORIZE authorize; /* Authorization request. */ 780cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_LINK_UP link_up; /* ACL connection down event */ 781cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_LINK_DOWN link_down; /* ACL connection down event */ 782cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BUSY_LEVEL busy_level; /* System busy level */ 783cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_CFM_REQ cfm_req; /* user confirm request */ 784cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_KEY_NOTIF key_notif; /* passkey notification */ 785cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_RMT_OOB rmt_oob; /* remote oob */ 786cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BOND_CANCEL_CMPL 787cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bond_cancel_cmpl; /* Bond Cancel Complete indication */ 788cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_KEY_PRESS key_press; /* key press notification event */ 789cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ROLE_CHG role_chg; /* role change event */ 790cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_SEC_REQ ble_req; /* BLE SMP related request */ 791cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_KEY ble_key; /* BLE SMP keys used when pairing */ 792cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_LOCAL_ID_KEYS ble_id_keys; /* IR event */ 793cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 ble_er; /* ER event data */ 7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEC; 7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security callback */ 797cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC* p_data); 7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 799e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint32_t tBTA_DM_BLE_REF_VALUE; 800a6ce7751d84218c193eb90d390aef23217b1737eWei Wang 801cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_ENABLE_EVT BTM_BLE_PF_ENABLE 802cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_CONFIG_EVT BTM_BLE_PF_CONFIG 803e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_EVT; 8041a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 805cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_ENABLE 1 806cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_CONFIG 2 807e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_ACTION; 8081a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 8091a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* Config callback */ 810cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_PF_CFG_CBACK)(tBTA_DM_BLE_PF_ACTION action, 811cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_COND_TYPE cfg_cond, 812cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, 813cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status, 814cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value); 8151a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* Param callback */ 816cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_PF_PARAM_CBACK)(uint8_t action_type, 817cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, 818cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value, 819cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status); 8201a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 8211a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* Status callback */ 822cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_PF_STATUS_CBACK)(uint8_t action, tBTA_STATUS status, 823cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value); 8241a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 825cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LIST_LOGIC_OR 1 826cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LIST_LOGIC_AND 2 827cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_FILT_LOGIC_OR 0 828cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_FILT_LOGIC_AND 1 8291a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback events */ 831cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_EVT 0 /* Inquiry result for a peer device. */ 832cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_CMPL_EVT 1 /* Inquiry complete. */ 833cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_RES_EVT 2 /* Discovery result for a peer device. */ 834cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_BLE_RES_EVT \ 835cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 3 /* Discovery result for BLE GATT based servoce on a peer device. */ 836cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_CMPL_EVT 4 /* Discovery complete. */ 837cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_DISC_CMPL_EVT 5 /* Discovery complete. */ 838cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 6 /* Search cancelled */ 8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 840e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEARCH_EVT; 8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 842cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_IGNORE_RSSI \ 843cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_INQ_RES_IGNORE_RSSI /* 0x7f RSSI value not supplied (ignore it) */ 8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_RES_EVT */ 846cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 847cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 848cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* Device class of peer device. */ 849cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool remt_name_not_required; /* Application sets this flag if it already knows 850cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson the name of the device */ 851cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* If the device name is known to application BTA skips the remote name 852cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * request */ 853cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool is_limited; /* true, if the limited inquiry bit is set in the CoD */ 854cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t rssi; /* The rssi value */ 855cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_eir; /* received EIR */ 856cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t inq_result_type; 857cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t ble_addr_type; 858cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTM_BLE_EVT_TYPE ble_evt_type; 859cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE device_type; 860cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t flag; 8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_RES; 8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_CMPL_EVT */ 864cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 865cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_resps; /* Number of inquiry responses. */ 8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_CMPL; 8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DI_DISC_CMPL_EVT */ 869cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 870cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 871cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_record; /* Number of DI record */ 872cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; 8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DI_DISC_CMPL; 8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DISC_RES_EVT */ 876cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 877cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 878cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 879cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK services; /* Services found on peer device. */ 880cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_raw_data; /* Raw data for discovery DB */ 881cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t raw_data_size; /* size of raw data */ 882cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE device_type; /* device type in case it is BLE device */ 883cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t num_uuids; 884cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_uuid_list; 885cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; 8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_RES; 8875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with tBTA_DM_DISC_BLE_RES */ 889cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 890cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR bd_addr; /* BD address peer device. */ 891cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 892cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_UUID service; /* GATT based Services UUID found on peer device. */ 8935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_BLE_RES; 8945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all search callback structures */ 896cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 897cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_RES inq_res; /* Inquiry result for a peer device. */ 898cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_CMPL inq_cmpl; /* Inquiry complete. */ 899cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DISC_RES disc_res; /* Discovery result for a peer device. */ 900cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DISC_BLE_RES 901cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson disc_ble_res; /* discovery result for GATT based service */ 902cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DI_DISC_CMPL di_disc; /* DI discovery result for a peer device */ 9035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEARCH; 9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback */ 907cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEARCH_CBACK)(tBTA_DM_SEARCH_EVT event, 908cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH* p_data); 9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Execute call back */ 911cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_EXEC_CBACK)(void* p_param); 9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption callback*/ 914cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_ENCRYPT_CBACK)(BD_ADDR bd_addr, tBTA_TRANSPORT transport, 915cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result); 9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 917cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NONE BTM_BLE_SEC_NONE 918cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_ENCRYPT BTM_BLE_SEC_ENCRYPT 919cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NO_MITM BTM_BLE_SEC_ENCRYPT_NO_MITM 920cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_MITM BTM_BLE_SEC_ENCRYPT_MITM 921cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_SEC_ACT tBTA_DM_BLE_SEC_ACT; 922c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 923cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_TX_TIME_MS tBTA_DM_BLE_TX_TIME_MS; 924cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_RX_TIME_MS tBTA_DM_BLE_RX_TIME_MS; 925cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_IDLE_TIME_MS tBTA_DM_BLE_IDLE_TIME_MS; 926cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_ENERGY_USED tBTA_DM_BLE_ENERGY_USED; 927cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 928cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_UNKNOWN 0 /* Unknown state */ 929cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_ACTIVE 1 /* ACL link on, SCO link ongoing, sniff mode */ 930cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_SCAN \ 931cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 2 /* Scan state - paging/inquiry/trying to \ 932cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson connect*/ 933cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_IDLE \ 934cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 3 /* Idle state - page scan, LE advt, inquiry scan \ 935cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 936e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 937e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_CONTRL_STATE; 938e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 939e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_STATE; 940e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_INFO_PRESENT; 941e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_VALUE; 942e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_BLE_ADV_INFO_TIMESTAMP; 943f538707fe64c62b1dbb8e4210e4a1bfa0bab2b56Satya Calloji 944f538707fe64c62b1dbb8e4210e4a1bfa0bab2b56Satya Callojitypedef tBTM_BLE_TRACK_ADV_DATA tBTA_DM_BLE_TRACK_ADV_DATA; 945e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 946cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_SCAN_THRESHOLD_CBACK)(tBTA_DM_BLE_REF_VALUE ref_value); 947e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 948cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_SCAN_REP_CBACK)(tBTA_DM_BLE_REF_VALUE ref_value, 949cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t report_format, 950cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_records, uint16_t data_len, 951cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_rep_data, tBTA_STATUS status); 9521acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji 953cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_SCAN_SETUP_CBACK)(tBTA_BLE_BATCH_SCAN_EVT evt, 954cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value, 955cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status); 956c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 957cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_TRACK_ADV_CMPL_CBACK)( 958cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int action, tBTA_STATUS status, tBTA_DM_BLE_PF_AVBL_SPACE avbl_space, 959cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value); 9601acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji 961cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_TRACK_ADV_CBACK)(tBTA_DM_BLE_TRACK_ADV_DATA* p_adv_data); 9621acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji 963cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_ENERGY_INFO_CBACK)(tBTA_DM_BLE_TX_TIME_MS tx_time, 964cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_RX_TIME_MS rx_time, 965cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_IDLE_TIME_MS idle_time, 966cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_ENERGY_USED energy_used, 967cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_CONTRL_STATE ctrl_state, 968cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status); 969e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Maximum service name length */ 971cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_NAME_LEN 35 972cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_DESP_LEN BTA_SERVICE_NAME_LEN 973cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PROVIDER_NAME_LEN BTA_SERVICE_NAME_LEN 9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* link policy masks */ 976cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SWITCH HCI_ENABLE_MASTER_SLAVE_SWITCH 977cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_HOLD HCI_ENABLE_HOLD_MODE 978cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SNIFF HCI_ENABLE_SNIFF_MODE 979cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_PARK HCI_ENABLE_PARK_MODE 980e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_LP_MASK; 9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* power mode actions */ 983cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_ACTION 0x00 /* no change to the current pm setting */ 984cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK 0x10 /* prefers park mode */ 985cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF 0x20 /* prefers sniff mode */ 986cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1 0x21 /* prefers sniff1 mode */ 987cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2 0x22 /* prefers sniff2 mode */ 988cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3 0x23 /* prefers sniff3 mode */ 989cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4 0x24 /* prefers sniff4 mode */ 990cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5 0x25 /* prefers sniff5 mode */ 991cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF6 0x26 /* prefers sniff6 mode */ 992cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF7 0x27 /* prefers sniff7 mode */ 993cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER0 \ 994cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x28 /* prefers user-defined sniff0 mode (testtool only) */ 995cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER1 \ 996cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x29 /* prefers user-defined sniff1 mode (testtool only) */ 997cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_ACTIVE 0x40 /* prefers active mode */ 998cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_RETRY 0x80 /* retry power mode based on current settings */ 999cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SUSPEND 0x04 /* prefers suspend mode */ 1000cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_PREF \ 1001cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x01 /* service has no prefernce on power mode setting. eg. connection to \ 1002cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson service got closed */ 10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1004e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_PM_ACTION; 10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* index to bta_dm_ssr_spec */ 1007cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR0 0 1008cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR1 \ 1009cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 1 /* BTA_DM_PM_SSR1 will be dedicated for \ 1010cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson HH SSR setting entry, no other profile can use it */ 1011cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR2 2 1012cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR3 3 1013cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR4 4 1014cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR5 5 1015cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR6 6 1016cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 1017cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NUM_EVTS 9 10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_DM_PM_PARK_IDX 1020cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_IDX \ 1021cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 5 /* the actual index to bta_dm_pm_md[] for PARK mode */ 10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 102463399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_A2DP_IDX 1025cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_A2DP_IDX BTA_DM_PM_SNIFF 102663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 102763399d943938cb7234a7fba508ea603070720d77Adam Hampson 102863399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_IDLE_IDX 1029cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_HD_IDLE_IDX BTA_DM_PM_SNIFF2 103063399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 103163399d943938cb7234a7fba508ea603070720d77Adam Hampson 103263399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_SCO_OPEN_IDX 1033cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_SCO_OPEN_IDX BTA_DM_PM_SNIFF3 103463399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 103563399d943938cb7234a7fba508ea603070720d77Adam Hampson 103663399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_ACTIVE_IDX 103763399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HD_ACTIVE_IDX BTA_DM_PM_SNIFF4 103863399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 103963399d943938cb7234a7fba508ea603070720d77Adam Hampson 104063399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_OPEN_IDX 104163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_OPEN_IDX BTA_DM_PM_SNIFF2 104263399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 104363399d943938cb7234a7fba508ea603070720d77Adam Hampson 104463399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_ACTIVE_IDX 104563399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_ACTIVE_IDX BTA_DM_PM_SNIFF2 104663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 104763399d943938cb7234a7fba508ea603070720d77Adam Hampson 104863399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_IDLE_IDX 104963399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_IDLE_IDX BTA_DM_PM_SNIFF2 105063399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 105163399d943938cb7234a7fba508ea603070720d77Adam Hampson 105263399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_OPEN_DELAY 105363399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_OPEN_DELAY 30000 105463399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 105563399d943938cb7234a7fba508ea603070720d77Adam Hampson 105663399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_ACTIVE_DELAY 105763399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_ACTIVE_DELAY 30000 105863399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 105963399d943938cb7234a7fba508ea603070720d77Adam Hampson 106063399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_IDLE_DELAY 106163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_IDLE_DELAY 30000 106263399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 106363399d943938cb7234a7fba508ea603070720d77Adam Hampson 106463399d943938cb7234a7fba508ea603070720d77Adam Hampson/* The Sniff Parameters defined below must be ordered from highest 106563399d943938cb7234a7fba508ea603070720d77Adam Hampson * latency (biggest interval) to lowest latency. If there is a conflict 106663399d943938cb7234a7fba508ea603070720d77Adam Hampson * among the connected services the setting with the lowest latency will 106763399d943938cb7234a7fba508ea603070720d77Adam Hampson * be selected. If a device should override a sniff parameter then it 106863399d943938cb7234a7fba508ea603070720d77Adam Hampson * must insure that order is maintained. 106963399d943938cb7234a7fba508ea603070720d77Adam Hampson */ 107063399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_MAX 1071cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MAX 800 1072cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MIN 400 1073cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_ATTEMPT 4 1074cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_TIMEOUT 1 107563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 107663399d943938cb7234a7fba508ea603070720d77Adam Hampson 107763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF1_MAX 1078cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MAX 400 1079cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MIN 200 108063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_ATTEMPT 4 108163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_TIMEOUT 1 108263399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 108363399d943938cb7234a7fba508ea603070720d77Adam Hampson 108463399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF2_MAX 1085cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2_MAX 180 1086cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2_MIN 150 108763399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_ATTEMPT 4 108863399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_TIMEOUT 1 108963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 109063399d943938cb7234a7fba508ea603070720d77Adam Hampson 109163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF3_MAX 1092cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MAX 150 1093cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MIN 50 109463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_ATTEMPT 4 109563399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_TIMEOUT 1 109663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 109763399d943938cb7234a7fba508ea603070720d77Adam Hampson 109863399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF4_MAX 1099cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4_MAX 54 1100cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4_MIN 30 110163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_ATTEMPT 4 110263399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_TIMEOUT 1 110363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 110463399d943938cb7234a7fba508ea603070720d77Adam Hampson 11051076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#ifndef BTA_DM_PM_SNIFF5_MAX 1106cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MAX 36 1107cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MIN 30 11081076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_ATTEMPT 2 11091076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_TIMEOUT 0 11101076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#endif 11111076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov 111263399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_PARK_MAX 1113cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MAX 800 1114cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MIN 400 1115cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_ATTEMPT 0 1116cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_TIMEOUT 0 111763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 111863399d943938cb7234a7fba508ea603070720d77Adam Hampson 11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Switch callback events */ 1120cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SWITCH_CMPL_EVT 0 /* Completion of the Switch API */ 11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1122e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SWITCH_EVT; 1123cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SWITCH_CBACK)(tBTA_DM_SWITCH_EVT event, 1124cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status); 11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Audio routing out configuration */ 1127cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_NONE 0x00 /* No Audio output */ 1128cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_DAC 0x01 /* routing over analog output */ 1129cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_I2S 0x02 /* routing over digital (I2S) output */ 1130cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_MONO 0x04 /* routing over SCO */ 1131cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_STEREO 0x08 /* routing over BT Stereo */ 1132cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_HOST 0x10 /* routing over Host */ 1133cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMTX 0x20 /* routing over FMTX */ 1134cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMRX 0x40 /* routing over FMRX */ 1135cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BTSNK 0x80 /* routing over BT SNK */ 11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1137e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_ROUTE_PATH; 11385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Device Identification (DI) data structure 11405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 11415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to set the DI record */ 1142cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_RECORD tBTA_DI_RECORD; 11435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to get the DI record */ 1144cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_GET_RECORD tBTA_DI_GET_RECORD; 11455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP discovery database */ 1146cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DISCOVERY_DB tBTA_DISCOVERY_DB; 11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1148cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#ifndef BTA_DI_NUM_MAX 1149cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DI_NUM_MAX 3 11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11523aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Device features mask definitions */ 1153cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FEATURE_BYTES_PER_PAGE BTM_FEATURE_BYTES_PER_PAGE 1154cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_EXT_FEATURES_PAGE_MAX BTM_EXT_FEATURES_PAGE_MAX 11557fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* ACL type 11567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta*/ 1157cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_BR_EDR 0x01 1158cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_LE 0x02 1159cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_ALL 0xFF 1160e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_TYPE; 11613aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 1162cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define IMMEDIATE_DELY_MODE 0x00 1163cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ONFOUND_DELY_MODE 0x01 1164cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BATCH_DELY_MODE 0x02 1165cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ALLOW_ALL_FILTER 0x00 1166cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define LOWEST_RSSI_VALUE 129 11676e2d9db5148176d88d7f48c3b2ad5b27c57ca14dSatya Calloji 11685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 11698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * External Function Declarations 11708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/ 11715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_EnableBluetooth 11758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initializes BTA and prepares BTA and the 11778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Bluetooth protocol stack for use. This function is 11788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * typically called at startup or when Bluetooth services 11798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * are required by the phone. This function must be called 11808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * before calling any other API function. 11818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if successful. 11848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAIL if internal failure. 11858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1187cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK* p_cback); 11885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DisableBluetooth 11928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function disables BTA and the Bluetooth protocol 11948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * stack. It is called when BTA is no longer being used 11958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * by any application in the system. 11968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 120124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_DisableBluetooth(void); 12025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_EnableTestMode 12068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enables bluetooth device under test mode 12088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns tBTA_STATUS 12118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 121324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_EnableTestMode(void); 12145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DisableTestMode 12188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Disable bluetooth device under test mode 12208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 12238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 122524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DisableTestMode(void); 12265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetDeviceName 12308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function sets the Bluetooth name of the local device. 12328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1237cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetDeviceName(char* p_name); 12385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetVisibility 12428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function sets the Bluetooth connectable,discoverable, 1244cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * pairable and conn paired only modesmodes of the local 12451baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * device. 1246cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * This controls whether other Bluetooth devices can find and 12471baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * connect to the local device. 12488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1253cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode, 1254cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t pairable_mode, uint8_t conn_filter); 12555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearch 12598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function searches for peer Bluetooth devices. It 12618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * first performs an inquiry; for each device found from the 12628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * inquiry it gets the remote name of the device. If 12638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * parameter services is nonzero, service discovery will be 12648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * performed on each device for the services specified. 12658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1270cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearch(tBTA_DM_INQ* p_dm_inq, tBTA_SERVICE_MASK services, 1271cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback); 12725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearchCancel 12768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function cancels a search that has been initiated 12788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * by calling BTA_DmSearch(). 12798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 128424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmSearchCancel(void); 12855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscover 12898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function performs service discovery for the services 12918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of a particular peer device. 12928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 129724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmDiscover(BD_ADDR bd_addr, tBTA_SERVICE_MASK services, 1298cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 12995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverUUID 13038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function performs service discovery for the services 13058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of a particular peer device. 13068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverUUID(BD_ADDR bd_addr, tSDP_UUID* uuid, 1312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 13135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmGetCachedRemoteName 13178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Retieve cached remote name if available 13198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if cached name was retrieved 13218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAILURE if cached name is not available 13228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1324cd1fd07f1306e08fe048682dd5918987e579f937Myles WatsontBTA_STATUS BTA_DmGetCachedRemoteName(BD_ADDR remote_device, 1325cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t** pp_cached_name); 13265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBond 13308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initiates a bonding procedure with a peer 13328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device. The bonding procedure enables authentication 13338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * and optionally encryption on the Bluetooth link. 13348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 133924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBond(BD_ADDR bd_addr); 13405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBondByTransport 13448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initiates a bonding procedure with a peer 1346cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * device by designated transport. The bonding procedure 13471baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * enables authentication and optionally encryption on the 13481baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Bluetooth link. 13498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 135424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBondByTransport(BD_ADDR bd_addr, tBTA_TRANSPORT transport); 13557fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 13567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/******************************************************************************* 13578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBondCancel 13598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function cancels a bonding procedure with a peer 13618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device. 13628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 136724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBondCancel(BD_ADDR bd_addr); 13685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmPinReply 13728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function provides a PIN when one is requested by DM 13748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * during a bonding procedure. The application should call 13758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * this function after the security callback is called with 13768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * a BTA_DM_PIN_REQ_EVT. 13778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1382e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmPinReply(BD_ADDR bd_addr, bool accept, uint8_t pin_len, 1383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_pin); 13845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmLocalOob 13888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function retrieves the OOB data from local controller. 13908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * The result is reported by bta_dm_co_loc_oob(). 13918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 139524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmLocalOob(void); 13965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmConfirm 14008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function accepts or rejects the numerical value of the 14028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Simple Pairing process on BTA_DM_SP_CFM_REQ_EVT 14038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1407e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmConfirm(BD_ADDR bd_addr, bool accept); 14085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddDevice 14128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function adds a device to the security database list 14148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of peer devices. This function would typically be called 14158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * at system startup to initialize the security database with 14168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * known peer devices. This is a direct execution function 14178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * that may lock task scheduling on some platforms. 14188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 142224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class, 142324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask, 1424e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen bool is_trusted, uint8_t key_type, 1425e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen tBTA_IO_CAP io_cap, uint8_t pin_length); 14265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmRemoveDevice 14308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function removes a device from the security database. 14328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * This is a direct execution function that may lock task 14338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scheduling on some platforms. 14348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if successful. 14378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAIL if operation failed. 14388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 144024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_DmRemoveDevice(BD_ADDR bd_addr); 14415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_GetEirService 14458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to get BTA service mask from EIR. 14478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_eir - pointer of EIR significant part 14498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_services - return the BTA service mask 14508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 14528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1454cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_GetEirService(uint8_t* p_eir, tBTA_SERVICE_MASK* p_services); 14555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14565c0b052090a57b3926669c23349b0f0db68853f8Andre Eisenbach/******************************************************************************* 14578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmGetConnectionState 14598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Returns whether the remote device is currently connected. 14618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns 0 if the device is NOT connected. 14638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1465cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern uint16_t BTA_DmGetConnectionState(const BD_ADDR bd_addr); 14665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetLocalDiRecord 14708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function adds a DI record to the local SDP database. 14728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if record set sucessfully, otherwise error code. 14748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1476cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_DmSetLocalDiRecord(tBTA_DI_RECORD* p_device_info, 1477cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t* p_handle); 14785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmCloseACL 14838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function force to close an ACL connection and remove 1485cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson the 14868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device from the security database list of known devices. 14878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - Address of the peer device 14898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * remove_dev - remove device or not after link down 14908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * transport - which transport to close 14918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson 14928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 14948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1496cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmCloseACL(BD_ADDR bd_addr, bool remove_dev, 1497cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT transport); 14985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dmexecutecallback 15028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1503cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function will request BTA to execute a call back in the 15041baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * context of BTU task. 15058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * This API was named in lower case because it is only intended 15068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * for the internal customers(like BTIF). 15078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1511cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dmexecutecallback(tBTA_DM_EXEC_CBACK* p_callback, 1512cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson void* p_param); 15135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SCO_HCI_INCLUDED == TRUE) 15155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmPcmInitSamples 15188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description initialize the down sample converter. 15208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * src_sps: original samples per second (source audio data) 15228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * (ex. 44100, 48000) 15238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * bits: number of bits per pcm sample (16) 15248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * n_channels: number of channels (i.e. mono(1), stereo(2)...) 15258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns none 15278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1529cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmPcmInitSamples(uint32_t src_sps, uint32_t bits, 1530cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t n_channels); 15315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1532ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 15338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmPcmResample 15348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1535cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Down sampling utility to convert higher sampling rate into 15361baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * 8K/16bits 15378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * PCM samples. 15388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_src: pointer to the buffer where the original sampling PCM 15408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * are stored. 15418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * in_bytes: Length of the input PCM sample buffer in byte. 15421baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * p_dst: pointer to the buffer which is to be used to store 15431baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * the converted PCM samples. 15448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns int32_t: number of samples converted. 15478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1548ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 1549cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern int32_t BTA_DmPcmResample(void* p_src, uint32_t in_bytes, void* p_dst); 15505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 15515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related API functions */ 15535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleSecurityGrant 15568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Grant security request access. 15588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 15608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * res - security grant status. 15618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 156524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBleSecurityGrant(BD_ADDR bd_addr, tBTA_DM_BLE_SEC_GRANT res); 15665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 156783211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski/** 156883211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski * Set BLE connectable mode to auto connect 156983211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski */ 157083211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowskiextern void BTA_DmBleStartAutoConn(); 15715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBlePasskeyReply 15758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Send BLE SMP passkey reply. 15778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 15798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * accept - passkey entry sucessful or declined. 15808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * passkey - passkey value, must be a 6 digit number, 15818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * can be lead by 0. 15828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1586cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBlePasskeyReply(BD_ADDR bd_addr, bool accept, 1587cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t passkey); 15885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleConfirmReply 15928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Send BLE SMP SC user confirmation reply. 15948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 1596cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * accept - numbers to compare are the same or 15971baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * different. 15988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1602e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleConfirmReply(BD_ADDR bd_addr, bool accept); 1603444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 1604444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/******************************************************************************* 16058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddBleDevice 16078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Add a BLE device. This function will be normally called 16098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * during host startup to restore all required information 16108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * for a LE device stored in the NVRAM. 16118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 16138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * dev_type - Remote device's device type. 16148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * addr_type - LE device address type. 16158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 161924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmAddBleDevice(BD_ADDR bd_addr, tBLE_ADDR_TYPE addr_type, 162024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBT_DEVICE_TYPE dev_type); 16215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 16225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 16238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddBleKey 16258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Add/modify LE device information. This function will be 16278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * normally called during host startup to restore all required 16288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * information stored in the NVRAM. 16298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 16318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_le_key - LE key values. 16328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * key_type - LE SMP key type. 16338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1637cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmAddBleKey(BD_ADDR bd_addr, tBTA_LE_KEY_VALUE* p_le_key, 1638cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_KEY_TYPE key_type); 16395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 16405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 16418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetBlePrefConnParams 16438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to set the preferred connection 16458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * parameters when default connection parameter is not desired. 16468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peripheral 16488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * min_conn_int - minimum preferred connection interval 16498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * max_conn_int - maximum preferred connection interval 16508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * slave_latency - preferred slave latency 16518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * supervision_tout - preferred supervision timeout 16528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1657063ca0230d902b1397bb8c19366e807980d876f3Jakub Pawlowskiextern void BTA_DmSetBlePrefConnParams(const BD_ADDR bd_addr, 1658cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t min_conn_int, 1659cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t max_conn_int, 1660cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t slave_latency, 1661cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t supervision_tout); 16625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 16635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 16648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetBleConnScanParams 16668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to set scan parameters used in 16688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BLE connection request 16698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: scan_interval - scan interval 16718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scan_window - scan window 16728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1676e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmSetBleConnScanParams(uint32_t scan_interval, 1677e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen uint32_t scan_window); 16785725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji 16795725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji/******************************************************************************* 16808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetBleScanParams 16828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to set scan parameters 16848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: client_if - Client IF 16868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scan_interval - scan interval 16878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scan_window - scan window 16888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scan_mode - scan mode 1689cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * scan_param_setup_status_cback - Set scan param status 16901baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * callback 16918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1695cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetBleScanParams( 1696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tGATT_IF client_if, uint32_t scan_interval, uint32_t scan_window, 1697cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_SCAN_MODE scan_mode, 1698cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_SCAN_PARAM_SETUP_CBACK scan_param_setup_status_cback); 16995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 17018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetBleAdvParams 17038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1704cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function sets the advertising parameters BLE 17051baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * functionality. 1706cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * It is to be called when device act in peripheral or 17071baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * broadcaster role. 17088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: adv_int_min - adv interval minimum 17108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * adv_int_max - adv interval max 17118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_dir_bda - directed adv initator address 17128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1716cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetBleAdvParams(uint16_t adv_int_min, uint16_t adv_int_max, 1717cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_BD_ADDR* p_dir_bda); 17185c44e45473e5fc2fa89411ab1add7dbfc979f1f8Andre Eisenbach/******************************************************************************* 17198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearchExt 17218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1722cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function searches for peer Bluetooth devices. It 17231baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * performs an inquiry and gets the remote name for devices. 17241baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Service discovery is done if services is non zero 17258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_dm_inq: inquiry conditions 1727cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * services: if service is not empty, service discovery will be 17281baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * done. 1729cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * for all GATT based service condition, put 17301baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * num_uuid, and p_uuid is the pointer to the list of 17311baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * UUID values. 17328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_cback: callback functino when search is completed. 17338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1739cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearchExt(tBTA_DM_INQ* p_dm_inq, 1740cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1741cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback); 17425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 17448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverExt 17468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function does service discovery for services of a 17488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * peer device. When services.num_uuid is 0, it indicates all 17498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * GATT based services are to be searched; other wise a list of 17508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * UUID of interested services should be provided through 17518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * services.p_uuid. 17528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1758cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverExt(BD_ADDR bd_addr, 1759cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1760cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 17615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17627fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/******************************************************************************* 17638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverByTransport 17658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function does service discovery on particular transport 17678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * for services of a 17688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * peer device. When services.num_uuid is 0, it indicates all 17698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * GATT based services are to be searched; other wise a list of 17708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * UUID of interested services should be provided through 17718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_services->p_uuid. 17728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1778cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverByTransport(BD_ADDR bd_addr, 1779cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1780cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, 1781cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool sdp_search, 178224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBTA_TRANSPORT transport); 17835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 17858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetEncryption 17878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to ensure that connection is 17898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * encrypted. Should be called only on an open connection. 17908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Typically only needed for connections that first want to 17918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * bring up unencrypted links, then later encrypt them. 17928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - Address of the peer device 17948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * transport - transport of the link to be encruypted 17958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_callback - Pointer to callback function to indicat the 17968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * link encryption status 17978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * sec_act - This is the security action to indicate 17981baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * what kind of BLE security level is required 17991baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * for the BLE link if BLE is supported 18001baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Note: This parameter is ignored for 18011baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * BR/EDR or if BLE is not supported. 18028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 18048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 180724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmSetEncryption(BD_ADDR bd_addr, tBTA_TRANSPORT transport, 1808cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ENCRYPT_CBACK* p_callback, 180924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBTA_DM_BLE_SEC_ACT sec_act); 18105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1811ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 18128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleObserve 18148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This procedure keep the device listening for advertising 18168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * events from a broadcast device. 18178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters start: start or stop observe. 1819cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * duration : Duration of the scan. Continuous scan if 0 is 18201baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * passed 18218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_results_cb: Callback to be called with scan results 18228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 18248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1826e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleObserve(bool start, uint8_t duration, 1827cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_results_cb); 1828ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1829ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 18308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleConfigLocalPrivacy 18328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enable/disable privacy on the local device 18348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: privacy_enable - enable/disabe privacy on remote device. 18368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 18388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1840e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleConfigLocalPrivacy(bool privacy_enable); 1841ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1842ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 18438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleEnableRemotePrivacy 18458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enable/disable privacy on a remote device 18478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 18498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * privacy_enable - enable/disabe privacy on remote device. 18508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 18528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1854e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleEnableRemotePrivacy(BD_ADDR bd_addr, bool privacy_enable); 1855ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 18566a9666116668683fb473239ff381dec16b784421Jakub Pawlowski/******************************************************************************* 18578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleUpdateConnectionParams 18598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1860cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Update connection parameters, can only be used when 18611baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * connection is up. 18628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 18641baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * min_int - minimum connection interval, [0x0004 ~ 0x4000] 18651baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * max_int - maximum connection interval, [0x0004 ~ 0x4000] 18661baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * latency - slave latency [0 ~ 500] 18671baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * timeout - supervision timeout [0x000a ~ 0xc80] 18688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 18708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1872cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleUpdateConnectionParams(const BD_ADDR bd_addr, 1873cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t min_int, uint16_t max_int, 1874cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t latency, uint16_t timeout); 1875c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 1876c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/******************************************************************************* 18778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleSetDataLength 18798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is to set maximum LE data packet size 18818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 18838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1885cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleSetDataLength(BD_ADDR remote_device, 1886cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t tx_data_length); 1887636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera 1888636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera/******************************************************************************* 18898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleSetStorageParams 18918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 18928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to set the storage parameters 18938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1894cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Parameters batch_scan_full_max -Max storage space (in %) allocated to 18951baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * full scanning 1896cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * batch_scan_trunc_max -Max storage space (in %) allocated to 18971baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * truncated scanning 1898cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * batch_scan_notify_threshold - Setup notification level based 18991baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * on total space consumed by 19001baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * both pools. Setting it to 0 19011baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * will disable threshold 19021baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * notification 19038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_setup_cback - Setup callback 19048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_thres_cback - Threshold callback 19058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_rep_cback - Reports callback 19068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * ref_value - Reference value 19078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 19098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1911cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleSetStorageParams( 1912cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t batch_scan_full_max, uint8_t batch_scan_trunc_max, 1913cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t batch_scan_notify_threshold, 1914cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_SCAN_SETUP_CBACK* p_setup_cback, 1915cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_SCAN_THRESHOLD_CBACK* p_thres_cback, 1916cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_SCAN_REP_CBACK* p_rep_cback, tBTA_DM_BLE_REF_VALUE ref_value); 1917c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 1918c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/******************************************************************************* 19198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleEnableBatchScan 19218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to enable the batch scan 19238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters scan_mode -Batch scan mode 19258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scan_interval - Scan interval 19268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scan_window - Scan window 19278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * discard_rule -Discard rules 19288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * addr_type - Address type 19298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * ref_value - Reference value 19308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 19328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 19345725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Callojiextern void BTA_DmBleEnableBatchScan(tBTA_BLE_BATCH_SCAN_MODE scan_mode, 1935cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t scan_interval, 1936cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t scan_window, 1937cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_DISCARD_RULE discard_rule, 1938cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_ADDR_TYPE addr_type, 1939cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value); 1940c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 1941c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/******************************************************************************* 19428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleReadScanReports 19448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to read the batch scan reports 19468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters scan_mode -Batch scan mode 19488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * ref_value - Reference value 19498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 19518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 19535725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Callojiextern void BTA_DmBleReadScanReports(tBTA_BLE_BATCH_SCAN_MODE scan_type, 1954cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value); 1955c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 1956c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/******************************************************************************* 19578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleDisableBatchScan 19598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to disable the batch scanning 19618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters ref_value - Reference value 19638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 19658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 196724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBleDisableBatchScan(tBTA_DM_BLE_REF_VALUE ref_value); 1968c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 19691a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/******************************************************************************* 19708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmEnableScanFilter 19728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1973cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function is called to enable the adv data payload 19741baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * filter 19758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters action - enable or disable the APCF feature 19778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_cmpl_cback - Command completed callback 19788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * ref_value - Reference value 19798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 19818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1983e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmEnableScanFilter(uint8_t action, 1984cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_STATUS_CBACK* p_cmpl_cback, 1985cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value); 19861a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 19871a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/******************************************************************************* 19888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleScanFilterSetup 19908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 19918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to setup the filter params 19928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1993cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Parameters p_target: enable the filter condition on a target device; if 19941baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * NULL 19958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * filt_index - Filter index 19968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_filt_params -Filter parameters 19978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * ref_value - Reference value 19988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * action - Add, delete or clear 19998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_cmpl_back - Command completed callback 20008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 20028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 2004709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowskiextern void BTA_DmBleScanFilterSetup( 2005709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski uint8_t action, tBTA_DM_BLE_PF_FILT_INDEX filt_index, 2006709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski std::unique_ptr<btgatt_filt_param_setup_t> p_filt_params, 2007709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski std::unique_ptr<tBLE_BD_ADDR> p_target, 2008709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski tBTA_DM_BLE_PF_PARAM_CBACK p_cmpl_cback, tBTA_DM_BLE_REF_VALUE ref_value); 20091a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 20101a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/******************************************************************************* 20118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleCfgFilterCondition 20138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2014cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function is called to configure the adv data payload 20151baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * filter condition. 20168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters action: to read/write/clear 20188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * cond_type: filter condition type 20198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * filt_index - Filter index 20208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_cond: filter condition parameter 20218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_cmpl_back - Command completed callback 20228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * ref_value - Reference value 20238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 20258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 202724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBleCfgFilterCondition(tBTA_DM_BLE_SCAN_COND_OP action, 2028cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_COND_TYPE cond_type, 2029cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_FILT_INDEX filt_index, 2030cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_COND_PARAM* p_cond, 2031cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_PF_CFG_CBACK* p_cmpl_cback, 2032cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value); 20331acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji 20341acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji/******************************************************************************* 20358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleTrackAdvertiser 20378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to track the advertiser 20398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters ref_value - Reference value 20418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_track_adv_cback - ADV callback 20428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 20448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 2046cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleTrackAdvertiser( 2047cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_REF_VALUE ref_value, 2048cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_TRACK_ADV_CBACK* p_track_adv_cback); 20491acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji 2050e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji/******************************************************************************* 20518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleGetEnergyInfo 20538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to obtain the energy info 20558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_cmpl_cback - Command complete callback 20578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 20598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 2061cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK* p_cmpl_cback); 2062e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 206316fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/******************************************************************************* 20648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_BrcmInit 20668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2067cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function initializes Broadcom specific VS handler in 20681baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * BTA 20698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 20718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 2073cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorInit(void); 207416fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham 207516fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/******************************************************************************* 20768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_BrcmCleanup 20788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2079cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function frees up Broadcom specific VS specific dynamic 20801baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * memory 20818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 20838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 20848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 2085cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorCleanup(void); 208616fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham 20875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_API_H */ 2088