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
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_api.h"
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h"
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys_int.h"
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "gki.h"
295cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen#include "utl.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_rm_register
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA DM to register role management callbacks
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_rm_register(tBTA_SYS_CONN_CBACK * p_cback)
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_cb.prm_cb = p_cback;
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_policy_register
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA DM to register link policy change callbacks
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_policy_register(tBTA_SYS_CONN_CBACK * p_cback)
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_cb.p_policy_cb = p_cback;
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_role_chg_register
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA AV to register role change callbacks
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_role_chg_register(tBTA_SYS_CONN_CBACK * p_cback)
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_cb.p_role_cb = p_cback;
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_ssr_cfg_register
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA DM to register SSR configuration callback
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SSR_INCLUDED == TRUE)
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_ssr_cfg_register(tBTA_SYS_SSR_CFG_CBACK * p_cback)
885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_cb.p_ssr_cb = p_cback;
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_role_chg_register
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA AV to register role change callbacks
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_notify_role_chg(BD_ADDR_PTR p_bda, UINT8 new_role, UINT8 hci_status)
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if (bta_sys_cb.p_role_cb)
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_role_cb(BTA_SYS_ROLE_CHANGE, new_role, hci_status, p_bda);
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_collision_register
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by any BTA module to register for collision event.
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_collision_register(UINT8 bta_id, tBTA_SYS_CONN_CBACK *p_cback)
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8 index;
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    for (index = 0; index < MAX_COLLISION_REG; index++)
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        if ((bta_sys_cb.colli_reg.id[index] == bta_id) ||
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            (bta_sys_cb.colli_reg.id[index] == 0))
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        {
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            bta_sys_cb.colli_reg.id[index] = bta_id;
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            bta_sys_cb.colli_reg.p_coll_cback[index] = p_cback;
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return;
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        }
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_notify_collision
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA DM to notify collision event.
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_notify_collision (BD_ADDR_PTR p_bda)
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8 index;
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    for (index = 0; index < MAX_COLLISION_REG; index++)
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        if ((bta_sys_cb.colli_reg.id[index] != 0) &&
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            (bta_sys_cb.colli_reg.p_coll_cback[index] != NULL))
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        {
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            bta_sys_cb.colli_reg.p_coll_cback[index] (0, BTA_ID_SYS, 0, p_bda);
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        }
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_sco_register
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA AV to register sco connection change callbacks
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_sco_register(tBTA_SYS_CONN_CBACK * p_cback)
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_cb.p_sco_cb = p_cback;
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_pm_register
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA DM to register power management callbacks
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_pm_register(tBTA_SYS_CONN_CBACK * p_cback)
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_cb.ppm_cb = p_cback;
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_conn_open
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems when a connection is made to
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the service
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_conn_open(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.prm_cb)
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.prm_cb(BTA_SYS_CONN_OPEN, id, app_id, peer_addr);
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.ppm_cb)
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.ppm_cb(BTA_SYS_CONN_OPEN, id, app_id, peer_addr);
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_conn_close
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems when a connection to the service
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is closed
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_conn_close(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.prm_cb)
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.prm_cb(BTA_SYS_CONN_CLOSE, id, app_id, peer_addr);
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.ppm_cb)
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.ppm_cb(BTA_SYS_CONN_CLOSE, id, app_id, peer_addr);
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
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_sys_app_open
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems when application initiates connection
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to a peer device
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_app_open(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.ppm_cb)
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.ppm_cb(BTA_SYS_APP_OPEN, id, app_id, peer_addr);
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_app_close
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems when application initiates close
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  of connection to peer device
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_app_close(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.ppm_cb)
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.ppm_cb(BTA_SYS_APP_CLOSE, id, app_id, peer_addr);
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_sco_open
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems when sco connection for that service
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is open
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_sco_open(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* AG triggers p_sco_cb by bta_sys_sco_use. */
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if((id != BTA_ID_AG) && (bta_sys_cb.p_sco_cb))
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        /* without querying BTM_GetNumScoLinks() */
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_sco_cb(BTA_SYS_SCO_OPEN, 1, app_id, peer_addr);
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.ppm_cb)
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.ppm_cb(BTA_SYS_SCO_OPEN, id, app_id, peer_addr);
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_sco_close
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems when sco connection for that service
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is closed
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_sco_close(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8 num_sco_links;
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if((id != BTA_ID_AG) && (bta_sys_cb.p_sco_cb))
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        num_sco_links = BTM_GetNumScoLinks();
3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_sco_cb(BTA_SYS_SCO_CLOSE, num_sco_links, app_id, peer_addr);
3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.ppm_cb)
3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.ppm_cb(BTA_SYS_SCO_CLOSE, id, app_id, peer_addr);
3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_sco_use
3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems when that service needs to use sco.
3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_sco_use(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3525cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(id);
3535cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen
3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    /* AV streaming need to be suspended before SCO is connected. */
3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.p_sco_cb)
3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        /* without querying BTM_GetNumScoLinks() */
3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_sco_cb(BTA_SYS_SCO_OPEN, 1, app_id, peer_addr);
3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
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** Function         bta_sys_sco_unuse
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems when sco connection for that service
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is no longer needed.
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_sco_unuse(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8 num_sco_links;
3755cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen    UNUSED(id);
3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if((bta_sys_cb.p_sco_cb))
3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        num_sco_links = BTM_GetNumScoLinks();
3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_sco_cb(BTA_SYS_SCO_CLOSE, num_sco_links, app_id, peer_addr);
3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_chg_ssr_config
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate that the given app SSR setting
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  need to be changed.
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SSR_INCLUDED == TRUE)
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_chg_ssr_config (UINT8 id, UINT8 app_id, UINT16 max_latency, UINT16 min_tout)
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.p_ssr_cb)
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_ssr_cb(id, app_id, max_latency, min_tout);
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_set_policy
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate that the given link
4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  policy to peer device should be set
4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_set_policy (UINT8 id, UINT8 policy, BD_ADDR peer_addr)
4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.p_policy_cb)
4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_policy_cb(BTA_SYS_PLCY_SET, id, policy, peer_addr);
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_clear_policy
4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate that the given link
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  policy to peer device should be clear
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_clear_policy (UINT8 id, UINT8 policy, BD_ADDR peer_addr)
4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.p_policy_cb)
4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_policy_cb(BTA_SYS_PLCY_CLR, id, policy, peer_addr);
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_set_default_policy
4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate that the given default
4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  link policy should be set
4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_set_default_policy (UINT8 id, UINT8 policy)
4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.p_policy_cb)
4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_policy_cb(BTA_SYS_PLCY_DEF_SET, id, policy, NULL);
4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_clear_default_policy
4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate that the given default
4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  link policy should be clear
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_clear_default_policy (UINT8 id, UINT8 policy)
4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.p_policy_cb)
4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.p_policy_cb(BTA_SYS_PLCY_DEF_CLR, id, policy, NULL);
4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_idle
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate that the connection to
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  peer device is idle
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_idle(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.prm_cb)
4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.prm_cb(BTA_SYS_CONN_IDLE, id, app_id, peer_addr);
4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.ppm_cb)
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.ppm_cb(BTA_SYS_CONN_IDLE, id, app_id, peer_addr);
4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_busy
5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate that the connection to
5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  peer device is busy
5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_busy(UINT8 id, UINT8 app_id, BD_ADDR peer_addr)
5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.prm_cb)
5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.prm_cb(BTA_SYS_CONN_BUSY, id, app_id, peer_addr);
5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.ppm_cb)
5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.ppm_cb(BTA_SYS_CONN_BUSY, id, app_id, peer_addr);
5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if ( BTM_EIR_SERVER_INCLUDED == TRUE )&&(BTA_EIR_CANNED_UUID_LIST != TRUE)
5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_eir_register
5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA DM to register EIR utility function that can be
5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  used by the other BTA modules to add/remove UUID.
5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_eir_register(tBTA_SYS_EIR_CBACK * p_cback)
5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    bta_sys_cb.eir_cb = p_cback;
5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_add_uuid
5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate to DM that new service
5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  class UUID is added.
5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_add_uuid(UINT16 uuid16)
5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.eir_cb)
5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.eir_cb(uuid16, TRUE );
5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_sys_remove_uuid
5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Called by BTA subsystems to indicate to DM that the service
5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  class UUID is removed.
5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid bta_sys_remove_uuid(UINT16 uuid16)
5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    if(bta_sys_cb.eir_cb)
5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        bta_sys_cb.eir_cb(uuid16, FALSE);
5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
581b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach/*******************************************************************************
582b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach**
583b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach** Function         bta_sys_vs_hdl
584b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach**
585b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach** Description      Called by BTA subsystems to execute a VS event handler function
586b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach**
587b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach** Returns          void
588b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach**
589b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach*******************************************************************************/
590b203d478f4835f5e35217874a1787e1914328f7cAndre EisenbachBOOLEAN bta_sys_vs_hdl(UINT16 evt, void *p)
591b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach{
592b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach    if (bta_sys_cb.p_vs_evt_hdlr)
593b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach        return (*bta_sys_cb.p_vs_evt_hdlr)(evt, p);
594b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach
595b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach    return FALSE;
596b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach}
597b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach
598