1 /****************************************************************************** 2 * 3 * Copyright (C) 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 BD_ADDR 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 BD_ADDR 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(BD_ADDR 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