1/****************************************************************************** 2 * 3 * Copyright (C) 2015 The Android Open Source Project 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 for the BTA SDP I/F 22 * 23 ******************************************************************************/ 24#ifndef BTA_SDP_API_H 25#define BTA_SDP_API_H 26 27#include <hardware/bt_sdp.h> 28#include "bt_target.h" 29#include "bt_types.h" 30#include "bta_api.h" 31#include "btm_api.h" 32 33/* status values */ 34#define BTA_SDP_SUCCESS 0 /* Successful operation. */ 35#define BTA_SDP_FAILURE 1 /* Generic failure. */ 36#define BTA_SDP_BUSY 2 /* Temporarily can not handle this request. */ 37 38typedef UINT8 tBTA_SDP_STATUS; 39 40/* SDP I/F callback events */ 41/* events received by tBTA_SDP_DM_CBACK */ 42#define BTA_SDP_ENABLE_EVT 0 /* SDP service i/f enabled*/ 43#define BTA_SDP_SEARCH_EVT 1 /* SDP Service started */ 44#define BTA_SDP_SEARCH_COMP_EVT 2 /* SDP search complete */ 45#define BTA_SDP_CREATE_RECORD_USER_EVT 3 /* SDP search complete */ 46#define BTA_SDP_REMOVE_RECORD_USER_EVT 4 /* SDP search complete */ 47#define BTA_SDP_MAX_EVT 5 /* max number of SDP events */ 48 49#define BTA_SDP_MAX_RECORDS 15 50 51typedef UINT16 tBTA_SDP_EVT; 52 53/* data associated with BTA_SDP_DISCOVERY_COMP_EVT */ 54typedef struct 55{ 56 tBTA_SDP_STATUS status; 57 BD_ADDR remote_addr; 58 tBT_UUID uuid; 59 int record_count; 60 bluetooth_sdp_record records[BTA_SDP_MAX_RECORDS]; 61} tBTA_SDP_SEARCH_COMP; 62 63typedef union 64{ 65 tBTA_SDP_STATUS status; /* BTA_SDP_SEARCH_EVT */ 66 tBTA_SDP_SEARCH_COMP sdp_search_comp; /* BTA_SDP_SEARCH_COMP_EVT */ 67} tBTA_SDP; 68 69/* SDP DM Interface callback */ 70typedef void (tBTA_SDP_DM_CBACK)(tBTA_SDP_EVT event, tBTA_SDP *p_data, void * user_data); 71 72/* MCE configuration structure */ 73typedef struct 74{ 75 UINT16 sdp_db_size; /* The size of p_sdp_db */ 76 tSDP_DISCOVERY_DB *p_sdp_db; /* The data buffer to keep SDP database */ 77} tBTA_SDP_CFG; 78 79#ifdef __cplusplus 80extern "C" 81{ 82#endif 83/******************************************************************************* 84** 85** Function BTA_SdpEnable 86** 87** Description Enable the SDP I/F service. When the enable 88** operation is complete the callback function will be 89** called with a BTA_SDP_ENABLE_EVT. This function must 90** be called before other functions in the MCE API are 91** called. 92** 93** Returns BTA_SDP_SUCCESS if successful. 94** BTA_SDP_FAIL if internal failure. 95** 96*******************************************************************************/ 97extern tBTA_SDP_STATUS BTA_SdpEnable(tBTA_SDP_DM_CBACK *p_cback); 98 99/******************************************************************************* 100** 101** Function BTA_SdpSearch 102** 103** Description Start a search for sdp records for a specific BD_ADDR with a 104** specific profile uuid. 105** When the search operation is completed, the callback function 106** will be called with a BTA_SDP_SEARCH_EVT. 107** Returns BTA_SDP_SUCCESS if successful. 108** BTA_SDP_FAIL if internal failure. 109** 110*******************************************************************************/ 111extern tBTA_SDP_STATUS BTA_SdpSearch(BD_ADDR bd_addr,tSDP_UUID *uuid); 112 113/******************************************************************************* 114** 115** Function BTA_SdpCreateRecordByUser 116** 117** Description This function is used to request a callback to create a SDP 118** record. The registered callback will be called with event 119** BTA_SDP_CREATE_RECORD_USER_EVT. 120** 121** Returns BTA_SDP_SUCCESS, if the request is being processed. 122** BTA_SDP_FAILURE, otherwise. 123** 124*******************************************************************************/ 125extern tBTA_SDP_STATUS BTA_SdpCreateRecordByUser(void* user_data); 126 127/******************************************************************************* 128** 129** Function BTA_SdpRemoveRecordByUser 130** 131** Description This function is used to request a callback to remove a SDP 132** record. The registered callback will be called with event 133** BTA_SDP_REMOVE_RECORD_USER_EVT. 134** 135** Returns BTA_SDP_SUCCESS, if the request is being processed. 136** BTA_SDP_FAILURE, otherwise. 137** 138*******************************************************************************/ 139extern tBTA_SDP_STATUS BTA_SdpRemoveRecordByUser(void* user_data); 140 141#ifdef __cplusplus 142} 143#endif 144 145#endif /* BTA_SDP_API_H */ 146