Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1bac100 authored by Priti Aghera's avatar Priti Aghera Committed by Android Git Automerger
Browse files

am 64f29844: am bac74d76: HDP fix for Single SDP record

* commit '64f29844':
  HDP fix for Single SDP record
parents b2fbcca5 64f29844
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1508,6 +1508,7 @@ void bta_hl_dch_mca_create_ind(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx,
        evt_data.dch_create_ind.local_mdep_id = p_dcb->local_mdep_id;
        evt_data.dch_create_ind.mdl_id = p_dcb->mdl_id;
        evt_data.dch_create_ind.cfg = p_dcb->remote_cfg;
        bdcpy(evt_data.dch_create_ind.bd_addr, p_mcb->bd_addr);
        p_acb->p_cback(BTA_HL_DCH_CREATE_IND_EVT,(tBTA_HL *) &evt_data );
    }
    else
@@ -1783,6 +1784,7 @@ static void bta_hl_sdp_cback(UINT8 sdp_oper, UINT8 app_idx, UINT8 mcl_idx,
                if (bta_hl_fill_sup_feature_list (p_attr, &sup_feature))
                {
                    p_hdp_rec->num_mdeps = (UINT8) sup_feature.num_elems;
                    APPL_TRACE_WARNING1("bta_hl_sdp_cback num_mdeps %d",sup_feature.num_elems);
                    for (i=0; i<sup_feature.num_elems; i++)
                    {
                        p_hdp_rec->mdep_cfg[i].data_type = sup_feature.list_elem[i].data_type;
@@ -2261,6 +2263,7 @@ void bta_hl_cch_sdp_init(UINT8 app_idx, UINT8 mcl_idx, tBTA_HL_DATA *p_data)
#endif
    if ( p_cb->sdp_oper == BTA_HL_SDP_OP_NONE)
    {
        p_cb->app_id = p_data->api_cch_open.app_id;
        p_cb->sdp_oper = BTA_HL_SDP_OP_CCH_INIT;

        if (bta_hl_init_sdp( p_cb->sdp_oper, app_idx, mcl_idx, 0xFF) != BTA_HL_STATUS_OK)
@@ -2383,7 +2386,7 @@ void bta_hl_cch_close_cmpl(UINT8 app_idx, UINT8 mcl_idx, tBTA_HL_DATA *p_data)
    switch (p_mcb->cch_oper)
    {
        case BTA_HL_CCH_OP_LOCAL_OPEN:
            bta_hl_build_cch_open_cfm(&evt_data, p_acb->app_handle,
            bta_hl_build_cch_open_cfm(&evt_data,p_mcb->app_id,p_acb->app_handle,
                                      p_mcb->mcl_handle,
                                      p_mcb->bd_addr,
                                      BTA_HL_STATUS_FAIL);
@@ -2531,7 +2534,7 @@ void bta_hl_cch_mca_connect(UINT8 app_idx, UINT8 mcl_idx, tBTA_HL_DATA *p_data)
    switch (p_mcb->cch_oper)
    {
        case BTA_HL_CCH_OP_LOCAL_OPEN:
            bta_hl_build_cch_open_cfm(&evt_data, p_acb->app_handle,
            bta_hl_build_cch_open_cfm(&evt_data, p_mcb->app_id,p_acb->app_handle,
                                      p_mcb->mcl_handle,
                                      p_mcb->bd_addr,
                                      BTA_HL_STATUS_OK);
+80 −3
Original line number Diff line number Diff line
@@ -96,6 +96,80 @@ void BTA_HlDisable(void)
    }
}

/*******************************************************************************
**
** Function         BTA_HlUpdate
**
** Description      Register an HDP application
**
** Parameters       app_id        - Application ID
**                  p_reg_param   - non-platform related parameters for the
**                                  HDP application
**                  p_cback       - HL event callback fucntion
**
** Returns          void
**
*******************************************************************************/
void BTA_HlUpdate(UINT8  app_id,
                    tBTA_HL_REG_PARAM *p_reg_param, BOOLEAN is_register,
                    tBTA_HL_CBACK *p_cback)
{
    tBTA_HL_API_UPDATE *p_buf;

    APPL_TRACE_DEBUG0("BTA_HlUpdate");
    if (is_register)
    {

        if ((p_buf = (tBTA_HL_API_UPDATE *)GKI_getbuf((UINT16)sizeof(tBTA_HL_API_UPDATE))) != NULL)
        {
            p_buf->hdr.event    = BTA_HL_API_UPDATE_EVT;
            p_buf->app_id       = app_id;
            p_buf->sec_mask     = (p_reg_param->sec_mask | BTA_SEC_AUTHENTICATE | BTA_SEC_ENCRYPT);
            p_buf->p_cback = p_cback;
            p_buf->is_register = is_register;
            if (p_reg_param->p_srv_name)
            {
                BCM_STRNCPY_S(p_buf->srv_name, sizeof(p_buf->srv_name),
                              p_reg_param->p_srv_name, BTA_SERVICE_NAME_LEN);
                p_buf->srv_name[BTA_SERVICE_NAME_LEN] = '\0';
            }
            else
                p_buf->srv_name[0]= '\0';

            if (p_reg_param->p_srv_desp)
            {
                BCM_STRNCPY_S(p_buf->srv_desp, sizeof(p_buf->srv_desp),
                              p_reg_param->p_srv_desp, BTA_SERVICE_DESP_LEN);
                p_buf->srv_desp[BTA_SERVICE_DESP_LEN]= '\0';
            }
            else
                p_buf->srv_desp[0]= '\0';

            if (p_reg_param->p_provider_name)
            {
                BCM_STRNCPY_S(p_buf->provider_name, sizeof(p_buf->provider_name),
                              p_reg_param->p_provider_name, BTA_PROVIDER_NAME_LEN);
                p_buf->provider_name[BTA_PROVIDER_NAME_LEN]= '\0';
            }
            else
                p_buf->provider_name[0]= '\0';

            bta_sys_sendmsg(p_buf);
        }
    }
    else
    {
        if ((p_buf = (tBTA_HL_API_UPDATE *)GKI_getbuf((UINT16)sizeof(tBTA_HL_API_UPDATE))) != NULL)
        {
            p_buf->hdr.event    = BTA_HL_API_UPDATE_EVT;
            p_buf->app_id       = app_id;
            p_buf->is_register = is_register;
            bta_sys_sendmsg(p_buf);
        }

    }
}

/*******************************************************************************
**
** Function         BTA_HlRegister
@@ -164,13 +238,14 @@ void BTA_HlRegister(UINT8 app_id,
** Returns           void
**
*******************************************************************************/
void BTA_HlDeregister(tBTA_HL_APP_HANDLE app_handle)
void BTA_HlDeregister(UINT8 app_id,tBTA_HL_APP_HANDLE app_handle)
{
    tBTA_HL_API_DEREGISTER  *p_buf;

    if ((p_buf = (tBTA_HL_API_DEREGISTER *)GKI_getbuf((UINT16)(sizeof(tBTA_HL_API_DEREGISTER)))) != NULL)
    {
        p_buf->hdr.event   = BTA_HL_API_DEREGISTER_EVT;
        p_buf->app_id      = app_id;
        p_buf->app_handle  = app_handle;
        bta_sys_sendmsg(p_buf);
    }
@@ -191,7 +266,7 @@ void BTA_HlDeregister(tBTA_HL_APP_HANDLE app_handle)
**                  multiple HDP instances. Also, if the control PSM value is zero
**                  then the first HDP instance is used for the control channel setup
*******************************************************************************/
void BTA_HlCchOpen(tBTA_HL_APP_HANDLE app_handle,
void BTA_HlCchOpen(UINT8 app_id, tBTA_HL_APP_HANDLE app_handle,
                   tBTA_HL_CCH_OPEN_PARAM *p_open_param)
{
    tBTA_HL_API_CCH_OPEN *p_buf;
@@ -199,6 +274,7 @@ void BTA_HlCchOpen(tBTA_HL_APP_HANDLE app_handle,
    if ((p_buf = (tBTA_HL_API_CCH_OPEN *)GKI_getbuf((UINT16)(sizeof(tBTA_HL_API_CCH_OPEN)))) != NULL)
    {
        p_buf->hdr.event        = BTA_HL_API_CCH_OPEN_EVT;
        p_buf->app_id           = app_id;
        p_buf->app_handle       = app_handle;
        p_buf->sec_mask = (p_open_param->sec_mask | BTA_SEC_AUTHENTICATE | BTA_SEC_ENCRYPT);
        bdcpy(p_buf->bd_addr, p_open_param->bd_addr);
@@ -434,7 +510,7 @@ void BTA_HlDchEchoTest( tBTA_HL_MCL_HANDLE mcl_handle,
** Returns          void
**
*******************************************************************************/
void BTA_HlSdpQuery(tBTA_HL_APP_HANDLE app_handle,
void BTA_HlSdpQuery(UINT8  app_id,tBTA_HL_APP_HANDLE app_handle,
                    BD_ADDR bd_addr)
{
    tBTA_HL_API_SDP_QUERY *p_buf;
@@ -442,6 +518,7 @@ void BTA_HlSdpQuery(tBTA_HL_APP_HANDLE app_handle,
    if ((p_buf = (tBTA_HL_API_SDP_QUERY *)GKI_getbuf((UINT16)(sizeof(tBTA_HL_API_SDP_QUERY)))) != NULL)
    {
        p_buf->hdr.event        = BTA_HL_API_SDP_QUERY_EVT;
        p_buf->app_id           = app_id;
        p_buf->app_handle       = app_handle;
        bdcpy(p_buf->bd_addr, bd_addr);
        bta_sys_sendmsg(p_buf);
+26 −2
Original line number Diff line number Diff line
@@ -188,6 +188,7 @@ enum
    /* these events are handled outside the state machine */
    BTA_HL_API_ENABLE_EVT,
    BTA_HL_API_DISABLE_EVT,
    BTA_HL_API_UPDATE_EVT,
    BTA_HL_API_REGISTER_EVT,
    BTA_HL_API_DEREGISTER_EVT,
    BTA_HL_API_CCH_OPEN_EVT,
@@ -237,6 +238,20 @@ typedef struct
    tBTA_HL_CTRL_CBACK  *p_cback;        /* pointer to control callback function */
} tBTA_HL_API_ENABLE;

typedef struct
{
    BT_HDR              hdr;
    UINT8               app_id;
    BOOLEAN             is_register;        /* Update HL application due to register or deregister */
    tBTA_HL_CBACK       *p_cback;           /* pointer to application callback function */
    tBTA_HL_DEVICE_TYPE dev_type;           /* sink, source or dual roles */
    tBTA_SEC            sec_mask;           /* security mask for accepting conenction*/
    char                srv_name[BTA_SERVICE_NAME_LEN +1];        /* service name to be used in the SDP; null terminated*/
    char                srv_desp[BTA_SERVICE_DESP_LEN +1];        /* service description to be used in the SDP; null terminated */
    char                provider_name[BTA_PROVIDER_NAME_LEN +1];   /* provide name to be used in the SDP; null terminated */

} tBTA_HL_API_UPDATE;

typedef struct
{
    BT_HDR              hdr;
@@ -252,12 +267,15 @@ typedef struct
typedef struct
{
    BT_HDR                  hdr;
    UINT8                   app_id;
    tBTA_HL_CBACK           *p_cback;        /* pointer to application callback function */
    tBTA_HL_APP_HANDLE      app_handle;
} tBTA_HL_API_DEREGISTER;

typedef struct
{
    BT_HDR                  hdr;
    UINT8                   app_id;
    tBTA_HL_APP_HANDLE      app_handle;
    UINT16                  ctrl_psm;
    BD_ADDR                 bd_addr;        /* Address of peer device */
@@ -372,6 +390,7 @@ typedef struct
{
    BT_HDR                  hdr;
    tBTA_HL_APP_HANDLE      app_handle;
    UINT8                   app_id;
    BD_ADDR                 bd_addr;        /* Address of peer device */
} tBTA_HL_API_SDP_QUERY;

@@ -404,6 +423,7 @@ typedef union
{
    BT_HDR                      hdr;
    tBTA_HL_API_ENABLE          api_enable; /* data for BTA_MSE_API_ENABLE_EVT */
    tBTA_HL_API_UPDATE          api_update;
    tBTA_HL_API_REGISTER        api_reg;
    tBTA_HL_API_DEREGISTER      api_dereg;
    tBTA_HL_API_CCH_OPEN        api_cch_open;
@@ -492,6 +512,7 @@ typedef struct
    BOOLEAN                 echo_test;
    UINT8                   echo_mdl_idx;
    UINT8                   cch_close_dch_oper;
    UINT8                   app_id;
}tBTA_HL_MCL_CB;

typedef struct
@@ -589,7 +610,7 @@ extern "C"
    /* sdp */
    extern BOOLEAN bta_hl_fill_sup_feature_list( const tSDP_DISC_ATTR  *p_attr,
                                                 tBTA_HL_SUP_FEATURE_LIST_ELEM *p_list);

    extern tBTA_HL_STATUS bta_hl_sdp_update (UINT8 app_id);
    extern tBTA_HL_STATUS bta_hl_sdp_register (UINT8 app_idx);
    extern tSDP_DISC_REC *bta_hl_find_sink_or_src_srv_class_in_db (const tSDP_DISCOVERY_DB *p_db,
                                                                   const tSDP_DISC_REC *p_start_rec);
@@ -739,7 +760,7 @@ extern "C"
                                            tBTA_HL_MDL_ID mdl_id, UINT8 *p_mdl_cfg_idx);
    extern BOOLEAN  bta_hl_get_cur_time(UINT8 app_idx, UINT8 *p_cur_time);
    extern void bta_hl_sort_cfg_time_idx(UINT8 app_idx, UINT8 *a, UINT8 n);
    extern void  bta_hl_compact_mdl_cfg_time(UINT8 app_idx);
    extern void  bta_hl_compact_mdl_cfg_time(UINT8 app_idx, UINT8 mdep_id);
    extern BOOLEAN  bta_hl_is_mdl_exsit_in_mcl(UINT8 app_idx, BD_ADDR bd_addr,
                                               tBTA_HL_MDL_ID mdl_id);
    extern BOOLEAN  bta_hl_delete_mdl_cfg(UINT8 app_idx, BD_ADDR bd_addr,
@@ -766,6 +787,7 @@ extern "C"
                                             UINT8 *p_mdl_idx);
    extern BOOLEAN bta_hl_is_a_duplicate_id(UINT8 app_id);
    extern BOOLEAN bta_hl_find_avail_app_idx(UINT8 *p_idx);
    extern tBTA_HL_STATUS bta_hl_app_update(UINT8 app_id, BOOLEAN is_register);
    extern tBTA_HL_STATUS bta_hl_app_registration(UINT8 app_idx);
    extern void bta_hl_discard_data(UINT16 event, tBTA_HL_DATA *p_data);
    extern void bta_hl_save_mdl_cfg(UINT8 app_idx, UINT8 mcl_idx, UINT8 mdl_idx );
@@ -805,6 +827,7 @@ extern "C"
                                           tBTA_HL_MCL_HANDLE mcl_handle,
                                           tBTA_HL_MDL_HANDLE mdl_handle);
    extern void  bta_hl_build_cch_open_cfm(tBTA_HL *p_evt_data,
                                            UINT8 app_id,
                                           tBTA_HL_APP_HANDLE app_handle,
                                           tBTA_HL_MCL_HANDLE mcl_handle,
                                           BD_ADDR bd_addr,
@@ -843,6 +866,7 @@ extern "C"
                                            tBTA_HL_MCL_HANDLE mcl_handle,
                                            tBTA_HL_STATUS status );
    extern void  bta_hl_build_sdp_query_cfm(tBTA_HL *p_evt_data,
                                            UINT8 app_id,
                                            tBTA_HL_APP_HANDLE app_handle,
                                            BD_ADDR bd_addr,
                                            tBTA_HL_SDP *p_sdp,
+109 −3
Original line number Diff line number Diff line
@@ -590,6 +590,85 @@ static void bta_hl_api_disable(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)

}

/*******************************************************************************
**
** Function         bta_hl_api_update
**
** Description      Process the API registration request to register an HDP applciation
**
** Returns          void
**
*******************************************************************************/
static void bta_hl_api_update(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
{
    tBTA_HL         evt_data;
    tBTA_HL_APP_CB  *p_acb = BTA_HL_GET_APP_CB_PTR(0);
    tBTA_HL_STATUS  status = BTA_HL_STATUS_FAIL;


    APPL_TRACE_DEBUG0("bta_hl_api_update");
    if (p_cb->enable)
    {

        status = bta_hl_app_update(p_data->api_update.app_id, p_data->api_update.is_register);
        if (!p_data->api_update.is_register)
        {
            APPL_TRACE_DEBUG0("Deregister");
            memset(&evt_data, 0, sizeof(tBTA_HL));
            evt_data.dereg_cfm.status = status;
            evt_data.dereg_cfm.app_id = p_data->api_update.app_id;
            if (status == BTA_HL_STATUS_OK)
                evt_data.dereg_cfm.app_handle = p_acb->app_handle;
            if (p_acb->p_cback)
            {
                p_acb->p_cback(BTA_HL_DEREGISTER_CFM_EVT, (tBTA_HL *) &evt_data);
            }
            return ;
        }

    }

    if (status != BTA_HL_STATUS_OK)
    {
        if ((status != BTA_HL_STATUS_DUPLICATE_APP_ID) &&
            (status != BTA_HL_STATUS_NO_RESOURCE))
        {
            if (p_acb)
                memset(p_acb, 0, sizeof(tBTA_HL_APP_CB));
        }
    }
#if BTA_HL_DEBUG == TRUE
    if (status != BTA_HL_STATUS_OK)
    {
        APPL_TRACE_DEBUG1("bta_hl_api_register status =%s", bta_hl_status_code(status));
    }
#endif

    memset(&evt_data, 0, sizeof(tBTA_HL));
    evt_data.reg_cfm.status = status;
    evt_data.reg_cfm.app_id = p_data->api_update.app_id;
    if (status == BTA_HL_STATUS_OK)
        evt_data.reg_cfm.app_handle = p_acb->app_handle;
    if (p_data->api_reg.p_cback)
    {
        p_data->api_reg.p_cback(BTA_HL_REGISTER_CFM_EVT, (tBTA_HL *) &evt_data);
    }

    if (status == BTA_HL_STATUS_OK)
    {
        evt_data.sdp_info_ind.app_handle = p_acb->app_handle;
        evt_data.sdp_info_ind.ctrl_psm = p_acb->ctrl_psm;
        evt_data.sdp_info_ind.data_psm = p_acb->data_psm;
        evt_data.sdp_info_ind.data_x_spec = BTA_HL_SDP_IEEE_11073_20601;
        evt_data.sdp_info_ind.mcap_sup_procs = BTA_HL_MCAP_SUP_PROC_MASK ;

        if (p_data->api_reg.p_cback)
        {
            p_data->api_reg.p_cback(BTA_HL_SDP_INFO_IND_EVT, (tBTA_HL *) &evt_data);
        }
    }
}

/*******************************************************************************
**
** Function         bta_hl_api_register
@@ -746,7 +825,24 @@ static void bta_hl_api_cch_open(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
        else
        {
            /* Only one MCL per BD_ADDR */
            status = BTA_HL_STATUS_FAIL;
            status = BTA_HL_STATUS_DUPLICATE_CCH_OPEN;
            APPL_TRACE_DEBUG1("bta_hl_api_cch_open: CCH already open: status =%d",status)
            p_acb = BTA_HL_GET_APP_CB_PTR(app_idx);
            p_mcb = BTA_HL_GET_MCL_CB_PTR(app_idx, mcl_idx);
            if (p_acb->p_cback)
            {
                bta_hl_build_cch_open_cfm(&evt_data, p_data->api_cch_open.app_id,
                                          p_data->api_cch_open.app_handle,
                                          p_mcb->mcl_handle,
                                          p_data->api_cch_open.bd_addr,
                                          status);
                p_acb->p_cback(BTA_HL_CCH_OPEN_CFM_EVT,(tBTA_HL *) &evt_data );
            }
            else
            {
                APPL_TRACE_ERROR0("bta_hl_api_cch_open Null Callback");
            }
            return;
        }
    }
    else
@@ -770,7 +866,8 @@ static void bta_hl_api_cch_open(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
            p_acb = BTA_HL_GET_APP_CB_PTR(app_idx);
            if (p_acb->p_cback)
            {
                bta_hl_build_cch_open_cfm(&evt_data, p_data->api_cch_open.app_handle,
                bta_hl_build_cch_open_cfm(&evt_data, p_data->api_cch_open.app_id,
                                          p_data->api_cch_open.app_handle,
                                          0,
                                          p_data->api_cch_open.bd_addr,
                                          status);
@@ -874,6 +971,7 @@ static void bta_hl_api_dch_open(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
        p_acb = BTA_HL_GET_APP_CB_PTR(app_idx);
        p_mcb = BTA_HL_GET_MCL_CB_PTR(app_idx, mcl_idx);

        APPL_TRACE_DEBUG4("bta_hl_api_dch_open: app_ix=%d, mcl_idx=%d, cch_state=%d, mcl_handle=%d",app_idx,mcl_idx,p_mcb->cch_state,p_data->api_dch_open.mcl_handle);
        if (p_mcb->cch_state == BTA_HL_CCH_OPEN_ST)
        {
            if (bta_hl_find_avail_mdl_idx(app_idx, mcl_idx, &mdl_idx))
@@ -1370,6 +1468,8 @@ static void bta_hl_api_sdp_query(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
                p_mcb = BTA_HL_GET_MCL_CB_PTR(app_idx, mcl_idx);
                p_mcb->in_use = TRUE;
                bdcpy(p_mcb->bd_addr, p_data->api_sdp_query.bd_addr);
                APPL_TRACE_DEBUG3("bta_hl_api_sdp_query p_mcb->app_id %d app_idx %d mcl_idx %d", p_mcb->app_id, app_idx, mcl_idx);
                p_mcb->app_id = p_data->api_sdp_query.app_id;
                p_mcb->sdp_oper  = BTA_HL_SDP_OP_SDP_QUERY_NEW ;
            }
            else
@@ -1380,6 +1480,7 @@ static void bta_hl_api_sdp_query(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
        else
        {
            p_mcb = BTA_HL_GET_MCL_CB_PTR(app_idx, mcl_idx);
            p_mcb->app_id = p_data->api_sdp_query.app_id;
            if (p_mcb->sdp_oper != BTA_HL_SDP_OP_NONE)
            {
                status = BTA_HL_STATUS_SDP_NO_RESOURCE;
@@ -1419,6 +1520,7 @@ static void bta_hl_api_sdp_query(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
            if (p_acb->p_cback)
            {
                bta_hl_build_sdp_query_cfm(&evt_data,
                                           p_data->api_sdp_query.app_id,
                                           p_data->api_sdp_query.app_handle,
                                           p_data->api_sdp_query.bd_addr,
                                           NULL,
@@ -1490,7 +1592,8 @@ static void bta_hl_sdp_query_results(tBTA_HL_CB *p_cb, tBTA_HL_DATA *p_data)
    }
#endif

    bta_hl_build_sdp_query_cfm(&evt_data,p_acb->app_handle,
    APPL_TRACE_DEBUG3("bta_hl_sdp_query_results p_mcb->app_id %d app_idx %d mcl_idx %d", p_mcb->app_id, app_idx, mcl_idx);
    bta_hl_build_sdp_query_cfm(&evt_data,p_mcb->app_id, p_acb->app_handle,
                               p_mcb->bd_addr,p_sdp,status);
    p_acb->p_cback(BTA_HL_SDP_QUERY_CFM_EVT,(tBTA_HL *) &evt_data );

@@ -1861,6 +1964,9 @@ BOOLEAN bta_hl_hdl_event(BT_HDR *p_msg)
        case BTA_HL_API_DISABLE_EVT:
            bta_hl_api_disable(&bta_hl_cb, (tBTA_HL_DATA *) p_msg);
            break;
        case BTA_HL_API_UPDATE_EVT:
            bta_hl_api_update(&bta_hl_cb, (tBTA_HL_DATA *) p_msg);
            break;
        case BTA_HL_API_REGISTER_EVT:
            bta_hl_api_register(&bta_hl_cb, (tBTA_HL_DATA *) p_msg);
            break;
+203 −0

File changed.

Preview size limit exceeded, changes collapsed.

Loading