Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright 2004-2012 Broadcom Corporation
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 
     19 /******************************************************************************
     20  *
     21  *  This is the public interface file for the Personal Area Networking (PAN)
     22  *  subsystem of BTA, Broadcom's Bluetooth application layer for mobile
     23  *  phones.
     24  *
     25  ******************************************************************************/
     26 #ifndef BTA_PAN_API_H
     27 #define BTA_PAN_API_H
     28 
     29 #include "bta_api.h"
     30 #include "pan_api.h"
     31 
     32 /*****************************************************************************
     33  *  Constants and data types
     34  ****************************************************************************/
     35 #define BTA_PAN_SUCCESS 0
     36 #define BTA_PAN_FAIL 1
     37 
     38 typedef uint8_t tBTA_PAN_STATUS;
     39 
     40 /* PAN Callback events */
     41 #define BTA_PAN_ENABLE_EVT 0   /* PAN service is enabled. */
     42 #define BTA_PAN_SET_ROLE_EVT 1 /* PAN roles registered */
     43 #define BTA_PAN_OPENING_EVT 2  /* Connection is being opened. */
     44 #define BTA_PAN_OPEN_EVT 3     /* Connection has been opened. */
     45 #define BTA_PAN_CLOSE_EVT 4    /* Connection has been closed. */
     46 
     47 typedef uint8_t tBTA_PAN_EVT;
     48 
     49 /* pan roles */
     50 #define BTA_PAN_ROLE_PANU PAN_ROLE_CLIENT
     51 #define BTA_PAN_ROLE_GN PAN_ROLE_GN_SERVER
     52 #define BTA_PAN_ROLE_NAP PAN_ROLE_NAP_SERVER
     53 
     54 typedef uint8_t tBTA_PAN_ROLE;
     55 
     56 /*  information regarding PAN roles */
     57 typedef struct {
     58   const char* p_srv_name; /* service name for the PAN role */
     59   uint8_t app_id;         /* application id */
     60   tBTA_SEC sec_mask;      /* security setting for the role */
     61 
     62 } tBTA_PAN_ROLE_INFO;
     63 
     64 /* Event associated with BTA_PAN_SET_ROLE_EVT */
     65 typedef struct {
     66   tBTA_PAN_STATUS status; /* status of set role event */
     67   tBTA_PAN_ROLE role;     /* PAN roles successfully registered */
     68 } tBTA_PAN_SET_ROLE;
     69 
     70 /* Event associated with BTA_PAN_OPENING_EVT */
     71 typedef struct {
     72   RawAddress bd_addr; /* BD address of peer device. */
     73   uint16_t handle; /* Handle associated with this connection. */
     74 
     75 } tBTA_PAN_OPENING;
     76 
     77 /* Event associated with BTA_PAN_OPEN_EVT */
     78 typedef struct {
     79   RawAddress bd_addr;       /* BD address of peer device. */
     80   uint16_t handle;          /* Handle associated with this connection. */
     81   tBTA_PAN_STATUS status;   /* status of open event */
     82   tBTA_PAN_ROLE local_role; /* Local device PAN role for the connection */
     83   tBTA_PAN_ROLE peer_role;  /* Peer device PAN role for the connection */
     84 
     85 } tBTA_PAN_OPEN;
     86 
     87 /* Event associated with BTA_PAN_CLOSE_EVT */
     88 typedef struct {
     89   uint16_t handle; /* Handle associated with the connection. */
     90 } tBTA_PAN_CLOSE;
     91 
     92 /* Union of all PAN callback structures */
     93 typedef union {
     94   tBTA_PAN_SET_ROLE set_role; /* set_role event */
     95   tBTA_PAN_OPEN open;         /* Connection has been opened. */
     96   tBTA_PAN_OPENING opening;   /* Connection being opened */
     97   tBTA_PAN_CLOSE close;       /* Connection has been closed. */
     98 } tBTA_PAN;
     99 
    100 /* Number of PAN connections */
    101 #ifndef BTA_PAN_NUM_CONN
    102 #define BTA_PAN_NUM_CONN 4
    103 #endif
    104 
    105 /* PAN callback */
    106 typedef void(tBTA_PAN_CBACK)(tBTA_PAN_EVT event, tBTA_PAN* p_data);
    107 
    108 /*****************************************************************************
    109  *  External Function Declarations
    110  ****************************************************************************/
    111 
    112 /*******************************************************************************
    113  *
    114  * Function         BTA_PanEnable
    115  *
    116  * Description      Enable PAN service.  This function must be
    117  *                  called before any other functions in the PAN API are called.
    118  *                  When the enable operation is complete the callback function
    119  *                  will be called with a BTA_PAN_ENABLE_EVT.
    120  *
    121  * Returns          void
    122  *
    123  ******************************************************************************/
    124 extern void BTA_PanEnable(tBTA_PAN_CBACK p_cback);
    125 
    126 /*******************************************************************************
    127  *
    128  * Function         BTA_PanDisable
    129  *
    130  * Description      Disable PAN service.
    131  *
    132  * Returns          void
    133  *
    134  ******************************************************************************/
    135 extern void BTA_PanDisable(void);
    136 
    137 /*******************************************************************************
    138  *
    139  * Function         BTA_PanSetRole
    140  *
    141  * Description      Sets PAN roles. When the enable operation is complete
    142  *                  the callback function will be called with a
    143  *                  BTA_PAN_SET_ROLE_EVT.
    144  *
    145  * Returns          void
    146  *
    147  ******************************************************************************/
    148 void BTA_PanSetRole(tBTA_PAN_ROLE role, tBTA_PAN_ROLE_INFO* p_user_info,
    149                     tBTA_PAN_ROLE_INFO* p_gn_info,
    150                     tBTA_PAN_ROLE_INFO* p_nap_info);
    151 
    152 /*******************************************************************************
    153  *
    154  * Function         BTA_PanOpen
    155  *
    156  * Description      Opens a connection to a peer device.
    157  *                  When connection is open callback function is called
    158  *                  with a BTA_PAN_OPEN_EVT.
    159  *
    160  *
    161  * Returns          void
    162  *
    163  ******************************************************************************/
    164 void BTA_PanOpen(const RawAddress& bd_addr, tBTA_PAN_ROLE local_role,
    165                  tBTA_PAN_ROLE peer_role);
    166 
    167 /*******************************************************************************
    168  *
    169  * Function         BTA_PanClose
    170  *
    171  * Description      Close a PAN  connection to a peer device.
    172  *
    173  *
    174  * Returns          void
    175  *
    176  ******************************************************************************/
    177 extern void BTA_PanClose(uint16_t handle);
    178 
    179 #endif /* BTA_PAN_API_H */
    180