29#define SDP_SUCCESS 0x0000
30#define SDP_INVALID_VERSION 0x0001
31#define SDP_INVALID_SERV_REC_HDL 0x0002
32#define SDP_INVALID_REQ_SYNTAX 0x0003
33#define SDP_INVALID_PDU_SIZE 0x0004
34#define SDP_INVALID_CONT_STATE 0x0005
35#define SDP_NO_RESOURCES 0x0006
36#define SDP_DI_REG_FAILED 0x0007
37#define SDP_DI_DISC_FAILED 0x0008
38#define SDP_NO_DI_RECORD_FOUND 0x0009
39#define SDP_ERR_ATTR_NOT_PRESENT 0x000A
40#define SDP_ILLEGAL_PARAMETER 0x000B
42#define SDP_NO_RECS_MATCH 0xFFF0
43#define SDP_CONN_FAILED 0xFFF1
44#define SDP_CFG_FAILED 0xFFF2
45#define SDP_GENERIC_ERROR 0xFFF3
46#define SDP_DB_FULL 0xFFF4
47#define SDP_INVALID_PDU 0xFFF5
48#define SDP_SECURITY_ERR 0xFFF6
49#define SDP_CONN_REJECTED 0xFFF7
50#define SDP_CANCEL 0xFFF8
53#define SDP_EVT_OPEN 0x00F0
54#define SDP_EVT_DATA_IND 0x00F1
55#define SDP_EVT_CLOSE 0x00F2
61#define tSDP_UUID tBT_UUID
64#define SDP_DISC_ATTR_LEN_MASK 0x0FFF
65#define SDP_DISC_ATTR_TYPE(len_type) (len_type >> 12)
66#define SDP_DISC_ATTR_LEN(len_type) (len_type & SDP_DISC_ATTR_LEN_MASK)
69#define SDP_MAX_LIST_ELEMS 3
77typedef void (tSDP_DISC_CMPL_CB) (UINT16 result);
78typedef void (tSDP_DISC_CMPL_CB2) (UINT16 result,
void* user_data);
99typedef void (tSDP_DISC_RES_CB) (UINT16 event,
tSDP_DATA *p_data);
119 UINT16 attr_len_type;
125 tSDP_DISC_ATTR *p_first_attr;
128 BD_ADDR remote_bd_addr;
135 tSDP_DISC_REC *p_first_rec;
136 UINT16 num_uuid_filters;
137 tSDP_UUID uuid_filters[SDP_MAX_UUID_FILTERS];
138 UINT16 num_attr_filters;
139 UINT16 attr_filters[SDP_MAX_ATTR_FILTERS];
141#if (SDP_RAW_DATA_INCLUDED == TRUE)
151 UINT16 protocol_uuid;
153 UINT16 params[SDP_MAX_PROTOCOL_PARAMS];
168 UINT16 vendor_id_source;
171 BOOLEAN primary_record;
172 char client_executable_url[SDP_MAX_ATTR_LEN];
173 char service_description[SDP_MAX_ATTR_LEN];
174 char documentation_url[SDP_MAX_ATTR_LEN];
206 tSDP_UUID *p_uuid_list,
208 UINT16 *p_attr_list);
230SDP_API
extern BOOLEAN SDP_ServiceSearchRequest (UINT8 *p_bd_addr,
232 tSDP_DISC_CMPL_CB *p_cb);
248SDP_API
extern BOOLEAN SDP_ServiceSearchAttributeRequest (UINT8 *p_bd_addr,
250 tSDP_DISC_CMPL_CB *p_cb);
266SDP_API
extern BOOLEAN SDP_ServiceSearchAttributeRequest2 (UINT8 *p_bd_addr,
268 tSDP_DISC_CMPL_CB2 *p_cb,
void * user_data);
286 tSDP_DISC_REC *p_start_rec);
299SDP_API
extern tSDP_DISC_ATTR *SDP_FindAttributeInRec (tSDP_DISC_REC *p_rec,
317 tSDP_DISC_REC *p_start_rec);
338 tSDP_DISC_REC *p_start_rec);
353SDP_API
extern BOOLEAN SDP_FindServiceUUIDInRec_128bit(tSDP_DISC_REC *p_rec,
tBT_UUID * p_uuid);
368 tSDP_DISC_REC *p_start_rec);
381SDP_API
extern BOOLEAN SDP_FindProtocolListElemInRec (tSDP_DISC_REC *p_rec,
397SDP_API
extern BOOLEAN SDP_FindAddProtoListsElemInRec (tSDP_DISC_REC *p_rec,
416SDP_API
extern BOOLEAN SDP_FindProfileVersionInRec (tSDP_DISC_REC *p_rec,
435SDP_API
extern UINT32 SDP_CreateRecord (
void);
451SDP_API
extern BOOLEAN SDP_DeleteRecord (UINT32 handle);
467SDP_API
extern INT32 SDP_ReadRecord(UINT32 handle, UINT8 *p_data, INT32 *p_data_len);
483SDP_API
extern BOOLEAN SDP_AddAttribute (UINT32 handle, UINT16 attr_id,
484 UINT8 attr_type, UINT32 attr_len,
502SDP_API
extern BOOLEAN SDP_AddSequence (UINT32 handle, UINT16 attr_id,
503 UINT16 num_elem, UINT8 type[],
504 UINT8 len[], UINT8 *p_val[]);
519SDP_API
extern BOOLEAN SDP_AddUuidSequence (UINT32 handle, UINT16 attr_id,
520 UINT16 num_uuids, UINT16 *p_uuids);
535SDP_API
extern BOOLEAN SDP_AddProtocolList (UINT32 handle, UINT16 num_elem,
551SDP_API
extern BOOLEAN SDP_AddAdditionProtoLists (UINT32 handle, UINT16 num_elem,
567SDP_API
extern BOOLEAN SDP_AddProfileDescriptorList (UINT32 handle,
584SDP_API
extern BOOLEAN SDP_AddLanguageBaseAttrIDList (UINT32 handle,
585 UINT16 lang, UINT16 char_enc,
601SDP_API
extern BOOLEAN SDP_AddServiceClassIdList (UINT32 handle,
603 UINT16 *p_service_uuids);
616SDP_API
extern BOOLEAN SDP_DeleteAttribute (UINT32 handle, UINT16 attr_id);
630SDP_API
extern UINT16 SDP_SetLocalDiRecord (tSDP_DI_RECORD *device_info,
645SDP_API
extern UINT16 SDP_GetLocalDiRecord(tSDP_DI_GET_RECORD *p_device_info,
657SDP_API
extern UINT16 SDP_DiDiscover (BD_ADDR remote_device,
659 tSDP_DISC_CMPL_CB *p_cb);
684SDP_API
extern UINT16 SDP_GetDiRecord (UINT8 getRecordIndex,
685 tSDP_DI_GET_RECORD *device_info,
699SDP_API
extern UINT8 SDP_SetTraceLevel (UINT8 new_level);
711SDP_API UINT32 SDP_ConnOpen (UINT8 *p_bd_addr, tSDP_DISC_RES_CB *p_rcb,
712 tSDP_DISC_CMPL_CB *p_cb);
723SDP_API BOOLEAN SDP_WriteData (UINT32 handle,
BT_HDR *p_msg);
736SDP_API BOOLEAN SDP_ConnClose (UINT32 handle);
750SDP_API BOOLEAN SDP_FindServiceUUIDInRec(tSDP_DISC_REC *p_rec,
tBT_UUID *p_uuid);