27#include "data_types.h"
36#define BTA_JV_SUCCESS 0
37#define BTA_JV_FAILURE 1
39#define BTA_JV_NO_DATA 3
41typedef UINT8 tBTA_JV_STATUS;
42#define BTA_JV_INTERNAL_ERR (-1)
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)
50#define BTA_JV_MAX_L2C_CONN GAP_MAX_CONNECTIONS
52#define BTA_JV_MAX_SCN PORT_MAX_RFC_PORTS
53#define BTA_JV_MAX_RFC_CONN MAX_RFC_PORTS
55#ifndef BTA_JV_DEF_RFC_MTU
56#define BTA_JV_DEF_RFC_MTU (3*330)
60#ifndef BTA_JV_MAX_RFC_SR_SESSION
61#define BTA_JV_MAX_RFC_SR_SESSION 3
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
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)
81typedef UINT16 tBTA_JV_DISC;
84#define BTA_JV_SEC_MODE_UNDEFINED BTM_SEC_MODE_UNDEFINED
85#define BTA_JV_SEC_MODE_NONE BTM_SEC_MODE_NONE
86#define BTA_JV_SEC_MODE_SERVICE BTM_SEC_MODE_SERVICE
87#define BTA_JV_SEC_MODE_LINK BTM_SEC_MODE_LINK
88#define BTA_JV_SEC_MODE_SP BTM_SEC_MODE_SP
89#define BTA_JV_SEC_MODE_SP_DEBUG BTM_SEC_MODE_SP_DEBUG
90typedef UINT8 tBTA_JV_SEC_MODE;
92#define BTA_JV_ROLE_SLAVE BTM_ROLE_SLAVE
93#define BTA_JV_ROLE_MASTER BTM_ROLE_MASTER
94typedef UINT32 tBTA_JV_ROLE;
96#define BTA_JV_SERVICE_LMTD_DISCOVER BTM_COD_SERVICE_LMTD_DISCOVER
97#define BTA_JV_SERVICE_POSITIONING BTM_COD_SERVICE_POSITIONING
98#define BTA_JV_SERVICE_NETWORKING BTM_COD_SERVICE_NETWORKING
99#define BTA_JV_SERVICE_RENDERING BTM_COD_SERVICE_RENDERING
100#define BTA_JV_SERVICE_CAPTURING BTM_COD_SERVICE_CAPTURING
101#define BTA_JV_SERVICE_OBJ_TRANSFER BTM_COD_SERVICE_OBJ_TRANSFER
102#define BTA_JV_SERVICE_AUDIO BTM_COD_SERVICE_AUDIO
103#define BTA_JV_SERVICE_TELEPHONY BTM_COD_SERVICE_TELEPHONY
104#define BTA_JV_SERVICE_INFORMATION BTM_COD_SERVICE_INFORMATION
110#define BTA_JV_ENABLE_EVT 0
111#define BTA_JV_SET_DISCOVER_EVT 1
112#define BTA_JV_LOCAL_ADDR_EVT 2
113#define BTA_JV_LOCAL_NAME_EVT 3
114#define BTA_JV_REMOTE_NAME_EVT 4
115#define BTA_JV_SET_ENCRYPTION_EVT 5
116#define BTA_JV_GET_SCN_EVT 6
117#define BTA_JV_GET_PSM_EVT 7
118#define BTA_JV_DISCOVERY_COMP_EVT 8
119#define BTA_JV_SERVICES_LEN_EVT 9
120#define BTA_JV_SERVICE_SEL_EVT 10
121#define BTA_JV_CREATE_RECORD_EVT 11
122#define BTA_JV_UPDATE_RECORD_EVT 12
123#define BTA_JV_ADD_ATTR_EVT 13
124#define BTA_JV_DELETE_ATTR_EVT 14
125#define BTA_JV_CANCEL_DISCVRY_EVT 15
128#define BTA_JV_L2CAP_OPEN_EVT 16
129#define BTA_JV_L2CAP_CLOSE_EVT 17
130#define BTA_JV_L2CAP_START_EVT 18
131#define BTA_JV_L2CAP_CL_INIT_EVT 19
132#define BTA_JV_L2CAP_DATA_IND_EVT 20
133#define BTA_JV_L2CAP_CONG_EVT 21
134#define BTA_JV_L2CAP_READ_EVT 22
135#define BTA_JV_L2CAP_RECEIVE_EVT 23
136#define BTA_JV_L2CAP_WRITE_EVT 24
139#define BTA_JV_RFCOMM_OPEN_EVT 25
140#define BTA_JV_RFCOMM_CLOSE_EVT 26
141#define BTA_JV_RFCOMM_START_EVT 27
142#define BTA_JV_RFCOMM_CL_INIT_EVT 28
143#define BTA_JV_RFCOMM_DATA_IND_EVT 29
144#define BTA_JV_RFCOMM_CONG_EVT 30
145#define BTA_JV_RFCOMM_READ_EVT 31
146#define BTA_JV_RFCOMM_WRITE_EVT 32
147#define BTA_JV_RFCOMM_SRV_OPEN_EVT 33
148#define BTA_JV_MAX_EVT 34
150typedef UINT16 tBTA_JV_EVT;
155 tBTA_JV_STATUS status;
156 tBTA_JV_DISC disc_mode;
162 tBTA_JV_STATUS status;
169 tBTA_JV_STATUS status;
178 UINT16 *p_services_len;
192 tBTA_JV_STATUS status;
198 tBTA_JV_STATUS status;
205 tBTA_JV_STATUS status;
212 tBTA_JV_STATUS status;
219 tBTA_JV_STATUS status;
228 tBTA_JV_STATUS status;
236 tBTA_JV_STATUS status;
244 tBTA_JV_STATUS status;
252 tBTA_JV_STATUS status;
260 tBTA_JV_STATUS status;
271 tBTA_JV_STATUS status;
282 tBTA_JV_STATUS status;
292 tBTA_JV_STATUS status;
299 tBTA_JV_STATUS status;
301 UINT32 new_listen_handle;
309 tBTA_JV_STATUS status;
318 tBTA_JV_STATUS status;
327 tBTA_JV_STATUS status;
341 tBTA_JV_STATUS status;
349 tBTA_JV_STATUS status;
360 tBTA_JV_STATUS status;
371 tBTA_JV_STATUS status;
406typedef void (tBTA_JV_DM_CBACK)(tBTA_JV_EVT event,
tBTA_JV *p_data,
void * user_data);
409typedef void* (tBTA_JV_RFCOMM_CBACK)(tBTA_JV_EVT event,
tBTA_JV *p_data,
void *user_data);
412typedef void (tBTA_JV_L2CAP_CBACK)(tBTA_JV_EVT event,
tBTA_JV *p_data);
419 UINT8 *p_sdp_raw_data;
445BTA_API
extern tBTA_JV_STATUS BTA_JvEnable(tBTA_JV_DM_CBACK *p_cback);
456BTA_API
extern void BTA_JvDisable(
void);
467BTA_API
extern BOOLEAN BTA_JvIsEnable(
void);
484BTA_API
extern tBTA_JV_STATUS BTA_JvSetDiscoverability(tBTA_JV_DISC disc_mode);
496BTA_API
extern tBTA_JV_DISC BTA_JvGetDiscoverability(
void);
510BTA_API
extern tBTA_JV_STATUS BTA_JvGetLocalDeviceAddr(
void);
524BTA_API
extern tBTA_JV_STATUS BTA_JvGetLocalDeviceName(
void);
538BTA_API
extern tBTA_JV_STATUS BTA_JvGetRemoteDeviceName(BD_ADDR bd_addr);
552BTA_API
extern INT32 BTA_JvGetPreknownDevice(UINT8 * p_bd_addr, UINT32 index);
565BTA_API
extern UINT8 * BTA_JvGetDeviceClass(
void);
577BTA_API
extern tBTA_JV_STATUS BTA_JvSetServiceClass(UINT32 service);
592BTA_API
extern tBTA_JV_STATUS BTA_JvSetEncryption(BD_ADDR bd_addr);
604BTA_API
extern BOOLEAN BTA_JvIsAuthenticated(BD_ADDR bd_addr);
617BTA_API
extern BOOLEAN BTA_JvIsTrusted(BD_ADDR bd_addr);
629BTA_API
extern BOOLEAN BTA_JvIsAuthorized(BD_ADDR bd_addr);
641BTA_API
extern BOOLEAN BTA_JvIsEncrypted(BD_ADDR bd_addr);
653BTA_API
extern tBTA_JV_SEC_MODE BTA_JvGetSecurityMode(
void);
673BTA_API
extern tBTA_JV_STATUS BTA_JvGetSCN(
void);
686BTA_API
extern tBTA_JV_STATUS BTA_JvFreeSCN(UINT8 scn);
700BTA_API
extern UINT16 BTA_JvGetPSM(
void);
715BTA_API
extern tBTA_JV_STATUS BTA_JvStartDiscovery(BD_ADDR bd_addr, UINT16 num_uuid,
716 tSDP_UUID *p_uuid_list,
void* user_data);
731BTA_API
extern tBTA_JV_STATUS BTA_JvCancelDiscovery(
void * user_data);
747BTA_API
extern tBTA_JV_STATUS BTA_JvGetServicesLength(BOOLEAN inc_hdr, UINT16 *p_services_len);
763BTA_API
extern INT32 BTA_JvGetServicesResult(BOOLEAN inc_hdr, UINT8 **TLVs);
779BTA_API
extern tBTA_JV_STATUS BTA_JvServiceSelect(UINT16 uuid);
793BTA_API
extern INT32 BTA_JvServiceResult(UINT8 *TLV);
806BTA_API
extern tBTA_JV_STATUS BTA_JvCreateRecordByUser(
void* user_data);
820BTA_API
extern tBTA_JV_STATUS BTA_JvUpdateRecord(UINT32 handle, UINT16 *p_ids,
821 UINT8 **p_values, INT32 *p_value_sizes, INT32 array_len);
835BTA_API
extern tBTA_JV_STATUS BTA_JvAddAttribute(UINT32 handle, UINT16 attr_id,
836 UINT8 *p_value, INT32 value_size);
850BTA_API
extern tBTA_JV_STATUS BTA_JvDeleteAttribute(UINT32 handle, UINT16 attr_id);
862BTA_API
extern tBTA_JV_STATUS BTA_JvDeleteRecord(UINT32 handle);
876BTA_API
extern INT32 BTA_JvReadRecord(UINT32 handle, UINT8 *p_data, INT32 *p_data_len);
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);
907BTA_API
extern tBTA_JV_STATUS BTA_JvL2capClose(UINT32 handle);
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);
938BTA_API
extern tBTA_JV_STATUS BTA_JvL2capStopServer(UINT16 local_psm);
952BTA_API
extern tBTA_JV_STATUS BTA_JvL2capRead(UINT32 handle, UINT32 req_id,
953 UINT8 *p_data, UINT16 len);
968BTA_API
extern tBTA_JV_STATUS BTA_JvL2capReceive(UINT32 handle, UINT32 req_id,
969 UINT8 *p_data, UINT16 len);
982BTA_API
extern tBTA_JV_STATUS BTA_JvL2capReady(UINT32 handle, UINT32 *p_data_size);
996BTA_API
extern tBTA_JV_STATUS BTA_JvL2capWrite(UINT32 handle, UINT32 req_id,
997 UINT8 *p_data, UINT16 len);
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);
1028BTA_API
extern tBTA_JV_STATUS BTA_JvRfcommClose(UINT32 handle);
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);
1060BTA_API
extern tBTA_JV_STATUS BTA_JvRfcommStopServer(UINT32 handle);
1074BTA_API
extern tBTA_JV_STATUS BTA_JvRfcommRead(UINT32 handle, UINT32 req_id,
1075 UINT8 *p_data, UINT16 len);
1088BTA_API
extern tBTA_JV_STATUS BTA_JvRfcommReady(UINT32 handle, UINT32 *p_data_size);
1102BTA_API
extern tBTA_JV_STATUS BTA_JvRfcommWrite(UINT32 handle, UINT32 req_id);
1115UINT16 BTA_JvRfcommGetPortHdl(UINT32 handle);