15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2004-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 * This is the public interface file for the Personal Area Networking (PAN) 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * subsystem of BTA, Broadcom's Bluetooth application layer for mobile 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * phones. 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_PAN_API_H 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_API_H 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_api.h" 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "pan_api.h" 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Constants and data types 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_SUCCESS 0 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_FAIL 1 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_PAN_STATUS; 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PAN Callback events */ 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_ENABLE_EVT 0 /* PAN service is enabled. */ 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_SET_ROLE_EVT 1 /* PAN roles registered */ 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_OPENING_EVT 2 /* Connection is being opened. */ 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_OPEN_EVT 3 /* Connection has been opened. */ 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_CLOSE_EVT 4 /* Connection has been closed. */ 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_PAN_EVT; 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* pan roles */ 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_ROLE_PANU PAN_ROLE_CLIENT 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_ROLE_GN PAN_ROLE_GN_SERVER 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_ROLE_NAP PAN_ROLE_NAP_SERVER 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_PAN_ROLE; 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* information regarding PAN roles */ 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char *p_srv_name; /* service name for the PAN role */ 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_id; /* application id */ 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_SEC sec_mask; /* security setting for the role */ 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_ROLE_INFO; 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event associated with BTA_PAN_SET_ROLE_EVT */ 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_STATUS status; /* status of set role event */ 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE role; /* PAN roles successfully registered */ 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_SET_ROLE; 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event associated with BTA_PAN_OPENING_EVT */ 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; /* BD address of peer device. */ 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* Handle associated with this connection. */ 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_OPENING; 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event associated with BTA_PAN_OPEN_EVT */ 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; /* BD address of peer device. */ 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* Handle associated with this connection. */ 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_STATUS status; /* status of open event */ 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE local_role; /* Local device PAN role for the connection */ 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE peer_role; /* Peer device PAN role for the connection */ 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_OPEN; 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event associated with BTA_PAN_CLOSE_EVT */ 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* Handle associated with the connection. */ 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_CLOSE; 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all PAN callback structures */ 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_SET_ROLE set_role; /* set_role event */ 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_OPEN open; /* Connection has been opened. */ 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_OPENING opening; /* Connection being opened */ 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_CLOSE close; /* Connection has been closed. */ 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN; 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Number of PAN connections */ 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_PAN_NUM_CONN 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_NUM_CONN 4 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PAN callback */ 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTA_PAN_CBACK)(tBTA_PAN_EVT event, tBTA_PAN *p_data); 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** External Function Declarations 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C" 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function BTA_PanEnable 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Enable PAN service. This function must be 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** called before any other functions in the PAN API are called. 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** When the enable operation is complete the callback function 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** will be called with a BTA_PAN_ENABLE_EVT. 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void BTA_PanEnable(tBTA_PAN_CBACK p_cback); 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function BTA_PanDisable 1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Disable PAN service. 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void BTA_PanDisable(void); 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function BTA_PanSetRole 1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Sets PAN roles. When the enable operation is complete 1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the callback function will be called with a BTA_PAN_SET_ROLE_EVT. 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_PanSetRole(tBTA_PAN_ROLE role, tBTA_PAN_ROLE_INFO *p_user_info, tBTA_PAN_ROLE_INFO *p_gn_info, 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE_INFO *p_nap_info); 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function BTA_PanOpen 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Opens a connection to a peer device. 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** When connection is open callback function is called 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** with a BTA_PAN_OPEN_EVT. 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_PanOpen(BD_ADDR bd_addr, tBTA_PAN_ROLE local_role, tBTA_PAN_ROLE peer_role); 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function BTA_PanClose 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Close a PAN connection to a peer device. 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void BTA_PanClose(UINT16 handle); 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_PAN_API_H */ 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 202