15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2009-2012 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#include <stdio.h>
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <stdlib.h>
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_api.h"
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h"
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_dm_co.h"
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_dm_ci.h"
255cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen#include "bt_utils.h"
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_OOB_INCLUDED == TRUE)
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btif_dm.h"
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
29ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#if (defined BLE_INCLUDED && BLE_INCLUDED == TRUE)
30ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#include "bte_appl.h"
31ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
32c918d08763ec547f7f226553ab75ca885db357acAndre EisenbachtBTE_APPL_CFG bte_appl_cfg =
33c918d08763ec547f7f226553ab75ca885db357acAndre Eisenbach{
34c918d08763ec547f7f226553ab75ca885db357acAndre Eisenbach    BTM_AUTH_SPGB_YES,  // Authentication requirements
3526fa02b5cc684f8675d80b61185a4e5ccf3c6a2aAndre Eisenbach    BTM_LOCAL_IO_CAPS_BLE, // I/O capabilities
36c918d08763ec547f7f226553ab75ca885db357acAndre Eisenbach    7,                  // Initiaor key size
37c918d08763ec547f7f226553ab75ca885db357acAndre Eisenbach    7,                  // Responder key size
38c918d08763ec547f7f226553ab75ca885db357acAndre Eisenbach    16                  // Maximum key size
39c918d08763ec547f7f226553ab75ca885db357acAndre Eisenbach};
40fc4b2f1953dbe60464d0f5ef7daaa10001fbc62fMatthew Xie#endif
41ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_get_compress_memory
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by DM to get memory for compression
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       id  -  BTA SYS ID
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  memory_p - memory return by callout
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  memory_size - memory size
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          TRUE for success, FALSE for fail.
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBOOLEAN bta_dm_co_get_compress_memory(tBTA_SYS_ID id, UINT8 **memory_p, UINT32 *memory_size)
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
575cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(id);
585cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(memory_p);
595cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(memory_size);
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return TRUE;
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_io_req
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by DM to get IO capabilities
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  of the local device for the Simple Pairing process
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       bd_addr  - The peer device
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_io_cap - The local Input/Output capabilities
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_oob_data - TRUE, if OOB data is available for the peer device.
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_auth_req - TRUE, if MITM protection is required.
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_co_io_req(BD_ADDR bd_addr, tBTA_IO_CAP *p_io_cap, tBTA_OOB_DATA *p_oob_data,
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                      tBTA_AUTH_REQ *p_auth_req, BOOLEAN is_orig)
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
815cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(bd_addr);
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_OOB_INCLUDED == TRUE)
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    btif_dm_set_oob_for_io_req(p_oob_data);
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
85a217ab9a0294a8285641b141efccf7d54b437a33Ganesh Ganapathi Batta    btif_dm_proc_io_req(bd_addr, p_io_cap, p_oob_data, p_auth_req, is_orig);
86e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("bta_dm_co_io_req *p_oob_data = %d", *p_oob_data);
87e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("bta_dm_co_io_req *p_io_cap = %d", *p_io_cap);
88e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("bta_dm_co_io_req *p_auth_req = %d", *p_auth_req);
89e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("bta_dm_co_io_req is_orig = %d", is_orig);
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_io_rsp
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by DM to report IO capabilities
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  of the peer device for the Simple Pairing process
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       bd_addr  - The peer device
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  io_cap - The remote Input/Output capabilities
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  oob_data - TRUE, if OOB data is available for the peer device.
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  auth_req - TRUE, if MITM protection is required.
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_co_io_rsp(BD_ADDR bd_addr, tBTA_IO_CAP io_cap,
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                      tBTA_OOB_DATA oob_data, tBTA_AUTH_REQ auth_req)
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
110a217ab9a0294a8285641b141efccf7d54b437a33Ganesh Ganapathi Batta    btif_dm_proc_io_rsp(bd_addr, io_cap, oob_data, auth_req);
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_lk_upgrade
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by DM to check if the
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  platform wants allow link key upgrade
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       bd_addr  - The peer device
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_upgrade - TRUE, if link key upgrade is desired.
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid  bta_dm_co_lk_upgrade(BD_ADDR bd_addr, BOOLEAN *p_upgrade )
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1285cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(bd_addr);
1295cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(p_upgrade);
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_OOB_INCLUDED == TRUE)
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_loc_oob
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by DM to report the OOB
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  data of the local device for the Simple Pairing process
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       valid - TRUE, if the local OOB data is retrieved from LM
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  c     - Simple Pairing Hash C
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  r     - Simple Pairing Randomnizer R
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_co_loc_oob(BOOLEAN valid, BT_OCTET16 c, BT_OCTET16 r)
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
149e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("bta_dm_co_loc_oob, valid = %d", valid);
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef BTIF_DM_OOB_TEST
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    btif_dm_proc_loc_oob(valid, c, r);
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_rmt_oob
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by DM to request the OOB
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  data for the remote device for the Simple Pairing process
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Need to call bta_dm_ci_rmt_oob() in response
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       bd_addr  - The peer device
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_co_rmt_oob(BD_ADDR bd_addr)
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16 p_c;
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_OCTET16 p_r;
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN result = FALSE;
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef BTIF_DM_OOB_TEST
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    result = btif_dm_proc_rmt_oob(bd_addr, p_c, p_r);
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
178e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("bta_dm_co_rmt_oob: result=%d",result);
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_dm_ci_rmt_oob(result, bd_addr, p_c, p_r);
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTM_OOB_INCLUDED */
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project// REMOVE FOR BLUEDROID ?
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SCO_HCI_INCLUDED == TRUE ) && (BTM_SCO_INCLUDED == TRUE)
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         btui_sco_codec_callback
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Callback for btui codec.
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic void btui_sco_codec_callback(UINT16 event, UINT16 sco_handle)
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_dm_sco_ci_data_ready(event, sco_handle);
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_sco_co_init
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function can be used by the phone to initialize audio
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  codec or for other initialization purposes before SCO connection
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is opened.
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          tBTA_DM_SCO_ROUTE_TYPE: SCO routing configuration type.
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjecttBTA_DM_SCO_ROUTE_TYPE bta_dm_sco_co_init(UINT32 rx_bw, UINT32 tx_bw,
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                          tBTA_CODEC_INFO * p_codec_type, UINT8 app_id)
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTM_SCO_ROUTE_TYPE route = BTA_DM_SCO_ROUTE_PCM;
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
220e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("bta_dm_sco_co_init");
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* set up SCO routing configuration if SCO over HCI app ID is used and run time
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        configuration is set to SCO over HCI */
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* HS invoke this call-out */
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTA_HS_INCLUDED == TRUE ) && (BTA_HS_INCLUDED == TRUE)
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project       (app_id == BTUI_DM_SCO_4_HS_APP_ID && btui_cfg.hs_sco_over_hci) ||
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project       /* AG invoke this call-out */
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project       (app_id != BTUI_DM_SCO_4_HS_APP_ID && btui_cfg.ag_sco_over_hci ))
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        route = btui_cb.sco_hci = BTA_DM_SCO_ROUTE_HCI;
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* no codec is is used for the SCO data */
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (p_codec_type->codec_type == BTA_SCO_CODEC_PCM && route == BTA_DM_SCO_ROUTE_HCI)
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        /* initialize SCO codec */
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        if (!btui_sco_codec_init(rx_bw, tx_bw))
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        {
240e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati            BTIF_TRACE_ERROR("codec initialization exception!");
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        }
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return route;
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_sco_co_open
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is executed when a SCO connection is open.
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_sco_co_open(UINT16 handle, UINT8 pkt_size, UINT16 event)
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTUI_SCO_CODEC_CFG cfg;
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (btui_cb.sco_hci)
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
265e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati        BTIF_TRACE_DEBUG("bta_dm_sco_co_open handle:%d pkt_size:%d", handle, pkt_size);
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        /* use dedicated SCO buffer pool for SCO TX data */
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        cfg.pool_id = HCI_SCO_POOL_ID;
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        cfg.p_cback = btui_sco_codec_callback;
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        cfg.pkt_size = pkt_size;
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        cfg.cb_event = event;
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        /* open and start the codec */
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        btui_sco_codec_open(&cfg);
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        btui_sco_codec_start(handle);
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_sco_co_close
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called when a SCO connection is closed
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_sco_co_close(void)
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (btui_cb.sco_hci)
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
291e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati        BTIF_TRACE_DEBUG("bta_dm_sco_co_close close codec");
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        /* close sco codec */
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        btui_sco_codec_close();
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        btui_cb.sco_hci = FALSE;
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_sco_co_in_data
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to send incoming SCO data to application.
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_sco_co_in_data(BT_HDR  *p_buf)
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (btui_cfg.sco_use_mic)
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        btui_sco_codec_inqdata (p_buf);
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    else
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        GKI_freebuf(p_buf);
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_sco_co_out_data
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to send SCO data over HCI.
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_sco_co_out_data(BT_HDR  **p_buf)
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    btui_sco_codec_readbuf(p_buf);
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE ) && (BTM_SCO_INCLUDED == TRUE)*/
3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (defined BLE_INCLUDED && BLE_INCLUDED == TRUE)
3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_le_io_key_req
3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by DM to get BLE key information
3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  before SMP pairing gets going.
3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       bd_addr  - The peer device
3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_max_key_size - max key size local device supported.
3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_init_key - initiator keys.
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_resp_key - responder keys.
3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_co_le_io_key_req(BD_ADDR bd_addr, UINT8 *p_max_key_size,
3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             tBTA_LE_KEY_TYPE *p_init_key,
3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             tBTA_LE_KEY_TYPE  *p_resp_key )
3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3535cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(bd_addr);
354e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_ERROR("##################################");
355e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_ERROR("bta_dm_co_le_io_key_req: only setting max size to 16");
356e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_ERROR("##################################");
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    *p_max_key_size = 16;
3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    *p_init_key = *p_resp_key =
3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                  (BTA_LE_KEY_PENC|BTA_LE_KEY_PID|BTA_LE_KEY_PCSRK|BTA_LE_KEY_LENC|BTA_LE_KEY_LID|BTA_LE_KEY_LCSRK);
3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_ble_local_key_reload
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is to load the local BLE keys if available
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  on the device.
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       none
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_co_ble_load_local_keys(tBTA_DM_BLE_LOCAL_KEY_MASK *p_key_mask, BT_OCTET16 er,
3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   tBTA_BLE_LOCAL_ID_KEYS *p_id_keys)
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
378e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("##################################");
379e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("bta_dm_co_ble_load_local_keys:  Load local keys if any are persisted");
380e8c3d75b75493911ebf0f99c83676359657178f7Sharvil Nanavati    BTIF_TRACE_DEBUG("##################################");
381ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    btif_dm_get_ble_local_keys( p_key_mask, er, p_id_keys);
3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_dm_co_ble_io_req
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by DM to get BLE IO capabilities
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  before SMP pairing gets going.
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters       bd_addr  - The peer device
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_io_cap - The local Input/Output capabilities
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_oob_data - TRUE, if OOB data is available for the peer device.
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_auth_req -  Auth request setting (Bonding and MITM required or not)
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_max_key_size - max key size local device supported.
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_init_key - initiator keys.
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  *p_resp_key - responder keys.
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_dm_co_ble_io_req(BD_ADDR bd_addr,  tBTA_IO_CAP *p_io_cap,
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                          tBTA_OOB_DATA *p_oob_data,
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                          tBTA_LE_AUTH_REQ *p_auth_req,
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                          UINT8 *p_max_key_size,
4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                          tBTA_LE_KEY_TYPE *p_init_key,
4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                          tBTA_LE_KEY_TYPE  *p_resp_key )
4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4095cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(bd_addr);
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* if OOB is not supported, this call-out function does not need to do anything
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project     * otherwise, look for the OOB data associated with the address and set *p_oob_data accordingly
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project     * If the answer can not be obtained right away,
4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project     * set *p_oob_data to BTA_OOB_UNKNOWN and call bta_dm_ci_io_req() when the answer is available */
4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
415ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    *p_oob_data = FALSE;
416ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* *p_auth_req by default is FALSE for devices with NoInputNoOutput; TRUE for other devices. */
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (bte_appl_cfg.ble_auth_req)
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        *p_auth_req = bte_appl_cfg.ble_auth_req | (bte_appl_cfg.ble_auth_req & 0x04) | ((*p_auth_req) & 0x04);
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (bte_appl_cfg.ble_io_cap <=4)
4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        *p_io_cap = bte_appl_cfg.ble_io_cap;
4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (bte_appl_cfg.ble_init_key<=7)
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        *p_init_key = bte_appl_cfg.ble_init_key;
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (bte_appl_cfg.ble_resp_key<=7)
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        *p_resp_key = bte_appl_cfg.ble_resp_key;
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
431ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    if (bte_appl_cfg.ble_max_key_size > 7 && bte_appl_cfg.ble_max_key_size <= 16)
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        *p_max_key_size = bte_appl_cfg.ble_max_key_size;
4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
438