12dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/****************************************************************************** 22dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 32dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * Copyright (C) 2014 The Android Open Source Project 42dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * Copyright (C) 2003-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 private interface file for the BTA MCE I/F 232dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta * 242dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta ******************************************************************************/ 252dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#ifndef BTA_MCE_INT_H 262dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define BTA_MCE_INT_H 272dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 282dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#include "bta_sys.h" 292dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#include "bta_api.h" 302dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#include "bta_mce_api.h" 312dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 322dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/***************************************************************************** 332dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta** Constants 342dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta*****************************************************************************/ 352dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 362dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaenum 372dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 382dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta /* these events are handled by the state machine */ 392dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BTA_MCE_API_ENABLE_EVT = BTA_SYS_EVT_START(BTA_ID_MCE), 402dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BTA_MCE_API_GET_REMOTE_MAS_INSTANCES_EVT, 412dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BTA_MCE_MAX_INT_EVT 422dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta}; 432dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 442dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* data type for BTA_MCE_API_ENABLE_EVT */ 452dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef struct 462dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 472dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BT_HDR hdr; 482dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tBTA_MCE_DM_CBACK *p_cback; 492dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} tBTA_MCE_API_ENABLE; 502dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 512dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* data type for BTA_MCE_API_GET_REMOTE_MAS_INSTANCES_EVT */ 522dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef struct 532dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 542dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BT_HDR hdr; 552dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BD_ADDR bd_addr; 562dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} tBTA_MCE_API_GET_REMOTE_MAS_INSTANCES; 572dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 582dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* union of all data types */ 592dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef union 602dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 612dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta /* GKI event buffer header */ 622dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BT_HDR hdr; 632dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tBTA_MCE_API_ENABLE enable; 642dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tBTA_MCE_API_GET_REMOTE_MAS_INSTANCES get_rmt_mas; 652dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} tBTA_MCE_MSG; 662dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 672dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* MCE control block */ 682dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptatypedef struct 692dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 702dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta UINT8 sdp_active; /* see BTA_MCE_SDP_ACT_* */ 712dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BD_ADDR remote_addr; 722dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta tBTA_MCE_DM_CBACK *p_dm_cback; 732dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta} tBTA_MCE_CB; 742dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 752dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaenum 762dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta{ 772dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BTA_MCE_SDP_ACT_NONE = 0, 782dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta BTA_MCE_SDP_ACT_YES /* waiting for SDP result */ 792dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta}; 802dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 812dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* MCE control block */ 822dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#if BTA_DYNAMIC_MEMORY == FALSE 832dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaextern tBTA_MCE_CB bta_mce_cb; 842dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#else 852dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaextern tBTA_MCE_CB *bta_mce_cb_ptr; 862dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#define bta_mce_cb (*bta_mce_cb_ptr) 872dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#endif 882dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 892dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta/* config struct */ 902dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaextern tBTA_MCE_CFG *p_bta_mce_cfg; 912dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 922dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaextern BOOLEAN bta_mce_sm_execute(BT_HDR *p_msg); 932dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 942dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaextern void bta_mce_enable (tBTA_MCE_MSG *p_data); 952dc999935d4c69ae31ea93d9014165965dd373d6Hemant Guptaextern void bta_mce_get_remote_mas_instances (tBTA_MCE_MSG *p_data); 962dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta 972dc999935d4c69ae31ea93d9014165965dd373d6Hemant Gupta#endif /* BTA_MCE_INT_H */ 98