NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
bta_jv_api.h
1/******************************************************************************
2 *
3 * Copyright (C) 2006-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 the BTA Java I/F
22 *
23 ******************************************************************************/
24#ifndef BTA_JV_API_H
25#define BTA_JV_API_H
26
27#include "data_types.h"
28#include "bt_target.h"
29#include "bt_types.h"
30#include "bta_api.h"
31#include "btm_api.h"
32/*****************************************************************************
33** Constants and data types
34*****************************************************************************/
35/* status values */
36#define BTA_JV_SUCCESS 0 /* Successful operation. */
37#define BTA_JV_FAILURE 1 /* Generic failure. */
38#define BTA_JV_BUSY 2 /* Temporarily can not handle this request. */
39#define BTA_JV_NO_DATA 3 /* no data. */
40
41typedef UINT8 tBTA_JV_STATUS;
42#define BTA_JV_INTERNAL_ERR (-1) /* internal error. */
43
44#define BTA_JV_MAX_UUIDS SDP_MAX_UUID_FILTERS
45#define BTA_JV_MAX_ATTRS SDP_MAX_ATTR_FILTERS
46#define BTA_JV_MAX_SDP_REC SDP_MAX_RECORDS
47#if SDP_FOR_JV_INCLUDED == TRUE
48#define BTA_JV_MAX_L2C_CONN (GAP_MAX_CONNECTIONS + 1)
49#else
50#define BTA_JV_MAX_L2C_CONN GAP_MAX_CONNECTIONS
51#endif
52#define BTA_JV_MAX_SCN PORT_MAX_RFC_PORTS /* same as BTM_MAX_SCN (in btm_int.h) */
53#define BTA_JV_MAX_RFC_CONN MAX_RFC_PORTS
54
55#ifndef BTA_JV_DEF_RFC_MTU
56#define BTA_JV_DEF_RFC_MTU (3*330)
57#endif
58
59/* */
60#ifndef BTA_JV_MAX_RFC_SR_SESSION
61#define BTA_JV_MAX_RFC_SR_SESSION 3
62#endif
63
64/* BTA_JV_MAX_RFC_SR_SESSION can not be bigger than MAX_BD_CONNECTIONS */
65#if (BTA_JV_MAX_RFC_SR_SESSION > MAX_BD_CONNECTIONS)
66#undef BTA_JV_MAX_RFC_SR_SESSION
67#define BTA_JV_MAX_RFC_SR_SESSION MAX_BD_CONNECTIONS
68#endif
69
70#define BTA_JV_FIRST_SERVICE_ID BTA_FIRST_JV_SERVICE_ID
71#define BTA_JV_LAST_SERVICE_ID BTA_LAST_JV_SERVICE_ID
72#define BTA_JV_NUM_SERVICE_ID (BTA_LAST_JV_SERVICE_ID - BTA_FIRST_JV_SERVICE_ID + 1)
73
74/* Discoverable modes */
75enum
76{
77 BTA_JV_DISC_NONE,
78 BTA_JV_DISC_LIMITED,
79 BTA_JV_DISC_GENERAL
80};
81typedef UINT16 tBTA_JV_DISC;
82
83/* Security Mode (BTA_JvGetSecurityMode) */
84#define BTA_JV_SEC_MODE_UNDEFINED BTM_SEC_MODE_UNDEFINED /* 0 */
85#define BTA_JV_SEC_MODE_NONE BTM_SEC_MODE_NONE /* 1 */
86#define BTA_JV_SEC_MODE_SERVICE BTM_SEC_MODE_SERVICE /* 2 */
87#define BTA_JV_SEC_MODE_LINK BTM_SEC_MODE_LINK /* 3 */
88#define BTA_JV_SEC_MODE_SP BTM_SEC_MODE_SP /* 4 */
89#define BTA_JV_SEC_MODE_SP_DEBUG BTM_SEC_MODE_SP_DEBUG /* 5 */
90typedef UINT8 tBTA_JV_SEC_MODE;
91
92#define BTA_JV_ROLE_SLAVE BTM_ROLE_SLAVE
93#define BTA_JV_ROLE_MASTER BTM_ROLE_MASTER
94typedef UINT32 tBTA_JV_ROLE;
95
96#define BTA_JV_SERVICE_LMTD_DISCOVER BTM_COD_SERVICE_LMTD_DISCOVER /* 0x0020 */
97#define BTA_JV_SERVICE_POSITIONING BTM_COD_SERVICE_POSITIONING /* 0x0100 */
98#define BTA_JV_SERVICE_NETWORKING BTM_COD_SERVICE_NETWORKING /* 0x0200 */
99#define BTA_JV_SERVICE_RENDERING BTM_COD_SERVICE_RENDERING /* 0x0400 */
100#define BTA_JV_SERVICE_CAPTURING BTM_COD_SERVICE_CAPTURING /* 0x0800 */
101#define BTA_JV_SERVICE_OBJ_TRANSFER BTM_COD_SERVICE_OBJ_TRANSFER /* 0x1000 */
102#define BTA_JV_SERVICE_AUDIO BTM_COD_SERVICE_AUDIO /* 0x2000 */
103#define BTA_JV_SERVICE_TELEPHONY BTM_COD_SERVICE_TELEPHONY /* 0x4000 */
104#define BTA_JV_SERVICE_INFORMATION BTM_COD_SERVICE_INFORMATION /* 0x8000 */
105
106
107
108/* Java I/F callback events */
109/* events received by tBTA_JV_DM_CBACK */
110#define BTA_JV_ENABLE_EVT 0 /* JV enabled */
111#define BTA_JV_SET_DISCOVER_EVT 1 /* the result for BTA_JvSetDiscoverability */
112#define BTA_JV_LOCAL_ADDR_EVT 2 /* Local device address */
113#define BTA_JV_LOCAL_NAME_EVT 3 /* Local device name */
114#define BTA_JV_REMOTE_NAME_EVT 4 /* Remote device name */
115#define BTA_JV_SET_ENCRYPTION_EVT 5 /* Set Encryption */
116#define BTA_JV_GET_SCN_EVT 6 /* Reserved an SCN */
117#define BTA_JV_GET_PSM_EVT 7 /* Reserved a PSM */
118#define BTA_JV_DISCOVERY_COMP_EVT 8 /* SDP discovery complete */
119#define BTA_JV_SERVICES_LEN_EVT 9 /* the result for BTA_JvGetServicesLength */
120#define BTA_JV_SERVICE_SEL_EVT 10 /* the result for BTA_JvServiceSelect */
121#define BTA_JV_CREATE_RECORD_EVT 11 /* the result for BTA_JvCreateRecord */
122#define BTA_JV_UPDATE_RECORD_EVT 12 /* the result for BTA_JvUpdateRecord */
123#define BTA_JV_ADD_ATTR_EVT 13 /* the result for BTA_JvAddAttribute */
124#define BTA_JV_DELETE_ATTR_EVT 14 /* the result for BTA_JvDeleteAttribute */
125#define BTA_JV_CANCEL_DISCVRY_EVT 15 /* the result for BTA_JvCancelDiscovery */
126
127/* events received by tBTA_JV_L2CAP_CBACK */
128#define BTA_JV_L2CAP_OPEN_EVT 16 /* open status of L2CAP connection */
129#define BTA_JV_L2CAP_CLOSE_EVT 17 /* L2CAP connection closed */
130#define BTA_JV_L2CAP_START_EVT 18 /* L2CAP server started */
131#define BTA_JV_L2CAP_CL_INIT_EVT 19 /* L2CAP client initiated a connection */
132#define BTA_JV_L2CAP_DATA_IND_EVT 20 /* L2CAP connection received data */
133#define BTA_JV_L2CAP_CONG_EVT 21 /* L2CAP connection congestion status changed */
134#define BTA_JV_L2CAP_READ_EVT 22 /* the result for BTA_JvL2capRead */
135#define BTA_JV_L2CAP_RECEIVE_EVT 23 /* the result for BTA_JvL2capReceive*/
136#define BTA_JV_L2CAP_WRITE_EVT 24 /* the result for BTA_JvL2capWrite*/
137
138/* events received by tBTA_JV_RFCOMM_CBACK */
139#define BTA_JV_RFCOMM_OPEN_EVT 25 /* open status of RFCOMM Client connection */
140#define BTA_JV_RFCOMM_CLOSE_EVT 26 /* RFCOMM connection closed */
141#define BTA_JV_RFCOMM_START_EVT 27 /* RFCOMM server started */
142#define BTA_JV_RFCOMM_CL_INIT_EVT 28 /* RFCOMM client initiated a connection */
143#define BTA_JV_RFCOMM_DATA_IND_EVT 29 /* RFCOMM connection received data */
144#define BTA_JV_RFCOMM_CONG_EVT 30 /* RFCOMM connection congestion status changed */
145#define BTA_JV_RFCOMM_READ_EVT 31 /* the result for BTA_JvRfcommRead */
146#define BTA_JV_RFCOMM_WRITE_EVT 32 /* the result for BTA_JvRfcommWrite*/
147#define BTA_JV_RFCOMM_SRV_OPEN_EVT 33 /* open status of Server RFCOMM connection */
148#define BTA_JV_MAX_EVT 34 /* max number of JV events */
149
150typedef UINT16 tBTA_JV_EVT;
151
152/* data associated with BTA_JV_SET_DISCOVER_EVT */
153typedef struct
154{
155 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
156 tBTA_JV_DISC disc_mode; /* The current discoverable mode */
158
159/* data associated with BTA_JV_DISCOVERY_COMP_EVT_ */
160typedef struct
161{
162 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
163 int scn; /* channel # */
165
166/* data associated with BTA_JV_SET_ENCRYPTION_EVT */
167typedef struct
168{
169 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
170 BD_ADDR bd_addr; /* The peer address */
172
173/* data associated with BTA_JV_SERVICES_LEN_EVT */
174typedef struct
175{
176 INT32 num_services; /* -1, if error. Otherwise, the number of
177 * services collected from peer */
178 UINT16 *p_services_len; /* this points the same location as the
179 * parameter in BTA_JvGetServicesLength() */
181
182/* data associated with BTA_JV_SERVICE_SEL_EVT */
183typedef struct
184{
185 BD_ADDR bd_addr; /* The peer address */
186 UINT16 service_len; /* the length of this record */
188
189/* data associated with BTA_JV_CREATE_RECORD_EVT */
190typedef struct
191{
192 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
194
195/* data associated with BTA_JV_UPDATE_RECORD_EVT */
196typedef struct
197{
198 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
199 UINT32 handle; /* The SDP record handle was updated */
201
202/* data associated with BTA_JV_ADD_ATTR_EVT */
203typedef struct
204{
205 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
206 UINT32 handle; /* The SDP record handle was updated */
208
209/* data associated with BTA_JV_DELETE_ATTR_EVT */
210typedef struct
211{
212 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
213 UINT32 handle; /* The SDP record handle was updated */
215
216/* data associated with BTA_JV_L2CAP_OPEN_EVT */
217typedef struct
218{
219 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
220 UINT32 handle; /* The connection handle */
221 BD_ADDR rem_bda; /* The peer address */
222 INT32 tx_mtu; /* The transmit MTU */
224
225/* data associated with BTA_JV_L2CAP_CLOSE_EVT */
226typedef struct
227{
228 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
229 UINT32 handle; /* The connection handle */
230 BOOLEAN async; /* FALSE, if local initiates disconnect */
232
233/* data associated with BTA_JV_L2CAP_START_EVT */
234typedef struct
235{
236 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
237 UINT32 handle; /* The connection handle */
238 UINT8 sec_id; /* security ID used by this server */
240
241/* data associated with BTA_JV_L2CAP_CL_INIT_EVT */
242typedef struct
243{
244 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
245 UINT32 handle; /* The connection handle */
246 UINT8 sec_id; /* security ID used by this client */
248
249/* data associated with BTA_JV_L2CAP_CONG_EVT */
250typedef struct
251{
252 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
253 UINT32 handle; /* The connection handle */
254 BOOLEAN cong; /* TRUE, congested. FALSE, uncongested */
256
257/* data associated with BTA_JV_L2CAP_READ_EVT */
258typedef struct
259{
260 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
261 UINT32 handle; /* The connection handle */
262 UINT32 req_id; /* The req_id in the associated BTA_JvL2capRead() */
263 UINT8 *p_data; /* This points the same location as the p_data
264 * parameter in BTA_JvL2capRead () */
265 UINT16 len; /* The length of the data read. */
267
268/* data associated with BTA_JV_L2CAP_RECEIVE_EVT */
269typedef struct
270{
271 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
272 UINT32 handle; /* The connection handle */
273 UINT32 req_id; /* The req_id in the associated BTA_JvL2capReceive() */
274 UINT8 *p_data; /* This points the same location as the p_data
275 * parameter in BTA_JvL2capReceive () */
276 UINT16 len; /* The length of the data read. */
278
279/* data associated with BTA_JV_L2CAP_WRITE_EVT */
280typedef struct
281{
282 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
283 UINT32 handle; /* The connection handle */
284 UINT32 req_id; /* The req_id in the associated BTA_JvL2capWrite() */
285 UINT16 len; /* The length of the data written. */
286 BOOLEAN cong; /* congestion status */
288
289/* data associated with BTA_JV_RFCOMM_OPEN_EVT */
290typedef struct
291{
292 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
293 UINT32 handle; /* The connection handle */
294 BD_ADDR rem_bda; /* The peer address */
296/* data associated with BTA_JV_RFCOMM_SRV_OPEN_EVT */
297typedef struct
298{
299 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
300 UINT32 handle; /* The connection handle */
301 UINT32 new_listen_handle; /* The new listen handle */
302 BD_ADDR rem_bda; /* The peer address */
304
305
306/* data associated with BTA_JV_RFCOMM_CLOSE_EVT */
307typedef struct
308{
309 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
310 UINT32 port_status; /* PORT status */
311 UINT32 handle; /* The connection handle */
312 BOOLEAN async; /* FALSE, if local initiates disconnect */
314
315/* data associated with BTA_JV_RFCOMM_START_EVT */
316typedef struct
317{
318 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
319 UINT32 handle; /* The connection handle */
320 UINT8 sec_id; /* security ID used by this server */
321 BOOLEAN use_co; /* TRUE to use co_rfc_data */
323
324/* data associated with BTA_JV_RFCOMM_CL_INIT_EVT */
325typedef struct
326{
327 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
328 UINT32 handle; /* The connection handle */
329 UINT8 sec_id; /* security ID used by this client */
330 BOOLEAN use_co; /* TRUE to use co_rfc_data */
332/*data associated with BTA_JV_L2CAP_DATA_IND_EVT & BTA_JV_RFCOMM_DATA_IND_EVT */
333typedef struct
334{
335 UINT32 handle; /* The connection handle */
337
338/* data associated with BTA_JV_RFCOMM_CONG_EVT */
339typedef struct
340{
341 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
342 UINT32 handle; /* The connection handle */
343 BOOLEAN cong; /* TRUE, congested. FALSE, uncongested */
345
346/* data associated with BTA_JV_RFCOMM_READ_EVT */
347typedef struct
348{
349 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
350 UINT32 handle; /* The connection handle */
351 UINT32 req_id; /* The req_id in the associated BTA_JvRfcommRead() */
352 UINT8 *p_data; /* This points the same location as the p_data
353 * parameter in BTA_JvRfcommRead () */
354 UINT16 len; /* The length of the data read. */
356
357/* data associated with BTA_JV_RFCOMM_WRITE_EVT */
358typedef struct
359{
360 tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */
361 UINT32 handle; /* The connection handle */
362 UINT32 req_id; /* The req_id in the associated BTA_JvRfcommWrite() */
363 int len; /* The length of the data written. */
364 BOOLEAN cong; /* congestion status */
366
367
368/* union of data associated with JV callback */
369typedef union
370{
371 tBTA_JV_STATUS status; /* BTA_JV_ENABLE_EVT */
372 tBTA_JV_DISCOVERY_COMP disc_comp; /* BTA_JV_DISCOVERY_COMP_EVT */
373 tBTA_JV_SET_DISCOVER set_discover; /* BTA_JV_SET_DISCOVER_EVT */
374 tBTA_JV_SET_ENCRYPTION set_encrypt; /* BTA_JV_SET_ENCRYPTION_EVT */
375 BD_ADDR bd_addr; /* BTA_JV_LOCAL_ADDR_EVT */
376 UINT8 *p_name; /* BTA_JV_LOCAL_NAME_EVT,
377 BTA_JV_REMOTE_NAME_EVT */
378 UINT8 scn; /* BTA_JV_GET_SCN_EVT */
379 UINT16 psm; /* BTA_JV_GET_PSM_EVT */
380 tBTA_JV_SERVICES_LEN servs_len; /* BTA_JV_SERVICES_LEN_EVT */
381 tBTA_JV_SERVICE_SEL serv_sel; /* BTA_JV_SERVICE_SEL_EVT */
382 tBTA_JV_CREATE_RECORD create_rec; /* BTA_JV_CREATE_RECORD_EVT */
383 tBTA_JV_UPDATE_RECORD update_rec; /* BTA_JV_UPDATE_RECORD_EVT */
384 tBTA_JV_ADD_ATTR add_attr; /* BTA_JV_ADD_ATTR_EVT */
385 tBTA_JV_DELETE_ATTR del_attr; /* BTA_JV_DELETE_ATTR_EVT */
386 tBTA_JV_L2CAP_OPEN l2c_open; /* BTA_JV_L2CAP_OPEN_EVT */
387 tBTA_JV_L2CAP_CLOSE l2c_close; /* BTA_JV_L2CAP_CLOSE_EVT */
388 tBTA_JV_L2CAP_START l2c_start; /* BTA_JV_L2CAP_START_EVT */
389 tBTA_JV_L2CAP_CL_INIT l2c_cl_init; /* BTA_JV_L2CAP_CL_INIT_EVT */
390 tBTA_JV_L2CAP_CONG l2c_cong; /* BTA_JV_L2CAP_CONG_EVT */
391 tBTA_JV_L2CAP_READ l2c_read; /* BTA_JV_L2CAP_READ_EVT */
392 tBTA_JV_L2CAP_WRITE l2c_write; /* BTA_JV_L2CAP_WRITE_EVT */
393 tBTA_JV_RFCOMM_OPEN rfc_open; /* BTA_JV_RFCOMM_OPEN_EVT */
394 tBTA_JV_RFCOMM_SRV_OPEN rfc_srv_open; /* BTA_JV_RFCOMM_SRV_OPEN_EVT */
395 tBTA_JV_RFCOMM_CLOSE rfc_close; /* BTA_JV_RFCOMM_CLOSE_EVT */
396 tBTA_JV_RFCOMM_START rfc_start; /* BTA_JV_RFCOMM_START_EVT */
397 tBTA_JV_RFCOMM_CL_INIT rfc_cl_init; /* BTA_JV_RFCOMM_CL_INIT_EVT */
398 tBTA_JV_RFCOMM_CONG rfc_cong; /* BTA_JV_RFCOMM_CONG_EVT */
399 tBTA_JV_RFCOMM_READ rfc_read; /* BTA_JV_RFCOMM_READ_EVT */
400 tBTA_JV_RFCOMM_WRITE rfc_write; /* BTA_JV_RFCOMM_WRITE_EVT */
401 tBTA_JV_DATA_IND data_ind; /* BTA_JV_L2CAP_DATA_IND_EVT
402 BTA_JV_RFCOMM_DATA_IND_EVT */
403} tBTA_JV;
404
405/* JAVA DM Interface callback */
406typedef void (tBTA_JV_DM_CBACK)(tBTA_JV_EVT event, tBTA_JV *p_data, void * user_data);
407
408/* JAVA RFCOMM interface callback */
409typedef void* (tBTA_JV_RFCOMM_CBACK)(tBTA_JV_EVT event, tBTA_JV *p_data, void *user_data);
410
411/* JAVA L2CAP interface callback */
412typedef void (tBTA_JV_L2CAP_CBACK)(tBTA_JV_EVT event, tBTA_JV *p_data);
413
414/* JV configuration structure */
415typedef struct
416{
417 UINT16 sdp_raw_size; /* The size of p_sdp_raw_data */
418 UINT16 sdp_db_size; /* The size of p_sdp_db */
419 UINT8 *p_sdp_raw_data; /* The data buffer to keep raw data */
420 tSDP_DISCOVERY_DB *p_sdp_db; /* The data buffer to keep SDP database */
422
423/*****************************************************************************
424** External Function Declarations
425*****************************************************************************/
426#ifdef __cplusplus
427extern "C"
428{
429#endif
430
431/*******************************************************************************
432**
433** Function BTA_JvEnable
434**
435** Description Enable the Java I/F service. When the enable
436** operation is complete the callback function will be
437** called with a BTA_JV_ENABLE_EVT. This function must
438** be called before other functions in the JV API are
439** called.
440**
441** Returns BTA_JV_SUCCESS if successful.
442** BTA_JV_FAIL if internal failure.
443**
444*******************************************************************************/
445BTA_API extern tBTA_JV_STATUS BTA_JvEnable(tBTA_JV_DM_CBACK *p_cback);
446
447/*******************************************************************************
448**
449** Function BTA_JvDisable
450**
451** Description Disable the Java I/F
452**
453** Returns void
454**
455*******************************************************************************/
456BTA_API extern void BTA_JvDisable(void);
457
458/*******************************************************************************
459**
460** Function BTA_JvIsEnable
461**
462** Description Get the JV registration status.
463**
464** Returns TRUE, if registered
465**
466*******************************************************************************/
467BTA_API extern BOOLEAN BTA_JvIsEnable(void);
468
469/*******************************************************************************
470**
471** Function BTA_JvSetDiscoverability
472**
473** Description This function sets the Bluetooth discoverable modes
474** of the local device. This controls whether other
475** Bluetooth devices can find the local device.
476**
477** When the operation is complete the tBTA_JV_DM_CBACK callback
478** function will be called with a BTA_JV_SET_DISCOVER_EVT.
479**
480** Returns BTA_JV_SUCCESS if successful.
481** BTA_JV_FAIL if internal failure.
482**
483*******************************************************************************/
484BTA_API extern tBTA_JV_STATUS BTA_JvSetDiscoverability(tBTA_JV_DISC disc_mode);
485
486/*******************************************************************************
487**
488** Function BTA_JvGetDiscoverability
489**
490** Description This function gets the Bluetooth
491** discoverable modes of local device
492**
493** Returns The current Bluetooth discoverable mode.
494**
495*******************************************************************************/
496BTA_API extern tBTA_JV_DISC BTA_JvGetDiscoverability(void);
497
498/*******************************************************************************
499**
500** Function BTA_JvGetLocalDeviceAddr
501**
502** Description This function obtains the local Bluetooth device address.
503** The local Bluetooth device address is reported by the
504** tBTA_JV_DM_CBACK callback with a BTA_JV_LOCAL_ADDR_EVT.
505**
506** Returns BTA_JV_SUCCESS if successful.
507** BTA_JV_FAIL if internal failure.
508**
509*******************************************************************************/
510BTA_API extern tBTA_JV_STATUS BTA_JvGetLocalDeviceAddr(void);
511
512/*******************************************************************************
513**
514** Function BTA_JvGetLocalDeviceName
515**
516** Description This function obtains the name of the local device
517** The local Bluetooth device name is reported by the
518** tBTA_JV_DM_CBACK callback with a BTA_JV_LOCAL_NAME_EVT.
519**
520** Returns BTA_JV_SUCCESS if successful.
521** BTA_JV_FAIL if internal failure.
522**
523*******************************************************************************/
524BTA_API extern tBTA_JV_STATUS BTA_JvGetLocalDeviceName(void);
525
526/*******************************************************************************
527**
528** Function BTA_JvGetRemoteDeviceName
529**
530** Description This function obtains the name of the specified device.
531** The Bluetooth device name is reported by the
532** tBTA_JV_DM_CBACK callback with a BTA_JV_REMOTE_NAME_EVT.
533**
534** Returns BTA_JV_SUCCESS if successful.
535** BTA_JV_FAIL if internal failure.
536**
537*******************************************************************************/
538BTA_API extern tBTA_JV_STATUS BTA_JvGetRemoteDeviceName(BD_ADDR bd_addr);
539
540/*******************************************************************************
541**
542** Function BTA_JvGetPreknownDevice
543**
544** Description This function obtains the Bluetooth address in the inquiry
545** database collected via the previous call to BTA_DmSearch().
546**
547** Returns The number of preknown devices if p_bd_addr is NULL
548** BTA_JV_SUCCESS if successful.
549** BTA_JV_INTERNAL_ERR(-1) if internal failure.
550**
551*******************************************************************************/
552BTA_API extern INT32 BTA_JvGetPreknownDevice(UINT8 * p_bd_addr, UINT32 index);
553
554/*******************************************************************************
555**
556** Function BTA_JvGetDeviceClass
557**
558** Description This function obtains the local Class of Device.
559**
560** Returns DEV_CLASS, A three-byte array of UINT8 that contains the
561** Class of Device information. The definitions are in the
562** "Bluetooth Assigned Numbers".
563**
564*******************************************************************************/
565BTA_API extern UINT8 * BTA_JvGetDeviceClass(void);
566
567/*******************************************************************************
568**
569** Function BTA_JvSetServiceClass
570**
571** Description This function sets the service class of local Class of Device
572**
573** Returns BTA_JV_SUCCESS if successful.
574** BTA_JV_FAIL if internal failure.
575**
576*******************************************************************************/
577BTA_API extern tBTA_JV_STATUS BTA_JvSetServiceClass(UINT32 service);
578
579/*******************************************************************************
580**
581** Function BTA_JvSetEncryption
582**
583** Description This function ensures that the connection to the given device
584** is encrypted.
585** When the operation is complete the tBTA_JV_DM_CBACK callback
586** function will be called with a BTA_JV_SET_ENCRYPTION_EVT.
587**
588** Returns BTA_JV_SUCCESS, if the request is being processed.
589** BTA_JV_FAILURE, otherwise.
590**
591*******************************************************************************/
592BTA_API extern tBTA_JV_STATUS BTA_JvSetEncryption(BD_ADDR bd_addr);
593
594/*******************************************************************************
595**
596** Function BTA_JvIsAuthenticated
597**
598** Description This function checks if the peer device is authenticated
599**
600** Returns TRUE if authenticated.
601** FALSE if not.
602**
603*******************************************************************************/
604BTA_API extern BOOLEAN BTA_JvIsAuthenticated(BD_ADDR bd_addr);
605
606/*******************************************************************************
607**
608** Function BTA_JvIsTrusted
609**
610** Description This function checks if the peer device is trusted
611** (previously paired)
612**
613** Returns TRUE if trusted.
614** FALSE if not.
615**
616*******************************************************************************/
617BTA_API extern BOOLEAN BTA_JvIsTrusted(BD_ADDR bd_addr);
618
619/*******************************************************************************
620**
621** Function BTA_JvIsAuthorized
622**
623** Description This function checks if the peer device is authorized
624**
625** Returns TRUE if authorized.
626** FALSE if not.
627**
628*******************************************************************************/
629BTA_API extern BOOLEAN BTA_JvIsAuthorized(BD_ADDR bd_addr);
630
631/*******************************************************************************
632**
633** Function BTA_JvIsEncrypted
634**
635** Description This function checks if the link to peer device is encrypted
636**
637** Returns TRUE if encrypted.
638** FALSE if not.
639**
640*******************************************************************************/
641BTA_API extern BOOLEAN BTA_JvIsEncrypted(BD_ADDR bd_addr);
642
643/*******************************************************************************
644**
645** Function BTA_JvGetSecurityMode
646**
647** Description This function returns the current Bluetooth security mode
648** of the local device
649**
650** Returns The current Bluetooth security mode.
651**
652*******************************************************************************/
653BTA_API extern tBTA_JV_SEC_MODE BTA_JvGetSecurityMode(void);
654
655/* BTA_JvIsMaster is replaced by BTA_DmIsMaster */
656
657/*******************************************************************************
658**
659** Function BTA_JvGetSCN
660**
661** Description This function reserves a SCN (server channel number) for
662** applications running over RFCOMM. It is primarily called by
663** server profiles/applications to register their SCN into the
664** SDP database. The SCN is reported by the tBTA_JV_DM_CBACK
665** callback with a BTA_JV_GET_SCN_EVT.
666** If the SCN reported is 0, that means all SCN resources are
667** exhausted.
668**
669** Returns BTA_JV_SUCCESS, if the request is being processed.
670** BTA_JV_FAILURE, otherwise.
671**
672*******************************************************************************/
673BTA_API extern tBTA_JV_STATUS BTA_JvGetSCN(void);
674
675/*******************************************************************************
676**
677** Function BTA_JvFreeSCN
678**
679** Description This function frees a server channel number that was used
680** by an application running over RFCOMM.
681**
682** Returns BTA_JV_SUCCESS, if the request is being processed.
683** BTA_JV_FAILURE, otherwise.
684**
685*******************************************************************************/
686BTA_API extern tBTA_JV_STATUS BTA_JvFreeSCN(UINT8 scn);
687
688/*******************************************************************************
689**
690** Function BTA_JvGetPSM
691**
692** Description This function reserves a PSM (Protocol Service Multiplexer)
693** applications running over L2CAP. It is primarily called by
694** server profiles/applications to register their PSM into the
695** SDP database.
696**
697** Returns The next free PSM
698**
699*******************************************************************************/
700BTA_API extern UINT16 BTA_JvGetPSM(void);
701
702/*******************************************************************************
703**
704** Function BTA_JvStartDiscovery
705**
706** Description This function performs service discovery for the services
707** provided by the given peer device. When the operation is
708** complete the tBTA_JV_DM_CBACK callback function will be
709** called with a BTA_JV_DISCOVERY_COMP_EVT.
710**
711** Returns BTA_JV_SUCCESS, if the request is being processed.
712** BTA_JV_FAILURE, otherwise.
713**
714*******************************************************************************/
715BTA_API extern tBTA_JV_STATUS BTA_JvStartDiscovery(BD_ADDR bd_addr, UINT16 num_uuid,
716 tSDP_UUID *p_uuid_list, void* user_data);
717
718/*******************************************************************************
719**
720** Function BTA_JvCancelDiscovery
721**
722** Description This function cancels an active service discovery.
723** When the operation is
724** complete the tBTA_JV_DM_CBACK callback function will be
725** called with a BTA_JV_CANCEL_DISCVRY_EVT.
726**
727** Returns BTA_JV_SUCCESS, if the request is being processed.
728** BTA_JV_FAILURE, otherwise.
729**
730*******************************************************************************/
731BTA_API extern tBTA_JV_STATUS BTA_JvCancelDiscovery(void * user_data);
732
733/*******************************************************************************
734**
735** Function BTA_JvGetServicesLength
736**
737** Description This function obtains the number of services and the length
738** of each service found in the SDP database (result of last
739** BTA_JvStartDiscovery().When the operation is complete the
740** tBTA_JV_DM_CBACK callback function will be called with a
741** BTA_JV_SERVICES_LEN_EVT.
742**
743** Returns BTA_JV_SUCCESS, if the request is being processed.
744** BTA_JV_FAILURE, otherwise.
745**
746*******************************************************************************/
747BTA_API extern tBTA_JV_STATUS BTA_JvGetServicesLength(BOOLEAN inc_hdr, UINT16 *p_services_len);
748
749/*******************************************************************************
750**
751** Function BTA_JvGetServicesResult
752**
753** Description This function returns a number of service records found
754** during current service search, equals to the number returned
755** by previous call to BTA_JvGetServicesLength.
756** The contents of each SDP record will be returned under a
757** TLV (type, len, value) representation in the data buffer
758** provided by the caller.
759**
760** Returns -1, if error. Otherwise, the number of services
761**
762*******************************************************************************/
763BTA_API extern INT32 BTA_JvGetServicesResult(BOOLEAN inc_hdr, UINT8 **TLVs);
764
765/*******************************************************************************
766**
767** Function BTA_JvServiceSelect
768**
769** Description This function checks if the SDP database contains the given
770** service UUID. When the operation is complete the
771** tBTA_JV_DM_CBACK callback function will be called with a
772** BTA_JV_SERVICE_SEL_EVT with the length of the service record.
773** If the service is not found or error, -1 is reported.
774**
775** Returns BTA_JV_SUCCESS, if the request is being processed.
776** BTA_JV_FAILURE, otherwise.
777**
778*******************************************************************************/
779BTA_API extern tBTA_JV_STATUS BTA_JvServiceSelect(UINT16 uuid);
780
781/*******************************************************************************
782**
783** Function BTA_JvServiceResult
784**
785** Description This function returns the contents of the SDP record from
786** last BTA_JvServiceSelect. The contents will be returned under
787** a TLV (type, len, value) representation in the data buffer
788** provided by the caller.
789**
790** Returns -1, if error. Otherwise, the length of service record.
791**
792*******************************************************************************/
793BTA_API extern INT32 BTA_JvServiceResult(UINT8 *TLV);
794
795/*******************************************************************************
796**
797** Function BTA_JvCreateRecord
798**
799** Description Create a service record in the local SDP database by user in
800** tBTA_JV_DM_CBACK callback with a BTA_JV_CREATE_RECORD_EVT.
801**
802** Returns BTA_JV_SUCCESS, if the request is being processed.
803** BTA_JV_FAILURE, otherwise.
804**
805*******************************************************************************/
806BTA_API extern tBTA_JV_STATUS BTA_JvCreateRecordByUser(void* user_data);
807
808/*******************************************************************************
809**
810** Function BTA_JvUpdateRecord
811**
812** Description Update a service record in the local SDP database.
813** When the operation is complete the tBTA_JV_DM_CBACK callback
814** function will be called with a BTA_JV_UPDATE_RECORD_EVT.
815**
816** Returns BTA_JV_SUCCESS, if the request is being processed.
817** BTA_JV_FAILURE, otherwise.
818**
819*******************************************************************************/
820BTA_API extern tBTA_JV_STATUS BTA_JvUpdateRecord(UINT32 handle, UINT16 *p_ids,
821 UINT8 **p_values, INT32 *p_value_sizes, INT32 array_len);
822
823/*******************************************************************************
824**
825** Function BTA_JvAddAttribute
826**
827** Description Add an attribute to a service record in the local SDP database.
828** When the operation is complete the tBTA_JV_DM_CBACK callback
829** function will be called with a BTA_JV_ADD_ATTR_EVT.
830**
831** Returns BTA_JV_SUCCESS, if the request is being processed.
832** BTA_JV_FAILURE, otherwise.
833**
834*******************************************************************************/
835BTA_API extern tBTA_JV_STATUS BTA_JvAddAttribute(UINT32 handle, UINT16 attr_id,
836 UINT8 *p_value, INT32 value_size);
837
838/*******************************************************************************
839**
840** Function BTA_JvDeleteAttribute
841**
842** Description Delete an attribute from a service record in the local SDP database.
843** When the operation is complete the tBTA_JV_DM_CBACK callback
844** function will be called with a BTA_JV_DELETE_ATTR_EVT.
845**
846** Returns BTA_JV_SUCCESS, if the request is being processed.
847** BTA_JV_FAILURE, otherwise.
848**
849*******************************************************************************/
850BTA_API extern tBTA_JV_STATUS BTA_JvDeleteAttribute(UINT32 handle, UINT16 attr_id);
851
852/*******************************************************************************
853**
854** Function BTA_JvDeleteRecord
855**
856** Description Delete a service record in the local SDP database.
857**
858** Returns BTA_JV_SUCCESS, if the request is being processed.
859** BTA_JV_FAILURE, otherwise.
860**
861*******************************************************************************/
862BTA_API extern tBTA_JV_STATUS BTA_JvDeleteRecord(UINT32 handle);
863
864/*******************************************************************************
865**
866** Function BTA_JvReadRecord
867**
868** Description Read a service record in the local SDP database.
869**
870** Returns -1, if the record is not found.
871** Otherwise, the offset (0 or 1) to start of data in p_data.
872**
873** The size of data copied into p_data is in *p_data_len.
874**
875*******************************************************************************/
876BTA_API extern INT32 BTA_JvReadRecord(UINT32 handle, UINT8 *p_data, INT32 *p_data_len);
877
878/*******************************************************************************
879**
880** Function BTA_JvL2capConnect
881**
882** Description Initiate a connection as a L2CAP client to the given BD
883** Address.
884** When the connection is initiated or failed to initiate,
885** tBTA_JV_L2CAP_CBACK is called with BTA_JV_L2CAP_CL_INIT_EVT
886** When the connection is established or failed,
887** tBTA_JV_L2CAP_CBACK is called with BTA_JV_L2CAP_OPEN_EVT
888**
889** Returns BTA_JV_SUCCESS, if the request is being processed.
890** BTA_JV_FAILURE, otherwise.
891**
892*******************************************************************************/
893BTA_API extern tBTA_JV_STATUS BTA_JvL2capConnect(tBTA_SEC sec_mask,
894 tBTA_JV_ROLE role, UINT16 remote_psm, UINT16 rx_mtu,
895 BD_ADDR peer_bd_addr, tBTA_JV_L2CAP_CBACK *p_cback);
896
897/*******************************************************************************
898**
899** Function BTA_JvL2capClose
900**
901** Description This function closes an L2CAP client connection
902**
903** Returns BTA_JV_SUCCESS, if the request is being processed.
904** BTA_JV_FAILURE, otherwise.
905**
906*******************************************************************************/
907BTA_API extern tBTA_JV_STATUS BTA_JvL2capClose(UINT32 handle);
908
909/*******************************************************************************
910**
911** Function BTA_JvL2capStartServer
912**
913** Description This function starts an L2CAP server and listens for an L2CAP
914** connection from a remote Bluetooth device. When the server
915** is started successfully, tBTA_JV_L2CAP_CBACK is called with
916** BTA_JV_L2CAP_START_EVT. When the connection is established,
917** tBTA_JV_L2CAP_CBACK is called with BTA_JV_L2CAP_OPEN_EVT.
918**
919** Returns BTA_JV_SUCCESS, if the request is being processed.
920** BTA_JV_FAILURE, otherwise.
921**
922*******************************************************************************/
923BTA_API extern tBTA_JV_STATUS BTA_JvL2capStartServer(tBTA_SEC sec_mask, tBTA_JV_ROLE role,
924 UINT16 local_psm, UINT16 rx_mtu,
925 tBTA_JV_L2CAP_CBACK *p_cback);
926
927/*******************************************************************************
928**
929** Function BTA_JvL2capStopServer
930**
931** Description This function stops the L2CAP server. If the server has an
932** active connection, it would be closed.
933**
934** Returns BTA_JV_SUCCESS, if the request is being processed.
935** BTA_JV_FAILURE, otherwise.
936**
937*******************************************************************************/
938BTA_API extern tBTA_JV_STATUS BTA_JvL2capStopServer(UINT16 local_psm);
939
940/*******************************************************************************
941**
942** Function BTA_JvL2capRead
943**
944** Description This function reads data from an L2CAP connection
945** When the operation is complete, tBTA_JV_L2CAP_CBACK is
946** called with BTA_JV_L2CAP_READ_EVT.
947**
948** Returns BTA_JV_SUCCESS, if the request is being processed.
949** BTA_JV_FAILURE, otherwise.
950**
951*******************************************************************************/
952BTA_API extern tBTA_JV_STATUS BTA_JvL2capRead(UINT32 handle, UINT32 req_id,
953 UINT8 *p_data, UINT16 len);
954
955/*******************************************************************************
956**
957** Function BTA_JvL2capReceive
958**
959** Description This function reads data from an L2CAP connection
960** When the operation is complete, tBTA_JV_L2CAP_CBACK is
961** called with BTA_JV_L2CAP_RECEIVE_EVT.
962** If there are more data queued in L2CAP than len, the extra data will be discarded.
963**
964** Returns BTA_JV_SUCCESS, if the request is being processed.
965** BTA_JV_FAILURE, otherwise.
966**
967*******************************************************************************/
968BTA_API extern tBTA_JV_STATUS BTA_JvL2capReceive(UINT32 handle, UINT32 req_id,
969 UINT8 *p_data, UINT16 len);
970
971/*******************************************************************************
972**
973** Function BTA_JvL2capReady
974**
975** Description This function determined if there is data to read from
976** an L2CAP connection
977**
978** Returns BTA_JV_SUCCESS, if data queue size is in *p_data_size.
979** BTA_JV_FAILURE, if error.
980**
981*******************************************************************************/
982BTA_API extern tBTA_JV_STATUS BTA_JvL2capReady(UINT32 handle, UINT32 *p_data_size);
983
984/*******************************************************************************
985**
986** Function BTA_JvL2capWrite
987**
988** Description This function writes data to an L2CAP connection
989** When the operation is complete, tBTA_JV_L2CAP_CBACK is
990** called with BTA_JV_L2CAP_WRITE_EVT.
991**
992** Returns BTA_JV_SUCCESS, if the request is being processed.
993** BTA_JV_FAILURE, otherwise.
994**
995*******************************************************************************/
996BTA_API extern tBTA_JV_STATUS BTA_JvL2capWrite(UINT32 handle, UINT32 req_id,
997 UINT8 *p_data, UINT16 len);
998
999/*******************************************************************************
1000**
1001** Function BTA_JvRfcommConnect
1002**
1003** Description This function makes an RFCOMM conection to a remote BD
1004** Address.
1005** When the connection is initiated or failed to initiate,
1006** tBTA_JV_RFCOMM_CBACK is called with BTA_JV_RFCOMM_CL_INIT_EVT
1007** When the connection is established or failed,
1008** tBTA_JV_RFCOMM_CBACK is called with BTA_JV_RFCOMM_OPEN_EVT
1009**
1010** Returns BTA_JV_SUCCESS, if the request is being processed.
1011** BTA_JV_FAILURE, otherwise.
1012**
1013*******************************************************************************/
1014BTA_API extern tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask,
1015 tBTA_JV_ROLE role, UINT8 remote_scn, BD_ADDR peer_bd_addr,
1016 tBTA_JV_RFCOMM_CBACK *p_cback, void *user_data);
1017
1018/*******************************************************************************
1019**
1020** Function BTA_JvRfcommClose
1021**
1022** Description This function closes an RFCOMM connection
1023**
1024** Returns BTA_JV_SUCCESS, if the request is being processed.
1025** BTA_JV_FAILURE, otherwise.
1026**
1027*******************************************************************************/
1028BTA_API extern tBTA_JV_STATUS BTA_JvRfcommClose(UINT32 handle);
1029
1030/*******************************************************************************
1031**
1032** Function BTA_JvRfcommStartServer
1033**
1034** Description This function starts listening for an RFCOMM connection
1035** request from a remote Bluetooth device. When the server is
1036** started successfully, tBTA_JV_RFCOMM_CBACK is called
1037** with BTA_JV_RFCOMM_START_EVT.
1038** When the connection is established, tBTA_JV_RFCOMM_CBACK
1039** is called with BTA_JV_RFCOMM_OPEN_EVT.
1040**
1041** Returns BTA_JV_SUCCESS, if the request is being processed.
1042** BTA_JV_FAILURE, otherwise.
1043**
1044*******************************************************************************/
1045BTA_API extern tBTA_JV_STATUS BTA_JvRfcommStartServer(tBTA_SEC sec_mask,
1046 tBTA_JV_ROLE role, UINT8 local_scn, UINT8 max_session,
1047 tBTA_JV_RFCOMM_CBACK *p_cback, void *user_data);
1048
1049/*******************************************************************************
1050**
1051** Function BTA_JvRfcommStopServer
1052**
1053** Description This function stops the RFCOMM server. If the server has an
1054** active connection, it would be closed.
1055**
1056** Returns BTA_JV_SUCCESS, if the request is being processed.
1057** BTA_JV_FAILURE, otherwise.
1058**
1059*******************************************************************************/
1060BTA_API extern tBTA_JV_STATUS BTA_JvRfcommStopServer(UINT32 handle);
1061
1062/*******************************************************************************
1063**
1064** Function BTA_JvRfcommRead
1065**
1066** Description This function reads data from an RFCOMM connection
1067** When the operation is complete, tBTA_JV_RFCOMM_CBACK is
1068** called with BTA_JV_RFCOMM_READ_EVT.
1069**
1070** Returns BTA_JV_SUCCESS, if the request is being processed.
1071** BTA_JV_FAILURE, otherwise.
1072**
1073*******************************************************************************/
1074BTA_API extern tBTA_JV_STATUS BTA_JvRfcommRead(UINT32 handle, UINT32 req_id,
1075 UINT8 *p_data, UINT16 len);
1076
1077/*******************************************************************************
1078**
1079** Function BTA_JvRfcommReady
1080**
1081** Description This function determined if there is data to read from
1082** an RFCOMM connection
1083**
1084** Returns BTA_JV_SUCCESS, if data queue size is in *p_data_size.
1085** BTA_JV_FAILURE, if error.
1086**
1087*******************************************************************************/
1088BTA_API extern tBTA_JV_STATUS BTA_JvRfcommReady(UINT32 handle, UINT32 *p_data_size);
1089
1090/*******************************************************************************
1091**
1092** Function BTA_JvRfcommWrite
1093**
1094** Description This function writes data to an RFCOMM connection
1095** When the operation is complete, tBTA_JV_RFCOMM_CBACK is
1096** called with BTA_JV_RFCOMM_WRITE_EVT.
1097**
1098** Returns BTA_JV_SUCCESS, if the request is being processed.
1099** BTA_JV_FAILURE, otherwise.
1100**
1101*******************************************************************************/
1102BTA_API extern tBTA_JV_STATUS BTA_JvRfcommWrite(UINT32 handle, UINT32 req_id);
1103
1104
1105/*******************************************************************************
1106**
1107** Function BTA_JvRfcommGetPortHdl
1108**
1109** Description This function fetches the rfcomm port handle
1110**
1111** Returns BTA_JV_SUCCESS, if the request is being processed.
1112** BTA_JV_FAILURE, otherwise.
1113**
1114*******************************************************************************/
1115UINT16 BTA_JvRfcommGetPortHdl(UINT32 handle);
1116
1117#ifdef __cplusplus
1118}
1119#endif
1120
1121#endif /* BTA_JV_API_H */
1122