Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2012 The Android Open Source Project |
| 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. |
| 6 | * You may obtain a copy of the License at |
| 7 | * |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | * |
| 10 | * Unless required by applicable law or agreed to in writing, software |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. |
| 15 | */ |
| 16 | |
| 17 | #ifndef ANDROID_INCLUDE_BT_HF_H |
| 18 | #define ANDROID_INCLUDE_BT_HF_H |
| 19 | |
| 20 | __BEGIN_DECLS |
| 21 | |
| 22 | /* AT response code - OK/Error */ |
| 23 | typedef enum { |
| 24 | BTHF_AT_RESPONSE_ERROR = 0, |
| 25 | BTHF_AT_RESPONSE_OK |
| 26 | } bthf_at_response_t; |
| 27 | |
| 28 | typedef enum { |
| 29 | BTHF_CONNECTION_STATE_DISCONNECTED = 0, |
| 30 | BTHF_CONNECTION_STATE_CONNECTING, |
| 31 | BTHF_CONNECTION_STATE_CONNECTED, |
| 32 | BTHF_CONNECTION_STATE_SLC_CONNECTED, |
| 33 | BTHF_CONNECTION_STATE_DISCONNECTING |
| 34 | } bthf_connection_state_t; |
| 35 | |
| 36 | typedef enum { |
| 37 | BTHF_AUDIO_STATE_DISCONNECTED = 0, |
| 38 | BTHF_AUDIO_STATE_CONNECTING, |
| 39 | BTHF_AUDIO_STATE_CONNECTED, |
| 40 | BTHF_AUDIO_STATE_DISCONNECTING |
| 41 | } bthf_audio_state_t; |
| 42 | |
| 43 | typedef enum { |
| 44 | BTHF_VR_STATE_STOPPED = 0, |
| 45 | BTHF_VR_STATE_STARTED |
| 46 | } bthf_vr_state_t; |
| 47 | |
| 48 | typedef enum { |
| 49 | BTHF_VOLUME_TYPE_SPK = 0, |
| 50 | BTHF_VOLUME_TYPE_MIC |
| 51 | } bthf_volume_type_t; |
| 52 | |
| 53 | /* Noise Reduction and Echo Cancellation */ |
| 54 | typedef enum |
| 55 | { |
| 56 | BTHF_NREC_STOP, |
| 57 | BTHF_NREC_START |
| 58 | } bthf_nrec_t; |
| 59 | |
Mudumba Ananth | 3c4db4c | 2014-04-27 21:04:35 -0700 | [diff] [blame] | 60 | /* WBS codec setting */ |
| 61 | typedef enum |
| 62 | { |
| 63 | BTHF_WBS_NONE, |
| 64 | BTHF_WBS_NO, |
| 65 | BTHF_WBS_YES |
| 66 | }bthf_wbs_config_t; |
| 67 | |
Sumit Bajpai | 0b4fbfb | 2015-01-09 14:48:00 +0530 | [diff] [blame] | 68 | /* BIND type*/ |
| 69 | typedef enum |
| 70 | { |
| 71 | BTHF_BIND_SET, |
| 72 | BTHF_BIND_READ, |
| 73 | BTHF_BIND_TEST |
| 74 | }bthf_bind_type_t; |
| 75 | |
| 76 | |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 77 | /* CHLD - Call held handling */ |
| 78 | typedef enum |
| 79 | { |
| 80 | BTHF_CHLD_TYPE_RELEASEHELD, // Terminate all held or set UDUB("busy") to a waiting call |
| 81 | BTHF_CHLD_TYPE_RELEASEACTIVE_ACCEPTHELD, // Terminate all active calls and accepts a waiting/held call |
| 82 | BTHF_CHLD_TYPE_HOLDACTIVE_ACCEPTHELD, // Hold all active calls and accepts a waiting/held call |
| 83 | BTHF_CHLD_TYPE_ADDHELDTOCONF, // Add all held calls to a conference |
| 84 | } bthf_chld_type_t; |
| 85 | |
| 86 | /** Callback for connection state change. |
| 87 | * state will have one of the values from BtHfConnectionState |
| 88 | */ |
| 89 | typedef void (* bthf_connection_state_callback)(bthf_connection_state_t state, bt_bdaddr_t *bd_addr); |
| 90 | |
| 91 | /** Callback for audio connection state change. |
| 92 | * state will have one of the values from BtHfAudioState |
| 93 | */ |
| 94 | typedef void (* bthf_audio_state_callback)(bthf_audio_state_t state, bt_bdaddr_t *bd_addr); |
| 95 | |
| 96 | /** Callback for VR connection state change. |
| 97 | * state will have one of the values from BtHfVRState |
| 98 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 99 | typedef void (* bthf_vr_cmd_callback)(bthf_vr_state_t state, bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 100 | |
| 101 | /** Callback for answer incoming call (ATA) |
| 102 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 103 | typedef void (* bthf_answer_call_cmd_callback)(bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 104 | |
| 105 | /** Callback for disconnect call (AT+CHUP) |
| 106 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 107 | typedef void (* bthf_hangup_call_cmd_callback)(bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 108 | |
| 109 | /** Callback for disconnect call (AT+CHUP) |
| 110 | * type will denote Speaker/Mic gain (BtHfVolumeControl). |
| 111 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 112 | typedef void (* bthf_volume_cmd_callback)(bthf_volume_type_t type, int volume, bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 113 | |
| 114 | /** Callback for dialing an outgoing call |
| 115 | * If number is NULL, redial |
| 116 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 117 | typedef void (* bthf_dial_call_cmd_callback)(char *number, bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 118 | |
| 119 | /** Callback for sending DTMF tones |
| 120 | * tone contains the dtmf character to be sent |
| 121 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 122 | typedef void (* bthf_dtmf_cmd_callback)(char tone, bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 123 | |
| 124 | /** Callback for enabling/disabling noise reduction/echo cancellation |
| 125 | * value will be 1 to enable, 0 to disable |
| 126 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 127 | typedef void (* bthf_nrec_cmd_callback)(bthf_nrec_t nrec, bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 128 | |
Mudumba Ananth | 3c4db4c | 2014-04-27 21:04:35 -0700 | [diff] [blame] | 129 | /** Callback for AT+BCS and event from BAC |
| 130 | * WBS enable, WBS disable |
| 131 | */ |
| 132 | typedef void (* bthf_wbs_callback)(bthf_wbs_config_t wbs, bt_bdaddr_t *bd_addr); |
| 133 | |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 134 | /** Callback for call hold handling (AT+CHLD) |
| 135 | * value will contain the call hold command (0, 1, 2, 3) |
| 136 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 137 | typedef void (* bthf_chld_cmd_callback)(bthf_chld_type_t chld, bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 138 | |
| 139 | /** Callback for CNUM (subscriber number) |
| 140 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 141 | typedef void (* bthf_cnum_cmd_callback)(bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 142 | |
| 143 | /** Callback for indicators (CIND) |
| 144 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 145 | typedef void (* bthf_cind_cmd_callback)(bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 146 | |
| 147 | /** Callback for operator selection (COPS) |
| 148 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 149 | typedef void (* bthf_cops_cmd_callback)(bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 150 | |
| 151 | /** Callback for call list (AT+CLCC) |
| 152 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 153 | typedef void (* bthf_clcc_cmd_callback) (bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 154 | |
| 155 | /** Callback for unknown AT command recd from HF |
| 156 | * at_string will contain the unparsed AT string |
| 157 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 158 | typedef void (* bthf_unknown_at_cmd_callback)(char *at_string, bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 159 | |
| 160 | /** Callback for keypressed (HSP) event. |
| 161 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 162 | typedef void (* bthf_key_pressed_cmd_callback)(bt_bdaddr_t *bd_addr); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 163 | |
Sumit Bajpai | 0b4fbfb | 2015-01-09 14:48:00 +0530 | [diff] [blame] | 164 | /** Callback for HF indicators (BIND) |
| 165 | */ |
| 166 | typedef void (* bthf_bind_cmd_callback)(char* hf_ind, bthf_bind_type_t type, bt_bdaddr_t *bd_addr); |
| 167 | |
| 168 | /** Callback for HF indicator value (BIEV) |
| 169 | */ |
| 170 | typedef void (* bthf_biev_cmd_callback)(char* hf_ind_val, bt_bdaddr_t *bd_addr); |
| 171 | |
| 172 | |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 173 | /** BT-HF callback structure. */ |
| 174 | typedef struct { |
| 175 | /** set to sizeof(BtHfCallbacks) */ |
| 176 | size_t size; |
| 177 | bthf_connection_state_callback connection_state_cb; |
| 178 | bthf_audio_state_callback audio_state_cb; |
| 179 | bthf_vr_cmd_callback vr_cmd_cb; |
| 180 | bthf_answer_call_cmd_callback answer_call_cmd_cb; |
| 181 | bthf_hangup_call_cmd_callback hangup_call_cmd_cb; |
| 182 | bthf_volume_cmd_callback volume_cmd_cb; |
| 183 | bthf_dial_call_cmd_callback dial_call_cmd_cb; |
| 184 | bthf_dtmf_cmd_callback dtmf_cmd_cb; |
| 185 | bthf_nrec_cmd_callback nrec_cmd_cb; |
Mudumba Ananth | 3c4db4c | 2014-04-27 21:04:35 -0700 | [diff] [blame] | 186 | bthf_wbs_callback wbs_cb; |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 187 | bthf_chld_cmd_callback chld_cmd_cb; |
| 188 | bthf_cnum_cmd_callback cnum_cmd_cb; |
| 189 | bthf_cind_cmd_callback cind_cmd_cb; |
| 190 | bthf_cops_cmd_callback cops_cmd_cb; |
| 191 | bthf_clcc_cmd_callback clcc_cmd_cb; |
| 192 | bthf_unknown_at_cmd_callback unknown_at_cmd_cb; |
| 193 | bthf_key_pressed_cmd_callback key_pressed_cmd_cb; |
Sumit Bajpai | 0b4fbfb | 2015-01-09 14:48:00 +0530 | [diff] [blame] | 194 | bthf_bind_cmd_callback bind_cmd_cb; |
| 195 | bthf_biev_cmd_callback biev_cmd_cb; |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 196 | } bthf_callbacks_t; |
| 197 | |
| 198 | /** Network Status */ |
| 199 | typedef enum |
| 200 | { |
| 201 | BTHF_NETWORK_STATE_NOT_AVAILABLE = 0, |
| 202 | BTHF_NETWORK_STATE_AVAILABLE |
| 203 | } bthf_network_state_t; |
| 204 | |
| 205 | /** Service type */ |
| 206 | typedef enum |
| 207 | { |
| 208 | BTHF_SERVICE_TYPE_HOME = 0, |
| 209 | BTHF_SERVICE_TYPE_ROAMING |
| 210 | } bthf_service_type_t; |
| 211 | |
| 212 | typedef enum { |
| 213 | BTHF_CALL_STATE_ACTIVE = 0, |
| 214 | BTHF_CALL_STATE_HELD, |
| 215 | BTHF_CALL_STATE_DIALING, |
| 216 | BTHF_CALL_STATE_ALERTING, |
| 217 | BTHF_CALL_STATE_INCOMING, |
| 218 | BTHF_CALL_STATE_WAITING, |
| 219 | BTHF_CALL_STATE_IDLE |
| 220 | } bthf_call_state_t; |
| 221 | |
| 222 | typedef enum { |
| 223 | BTHF_CALL_DIRECTION_OUTGOING = 0, |
| 224 | BTHF_CALL_DIRECTION_INCOMING |
| 225 | } bthf_call_direction_t; |
| 226 | |
| 227 | typedef enum { |
| 228 | BTHF_CALL_TYPE_VOICE = 0, |
| 229 | BTHF_CALL_TYPE_DATA, |
| 230 | BTHF_CALL_TYPE_FAX |
| 231 | } bthf_call_mode_t; |
| 232 | |
| 233 | typedef enum { |
| 234 | BTHF_CALL_MPTY_TYPE_SINGLE = 0, |
| 235 | BTHF_CALL_MPTY_TYPE_MULTI |
| 236 | } bthf_call_mpty_type_t; |
| 237 | |
| 238 | typedef enum { |
Sumit Bajpai | 0b4fbfb | 2015-01-09 14:48:00 +0530 | [diff] [blame] | 239 | BTHF_HF_INDICATOR_STATE_DISABLED = 0, |
| 240 | BTHF_HF_INDICATOR_STATE_ENABLED |
| 241 | } bthf_hf_indicator_status_t; |
| 242 | |
| 243 | typedef enum { |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 244 | BTHF_CALL_ADDRTYPE_UNKNOWN = 0x81, |
| 245 | BTHF_CALL_ADDRTYPE_INTERNATIONAL = 0x91 |
| 246 | } bthf_call_addrtype_t; |
Sumit Bajpai | 92659ec | 2015-06-09 18:46:04 +0530 | [diff] [blame^] | 247 | |
| 248 | typedef enum { |
| 249 | BTHF_VOIP_CALL_NETWORK_TYPE_MOBILE = 0, |
| 250 | BTHF_VOIP_CALL_NETWORK_TYPE_WIFI |
| 251 | } bthf_voip_call_network_type_t; |
| 252 | |
| 253 | typedef enum { |
| 254 | BTHF_VOIP_STATE_STOPPED = 0, |
| 255 | BTHF_VOIP_STATE_STARTED |
| 256 | } bthf_voip_state_t; |
| 257 | |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 258 | /** Represents the standard BT-HF interface. */ |
| 259 | typedef struct { |
| 260 | |
| 261 | /** set to sizeof(BtHfInterface) */ |
| 262 | size_t size; |
| 263 | /** |
| 264 | * Register the BtHf callbacks |
| 265 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 266 | bt_status_t (*init)( bthf_callbacks_t* callbacks, int max_hf_clients); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 267 | |
| 268 | /** connect to headset */ |
| 269 | bt_status_t (*connect)( bt_bdaddr_t *bd_addr ); |
| 270 | |
| 271 | /** dis-connect from headset */ |
| 272 | bt_status_t (*disconnect)( bt_bdaddr_t *bd_addr ); |
| 273 | |
| 274 | /** create an audio connection */ |
| 275 | bt_status_t (*connect_audio)( bt_bdaddr_t *bd_addr ); |
| 276 | |
| 277 | /** close the audio connection */ |
| 278 | bt_status_t (*disconnect_audio)( bt_bdaddr_t *bd_addr ); |
| 279 | |
| 280 | /** start voice recognition */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 281 | bt_status_t (*start_voice_recognition)( bt_bdaddr_t *bd_addr ); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 282 | |
| 283 | /** stop voice recognition */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 284 | bt_status_t (*stop_voice_recognition)( bt_bdaddr_t *bd_addr ); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 285 | |
| 286 | /** volume control */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 287 | bt_status_t (*volume_control) (bthf_volume_type_t type, int volume, bt_bdaddr_t *bd_addr ); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 288 | |
| 289 | /** Combined device status change notification */ |
| 290 | bt_status_t (*device_status_notification)(bthf_network_state_t ntk_state, bthf_service_type_t svc_type, int signal, |
| 291 | int batt_chg); |
| 292 | |
| 293 | /** Response for COPS command */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 294 | bt_status_t (*cops_response)(const char *cops, bt_bdaddr_t *bd_addr ); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 295 | |
| 296 | /** Response for CIND command */ |
| 297 | bt_status_t (*cind_response)(int svc, int num_active, int num_held, bthf_call_state_t call_setup_state, |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 298 | int signal, int roam, int batt_chg, bt_bdaddr_t *bd_addr ); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 299 | |
| 300 | /** Pre-formatted AT response, typically in response to unknown AT cmd */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 301 | bt_status_t (*formatted_at_response)(const char *rsp, bt_bdaddr_t *bd_addr ); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 302 | |
| 303 | /** ok/error response |
| 304 | * ERROR (0) |
| 305 | * OK (1) |
| 306 | */ |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 307 | bt_status_t (*at_response) (bthf_at_response_t response_code, int error_code, bt_bdaddr_t *bd_addr ); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 308 | |
| 309 | /** response for CLCC command |
| 310 | * Can be iteratively called for each call index |
| 311 | * Call index of 0 will be treated as NULL termination (Completes response) |
| 312 | */ |
| 313 | bt_status_t (*clcc_response) (int index, bthf_call_direction_t dir, |
| 314 | bthf_call_state_t state, bthf_call_mode_t mode, |
| 315 | bthf_call_mpty_type_t mpty, const char *number, |
Sunny Kapdi | 6253b05 | 2014-03-14 18:21:58 -0700 | [diff] [blame] | 316 | bthf_call_addrtype_t type, bt_bdaddr_t *bd_addr ); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 317 | |
| 318 | /** notify of a call state change |
| 319 | * Each update notifies |
| 320 | * 1. Number of active/held/ringing calls |
| 321 | * 2. call_state: This denotes the state change that triggered this msg |
| 322 | * This will take one of the values from BtHfCallState |
| 323 | * 3. number & type: valid only for incoming & waiting call |
| 324 | */ |
| 325 | bt_status_t (*phone_state_change) (int num_active, int num_held, bthf_call_state_t call_setup_state, |
| 326 | const char *number, bthf_call_addrtype_t type); |
| 327 | |
| 328 | /** Closes the interface. */ |
| 329 | void (*cleanup)( void ); |
Mudumba Ananth | 3c4db4c | 2014-04-27 21:04:35 -0700 | [diff] [blame] | 330 | |
| 331 | /** configureation for the SCO codec */ |
| 332 | bt_status_t (*configure_wbs)( bt_bdaddr_t *bd_addr ,bthf_wbs_config_t config ); |
Sumit Bajpai | 0b4fbfb | 2015-01-09 14:48:00 +0530 | [diff] [blame] | 333 | |
| 334 | /** Response for BIND READ command and activation/deactivation of HF indicator */ |
| 335 | bt_status_t (*bind_response) (int anum, bthf_hf_indicator_status_t status, |
| 336 | bt_bdaddr_t *bd_addr); |
| 337 | |
| 338 | /** Response for BIND TEST command */ |
| 339 | bt_status_t (*bind_string_response) (const char* result, bt_bdaddr_t *bd_addr); |
Sumit Bajpai | 92659ec | 2015-06-09 18:46:04 +0530 | [diff] [blame^] | 340 | |
| 341 | /** Sends connectivity network type used by Voip currently to stack */ |
| 342 | bt_status_t (*voip_network_type_wifi) (bthf_voip_state_t is_voip_started, |
| 343 | bthf_voip_call_network_type_t is_network_wifi); |
Andre Eisenbach | 05f4954 | 2012-09-18 12:15:26 -0700 | [diff] [blame] | 344 | } bthf_interface_t; |
| 345 | |
| 346 | __END_DECLS |
| 347 | |
| 348 | #endif /* ANDROID_INCLUDE_BT_HF_H */ |