12dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/****************************************************************************** 22dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 32dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * Copyright (C) 2014 The Android Open Source Project 42dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * Copyright (C) 2006-2012 Broadcom Corporation 52dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 62dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * Licensed under the Apache License, Version 2.0 (the "License"); 72dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * you may not use this file except in compliance with the License. 82dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * You may obtain a copy of the License at: 92dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 102dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * http://www.apache.org/licenses/LICENSE-2.0 112dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 122dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * Unless required by applicable law or agreed to in writing, software 132dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * distributed under the License is distributed on an "AS IS" BASIS, 142dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 152dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * See the License for the specific language governing permissions and 162dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * limitations under the License. 172dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 182dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta ******************************************************************************/ 192dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 202dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/****************************************************************************** 212dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 222dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * This is the public interface file the BTA MCE I/F 232dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 242dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta ******************************************************************************/ 252dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#ifndef BTA_MCE_API_H 262dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_API_H 272dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 282dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#include "data_types.h" 292dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#include "bt_target.h" 302dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#include "bt_types.h" 312dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#include "bta_api.h" 322dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#include "btm_api.h" 332dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 342dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/***************************************************************************** 352dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** Constants and data types 362dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta*****************************************************************************/ 372dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* status values */ 382dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_SUCCESS 0 /* Successful operation. */ 392dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_FAILURE 1 /* Generic failure. */ 402dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_BUSY 2 /* Temporarily can not handle this request. */ 412dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 422dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef UINT8 tBTA_MCE_STATUS; 432dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 442dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* MCE I/F callback events */ 452dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* events received by tBTA_MCE_DM_CBACK */ 462dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_ENABLE_EVT 0 /* MCE enabled */ 472dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_MAS_DISCOVERY_COMP_EVT 1 /* SDP MAS discovery complete */ 482dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_MAX_EVT 2 /* max number of MCE events */ 492dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 502dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_MAX_MAS_INSTANCES 12 512dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 522dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef UINT16 tBTA_MCE_EVT; 532dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 542dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef struct 552dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 562dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta UINT8 scn; 572dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta char *p_srv_name; 582dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta UINT16 srv_name_len; 592dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta UINT8 instance_id; 602dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta UINT8 msg_type; 612dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} tBTA_MCE_MAS_INFO; 622dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 632dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* data associated with BTA_MCE_MAS_DISCOVERY_COMP_EVT */ 642dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef struct 652dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 662dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tBTA_MCE_STATUS status; 672dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BD_ADDR remote_addr; 682dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta int num_mas; 692dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tBTA_MCE_MAS_INFO mas[BTA_MCE_MAX_MAS_INSTANCES]; 702dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} tBTA_MCE_MAS_DISCOVERY_COMP; 712dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 722dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* union of data associated with MCE callback */ 732dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef union 742dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 752dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tBTA_MCE_STATUS status; /* BTA_MCE_ENABLE_EVT */ 762dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tBTA_MCE_MAS_DISCOVERY_COMP mas_disc_comp; /* BTA_MCE_MAS_DISCOVERY_COMP_EVT */ 772dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} tBTA_MCE; 782dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 792dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* MCE DM Interface callback */ 802dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef void (tBTA_MCE_DM_CBACK)(tBTA_MCE_EVT event, tBTA_MCE *p_data, void * user_data); 812dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 822dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* MCE configuration structure */ 832dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef struct 842dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 852dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta UINT16 sdp_db_size; /* The size of p_sdp_db */ 862dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tSDP_DISCOVERY_DB *p_sdp_db; /* The data buffer to keep SDP database */ 872dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} tBTA_MCE_CFG; 882dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 892dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/***************************************************************************** 902dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** External Function Declarations 912dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta*****************************************************************************/ 922dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#ifdef __cplusplus 932dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaextern "C" 942dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 952dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#endif 962dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 972dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/******************************************************************************* 982dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** 992dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** Function BTA_MceEnable 1002dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** 1012dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** Description Enable the MCE I/F service. When the enable 1022dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** operation is complete the callback function will be 1032dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** called with a BTA_MCE_ENABLE_EVT. This function must 1042dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** be called before other functions in the MCE API are 1052dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** called. 1062dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** 1072dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** Returns BTA_MCE_SUCCESS if successful. 1082dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** BTA_MCE_FAIL if internal failure. 1092dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** 1102dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta*******************************************************************************/ 1112dc999935d4c69ae31ea93d9014165965dd373d6Hemant GuptaBTA_API extern tBTA_MCE_STATUS BTA_MceEnable(tBTA_MCE_DM_CBACK *p_cback); 1122dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 1132dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/******************************************************************************* 1142dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** 1152dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** Function BTA_MceGetRemoteMasInstances 1162dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** 1172dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** Description This function performs service discovery for the MAS service 1182dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** by the given peer device. When the operation is completed 1192dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** the tBTA_MCE_DM_CBACK callback function will be called with 1202dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** a BTA_MCE_MAS_DISCOVERY_COMP_EVT. 1212dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** 1222dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** Returns BTA_MCE_SUCCESS, if the request is being processed. 1232dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** BTA_MCE_FAILURE, otherwise. 1242dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** 1252dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta*******************************************************************************/ 1262dc999935d4c69ae31ea93d9014165965dd373d6Hemant GuptaBTA_API extern tBTA_MCE_STATUS BTA_MceGetRemoteMasInstances(BD_ADDR bd_addr); 1272dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 1282dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#ifdef __cplusplus 1292dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} 1302dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#endif 1312dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 1322dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#endif /* BTA_MCE_API_H */ 133