Home | History | Annotate | Download | only in avdt

Lines Matching refs:p_scb

72 UINT32 avdt_scb_gen_ssrc(tAVDT_SCB *p_scb)
75 return ((UINT32)(p_scb->cs.cfg.codec_info[1] | p_scb->cs.cfg.codec_info[2]));
88 void avdt_scb_hdl_abort_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
90 p_scb->role = AVDT_CLOSE_ACP;
91 avdt_scb_event(p_scb, AVDT_SCB_API_ABORT_RSP_EVT, p_data);
104 void avdt_scb_hdl_abort_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
119 void avdt_scb_hdl_close_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
121 p_scb->role = AVDT_CLOSE_ACP;
122 avdt_scb_event(p_scb, AVDT_SCB_API_CLOSE_RSP_EVT, p_data);
135 void avdt_scb_hdl_close_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
137 p_scb->close_code = p_data->msg.hdr.err_code;
151 void avdt_scb_hdl_getconfig_cmd(tAVDT_SCB *p_scb,tAVDT_SCB_EVT *p_data)
153 p_data->msg.svccap.p_cfg = &p_scb->curr_cfg;
155 avdt_scb_event(p_scb, AVDT_SCB_API_GETCONFIG_RSP_EVT, p_data);
168 void avdt_scb_hdl_getconfig_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
183 void avdt_scb_hdl_open_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
185 avdt_scb_event(p_scb, AVDT_SCB_API_OPEN_RSP_EVT, p_data);
200 void avdt_scb_hdl_open_rej(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
203 avdt_scb_hdl_setconfig_rej(p_scb, p_data);
216 void avdt_scb_hdl_open_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
219 p_scb->role = AVDT_OPEN_INT;
220 avdt_ad_open_req(AVDT_CHAN_MEDIA, p_scb->p_ccb, p_scb, AVDT_INT);
223 btu_start_timer(&p_scb->timer_entry, BTU_TTYPE_AVDT_SCB_TC, AVDT_SCB_TC_CONN_TOUT);
235 void avdt_scb_hdl_pkt_no_frag(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
290 if (p_scb->cs.p_data_cback != NULL)
294 (*p_scb->cs.p_data_cback)(avdt_scb_to_hdl(p_scb), p_data->p_pkt,
300 if ((p_scb->cs.p_media_cback != NULL)
301 && (p_scb->p_media_buf != NULL)
302 && (p_scb->media_buf_len > p_data->p_pkt->len))
305 memcpy(p_scb->p_media_buf,(UINT8*)(p_data->p_pkt + 1) + p_data->p_pkt->offset,
307 (*p_scb->cs.p_media_cback)(avdt_scb_to_hdl(p_scb),p_scb->p_media_buf,
308 p_scb->media_buf_len,time_stamp,seq,m_pt,marker);
326 UINT8 * avdt_scb_hdl_report(tAVDT_SCB *p_scb, UINT8 *p, UINT16 len)
337 if(p_scb->cs.p_report_cback)
385 (*p_scb->cs.p_report_cback)(avdt_scb_to_hdl(p_scb), pt, p_rpt);
403 void avdt_scb_hdl_pkt_frag(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
468 if (al_tsid != p_scb->curr_cfg.mux_tsid_media)
471 if((p_scb->curr_cfg.psc_mask & AVDT_PSC_REPORT) &&
472 (al_tsid == p_scb->curr_cfg.mux_tsid_report))
475 p = avdt_scb_hdl_report(p_scb, p, frag_len);
481 p_scb->curr_cfg.mux_tsid_media);
486 else if ((p_scb->p_media_buf == NULL) || (p_scb->cs.p_media_cback == NULL))
497 al_len, p_scb->media_buf_len);
499 p_scb->frag_off = 0;
500 p_scb->frag_org_len = al_len; /* total length of original media packet */
502 if (p_scb->frag_org_len < 12)
508 if (al_len > p_scb->media_buf_len)
510 AVDT_TRACE_WARNING2("bad al_len: %d(>%d)", al_len, p_scb->media_buf_len);
516 AVDT_TRACE_WARNING2("bad al_len: %d(>%d)", al_len, p_scb->media_buf_len);
523 al_len, p_scb->media_buf_len, p_scb->frag_org_len, p_scb->frag_off);
526 if(al_len != p_scb->frag_org_len - p_scb->frag_off)
529 al_len, p_scb->frag_org_len, p_scb->frag_off,
530 (p_scb->frag_org_len- p_scb->frag_off));
535 if (p_scb->frag_off == 0)
542 if((p_scb->frag_org_len <= p_scb->frag_off) || (p_scb->frag_org_len >= p_scb->media_buf_len))
545 p_scb->frag_off, p_scb->frag_org_len, p_scb->media_buf_len);
550 p_scb->frag_org_len, p_scb->frag_off, al_len, frag_len);
553 memcpy(p_scb->p_media_buf + p_scb->frag_off, p, frag_len);
554 p_scb->frag_off += frag_len;
558 if(p_scb->frag_off == p_scb->frag_org_len)
560 p_payload = p_scb->p_media_buf;
575 if(p_scb->p_media_buf + p_scb->frag_off - p_payload < 4)
578 p_scb->frag_off, p_scb->p_media_buf, p_payload);
586 if(p_payload >= p_scb->p_media_buf + p_scb->frag_off)
589 p_scb->frag_off, p_scb->p_media_buf, p_payload);
597 pad_len = *(p_scb->p_media_buf + p_scb->frag_off - 1);
602 payload_len = (UINT32)(p_scb->p_media_buf + p_scb->frag_off - pad_len - p_payload);
605 p_payload - p_scb->p_media_buf,payload_len);
608 if (p_scb->cs.p_media_cback != NULL)
610 (*p_scb->cs.p_media_cback)(avdt_scb_to_hdl(p_scb), p_payload,
633 void avdt_scb_hdl_pkt(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
641 if( 0 != (p_scb->curr_cfg.psc_mask & AVDT_PSC_MUX))
643 avdt_scb_hdl_pkt_frag(p_scb, p_data);
651 avdt_scb_hdl_report(p_scb, p, p_data->p_pkt->len);
656 avdt_scb_hdl_pkt_no_frag(p_scb, p_data);
669 void avdt_scb_drop_pkt(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
685 void avdt_scb_hdl_reconfig_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
688 if (p_scb->cs.nsc_mask & AVDT_NSC_RECONFIG)
693 avdt_scb_event(p_scb, AVDT_SCB_API_RECONFIG_RSP_EVT, p_data);
698 memcpy(&p_scb->req_cfg, p_data->msg.reconfig_cmd.p_cfg, sizeof(tAVDT_CFG));
701 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
718 void avdt_scb_hdl_reconfig_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
723 if (p_scb->req_cfg.num_codec > 0)
725 p_scb->curr_cfg.num_codec = p_scb->req_cfg.num_codec;
726 memcpy(p_scb->curr_cfg.codec_info, p_scb->req_cfg.codec_info, AVDT_CODEC_SIZE);
728 if (p_scb->req_cfg.num_protect > 0)
730 p_scb->curr_cfg.num_protect = p_scb->req_cfg.num_protect;
731 memcpy(p_scb->curr_cfg.protect_info, p_scb->req_cfg.protect_info, AVDT_PROTECT_SIZE);
735 p_data->msg.svccap.p_cfg = &p_scb->curr_cfg;
738 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
754 void avdt_scb_hdl_security_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
757 if (p_scb->cs.nsc_mask & AVDT_NSC_SECURITY)
761 avdt_scb_event(p_scb, AVDT_SCB_API_SECURITY_RSP_EVT, p_data);
766 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
783 void avdt_scb_hdl_security_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
786 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
803 void avdt_scb_hdl_setconfig_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
807 if (!p_scb->in_use)
810 if(p_scb->cs.cfg.codec_info[AVDT_CODEC_TYPE_INDEX] == p_cfg->codec_info[AVDT_CODEC_TYPE_INDEX])
813 p_scb->in_use = TRUE;
816 p_scb->p_ccb = avdt_ccb_by_idx(p_data->msg.config_cmd.hdr.ccb_idx);
817 p_scb->peer_seid = p_data->msg.config_cmd.int_seid;
818 memcpy(&p_scb->req_cfg, p_cfg, sizeof(tAVDT_CFG));
820 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
821 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
835 avdt_scb_rej_in_use(p_scb, p_data);
849 void avdt_scb_hdl_setconfig_rej(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
852 avdt_scb_clr_vars(p_scb, p_data);
858 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
874 void avdt_scb_hdl_setconfig_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
878 if (p_scb->p_ccb != NULL)
881 memcpy(&p_scb->curr_cfg, &p_scb->req_cfg, sizeof(tAVDT_CFG));
884 single.seid = p_scb->peer_seid;
885 avdt_scb_event(p_scb, AVDT_SCB_API_OPEN_REQ_EVT, (tAVDT_SCB_EVT *) &single);
899 void avdt_scb_hdl_start_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
901 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
902 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
917 void avdt_scb_hdl_start_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
919 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
920 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
935 void avdt_scb_hdl_suspend_cmd(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
937 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
938 p_scb->p_ccb ? p_scb
953 void avdt_scb_hdl_suspend_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
955 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
956 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
976 void avdt_scb_hdl_tc_close(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
978 UINT8 hdl = avdt_scb_to_hdl(p_scb);
979 tAVDT_CTRL_CBACK *p_ctrl_cback = p_scb->cs.p_ctrl_cback;
982 tAVDT_CCB *p_ccb = p_scb->p_ccb;
989 avdt_ctrl.hdr.err_code = p_scb->close_code;
992 avdt_scb_clr_vars(p_scb, p_data);
993 p_scb->media_seq = 0;
994 p_scb->cong = FALSE;
997 if (p_scb->p_pkt != NULL)
999 GKI_freebuf(p_scb->p_pkt);
1000 p_scb->p_pkt = NULL;
1004 btu_stop_timer(&p_scb->timer_entry);
1006 if ((p_scb->role == AVDT_CLOSE_INT) || (p_scb->role == AVDT_OPEN_INT))
1011 event = (p_scb->role == AVDT_CLOSE_INT) ? AVDT_CLOSE_CFM_EVT : AVDT_CLOSE_IND_EVT;
1012 p_scb->role = AVDT_CLOSE_ACP;
1014 if (p_scb->remove)
1016 avdt_scb_dealloc(p_scb, NULL);
1033 void avdt_scb_snd_delay_rpt_req (tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1035 avdt_msg_send_cmd(p_scb->p_ccb, p_scb, AVDT_SIG_DELAY_RPT, (tAVDT_MSG *) &p_data->apidelay);
1048 void avdt_scb_hdl_delay_rpt_cmd (tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1050 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
1051 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
1055 if (p_scb->p_ccb)
1056 avdt_msg_send_rsp(p_scb->p_ccb, AVDT_SIG_DELAY_RPT, &p_data->msg);
1058 avdt_scb_rej_not_in_use(p_scb, p_data);
1071 void avdt_scb_hdl_delay_rpt_rsp (tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1073 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
1074 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
1090 void avdt_scb_hdl_tc_close_sto(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1103 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
1104 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
1111 avdt_scb_event(p_scb, AVDT_SCB_MSG_ABORT_RSP_EVT, NULL);
1112 avdt_scb_hdl_tc_close(p_scb, p_data);
1129 void avdt_scb_hdl_tc_open(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1137 btu_stop_timer(&p_scb->timer_entry);
1139 event = (p_scb->role == AVDT_OPEN_INT) ? AVDT_OPEN_CFM_EVT : AVDT_OPEN_IND_EVT;
1143 p_scb->cs.cfg.psc_mask, p_scb->req_cfg.psc_mask, p_scb->curr_cfg.psc_mask);
1145 if(p_scb->curr_cfg.psc_mask & AVDT_PSC_REPORT)
1148 role = (p_scb->role == AVDT_OPEN_INT) ? AVDT_INT : AVDT_ACP;
1149 avdt_ad_open_req(AVDT_CHAN_REPORT, p_scb->p_ccb, p_scb, role);
1154 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
1155 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
1173 void avdt_scb_hdl_tc_open_sto(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1183 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
1184 p_scb->p_ccb ? p_scb->p_ccb->peer_addr : NULL,
1201 void avdt_scb_hdl_write_req_no_frag(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1207 if (p_scb->p_pkt != NULL)
1209 GKI_freebuf(p_scb->p_pkt);
1219 ssrc = avdt_scb_gen_ssrc(p_scb);
1228 UINT16_TO_BE_STREAM(p, p_scb->media_seq);
1233 p_scb->media_seq++;
1236 p_scb->p_pkt = p_data->apiwrite.p_buf;
1250 void avdt_scb_hdl_write_req_frag(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1257 if (!GKI_queue_is_empty(&p_scb->frag_q))
1259 while((p_frag = (BT_HDR*)GKI_dequeue (&p_scb->frag_q)) != NULL)
1267 p_scb->frag_off = p_data->apiwrite.data_len;
1268 p_scb->p_next_frag = p_data->apiwrite.p_data;
1270 ssrc = avdt_scb_gen_ssrc(p_scb);
1281 *p++ = (p_scb->curr_cfg.mux_tsid_media<<3) | AVDT_ALH_LCODE_16BIT;
1288 UINT16_TO_BE_STREAM(p, p_scb->media_seq);
1291 p_scb->media_seq++;
1301 *p++ = (p_scb->curr_cfg.mux_tsid_media<<3) | (AVDT_ALH_FRAG_MASK|AVDT_ALH_LCODE_16BIT);
1308 p_scb->frag_q = p_data->apiwrite.frag_q;
1323 void avdt_scb_hdl_write_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1328 avdt_scb_hdl_write_req_no_frag(p_scb, p_data);
1331 avdt_scb_hdl_write_req_frag(p_scb, p_data);
1344 void avdt_scb_snd_abort_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1348 if (p_scb->p_ccb != NULL)
1350 p_scb->role = AVDT_CLOSE_INT;
1352 hdr.seid = p_scb->peer_seid;
1354 avdt_msg_send_cmd(p_scb->p_ccb, p_scb, AVDT_SIG_ABORT, (tAVDT_MSG *) &hdr);
1367 void avdt_scb_snd_abort_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1382 void avdt_scb_snd_close_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1386 p_scb->role = AVDT_CLOSE_INT;
1388 hdr.seid = p_scb->peer_seid;
1390 avdt_msg_send_cmd(p_scb->p_ccb, p_scb, AVDT_SIG_CLOSE, (tAVDT_MSG *) &hdr);
1402 void avdt_scb_snd_stream_close(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1408 p_scb->frag_q.count, p_scb->frag_off);
1410 while((p_frag = (BT_HDR*)GKI_dequeue (&p_scb->frag_q)) != NULL)
1412 p_scb->frag_off = 0;
1414 if (p_scb->p_pkt)
1416 p_scb->p_pkt);
1417 p_scb->p_pkt = NULL;
1421 if(p_scb->cong)
1422 p_scb->cong = FALSE;
1424 /* p_scb->curr_cfg.mux_tsid_media == 0 */
1426 avdt_scb_snd_close_req(p_scb, p_data);
1438 void avdt_scb_snd_close_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1440 avdt_msg_send_rsp(p_scb->p_ccb, AVDT_SIG_CLOSE, &p_data->msg);
1452 void avdt_scb_snd_getconfig_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1456 hdr.seid = p_scb->peer_seid;
1458 avdt_msg_send_cmd(p_scb->p_ccb, p_scb, AVDT_SIG_GETCONFIG, (tAVDT_MSG *) &hdr);
1470 void avdt_scb_snd_getconfig_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1472 avdt_msg_send_rsp(p_scb->p_ccb, AVDT_SIG_GETCONFIG, &p_data->msg);
1484 void avdt_scb_snd_open_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1488 hdr.seid = p_scb->peer_seid;
1490 avdt_msg_send_cmd(p_scb->p_ccb, p_scb, AVDT_SIG_OPEN, (tAVDT_MSG *) &hdr);
1504 void avdt_scb_snd_open_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1507 p_scb->role = AVDT_OPEN_ACP;
1508 avdt_ad_open_req(AVDT_CHAN_MEDIA, p_scb->p_ccb, p_scb, AVDT_ACP);
1511 avdt_msg_send_rsp(p_scb->p_ccb, AVDT_SIG_OPEN, &p_data->msg);
1514 btu_start_timer(&p_scb->timer_entry, BTU_TTYPE_AVDT_SCB_TC, AVDT_SCB_TC_CONN_TOUT);
1527 void avdt_scb_snd_reconfig_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1529 memcpy(&p_scb->req_cfg, p_data->msg.config_cmd.p_cfg, sizeof(tAVDT_CFG));
1530 p_data->msg.hdr.seid = p_scb->peer_seid;
1531 avdt_msg_send_cmd(p_scb->p_ccb, p_scb, AVDT_SIG_RECONFIG, &p_data->msg);
1544 void avdt_scb_snd_reconfig_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1549 if (p_scb->req_cfg.num_codec > 0)
1551 p_scb->curr_cfg.num_codec = p_scb->req_cfg.num_codec;
1552 memcpy(p_scb->curr_cfg.codec_info, p_scb->req_cfg.codec_info, AVDT_CODEC_SIZE);
1554 if (p_scb->req_cfg.num_protect > 0)
1556 p_scb->curr_cfg.num_protect = p_scb->req_cfg.num_protect;
1557 memcpy(p_scb->curr_cfg.protect_info, p_scb->req_cfg.protect_info, AVDT_PROTECT_SIZE);
1561 avdt_msg_send_rsp(p_scb->p_ccb, AVDT_SIG_RECONFIG, &p_data->msg);
1566 avdt_msg_send_rej(p_scb->p_ccb, AVDT_SIG_RECONFIG, &p_data->msg);
1579 void avdt_scb_snd_security_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1581 p_data->msg.hdr.seid = p_scb->peer_seid;
1582 avdt_msg_send_cmd(p_scb->p_ccb, p_scb, AVDT_SIG_SECURITY, &p_data->msg);
1594 void avdt_scb_snd_security_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1598 avdt_msg_send_rsp(p_scb->p_ccb, AVDT_SIG_SECURITY, &p_data->msg);
1602 avdt_msg_send_rej(p_scb->p_ccb, AVDT_SIG_SECURITY, &p_data->msg);
1616 void avdt_scb_snd_setconfig_rej(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1618 if (p_scb->p_ccb != NULL)
1620 avdt_msg_send_rej(p_scb->p_ccb, AVDT_SIG_SETCONFIG, &p_data->msg);
1623 avdt_scb_clr_vars(p_scb, p_data);
1639 void avdt_scb_snd_setconfig_req(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1644 p_scb->in_use = TRUE;
1645 p_scb->p_ccb = avdt_ccb_by_idx(p_data->msg.config_cmd.hdr.ccb_idx);
1646 p_scb->peer_seid = p_data->msg.config_cmd.hdr.seid;
1648 p_cfg = &p_scb->cs.cfg;
1658 memcpy(&p_scb->req_cfg, p_data->msg.config_cmd.p_cfg, sizeof(tAVDT_CFG));
1660 avdt_msg_send_cmd(p_scb->p_ccb, p_scb, AVDT_SIG_SETCONFIG, &p_data->msg);
1663 avdt_ccb_event(p_scb->p_ccb, AVDT_CCB_UL_OPEN_EVT, NULL);
1677 void avdt_scb_snd_setconfig_rsp(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1679 if (p_scb->p_ccb != NULL)
1681 memcpy(&p_scb->curr_cfg, &p_scb->req_cfg, sizeof(tAVDT_CFG));
1683 avdt_msg_send_rsp(p_scb->p_ccb, AVDT_SIG_SETCONFIG, &p_data->msg);
1697 void avdt_scb_snd_tc_close(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1700 if(p_scb->curr_cfg.psc_mask & AVDT_PSC_REPORT)
1701 avdt_ad_close_req(AVDT_CHAN_REPORT, p_scb->p_ccb, p_scb);
1703 avdt_ad_close_req(AVDT_CHAN_MEDIA, p_scb->p_ccb, p_scb);
1716 void avdt_scb_cb_err(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1725 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb),
1727 avdt_scb_cback_evt[p_scb->curr_evt],
1741 void avdt_scb_cong_state(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1743 p_scb->cong = p_data->llcong;
1756 void avdt_scb_rej_state(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1774 void avdt_scb_rej_in_use(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1792 void avdt_scb_rej_not_in_use(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1809 void avdt_scb_set_remove(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1811 p_scb->remove = TRUE;
1823 void avdt_scb_free_pkt(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1847 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb), NULL, AVDT_WRITE_CFM_EVT,
1860 void avdt_scb_clr_pkt(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1874 if((p_ccb = p_scb->p_ccb) != NULL)
1877 tcid = avdt_ad_type_to_tcid(AVDT_CHAN_MEDIA, p_scb);
1883 if (p_scb->p_pkt != NULL)
1885 GKI_freebuf(p_scb->p_pkt);
1886 p_scb->p_pkt = NULL;
1891 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb), NULL, AVDT_WRITE_CFM_EVT,
1895 else if(!GKI_queue_is_empty (&p_scb->frag_q))
1899 while((p_frag = (BT_HDR*)GKI_dequeue (&p_scb->frag_q)) != NULL)
1902 p_scb->frag_off = 0;
1905 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb), NULL, AVDT_WRITE_CFM_EVT,
1924 void avdt_scb_chk_snd_pkt(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
1936 if (!p_scb->cong)
1938 if (p_scb->p_pkt != NULL)
1940 p_pkt = p_scb->p_pkt;
1941 p_scb->p_pkt = NULL;
1942 avdt_ad_write_req(AVDT_CHAN_MEDIA, p_scb->p_ccb, p_scb, p_pkt);
1944 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb), NULL, AVDT_WRITE_CFM_EVT, &avdt_ctrl);
1951 L2CA_FlushChannel(avdt_cb.ad.rt_tbl[avdt_ccb_to_idx(p_scb->p_ccb)][avdt_ad_type_to_tcid(AVDT_CHAN_MEDIA, p_scb)].lcid),
1954 while((p_pkt = (BT_HDR*)GKI_dequeue (&p_scb->frag_q)) != NULL)
1959 res = avdt_ad_write_req(AVDT_CHAN_MEDIA, p_scb->p_ccb, p_scb, p_pkt);
1962 p_scb->cong = TRUE;
1967 AVDT_TRACE_DEBUG2("res=%d left=%d",res, p_scb->frag_off);
1969 if(p_scb->frag_off)
1971 if(AVDT_AD_SUCCESS == res || GKI_queue_is_empty (&p_scb->frag_q))
1974 avdt_scb_queue_frags(p_scb, &p_scb->p_next_frag, &p_scb->frag_off, &p_scb->frag_q);
1975 if(!GKI_queue_is_empty (&p_scb->frag_q))
1977 data.llcong = p_scb->cong;
1978 avdt_scb_event(p_scb, AVDT_SCB_TC_CONG_EVT, &data);
1984 else if (sent && GKI_queue_is_empty (&p_scb->frag_q))
1986 (*p_scb->cs.p_ctrl_cback)(avdt_scb_to_hdl(p_scb), NULL, AVDT_WRITE_CFM_EVT, &avdt_ctrl);
2004 void avdt_scb_tc_timer(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
2006 btu_start_timer(&p_scb->timer_entry, BTU_TTYPE_AVDT_SCB_TC, AVDT_SCB_TC_DISC_TOUT);
2018 void avdt_scb_clr_vars(tAVDT_SCB *p_scb, tAVDT_SCB_EVT *p_data)
2020 p_scb->in_use = FALSE;
2021 p_scb->p_ccb = NULL;
2022 p_scb->peer_seid = 0;
2036 void avdt_scb_queue_frags(tAVDT_SCB *p_scb, UINT8 **pp_data, UINT32 *p_data_len, BUFFER_Q *pq)
2050 tcid = avdt_ad_type_to_tcid(AVDT_CHAN_MEDIA, p_scb);
2051 lcid = avdt_cb.ad.rt_tbl[avdt_ccb_to_idx(p_scb->p_ccb)][tcid].lcid;
2053 if( p_scb->frag_off != 0)
2077 p_tbl = avdt_ad_tc_tbl_by_type(AVDT_CHAN_MEDIA, p_scb->p_ccb, p_scb);
2116 *p++ = (p_scb->curr_cfg.mux_tsid_media<<3) | (AVDT_ALH_FRAG_MASK|AVDT_ALH_LCODE_16BIT);