/****************************************************************************** * * Copyright (C) 2014 The Android Open Source Project * Copyright (C) 2003-2012 Broadcom Corporation * * 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 private interface file for the BTA MCE I/F * ******************************************************************************/ #ifndef BTA_MCE_INT_H #define BTA_MCE_INT_H #include "bta_sys.h" #include "bta_api.h" #include "bta_mce_api.h" /***************************************************************************** ** Constants *****************************************************************************/ enum { /* these events are handled by the state machine */ BTA_MCE_API_ENABLE_EVT = BTA_SYS_EVT_START(BTA_ID_MCE), BTA_MCE_API_GET_REMOTE_MAS_INSTANCES_EVT, BTA_MCE_MAX_INT_EVT }; /* data type for BTA_MCE_API_ENABLE_EVT */ typedef struct { BT_HDR hdr; tBTA_MCE_DM_CBACK *p_cback; } tBTA_MCE_API_ENABLE; /* data type for BTA_MCE_API_GET_REMOTE_MAS_INSTANCES_EVT */ typedef struct { BT_HDR hdr; BD_ADDR bd_addr; } tBTA_MCE_API_GET_REMOTE_MAS_INSTANCES; /* union of all data types */ typedef union { /* GKI event buffer header */ BT_HDR hdr; tBTA_MCE_API_ENABLE enable; tBTA_MCE_API_GET_REMOTE_MAS_INSTANCES get_rmt_mas; } tBTA_MCE_MSG; /* MCE control block */ typedef struct { UINT8 sdp_active; /* see BTA_MCE_SDP_ACT_* */ BD_ADDR remote_addr; tBTA_MCE_DM_CBACK *p_dm_cback; } tBTA_MCE_CB; enum { BTA_MCE_SDP_ACT_NONE = 0, BTA_MCE_SDP_ACT_YES /* waiting for SDP result */ }; /* MCE control block */ #if BTA_DYNAMIC_MEMORY == FALSE extern tBTA_MCE_CB bta_mce_cb; #else extern tBTA_MCE_CB *bta_mce_cb_ptr; #define bta_mce_cb (*bta_mce_cb_ptr) #endif /* config struct */ extern tBTA_MCE_CFG *p_bta_mce_cfg; extern BOOLEAN bta_mce_sm_execute(BT_HDR *p_msg); extern void bta_mce_enable (tBTA_MCE_MSG *p_data); extern void bta_mce_get_remote_mas_instances (tBTA_MCE_MSG *p_data); #endif /* BTA_MCE_INT_H */