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