Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2014 The Android Open Source Project
      4  *  Copyright (C) 2006-2012 Broadcom Corporation
      5  *
      6  *  Licensed under the Apache License, Version 2.0 (the "License");
      7  *  you may not use this file except in compliance with the License.
      8  *  You may obtain a copy of the License at:
      9  *
     10  *  http://www.apache.org/licenses/LICENSE-2.0
     11  *
     12  *  Unless required by applicable law or agreed to in writing, software
     13  *  distributed under the License is distributed on an "AS IS" BASIS,
     14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     15  *  See the License for the specific language governing permissions and
     16  *  limitations under the License.
     17  *
     18  ******************************************************************************/
     19 
     20 /******************************************************************************
     21  *
     22  *  This is the public interface file the BTA MCE I/F
     23  *
     24  ******************************************************************************/
     25 #ifndef BTA_MCE_API_H
     26 #define BTA_MCE_API_H
     27 
     28 #include "bt_target.h"
     29 #include "bt_types.h"
     30 #include "bta_api.h"
     31 #include "btm_api.h"
     32 
     33 /*****************************************************************************
     34 **  Constants and data types
     35 *****************************************************************************/
     36 /* status values */
     37 #define BTA_MCE_SUCCESS             0            /* Successful operation. */
     38 #define BTA_MCE_FAILURE             1            /* Generic failure. */
     39 #define BTA_MCE_BUSY                2            /* Temporarily can not handle this request. */
     40 
     41 typedef UINT8 tBTA_MCE_STATUS;
     42 
     43 /* MCE I/F callback events */
     44 /* events received by tBTA_MCE_DM_CBACK */
     45 #define BTA_MCE_ENABLE_EVT               0  /* MCE enabled */
     46 #define BTA_MCE_MAS_DISCOVERY_COMP_EVT   1  /* SDP MAS discovery complete */
     47 #define BTA_MCE_MAX_EVT                  2  /* max number of MCE events */
     48 
     49 #define BTA_MCE_MAX_MAS_INSTANCES 12
     50 
     51 typedef UINT16 tBTA_MCE_EVT;
     52 
     53 typedef struct
     54 {
     55     UINT8   scn;
     56     char    *p_srv_name;
     57     UINT16  srv_name_len;
     58     UINT8   instance_id;
     59     UINT8   msg_type;
     60 } tBTA_MCE_MAS_INFO;
     61 
     62 /* data associated with BTA_MCE_MAS_DISCOVERY_COMP_EVT */
     63 typedef struct
     64 {
     65     tBTA_MCE_STATUS    status;
     66     BD_ADDR            remote_addr;
     67     int                num_mas;
     68     tBTA_MCE_MAS_INFO  mas[BTA_MCE_MAX_MAS_INSTANCES];
     69 } tBTA_MCE_MAS_DISCOVERY_COMP;
     70 
     71 /* union of data associated with MCE callback */
     72 typedef union
     73 {
     74     tBTA_MCE_STATUS              status;         /* BTA_MCE_ENABLE_EVT */
     75     tBTA_MCE_MAS_DISCOVERY_COMP  mas_disc_comp;  /* BTA_MCE_MAS_DISCOVERY_COMP_EVT */
     76 } tBTA_MCE;
     77 
     78 /* MCE DM Interface callback */
     79 typedef void (tBTA_MCE_DM_CBACK)(tBTA_MCE_EVT event, tBTA_MCE *p_data, void * user_data);
     80 
     81 /* MCE configuration structure */
     82 typedef struct
     83 {
     84     UINT16  sdp_db_size;            /* The size of p_sdp_db */
     85     tSDP_DISCOVERY_DB   *p_sdp_db;  /* The data buffer to keep SDP database */
     86 } tBTA_MCE_CFG;
     87 
     88 /*****************************************************************************
     89 **  External Function Declarations
     90 *****************************************************************************/
     91 #ifdef __cplusplus
     92 extern "C"
     93 {
     94 #endif
     95 
     96 /*******************************************************************************
     97 **
     98 ** Function         BTA_MceEnable
     99 **
    100 ** Description      Enable the MCE I/F service. When the enable
    101 **                  operation is complete the callback function will be
    102 **                  called with a BTA_MCE_ENABLE_EVT. This function must
    103 **                  be called before other functions in the MCE API are
    104 **                  called.
    105 **
    106 ** Returns          BTA_MCE_SUCCESS if successful.
    107 **                  BTA_MCE_FAIL if internal failure.
    108 **
    109 *******************************************************************************/
    110 extern tBTA_MCE_STATUS BTA_MceEnable(tBTA_MCE_DM_CBACK *p_cback);
    111 
    112 /*******************************************************************************
    113 **
    114 ** Function         BTA_MceGetRemoteMasInstances
    115 **
    116 ** Description      This function performs service discovery for the MAS service
    117 **                  by the given peer device. When the operation is completed
    118 **                  the tBTA_MCE_DM_CBACK callback function will be  called with
    119 **                  a BTA_MCE_MAS_DISCOVERY_COMP_EVT.
    120 **
    121 ** Returns          BTA_MCE_SUCCESS, if the request is being processed.
    122 **                  BTA_MCE_FAILURE, otherwise.
    123 **
    124 *******************************************************************************/
    125 extern tBTA_MCE_STATUS BTA_MceGetRemoteMasInstances(BD_ADDR bd_addr);
    126 
    127 #ifdef __cplusplus
    128 }
    129 #endif
    130 
    131 #endif /* BTA_MCE_API_H */
    132