Loading system/bta/av/bta_av_aact.cc +7 −4 Original line number Diff line number Diff line Loading @@ -858,6 +858,8 @@ void bta_av_cleanup(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { p_scb->num_disc_snks = 0; p_scb->coll_mask = 0; alarm_cancel(p_scb->avrc_ct_timer); alarm_cancel(p_scb->link_signalling_timer); alarm_cancel(p_scb->accept_signalling_timer); /* TODO(eisenbach): RE-IMPLEMENT USING VSC OR HAL EXTENSION vendor_get_interface()->send_command( Loading Loading @@ -933,7 +935,7 @@ void bta_av_config_ind(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { /* Clear collision mask */ p_scb->coll_mask = 0; alarm_cancel(bta_av_cb.accept_signalling_timer); alarm_cancel(p_scb->accept_signalling_timer); /* if no codec parameters in configuration, fail */ if ((p_evt_cfg->num_codec == 0) || Loading Loading @@ -999,7 +1001,8 @@ void bta_av_disconnect_req(tBTA_AV_SCB* p_scb, APPL_TRACE_API("%s: conn_lcb: 0x%x peer_addr: %s", __func__, bta_av_cb.conn_lcb, p_scb->PeerAddress().ToString().c_str()); alarm_cancel(bta_av_cb.link_signalling_timer); alarm_cancel(p_scb->link_signalling_timer); alarm_cancel(p_scb->accept_signalling_timer); alarm_cancel(p_scb->avrc_ct_timer); // conn_lcb is the index bitmask of all used LCBs, and since LCB and SCB use Loading Loading @@ -1089,7 +1092,7 @@ void bta_av_setconfig_rsp(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { AVDT_ConfigRsp(p_scb->avdt_handle, p_scb->avdt_label, p_data->ci_setconfig.err_code, p_data->ci_setconfig.category); alarm_cancel(bta_av_cb.link_signalling_timer); alarm_cancel(p_scb->link_signalling_timer); if (p_data->ci_setconfig.err_code == AVDT_SUCCESS) { p_scb->wait = BTA_AV_WAIT_ACP_CAPS_ON; Loading Loading @@ -1314,7 +1317,7 @@ void bta_av_do_close(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { if (p_scb->co_started) { bta_av_str_stopped(p_scb, NULL); } alarm_cancel(bta_av_cb.link_signalling_timer); alarm_cancel(p_scb->link_signalling_timer); /* close stream */ p_scb->started = false; Loading system/bta/av/bta_av_act.cc +29 −12 Original line number Diff line number Diff line Loading @@ -1305,6 +1305,12 @@ void bta_av_disable(tBTA_AV_CB* p_cb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * expect BTA_AV_DEREG_COMP_EVT when deregister is complete */ for (xx = 0; xx < BTA_AV_NUM_STRS; xx++) { if (p_cb->p_scb[xx] != NULL) { // Free signalling timers alarm_free(p_cb->p_scb[xx]->link_signalling_timer); p_cb->p_scb[xx]->link_signalling_timer = NULL; alarm_free(p_cb->p_scb[xx]->accept_signalling_timer); p_cb->p_scb[xx]->accept_signalling_timer = NULL; hdr.layer_specific = xx + 1; bta_av_api_deregister((tBTA_AV_DATA*)&hdr); disabling_in_progress = true; Loading @@ -1315,10 +1321,6 @@ void bta_av_disable(tBTA_AV_CB* p_cb, UNUSED_ATTR tBTA_AV_DATA* p_data) { // no needed to setup this disabling flag. p_cb->disabling = disabling_in_progress; alarm_free(p_cb->link_signalling_timer); p_cb->link_signalling_timer = NULL; alarm_free(p_cb->accept_signalling_timer); p_cb->accept_signalling_timer = NULL; } /******************************************************************************* Loading @@ -1331,8 +1333,10 @@ void bta_av_disable(tBTA_AV_CB* p_cb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_api_disconnect(tBTA_AV_DATA* p_data) { AVDT_DisconnectReq(p_data->api_discnt.bd_addr, bta_av_conn_cback); alarm_cancel(bta_av_cb.link_signalling_timer); tBTA_AV_SCB* p_scb = bta_av_hndl_to_scb(p_data->api_discnt.hdr.layer_specific); AVDT_DisconnectReq(p_scb->PeerAddress(), bta_av_conn_cback); alarm_cancel(p_scb->link_signalling_timer); } /** Loading Loading @@ -1450,21 +1454,30 @@ void bta_av_sig_chg(tBTA_AV_DATA* p_data) { * The following function shall send the event and start the * recurring timer */ bta_av_signalling_timer(NULL); if (!p_scb->link_signalling_timer) { p_scb->link_signalling_timer = alarm_new("link_signalling_timer"); } BT_HDR hdr; hdr.layer_specific = p_scb->hndl; bta_av_signalling_timer((tBTA_AV_DATA*)&hdr); APPL_TRACE_DEBUG("%s: Re-start timer for AVDTP service", __func__); bta_sys_conn_open(BTA_ID_AV, p_scb->app_id, p_scb->PeerAddress()); /* Possible collision : need to avoid outgoing processing while the * timer is running */ p_scb->coll_mask = BTA_AV_COLL_INC_TMR; if (!p_scb->accept_signalling_timer) { p_scb->accept_signalling_timer = alarm_new("accept_signalling_timer"); } alarm_set_on_mloop( p_cb->accept_signalling_timer, BTA_AV_ACCEPT_SIGNALLING_TIMEOUT_MS, p_scb->accept_signalling_timer, BTA_AV_ACCEPT_SIGNALLING_TIMEOUT_MS, bta_av_accept_signalling_timer_cback, UINT_TO_PTR(xx)); } } } else if (event == BTA_AR_AVDT_CONN_EVT) { alarm_cancel(bta_av_cb.link_signalling_timer); uint8_t scb_index = p_data->str_msg.scb_index; alarm_cancel(p_cb->p_scb[scb_index]->link_signalling_timer); } else { /* disconnected. */ Loading Loading @@ -1511,6 +1524,9 @@ void bta_av_sig_chg(tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_signalling_timer(UNUSED_ATTR tBTA_AV_DATA* p_data) { tBTA_AV_HNDL hndl = p_data->hdr.layer_specific; tBTA_AV_SCB* p_scb = bta_av_hndl_to_scb(hndl); tBTA_AV_CB* p_cb = &bta_av_cb; int xx; uint8_t mask; Loading @@ -1527,9 +1543,10 @@ void bta_av_signalling_timer(UNUSED_ATTR tBTA_AV_DATA* p_data) { if (mask & p_cb->conn_lcb) { /* this entry is used. check if it is connected */ if (!p_lcb->conn_msk) { bta_sys_start_timer(p_cb->link_signalling_timer, APPL_TRACE_DEBUG("%s hndl 0x%x", __func__, p_scb->hndl); bta_sys_start_timer(p_scb->link_signalling_timer, BTA_AV_SIGNALLING_TIMEOUT_MS, BTA_AV_SIGNALLING_TIMER_EVT, 0); BTA_AV_SIGNALLING_TIMER_EVT, hndl); tBTA_AV_PEND pend; pend.bd_addr = p_lcb->addr; tBTA_AV bta_av_data; Loading Loading @@ -1574,7 +1591,7 @@ static void bta_av_accept_signalling_timer_cback(void* data) { /* We are still doing SDP. Run the timer again. */ p_scb->coll_mask |= BTA_AV_COLL_INC_TMR; alarm_set_on_mloop(p_cb->accept_signalling_timer, alarm_set_on_mloop(p_scb->accept_signalling_timer, BTA_AV_ACCEPT_SIGNALLING_TIMEOUT_MS, bta_av_accept_signalling_timer_cback, UINT_TO_PTR(inx)); Loading system/bta/av/bta_av_api.cc +3 −3 Original line number Diff line number Diff line Loading @@ -193,14 +193,14 @@ void BTA_AvClose(tBTA_AV_HNDL handle) { * Returns void * ******************************************************************************/ void BTA_AvDisconnect(const RawAddress& bd_addr) { LOG_INFO("%s: peer %s", __func__, bd_addr.ToString().c_str()); void BTA_AvDisconnect(tBTA_AV_HNDL handle) { LOG_INFO("%s: bta_handle=0x%x", __func__, handle); tBTA_AV_API_DISCNT* p_buf = (tBTA_AV_API_DISCNT*)osi_malloc(sizeof(tBTA_AV_API_DISCNT)); p_buf->hdr.event = BTA_AV_API_DISCONNECT_EVT; p_buf->bd_addr = bd_addr; p_buf->hdr.layer_specific = handle; bta_sys_sendmsg(p_buf); } Loading system/bta/av/bta_av_int.h +3 −4 Original line number Diff line number Diff line Loading @@ -273,7 +273,6 @@ typedef struct { /* data type for BTA_AV_API_DISCONNECT_EVT */ typedef struct { BT_HDR_RIGID hdr; RawAddress bd_addr; } tBTA_AV_API_DISCNT; /* data type for BTA_AV_API_PROTECT_REQ_EVT */ Loading Loading @@ -492,6 +491,9 @@ struct tBTA_AV_SCB final { tAVDT_SEP_INFO sep_info[BTA_AV_NUM_SEPS]; /* stream discovery results */ AvdtpSepConfig cfg; /* local SEP configuration */ alarm_t* avrc_ct_timer; /* delay timer for AVRC CT */ alarm_t* link_signalling_timer; alarm_t* accept_signalling_timer; /* timer to monitor signalling when accepting */ uint16_t l2c_cid; /* L2CAP channel ID */ uint16_t stream_mtu; /* MTU of stream */ uint8_t media_type; /* Media type: AVDT_MEDIA_TYPE_* */ Loading Loading @@ -617,9 +619,6 @@ typedef struct { tBTA_AV_CBACK* p_cback; /* application callback function */ tBTA_AV_RCB rcb[BTA_AV_NUM_RCB]; /* RCB control block */ tBTA_AV_LCB lcb[BTA_AV_NUM_LINKS + 1]; /* link control block */ alarm_t* link_signalling_timer; alarm_t* accept_signalling_timer; /* timer to monitor signalling when accepting */ uint32_t sdp_a2dp_handle; /* SDP record handle for audio src */ uint32_t sdp_a2dp_snk_handle; /* SDP record handle for audio snk */ tBTA_AV_FEAT features; /* features mask */ Loading system/bta/av/bta_av_main.cc +7 −16 Original line number Diff line number Diff line Loading @@ -160,14 +160,6 @@ static void bta_av_api_enable(tBTA_AV_DATA* p_data) { bta_av_cb.rc_acp_handle = BTA_AV_RC_HANDLE_NONE; /* * TODO: The "disable" event handling is missing - there we need * to alarm_free() the alarms below. */ bta_av_cb.link_signalling_timer = alarm_new("bta_av.link_signalling_timer"); bta_av_cb.accept_signalling_timer = alarm_new("bta_av.accept_signalling_timer"); /* store parameters */ bta_av_cb.p_cback = p_data->api_enable.p_cback; bta_av_cb.features = p_data->api_enable.features; Loading Loading @@ -1402,14 +1394,6 @@ void bta_debug_av_dump(int fd) { dprintf(fd, "\nBTA AV State:\n"); dprintf(fd, " State Machine State: %s\n", bta_av_st_code(bta_av_cb.state)); dprintf(fd, " Link signalling timer: %s\n", alarm_is_scheduled(bta_av_cb.link_signalling_timer) ? "Scheduled" : "Not scheduled"); dprintf(fd, " Accept signalling timer: %s\n", alarm_is_scheduled(bta_av_cb.accept_signalling_timer) ? "Scheduled" : "Not scheduled"); dprintf(fd, " SDP A2DP source handle: %d\n", bta_av_cb.sdp_a2dp_handle); dprintf(fd, " SDP A2DP sink handle: %d\n", bta_av_cb.sdp_a2dp_snk_handle); dprintf(fd, " Features: 0x%x\n", bta_av_cb.features); Loading Loading @@ -1468,6 +1452,13 @@ void bta_debug_av_dump(int fd) { p_scb->open_api.use_rc ? "true" : "false"); dprintf(fd, " Switch result: %d\n", p_scb->open_api.switch_res); dprintf(fd, " Initiator UUID: 0x%x\n", p_scb->open_api.uuid); dprintf(fd, " Link signalling timer: %s\n", alarm_is_scheduled(p_scb->link_signalling_timer) ? "Scheduled" : "Not scheduled"); dprintf(fd, " Accept signalling timer: %s\n", alarm_is_scheduled(p_scb->accept_signalling_timer) ? "Scheduled" : "Not scheduled"); // TODO: Print p_scb->sep_info[], cfg, avrc_ct_timer, current_codec ? dprintf(fd, " L2CAP Channel ID: %d\n", p_scb->l2c_cid); dprintf(fd, " Stream MTU: %d\n", p_scb->stream_mtu); Loading Loading
system/bta/av/bta_av_aact.cc +7 −4 Original line number Diff line number Diff line Loading @@ -858,6 +858,8 @@ void bta_av_cleanup(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { p_scb->num_disc_snks = 0; p_scb->coll_mask = 0; alarm_cancel(p_scb->avrc_ct_timer); alarm_cancel(p_scb->link_signalling_timer); alarm_cancel(p_scb->accept_signalling_timer); /* TODO(eisenbach): RE-IMPLEMENT USING VSC OR HAL EXTENSION vendor_get_interface()->send_command( Loading Loading @@ -933,7 +935,7 @@ void bta_av_config_ind(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { /* Clear collision mask */ p_scb->coll_mask = 0; alarm_cancel(bta_av_cb.accept_signalling_timer); alarm_cancel(p_scb->accept_signalling_timer); /* if no codec parameters in configuration, fail */ if ((p_evt_cfg->num_codec == 0) || Loading Loading @@ -999,7 +1001,8 @@ void bta_av_disconnect_req(tBTA_AV_SCB* p_scb, APPL_TRACE_API("%s: conn_lcb: 0x%x peer_addr: %s", __func__, bta_av_cb.conn_lcb, p_scb->PeerAddress().ToString().c_str()); alarm_cancel(bta_av_cb.link_signalling_timer); alarm_cancel(p_scb->link_signalling_timer); alarm_cancel(p_scb->accept_signalling_timer); alarm_cancel(p_scb->avrc_ct_timer); // conn_lcb is the index bitmask of all used LCBs, and since LCB and SCB use Loading Loading @@ -1089,7 +1092,7 @@ void bta_av_setconfig_rsp(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { AVDT_ConfigRsp(p_scb->avdt_handle, p_scb->avdt_label, p_data->ci_setconfig.err_code, p_data->ci_setconfig.category); alarm_cancel(bta_av_cb.link_signalling_timer); alarm_cancel(p_scb->link_signalling_timer); if (p_data->ci_setconfig.err_code == AVDT_SUCCESS) { p_scb->wait = BTA_AV_WAIT_ACP_CAPS_ON; Loading Loading @@ -1314,7 +1317,7 @@ void bta_av_do_close(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { if (p_scb->co_started) { bta_av_str_stopped(p_scb, NULL); } alarm_cancel(bta_av_cb.link_signalling_timer); alarm_cancel(p_scb->link_signalling_timer); /* close stream */ p_scb->started = false; Loading
system/bta/av/bta_av_act.cc +29 −12 Original line number Diff line number Diff line Loading @@ -1305,6 +1305,12 @@ void bta_av_disable(tBTA_AV_CB* p_cb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * expect BTA_AV_DEREG_COMP_EVT when deregister is complete */ for (xx = 0; xx < BTA_AV_NUM_STRS; xx++) { if (p_cb->p_scb[xx] != NULL) { // Free signalling timers alarm_free(p_cb->p_scb[xx]->link_signalling_timer); p_cb->p_scb[xx]->link_signalling_timer = NULL; alarm_free(p_cb->p_scb[xx]->accept_signalling_timer); p_cb->p_scb[xx]->accept_signalling_timer = NULL; hdr.layer_specific = xx + 1; bta_av_api_deregister((tBTA_AV_DATA*)&hdr); disabling_in_progress = true; Loading @@ -1315,10 +1321,6 @@ void bta_av_disable(tBTA_AV_CB* p_cb, UNUSED_ATTR tBTA_AV_DATA* p_data) { // no needed to setup this disabling flag. p_cb->disabling = disabling_in_progress; alarm_free(p_cb->link_signalling_timer); p_cb->link_signalling_timer = NULL; alarm_free(p_cb->accept_signalling_timer); p_cb->accept_signalling_timer = NULL; } /******************************************************************************* Loading @@ -1331,8 +1333,10 @@ void bta_av_disable(tBTA_AV_CB* p_cb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_api_disconnect(tBTA_AV_DATA* p_data) { AVDT_DisconnectReq(p_data->api_discnt.bd_addr, bta_av_conn_cback); alarm_cancel(bta_av_cb.link_signalling_timer); tBTA_AV_SCB* p_scb = bta_av_hndl_to_scb(p_data->api_discnt.hdr.layer_specific); AVDT_DisconnectReq(p_scb->PeerAddress(), bta_av_conn_cback); alarm_cancel(p_scb->link_signalling_timer); } /** Loading Loading @@ -1450,21 +1454,30 @@ void bta_av_sig_chg(tBTA_AV_DATA* p_data) { * The following function shall send the event and start the * recurring timer */ bta_av_signalling_timer(NULL); if (!p_scb->link_signalling_timer) { p_scb->link_signalling_timer = alarm_new("link_signalling_timer"); } BT_HDR hdr; hdr.layer_specific = p_scb->hndl; bta_av_signalling_timer((tBTA_AV_DATA*)&hdr); APPL_TRACE_DEBUG("%s: Re-start timer for AVDTP service", __func__); bta_sys_conn_open(BTA_ID_AV, p_scb->app_id, p_scb->PeerAddress()); /* Possible collision : need to avoid outgoing processing while the * timer is running */ p_scb->coll_mask = BTA_AV_COLL_INC_TMR; if (!p_scb->accept_signalling_timer) { p_scb->accept_signalling_timer = alarm_new("accept_signalling_timer"); } alarm_set_on_mloop( p_cb->accept_signalling_timer, BTA_AV_ACCEPT_SIGNALLING_TIMEOUT_MS, p_scb->accept_signalling_timer, BTA_AV_ACCEPT_SIGNALLING_TIMEOUT_MS, bta_av_accept_signalling_timer_cback, UINT_TO_PTR(xx)); } } } else if (event == BTA_AR_AVDT_CONN_EVT) { alarm_cancel(bta_av_cb.link_signalling_timer); uint8_t scb_index = p_data->str_msg.scb_index; alarm_cancel(p_cb->p_scb[scb_index]->link_signalling_timer); } else { /* disconnected. */ Loading Loading @@ -1511,6 +1524,9 @@ void bta_av_sig_chg(tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_signalling_timer(UNUSED_ATTR tBTA_AV_DATA* p_data) { tBTA_AV_HNDL hndl = p_data->hdr.layer_specific; tBTA_AV_SCB* p_scb = bta_av_hndl_to_scb(hndl); tBTA_AV_CB* p_cb = &bta_av_cb; int xx; uint8_t mask; Loading @@ -1527,9 +1543,10 @@ void bta_av_signalling_timer(UNUSED_ATTR tBTA_AV_DATA* p_data) { if (mask & p_cb->conn_lcb) { /* this entry is used. check if it is connected */ if (!p_lcb->conn_msk) { bta_sys_start_timer(p_cb->link_signalling_timer, APPL_TRACE_DEBUG("%s hndl 0x%x", __func__, p_scb->hndl); bta_sys_start_timer(p_scb->link_signalling_timer, BTA_AV_SIGNALLING_TIMEOUT_MS, BTA_AV_SIGNALLING_TIMER_EVT, 0); BTA_AV_SIGNALLING_TIMER_EVT, hndl); tBTA_AV_PEND pend; pend.bd_addr = p_lcb->addr; tBTA_AV bta_av_data; Loading Loading @@ -1574,7 +1591,7 @@ static void bta_av_accept_signalling_timer_cback(void* data) { /* We are still doing SDP. Run the timer again. */ p_scb->coll_mask |= BTA_AV_COLL_INC_TMR; alarm_set_on_mloop(p_cb->accept_signalling_timer, alarm_set_on_mloop(p_scb->accept_signalling_timer, BTA_AV_ACCEPT_SIGNALLING_TIMEOUT_MS, bta_av_accept_signalling_timer_cback, UINT_TO_PTR(inx)); Loading
system/bta/av/bta_av_api.cc +3 −3 Original line number Diff line number Diff line Loading @@ -193,14 +193,14 @@ void BTA_AvClose(tBTA_AV_HNDL handle) { * Returns void * ******************************************************************************/ void BTA_AvDisconnect(const RawAddress& bd_addr) { LOG_INFO("%s: peer %s", __func__, bd_addr.ToString().c_str()); void BTA_AvDisconnect(tBTA_AV_HNDL handle) { LOG_INFO("%s: bta_handle=0x%x", __func__, handle); tBTA_AV_API_DISCNT* p_buf = (tBTA_AV_API_DISCNT*)osi_malloc(sizeof(tBTA_AV_API_DISCNT)); p_buf->hdr.event = BTA_AV_API_DISCONNECT_EVT; p_buf->bd_addr = bd_addr; p_buf->hdr.layer_specific = handle; bta_sys_sendmsg(p_buf); } Loading
system/bta/av/bta_av_int.h +3 −4 Original line number Diff line number Diff line Loading @@ -273,7 +273,6 @@ typedef struct { /* data type for BTA_AV_API_DISCONNECT_EVT */ typedef struct { BT_HDR_RIGID hdr; RawAddress bd_addr; } tBTA_AV_API_DISCNT; /* data type for BTA_AV_API_PROTECT_REQ_EVT */ Loading Loading @@ -492,6 +491,9 @@ struct tBTA_AV_SCB final { tAVDT_SEP_INFO sep_info[BTA_AV_NUM_SEPS]; /* stream discovery results */ AvdtpSepConfig cfg; /* local SEP configuration */ alarm_t* avrc_ct_timer; /* delay timer for AVRC CT */ alarm_t* link_signalling_timer; alarm_t* accept_signalling_timer; /* timer to monitor signalling when accepting */ uint16_t l2c_cid; /* L2CAP channel ID */ uint16_t stream_mtu; /* MTU of stream */ uint8_t media_type; /* Media type: AVDT_MEDIA_TYPE_* */ Loading Loading @@ -617,9 +619,6 @@ typedef struct { tBTA_AV_CBACK* p_cback; /* application callback function */ tBTA_AV_RCB rcb[BTA_AV_NUM_RCB]; /* RCB control block */ tBTA_AV_LCB lcb[BTA_AV_NUM_LINKS + 1]; /* link control block */ alarm_t* link_signalling_timer; alarm_t* accept_signalling_timer; /* timer to monitor signalling when accepting */ uint32_t sdp_a2dp_handle; /* SDP record handle for audio src */ uint32_t sdp_a2dp_snk_handle; /* SDP record handle for audio snk */ tBTA_AV_FEAT features; /* features mask */ Loading
system/bta/av/bta_av_main.cc +7 −16 Original line number Diff line number Diff line Loading @@ -160,14 +160,6 @@ static void bta_av_api_enable(tBTA_AV_DATA* p_data) { bta_av_cb.rc_acp_handle = BTA_AV_RC_HANDLE_NONE; /* * TODO: The "disable" event handling is missing - there we need * to alarm_free() the alarms below. */ bta_av_cb.link_signalling_timer = alarm_new("bta_av.link_signalling_timer"); bta_av_cb.accept_signalling_timer = alarm_new("bta_av.accept_signalling_timer"); /* store parameters */ bta_av_cb.p_cback = p_data->api_enable.p_cback; bta_av_cb.features = p_data->api_enable.features; Loading Loading @@ -1402,14 +1394,6 @@ void bta_debug_av_dump(int fd) { dprintf(fd, "\nBTA AV State:\n"); dprintf(fd, " State Machine State: %s\n", bta_av_st_code(bta_av_cb.state)); dprintf(fd, " Link signalling timer: %s\n", alarm_is_scheduled(bta_av_cb.link_signalling_timer) ? "Scheduled" : "Not scheduled"); dprintf(fd, " Accept signalling timer: %s\n", alarm_is_scheduled(bta_av_cb.accept_signalling_timer) ? "Scheduled" : "Not scheduled"); dprintf(fd, " SDP A2DP source handle: %d\n", bta_av_cb.sdp_a2dp_handle); dprintf(fd, " SDP A2DP sink handle: %d\n", bta_av_cb.sdp_a2dp_snk_handle); dprintf(fd, " Features: 0x%x\n", bta_av_cb.features); Loading Loading @@ -1468,6 +1452,13 @@ void bta_debug_av_dump(int fd) { p_scb->open_api.use_rc ? "true" : "false"); dprintf(fd, " Switch result: %d\n", p_scb->open_api.switch_res); dprintf(fd, " Initiator UUID: 0x%x\n", p_scb->open_api.uuid); dprintf(fd, " Link signalling timer: %s\n", alarm_is_scheduled(p_scb->link_signalling_timer) ? "Scheduled" : "Not scheduled"); dprintf(fd, " Accept signalling timer: %s\n", alarm_is_scheduled(p_scb->accept_signalling_timer) ? "Scheduled" : "Not scheduled"); // TODO: Print p_scb->sep_info[], cfg, avrc_ct_timer, current_codec ? dprintf(fd, " L2CAP Channel ID: %d\n", p_scb->l2c_cid); dprintf(fd, " Stream MTU: %d\n", p_scb->stream_mtu); Loading