15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2003-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 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Routes connection status callbacks from various sub systems to DM 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 25933926c92e1378cc76bc9c149107e670c4872d4eScott James Remnant#include <stddef.h> 26f355ef5a4d7fb667fc57a0dfb60f738d870e252eMyles Watson 27cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#include "bt_common.h" 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_api.h" 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h" 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys_int.h" 31d7ffd64accbd50a27289a388856e56244ccbb5daMyles Watson#include "osi/include/osi.h" 325cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen#include "utl.h" 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_rm_register 378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA DM to register role management callbacks 398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 44cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_rm_register(tBTA_SYS_CONN_CBACK* p_cback) { 45cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.prm_cb = p_cback; 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_policy_register 518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA DM to register link policy change callbacks 538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 58cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_policy_register(tBTA_SYS_CONN_CBACK* p_cback) { 59cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_policy_cb = p_cback; 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_role_chg_register 658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA AV to register role change callbacks 678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 72cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_role_chg_register(tBTA_SYS_CONN_CBACK* p_cback) { 73cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_role_cb = p_cback; 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_ssr_cfg_register 788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA DM to register SSR configuration callback 808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SSR_INCLUDED == TRUE) 86cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_ssr_cfg_register(tBTA_SYS_SSR_CFG_CBACK* p_cback) { 87cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_ssr_cb = p_cback; 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_role_chg_register 938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA AV to register role change callbacks 958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 100cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_notify_role_chg(BD_ADDR_PTR p_bda, uint8_t new_role, 101cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t hci_status) { 102cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.p_role_cb) { 103cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_role_cb(BTA_SYS_ROLE_CHANGE, new_role, hci_status, p_bda); 104cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_collision_register 1108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by any BTA module to register for collision event. 1128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 117cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_collision_register(uint8_t bta_id, tBTA_SYS_CONN_CBACK* p_cback) { 118cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t index; 119cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 120cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson for (index = 0; index < MAX_COLLISION_REG; index++) { 121cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if ((bta_sys_cb.colli_reg.id[index] == bta_id) || 122cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (bta_sys_cb.colli_reg.id[index] == 0)) { 123cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.colli_reg.id[index] = bta_id; 124cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.colli_reg.p_coll_cback[index] = p_cback; 125cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson return; 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 127cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_notify_collision 1338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA DM to notify collision event. 1358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 140cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_notify_collision(BD_ADDR_PTR p_bda) { 141cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t index; 142cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 143cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson for (index = 0; index < MAX_COLLISION_REG; index++) { 144cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if ((bta_sys_cb.colli_reg.id[index] != 0) && 145cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (bta_sys_cb.colli_reg.p_coll_cback[index] != NULL)) { 146cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.colli_reg.p_coll_cback[index](0, BTA_ID_SYS, 0, p_bda); 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 148cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_sco_register 1548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA AV to register sco connection change callbacks 1568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 161cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_sco_register(tBTA_SYS_CONN_CBACK* p_cback) { 162cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_sco_cb = p_cback; 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_pm_register 1688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA DM to register power management callbacks 1708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 175cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_pm_register(tBTA_SYS_CONN_CBACK* p_cback) { 176cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb = p_cback; 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_conn_open 1828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems when a connection is made to 1848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * the service 1858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 190cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_conn_open(uint8_t id, uint8_t app_id, BD_ADDR peer_addr) { 191cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.prm_cb) { 192cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.prm_cb(BTA_SYS_CONN_OPEN, id, app_id, peer_addr); 193cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 194cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 195cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.ppm_cb) { 196cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb(BTA_SYS_CONN_OPEN, id, app_id, peer_addr); 197cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 2018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_conn_close 2038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems when a connection to the service 2058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * is closed 2068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 2098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 211cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_conn_close(uint8_t id, uint8_t app_id, BD_ADDR peer_addr) { 212cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.prm_cb) { 213cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.prm_cb(BTA_SYS_CONN_CLOSE, id, app_id, peer_addr); 214cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 215cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 216cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.ppm_cb) { 217cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb(BTA_SYS_CONN_CLOSE, id, app_id, peer_addr); 218cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 2228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_app_open 2248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 225cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Called by BTA subsystems when application initiates 2261baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * connection to a peer device 2278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 2308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 232cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_app_open(uint8_t id, uint8_t app_id, BD_ADDR peer_addr) { 233cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.ppm_cb) { 234cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb(BTA_SYS_APP_OPEN, id, app_id, peer_addr); 235cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 2398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_app_close 2418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems when application initiates close 2438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of connection to peer device 2448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 2468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 248cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_app_close(uint8_t id, uint8_t app_id, BD_ADDR peer_addr) { 249cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.ppm_cb) { 250cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb(BTA_SYS_APP_CLOSE, id, app_id, peer_addr); 251cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 2558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_sco_open 2578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 258cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Called by BTA subsystems when sco connection for that 2591baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * service is open 2608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 2628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 264cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_sco_open(uint8_t id, uint8_t app_id, BD_ADDR peer_addr) { 265cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* AG triggers p_sco_cb by bta_sys_sco_use. */ 266cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if ((id != BTA_ID_AG) && (bta_sys_cb.p_sco_cb)) { 267cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* without querying BTM_GetNumScoLinks() */ 268cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_sco_cb(BTA_SYS_SCO_OPEN, 1, app_id, peer_addr); 269cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 270cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 271cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.ppm_cb) { 272cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb(BTA_SYS_SCO_OPEN, id, app_id, peer_addr); 273cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 2778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_sco_close 2798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 280cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Called by BTA subsystems when sco connection for that 2811baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * service is closed 2828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 2848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 286cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_sco_close(uint8_t id, uint8_t app_id, BD_ADDR peer_addr) { 287cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_sco_links; 2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 289cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if ((id != BTA_ID_AG) && (bta_sys_cb.p_sco_cb)) { 290cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson num_sco_links = BTM_GetNumScoLinks(); 291cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_sco_cb(BTA_SYS_SCO_CLOSE, num_sco_links, app_id, peer_addr); 292cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 293cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 294cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.ppm_cb) { 295cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb(BTA_SYS_SCO_CLOSE, id, app_id, peer_addr); 296cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_sco_use 3028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems when that service needs to use sco. 3048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 3078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 309d35a648d39710bbc5ac59f8add85166455af5af7Myles Watsonvoid bta_sys_sco_use(UNUSED_ATTR uint8_t id, uint8_t app_id, 310cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR peer_addr) { 311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* AV streaming need to be suspended before SCO is connected. */ 312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.p_sco_cb) { 313cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* without querying BTM_GetNumScoLinks() */ 314cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_sco_cb(BTA_SYS_SCO_OPEN, 1, app_id, peer_addr); 315cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_sco_unuse 3218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 322cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Called by BTA subsystems when sco connection for that 3231baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * service is no longer needed. 3248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 3268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 328d35a648d39710bbc5ac59f8add85166455af5af7Myles Watsonvoid bta_sys_sco_unuse(UNUSED_ATTR uint8_t id, uint8_t app_id, 329cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_ADDR peer_addr) { 330cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_sco_links; 331cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 332cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if ((bta_sys_cb.p_sco_cb)) { 333cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson num_sco_links = BTM_GetNumScoLinks(); 334cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_sco_cb(BTA_SYS_SCO_CLOSE, num_sco_links, app_id, peer_addr); 335cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_chg_ssr_config 3408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 341cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Called by BTA subsystems to indicate that the given app SSR 3421baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * setting needs to be changed. 3438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 3458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SSR_INCLUDED == TRUE) 348cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_chg_ssr_config(uint8_t id, uint8_t app_id, uint16_t max_latency, 349cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t min_tout) { 350cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.p_ssr_cb) { 351cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_ssr_cb(id, app_id, max_latency, min_tout); 352cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_set_policy 3588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems to indicate that the given link 3608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * policy to peer device should be set 3618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 3638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 365cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_set_policy(uint8_t id, uint8_t policy, BD_ADDR peer_addr) { 366cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.p_policy_cb) { 367cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_policy_cb(BTA_SYS_PLCY_SET, id, policy, peer_addr); 368cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_clear_policy 3748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems to indicate that the given link 3768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * policy to peer device should be clear 3778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 3798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 381cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_clear_policy(uint8_t id, uint8_t policy, BD_ADDR peer_addr) { 382cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.p_policy_cb) { 383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_policy_cb(BTA_SYS_PLCY_CLR, id, policy, peer_addr); 384cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_set_default_policy 3908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems to indicate that the given default 3928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * link policy should be set 3938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 3958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 3968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 397cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_set_default_policy(uint8_t id, uint8_t policy) { 398cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.p_policy_cb) { 399cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_policy_cb(BTA_SYS_PLCY_DEF_SET, id, policy, NULL); 400cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_clear_default_policy 4068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems to indicate that the given default 4088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * link policy should be clear 4098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 4118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 413cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_clear_default_policy(uint8_t id, uint8_t policy) { 414cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.p_policy_cb) { 415cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.p_policy_cb(BTA_SYS_PLCY_DEF_CLR, id, policy, NULL); 416cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_idle 4228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems to indicate that the connection to 4248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * peer device is idle 4258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 4278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 429cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_idle(uint8_t id, uint8_t app_id, BD_ADDR peer_addr) { 430cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.prm_cb) { 431cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.prm_cb(BTA_SYS_CONN_IDLE, id, app_id, peer_addr); 432cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 433cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 434cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.ppm_cb) { 435cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb(BTA_SYS_CONN_IDLE, id, app_id, peer_addr); 436cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_busy 4428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems to indicate that the connection to 4448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * peer device is busy 4458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 4478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 449cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_busy(uint8_t id, uint8_t app_id, BD_ADDR peer_addr) { 450cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.prm_cb) { 451cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.prm_cb(BTA_SYS_CONN_BUSY, id, app_id, peer_addr); 452cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 453cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 454cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.ppm_cb) { 455cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.ppm_cb(BTA_SYS_CONN_BUSY, id, app_id, peer_addr); 456cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4591e61ce1ae3fe8ef72443b30907f1cf8acae39674Chris Manton#if (BTA_EIR_CANNED_UUID_LIST != TRUE) 4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_eir_register 4638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 464cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Called by BTA DM to register EIR utility function that can 4651baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * be used by the other BTA modules to add/remove UUID. 4668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 4688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 470cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_eir_register(tBTA_SYS_EIR_CBACK* p_cback) { 471cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.eir_cb = p_cback; 4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_add_uuid 4778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems to indicate to DM that new service 4798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * class UUID is added. 4808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 4828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_add_uuid(uint16_t uuid16) { 485cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.eir_cb) { 486cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.eir_cb(uuid16, true); 487cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_sys_remove_uuid 4938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Called by BTA subsystems to indicate to DM that the service 4958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * class UUID is removed. 4968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 4988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 4998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 500cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonvoid bta_sys_remove_uuid(uint16_t uuid16) { 501cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson if (bta_sys_cb.eir_cb) { 502cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bta_sys_cb.eir_cb(uuid16, false); 503cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson } 5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 506