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