bta_dm_co.h revision 5738f83aeb59361a0a2eda2460113f6dc9194271
1/****************************************************************************** 2 * 3 * Copyright (C) 2006-2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19/****************************************************************************** 20 * 21 * This is the interface file for device mananger callout functions. 22 * 23 ******************************************************************************/ 24#ifndef BTA_DM_CO_H 25#define BTA_DM_CO_H 26 27#include "bta_sys.h" 28 29 30#ifndef BTA_SCO_OUT_PKT_SIZE 31 #define BTA_SCO_OUT_PKT_SIZE BTM_SCO_DATA_SIZE_MAX 32#endif 33 34#define BTA_SCO_CODEC_PCM 0 /* used for regular SCO */ 35#define BTA_SCO_CODEC_SBC 1 /* used for WBS */ 36typedef UINT8 tBTA_SCO_CODEC_TYPE; 37 38#define BTA_DM_SCO_SAMP_RATE_8K 8000 39#define BTA_DM_SCO_SAMP_RATE_16K 16000 40 41/* SCO codec information */ 42typedef struct 43{ 44 tBTA_SCO_CODEC_TYPE codec_type; 45}tBTA_CODEC_INFO; 46 47#define BTA_DM_SCO_ROUTE_PCM BTM_SCO_ROUTE_PCM 48#define BTA_DM_SCO_ROUTE_HCI BTM_SCO_ROUTE_HCI 49 50typedef tBTM_SCO_ROUTE_TYPE tBTA_DM_SCO_ROUTE_TYPE; 51 52 53/***************************************************************************** 54** Function Declarations 55*****************************************************************************/ 56 57/******************************************************************************* 58** 59** Function bta_dm_co_io_req 60** 61** Description This callout function is executed by DM to get IO capabilities 62** of the local device for the Simple Pairing process 63** 64** Parameters bd_addr - The peer device 65** *p_io_cap - The local Input/Output capabilities 66** *p_oob_data - TRUE, if OOB data is available for the peer device. 67** *p_auth_req - TRUE, if MITM protection is required. 68** 69** Returns void. 70** 71*******************************************************************************/ 72BTA_API extern void bta_dm_co_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap, 73 tBTA_OOB_DATA *p_oob_data, tBTA_AUTH_REQ *p_auth_req, 74 BOOLEAN is_orig); 75 76/******************************************************************************* 77** 78** Function bta_dm_co_io_rsp 79** 80** Description This callout function is executed by DM to report IO capabilities 81** of the peer device for the Simple Pairing process 82** 83** Parameters bd_addr - The peer device 84** io_cap - The remote Input/Output capabilities 85** oob_data - TRUE, if OOB data is available for the peer device. 86** auth_req - TRUE, if MITM protection is required. 87** 88** Returns void. 89** 90*******************************************************************************/ 91BTA_API extern void bta_dm_co_io_rsp(BD_ADDR bd_addr, tBTA_IO_CAP io_cap, 92 tBTA_OOB_DATA oob_data, tBTA_AUTH_REQ auth_req); 93 94/******************************************************************************* 95** 96** Function bta_dm_co_lk_upgrade 97** 98** Description This callout function is executed by DM to check if the 99** platform wants allow link key upgrade 100** 101** Parameters bd_addr - The peer device 102** *p_upgrade - TRUE, if link key upgrade is desired. 103** 104** Returns void. 105** 106*******************************************************************************/ 107BTA_API extern void bta_dm_co_lk_upgrade(BD_ADDR bd_addr, BOOLEAN *p_upgrade ); 108 109/******************************************************************************* 110** 111** Function bta_dm_co_loc_oob 112** 113** Description This callout function is executed by DM to report the OOB 114** data of the local device for the Simple Pairing process 115** 116** Parameters valid - TRUE, if the local OOB data is retrieved from LM 117** c - Simple Pairing Hash C 118** r - Simple Pairing Randomnizer R 119** 120** Returns void. 121** 122*******************************************************************************/ 123BTA_API extern void bta_dm_co_loc_oob(BOOLEAN valid, BT_OCTET16 c, BT_OCTET16 r); 124 125/******************************************************************************* 126** 127** Function bta_dm_co_rmt_oob 128** 129** Description This callout function is executed by DM to request the OOB 130** data for the remote device for the Simple Pairing process 131** 132** Parameters bd_addr - The peer device 133** 134** Returns void. 135** 136*******************************************************************************/ 137BTA_API extern void bta_dm_co_rmt_oob(BD_ADDR bd_addr); 138 139/***************************************************************************** 140** SCO over HCI Function Declarations 141*****************************************************************************/ 142/******************************************************************************* 143** 144** Function bta_dm_sco_co_init 145** 146** Description This function can be used by the phone to initialize audio 147** codec or for other initialization purposes before SCO connection 148** is opened. 149** 150** 151** Returns Void. 152** 153*******************************************************************************/ 154BTA_API extern tBTA_DM_SCO_ROUTE_TYPE bta_dm_sco_co_init(UINT32 rx_bw, UINT32 tx_bw, 155 tBTA_CODEC_INFO *p_codec_info, UINT8 app_id); 156 157 158/******************************************************************************* 159** 160** Function bta_dm_sco_co_open 161** 162** Description This function is executed when a SCO connection is open. 163** 164** 165** Returns void 166** 167*******************************************************************************/ 168BTA_API extern void bta_dm_sco_co_open(UINT16 handle, UINT8 pkt_size, UINT16 event); 169 170/******************************************************************************* 171** 172** Function bta_dm_sco_co_close 173** 174** Description This function is called when a SCO connection is closed 175** 176** 177** Returns void 178** 179*******************************************************************************/ 180BTA_API extern void bta_dm_sco_co_close(void); 181 182/******************************************************************************* 183** 184** Function bta_dm_sco_co_out_data 185** 186** Description This function is called to send SCO data over HCI. 187** 188** Returns void 189** 190*******************************************************************************/ 191BTA_API extern void bta_dm_sco_co_out_data(BT_HDR **p_buf); 192 193/******************************************************************************* 194** 195** Function bta_dm_sco_co_in_data 196** 197** Description This function is called to send incoming SCO data to application. 198** 199** Returns void 200** 201*******************************************************************************/ 202BTA_API extern void bta_dm_sco_co_in_data(BT_HDR *p_buf, tBTM_SCO_DATA_FLAG status); 203 204 205 206/******************************************************************************* 207** 208** Function bta_dm_co_ble_io_req 209** 210** Description This callout function is executed by DM to get BLE IO capabilities 211** before SMP pairing gets going. 212** 213** Parameters bd_addr - The peer device 214** *p_io_cap - The local Input/Output capabilities 215** *p_oob_data - TRUE, if OOB data is available for the peer device. 216** *p_auth_req - Auth request setting (Bonding and MITM required or not) 217** *p_max_key_size - max key size local device supported. 218** *p_init_key - initiator keys. 219** *p_resp_key - responder keys. 220** 221** Returns void. 222** 223*******************************************************************************/ 224BTA_API extern void bta_dm_co_ble_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap, 225 tBTA_OOB_DATA *p_oob_data, 226 tBTA_LE_AUTH_REQ *p_auth_req, 227 UINT8 *p_max_key_size, 228 tBTA_LE_KEY_TYPE *p_init_key, 229 tBTA_LE_KEY_TYPE *p_resp_key ); 230 231 232/******************************************************************************* 233** 234** Function bta_dm_co_ble_local_key_reload 235** 236** Description This callout function is to load the local BLE keys if available 237** on the device. 238** 239** Parameters none 240** 241** Returns void. 242** 243*******************************************************************************/ 244BTA_API extern void bta_dm_co_ble_load_local_keys (tBTA_DM_BLE_LOCAL_KEY_MASK *p_key_mask, BT_OCTET16 er, 245 tBTA_BLE_LOCAL_ID_KEYS *p_id_keys); 246 247// btla-specific ++ 248/******************************************************************************* 249** 250** Function bta_dm_co_ble_io_req 251** 252** Description This callout function is executed by DM to get BLE IO capabilities 253** before SMP pairing gets going. 254** 255** Parameters bd_addr - The peer device 256** *p_io_cap - The local Input/Output capabilities 257** *p_oob_data - TRUE, if OOB data is available for the peer device. 258** *p_auth_req - Auth request setting (Bonding and MITM required or not) 259** *p_max_key_size - max key size local device supported. 260** *p_init_key - initiator keys. 261** *p_resp_key - responder keys. 262** 263** Returns void. 264** 265*******************************************************************************/ 266BTA_API extern void bta_dm_co_ble_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap, 267 tBTA_OOB_DATA *p_oob_data, 268 tBTA_LE_AUTH_REQ *p_auth_req, 269 UINT8 *p_max_key_size, 270 tBTA_LE_KEY_TYPE *p_init_key, 271 tBTA_LE_KEY_TYPE *p_resp_key ); 272// btla-specific -- 273 274#endif 275