Home | History | Annotate | Download | only in av

Lines Matching full:p_cb

154 static void bta_av_close_all_rc(tBTA_AV_CB* p_cb) {
158 if ((p_cb->disabling == true) || (bta_av_cb.rcb[i].shdl != 0))
304 uint8_t bta_av_rc_create(tBTA_AV_CB* p_cb, uint8_t role, uint8_t shdl,
309 tBTA_AV_SCB* p_scb = p_cb->p_scb[shdl - 1];
331 ccb.control = p_cb->features & (BTA_AV_FEAT_RCTG | BTA_AV_FEAT_RCCT |
338 p_rcb = &p_cb->rcb[i];
351 p_cb->rc_acp_handle = p_rcb->handle;
352 p_cb->rc_acp_idx = (i + 1);
353 APPL_TRACE_DEBUG("rc_acp_handle:%d idx:%d", p_cb->rc_acp_handle,
354 p_cb->rc_acp_idx);
439 tBTA_AV_CB* p_cb = &bta_av_cb;
446 if ((mask & p_cb->conn_lcb) && p_cb->lcb[xx].addr == addr) {
447 p_lcb = &p_cb->lcb[xx];
449 p_cb->conn_lcb &= ~mask; /* clear the connect mask */
450 APPL_TRACE_DEBUG("conn_lcb: 0x%x", p_cb->conn_lcb);
467 void bta_av_rc_opened(tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
479 p_scb = p_cb->p_scb[i];
494 if (p_cb->rcb[i].handle == BTA_AV_RC_HANDLE_NONE) {
500 p_cb->features, p_cb->rcb[i].peer_features);
507 if (p_cb->rcb[i].lidx == (BTA_AV_NUM_LINKS + 1) && shdl != 0) {
512 p_rcb->shdl = p_cb->rcb[i].shdl;
514 p_rcb->lidx = p_cb->rcb[i].lidx;
515 p_cb->rcb[i].lidx = tmp;
516 p_cb->rc_acp_handle = p_rcb->handle;
517 p_cb->rc_acp_idx = (p_rcb - p_cb->rcb) + 1;
519 p_cb->rc_acp_handle, p_cb->rc_acp_idx);
523 p_cb->rcb[i].shdl = shdl;
526 p_cb->rcb[i].lidx, p_cb->lcb[BTA_AV_NUM_LINKS].lidx);
527 p_cb->rcb[i].status |= BTA_AV_RC_CONN_MASK;
529 if (!shdl && 0 == p_cb->lcb[BTA_AV_NUM_LINKS].lidx) {
532 p_lcb = &p_cb->lcb[BTA_AV_NUM_LINKS];
536 p_cb->rcb[i].lidx = p_lcb->lidx;
538 APPL_TRACE_ERROR("rcb[%d].lidx=%d, lcb.conn_msk=x%x", i, p_cb->rcb[i].lidx,
544 rc_open.peer_features = p_cb->rcb[i].peer_features;
547 p_cb->features, rc_open.peer_features);
551 if (p_cb->features & BTA_AV_FEAT_RCCT)
553 if (p_cb->features & BTA_AV_FEAT_RCTG)
560 (*p_cb->p_cback)(BTA_AV_RC_OPEN_EVT, &bta_av_data);
566 if ((p_cb->features & BTA_AV_FEAT_BROWSE) &&
568 ((p_cb->rcb[i].status & BTA_AV_RC_ROLE_MASK) == BTA_AV_RC_ROLE_INT)) {
583 void bta_av_rc_remote_cmd(tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
585 if (p_cb->features & BTA_AV_FEAT_RCCT) {
587 p_rcb = &p_cb->rcb[p_data->hdr.layer_specific];
605 void bta_av_rc_vendor_cmd(tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
607 if ((p_cb->features & (BTA_AV_FEAT_RCCT | BTA_AV_FEAT_VENDOR)) ==
610 p_rcb = &p_cb->rcb[p_data->hdr.layer_specific];
626 void bta_av_rc_vendor_rsp(tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
628 if ((p_cb->features & (BTA_AV_FEAT_RCTG | BTA_AV_FEAT_VENDOR)) ==
631 p_rcb = &p_cb->rcb[p_data->hdr.layer_specific];
647 void bta_av_rc_meta_rsp(tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
651 if ((p_cb->features & BTA_AV_FEAT_METADATA) &&
653 if ((p_data->api_meta_rsp.is_rsp && (p_cb->features & BTA_AV_FEAT_RCTG)) ||
654 (!p_data->api_meta_rsp.is_rsp && (p_cb->features & BTA_AV_FEAT_RCCT))) {
655 p_rcb = &p_cb->rcb[p_data->hdr.layer_specific];
676 void bta_av_rc_free_rsp(UNUSED_ATTR tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
689 void bta_av_rc_free_browse_msg(UNUSED_ATTR tBTA_AV_CB* p_cb,
831 void bta_av_rc_msg(tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
865 if (p_cb->features & BTA_AV_FEAT_METADATA)
936 if ((p_cb->features & BTA_AV_FEAT_VENDOR) &&
939 if ((p_cb->features & BTA_AV_FEAT_METADATA) &&
949 else if ((p_cb->features & BTA_AV_FEAT_VENDOR) &&
952 if ((p_cb->features & BTA_AV_FEAT_METADATA) &&
962 else if (!(p_cb->features & BTA_AV_FEAT_VENDOR) &&
999 (*p_cb->p_cback)(evt, &av);
1001 bta_av_rc_free_browse_msg(p_cb, p_data);
1014 void bta_av_rc_close(tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
1020 p_rcb = &p_cb->rcb[handle];
1049 void bta_av_rc_browse_close(tBTA_AV_CB* p_cb, tBTA_AV_DATA* p_data) {
1145 tBTA_AV_CB* p_cb = &bta_av_cb;
1160 p_scb = p_cb->p_scb[index];
1182 old_msk = p_cb->conn_audio;
1183 p_cb->conn_audio |= mask;
1185 old_msk = p_cb->conn_video;
1186 p_cb->conn_video |= mask;
1194 APPL_TRACE_DEBUG("rc_acp_handle:%d rc_acp_idx:%d", p_cb->rc_acp_handle,
1195 p_cb->rc_acp_idx);
1197 if (p_lcb && p_cb->rc_acp_handle != BTA_AV_RC_HANDLE_NONE &&
1198 p_cb->rc_acp_idx) {
1199 p_lcb_rc = &p_cb->lcb[BTA_AV_NUM_LINKS];
1214 p_scb->rc_handle = p_cb->rc_acp_handle;
1215 p_rcb = &p_cb->rcb[p_cb->rc_acp_idx - 1];
1223 p_cb->rc_acp_handle = p_rcb2->handle;
1224 p_cb->rc_acp_idx = (p_rcb2 - p_cb->rcb) + 1;
1226 p_cb->rc_acp_handle, p_cb->rc_acp_idx);
1229 p_rcb2->lidx, p_cb->lcb[p_rcb2->lidx - 1].lidx);
1233 p_rcb->lidx, p_cb->lcb[p_rcb->lidx - 1].lidx);
1238 if ((p_cb->conn_audio & mask) && bta_av_cb.audio_open_cnt) {
1244 p_cb->conn_audio &= ~mask;
1245 p_cb->conn_video &= ~mask;
1257 if (p_cb->features & BTA_AV_FEAT_RCCT) */
1279 if (p_cb->conn_audio == 0 && p_cb->conn_video == 0) {
1282 bta_av_close_all_rc(p_cb);
1294 p_cb->conn_audio, p_cb->conn_video, p_data->conn_chg.is_up, conn_msk,
1295 chk_restore, p_cb->audio_open_cnt);
1298 if (p_cb->audio_open_cnt == 1) {
1305 if (p_cb->audio_open_cnt) {
1333 void bta_av_disable(tBTA_AV_CB* p_cb, UNUSED_ATTR tBTA_AV_DATA* p_data) {
1337 p_cb->disabling = true;
1339 bta_av_close_all_rc(p_cb);
1341 osi_free_and_reset((void**)&p_cb->p_disc_db);
1346 if (p_cb->p_scb[xx] != NULL) {
1352 alarm_free(p_cb->link_signalling_timer);
1353 p_cb->link_signalling_timer = NULL;
1354 alarm_free(p_cb->accept_signalling_timer);
1355 p_cb->accept_signalling_timer = NULL;
1383 tBTA_AV_CB* p_cb = &bta_av_cb;
1395 APPL_TRACE_DEBUG("conn_lcb: 0x%x", p_cb->conn_lcb);
1397 if ((!(mask & p_cb->conn_lcb)) && (p_cb->p_scb[xx] != NULL)) {
1398 p_lcb = &p_cb->lcb[xx];
1403 if (p_cb->features & BTA_AV_FEAT_RCTG) {
1404 bta_av_rc_create(p_cb, AVCT_ACP, 0, p_lcb->lidx);
1407 p_cb->conn_lcb |= mask; /* mark it as used */
1412 p_cb->p_scb[xx]->peer_addr = p_data->str_msg.bd_addr;
1413 p_cb->p_scb[xx]->use_rc =
1415 bta_av_ssm_execute(p_cb->p_scb[xx], BTA_AV_ACP_CONNECT_EVT, p_data);
1427 bta_sys_conn_open(BTA_ID_AV, p_cb->p_scb[xx]->app_id,
1428 p_cb->p_scb[xx]->peer_addr);
1431 p_cb->p_scb[xx]->coll_mask = BTA_AV_COLL_INC_TMR;
1432 alarm_set_on_mloop(p_cb->accept_signalling_timer,
1466 if (p_cb->p_scb[xx] &&
1467 p_cb->p_scb[xx]->peer_addr == p_data->str_msg.bd_addr) {
1469 bta_sys_conn_close(BTA_ID_AV, p_cb->p_scb[xx]->app_id,
1470 p_cb->p_scb[xx]->peer_addr);
1474 p_cb->p_scb[xx] &&
1475 p_cb->p_scb[xx]->peer_addr == p_data->str_msg.bd_addr) {
1478 p_cb->p_scb[xx]->peer_addr.ToString().c_str());
1479 bta_av_ssm_execute(p_cb->p_scb[xx], BTA_AV_AVDT_DISCONNECT_EVT, NULL);
1484 APPL_TRACE_DEBUG("%s: sig_chg conn_lcb: 0x%x", __func__, p_cb->conn_lcb);
1500 tBTA_AV_CB* p_cb = &bta_av_cb;
1508 if (mask & p_cb->conn_lcb) {
1510 p_lcb = &p_cb->lcb[xx];
1512 bta_sys_start_timer(p_cb->link_signalling_timer,
1519 (*p_cb->p_cback)(BTA_AV_PENDING_EVT, &bta_av_data);
1537 tBTA_AV_CB* p_cb = &bta_av_cb;
1540 p_scb = p_cb->p_scb[inx];
1555 alarm_set_on_mloop(p_cb->accept_signalling_timer,
1594 tBTA_AV_CB* p_cb = &bta_av_cb;
1604 p_rec = SDP_FindServiceInDb(p_cb->p_disc_db, service_uuid, p_rec);
1612 if (SDP_FindServiceInDb(p_cb->p_disc_db, UUID_SERVCLASS_AV_REMOTE_CONTROL,
1616 if (SDP_FindServiceInDb(p_cb->p_disc_db,
1660 tBTA_AV_CB* p_cb = &bta_av_cb;
1666 SDP_FindServiceInDb(p_cb->p_disc_db, service_uuid, NULL);
1673 if (SDP_FindServiceInDb(p_cb->p_disc_db, UUID_SERVCLASS_AV_REMOTE_CONTROL,
1677 if (SDP_FindServiceInDb(p_cb->p_disc_db,
1717 p_rec = SDP_FindServiceInDb(p_cb->p_disc_db, service_uuid, p_rec);
1734 tBTA_AV_CB* p_cb = &bta_av_cb;
1740 APPL_TRACE_DEBUG("%s bta_av_rc_disc_done disc:x%x", __func__, p_cb->disc);
1741 if (!p_cb->disc) {
1745 if ((p_cb->disc & BTA_AV_CHNL_MSK) == BTA_AV_CHNL_MSK) {
1747 rc_handle = p_cb->disc & (~BTA_AV_CHNL_MSK);
1750 if (((p_cb->disc & BTA_AV_HNDL_MSK) - 1) < BTA_AV_NUM_STRS) {
1751 p_scb = p_cb->p_scb[(p_cb->disc & BTA_AV_HNDL_MSK) - 1];
1756 p_cb->disc = 0;
1763 if (p_cb->sdp_a2dp_snk_handle) {
1774 if (p_cb->sdp_a2dp_handle) {
1778 if ((p_cb->features & BTA_AV_FEAT_ADV_CTRL) &&
1789 p_rec = SDP_FindServiceInDb(p_cb->p_disc_db,
1805 p_cb->disc = 0;
1806 osi_free_and_reset((void**)&p_cb->p_disc_db);
1809 p_cb->features);
1815 if ((((p_cb->features & BTA_AV_FEAT_RCCT) &&
1817 ((p_cb->features & BTA_AV_FEAT_RCTG) &&
1821 rc_handle = bta_av_rc_create(p_cb, AVCT_INT,
1823 p_cb->rcb[rc_handle].peer_features = peer_features;
1836 (*p_cb->p_cback)(BTA_AV_RC_OPEN_EVT, &bta_av_data);
1841 p_cb->rcb[rc_handle].peer_features = peer_features;
1850 rc_feat.peer_addr = p_cb->lcb[p_cb->rcb[rc_handle].lidx].addr;
1856 (*p_cb->p_cback)(BTA_AV_RC_FEAT_EVT, &bta_av_data);
1870 tBTA_AV_CB* p_cb = &bta_av_cb;
1883 p_rcb = &p_cb->rcb[i];
1904 p_lcb = &p_cb->lcb[BTA_AV_NUM_LINKS];
1934 bta_av_sm_execute(p_cb, BTA_AV_AVRC_NONE_EVT, NULL);
1943 (*p_cb->p_cback)(BTA_AV_RC_CLOSE_EVT, &bta_av_data);
1956 tBTA_AV_CB* p_cb = &bta_av_cb;
1969 (*p_cb->p_cback)(BTA_AV_RC_BROWSE_OPEN_EVT, &bta_av_data);
1982 tBTA_AV_CB* p_cb = &bta_av_cb;
1994 (*p_cb->p_cback)(BTA_AV_RC_BROWSE_CLOSE_EVT, &bta_av_data);
2007 tBTA_AV_CB* p_cb = &bta_av_cb;
2023 if (p_cb->rcb[rc_handle].lidx) {
2024 p_addr = &p_cb->lcb[p_cb->rcb[rc_handle].lidx - 1].addr;
2028 p_scb = p_cb->p_scb[hdi];
2038 if (p_cb->p_disc_db == NULL)
2039 p_cb->p_disc_db = (tSDP_DISCOVERY_DB*)osi_malloc(BTA_AV_DISC_BUF_SIZE);
2044 db_params.p_db = p_cb->p_disc_db;
2050 p_cb->disc = disc;
2051 APPL_TRACE_DEBUG("disc %d", p_cb->disc);
2066 tBTA_AV_CB* p_cb = &bta_av_cb;
2079 p_cb->reg_audio &= ~mask;
2080 if ((p_cb->conn_audio & mask) && bta_av_cb.audio_open_cnt) {
2084 p_cb->conn_audio &= ~mask;
2096 if (!p_cb->reg_audio) {
2100 if (p_cb->sdp_a2dp_handle) {
2101 bta_av_del_sdp_rec(&p_cb->sdp_a2dp_handle);
2102 p_cb->sdp_a2dp_handle = 0;
2107 if (p_cb->sdp_a2dp_snk_handle) {
2108 bta_av_del_sdp_rec(&p_cb->sdp_a2dp_snk_handle);
2109 p_cb->sdp_a2dp_snk_handle = 0;
2115 p_cb->reg_video &= ~mask;
2117 p_cb->conn_video &= ~mask;
2119 bta_av_del_sdp_rec(&p_cb->sdp_vdp_handle);
2125 osi_free_and_reset((void**)&p_cb->p_scb[p_scb->hdi]);
2128 APPL_TRACE_DEBUG("audio 0x%x, video: 0x%x, disable:%d", p_cb->reg_audio,
2129 p_cb->reg_video, p_cb->disabling);
2131 if ((p_cb->reg_audio + p_cb->reg_video) == 0) {
2141 if (p_cb->disabling) {
2142 p_cb->disabling = false;