huangcm
2025-07-01 676035278781360996553c427a12bf358249ebf7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/******************************************************************************
 *
 *  Copyright 2015 The Android Open Source Project
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at:
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 ******************************************************************************/
 
/******************************************************************************
 *
 *  This is the public interface file for the BTA SDP I/F
 *
 ******************************************************************************/
#ifndef BTA_SDP_API_H
#define BTA_SDP_API_H
 
#include <hardware/bt_sdp.h>
 
#include "bt_target.h"
#include "bt_types.h"
#include "bta_api.h"
#include "btm_api.h"
 
using bluetooth::Uuid;
 
/* status values */
#define BTA_SDP_SUCCESS 0 /* Successful operation. */
#define BTA_SDP_FAILURE 1 /* Generic failure. */
#define BTA_SDP_BUSY 2    /* Temporarily can not handle this request. */
 
typedef uint8_t tBTA_SDP_STATUS;
 
/* SDP I/F callback events */
/* events received by tBTA_SDP_DM_CBACK */
#define BTA_SDP_ENABLE_EVT 0             /* SDP service i/f enabled*/
#define BTA_SDP_SEARCH_EVT 1             /* SDP Service started */
#define BTA_SDP_SEARCH_COMP_EVT 2        /* SDP search complete */
#define BTA_SDP_CREATE_RECORD_USER_EVT 3 /* SDP search complete */
#define BTA_SDP_REMOVE_RECORD_USER_EVT 4 /* SDP search complete */
#define BTA_SDP_MAX_EVT 5                /* max number of SDP events */
 
#define BTA_SDP_MAX_RECORDS 15
 
typedef uint16_t tBTA_SDP_EVT;
 
/* data associated with BTA_SDP_DISCOVERY_COMP_EVT */
typedef struct {
  tBTA_SDP_STATUS status;
  RawAddress remote_addr;
  bluetooth::Uuid uuid;
  int record_count;
  bluetooth_sdp_record records[BTA_SDP_MAX_RECORDS];
} tBTA_SDP_SEARCH_COMP;
 
typedef union {
  tBTA_SDP_STATUS status;               /* BTA_SDP_SEARCH_EVT */
  tBTA_SDP_SEARCH_COMP sdp_search_comp; /* BTA_SDP_SEARCH_COMP_EVT */
} tBTA_SDP;
 
/* SDP DM Interface callback */
typedef void(tBTA_SDP_DM_CBACK)(tBTA_SDP_EVT event, tBTA_SDP* p_data,
                                void* user_data);
 
/* MCE configuration structure */
typedef struct {
  uint16_t sdp_db_size;        /* The size of p_sdp_db */
  tSDP_DISCOVERY_DB* p_sdp_db; /* The data buffer to keep SDP database */
} tBTA_SDP_CFG;
 
/*******************************************************************************
 *
 * Function         BTA_SdpEnable
 *
 * Description      Enable the SDP I/F service. When the enable
 *                  operation is complete the callback function will be
 *                  called with a BTA_SDP_ENABLE_EVT. This function must
 *                  be called before other functions in the MCE API are
 *                  called.
 *
 * Returns          BTA_SDP_SUCCESS if successful.
 *                  BTA_SDP_FAIL if internal failure.
 *
 ******************************************************************************/
extern tBTA_SDP_STATUS BTA_SdpEnable(tBTA_SDP_DM_CBACK* p_cback);
 
/*******************************************************************************
 *
 * Function         BTA_SdpSearch
 *
 * Description      Start a search for sdp records for a specific BD_ADDR with a
 *                  specific profile uuid.
 *                  When the search operation is completed, the callback
 *                  function will be called with a BTA_SDP_SEARCH_EVT.
 * Returns          BTA_SDP_SUCCESS if successful.
 *                  BTA_SDP_FAIL if internal failure.
 *
 ******************************************************************************/
extern tBTA_SDP_STATUS BTA_SdpSearch(const RawAddress& bd_addr,
                                     const bluetooth::Uuid& uuid);
 
/*******************************************************************************
 *
 * Function         BTA_SdpCreateRecordByUser
 *
 * Description      This function is used to request a callback to create a SDP
 *                  record. The registered callback will be called with event
 *                  BTA_SDP_CREATE_RECORD_USER_EVT.
 *
 * Returns          BTA_SDP_SUCCESS, if the request is being processed.
 *                  BTA_SDP_FAILURE, otherwise.
 *
 ******************************************************************************/
extern tBTA_SDP_STATUS BTA_SdpCreateRecordByUser(void* user_data);
 
/*******************************************************************************
 *
 * Function         BTA_SdpRemoveRecordByUser
 *
 * Description      This function is used to request a callback to remove a SDP
 *                  record. The registered callback will be called with event
 *                  BTA_SDP_REMOVE_RECORD_USER_EVT.
 *
 * Returns          BTA_SDP_SUCCESS, if the request is being processed.
 *                  BTA_SDP_FAILURE, otherwise.
 *
 ******************************************************************************/
extern tBTA_SDP_STATUS BTA_SdpRemoveRecordByUser(void* user_data);
 
#endif /* BTA_SDP_API_H */