Ejemplo n.º 1
0
/*******************************************************************************
**
** Function         avdt_ccb_ll_closed
**
** Description      Clear commands from and deallocate CCB.
**
**
** Returns          void.
**
*******************************************************************************/
void avdt_ccb_ll_closed(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
{
    tAVDT_CTRL_CBACK    *p_cback;
    BD_ADDR             bd_addr;
    tAVDT_CTRL          avdt_ctrl;
    UNUSED(p_data);

    /* clear any pending commands */
    avdt_ccb_clear_cmds(p_ccb, NULL);

    /* save callback pointer, bd addr */
    p_cback = p_ccb->p_conn_cback;
    if (!p_cback)
        p_cback = avdt_cb.p_conn_cback;
    memcpy(bd_addr, p_ccb->peer_addr, BD_ADDR_LEN);

    /* dealloc ccb */
    avdt_ccb_dealloc(p_ccb, NULL);

    /* call callback */
    if (p_cback)
    {
        avdt_ctrl.hdr.err_code = 0;
        (*p_cback)(0, bd_addr, AVDT_DISCONNECT_IND_EVT, &avdt_ctrl);
    }
}
Ejemplo n.º 2
0
/*******************************************************************************
**
** Function         avdt_ccb_do_disconn
**
** Description      Do action associated with AVDT_DisconnectReq().
**
**
** Returns          void.
**
*******************************************************************************/
void avdt_ccb_do_disconn(tAVDT_CCB *p_ccb, tAVDT_CCB_EVT *p_data)
{
    /* clear any pending commands */
    avdt_ccb_clear_cmds(p_ccb, NULL);

    /* close channel */
    avdt_ccb_chan_close(p_ccb, NULL);
}