Loading system/btif/avrcp/avrcp_service.cc +6 −3 Original line number Diff line number Diff line Loading @@ -401,19 +401,22 @@ ServiceInterface* AvrcpService::GetServiceInterface() { } void AvrcpService::ConnectDevice(const RawAddress& bdaddr) { LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << bdaddr.ToString(); LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << ADDRESS_TO_LOGGABLE_STR(bdaddr); connection_handler_->ConnectDevice(bdaddr); } void AvrcpService::DisconnectDevice(const RawAddress& bdaddr) { LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << bdaddr.ToString(); LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << ADDRESS_TO_LOGGABLE_STR(bdaddr); connection_handler_->DisconnectDevice(bdaddr); } void AvrcpService::SetBipClientStatus(const RawAddress& bdaddr, bool connected) { LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << bdaddr.ToString() LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << ADDRESS_TO_LOGGABLE_STR(bdaddr) << ", connected=" << connected; connection_handler_->SetBipClientStatus(bdaddr, connected); } Loading system/btif/co/bta_av_co.cc +72 −63 Original line number Diff line number Diff line Loading @@ -845,18 +845,19 @@ BtaAvCoPeer* BtaAvCo::FindPeer(tBTA_AV_HNDL bta_av_handle) { BtaAvCoPeer* BtaAvCo::FindPeerAndUpdate(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle = 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); BtaAvCoPeer* p_peer = FindPeer(bta_av_handle); if (p_peer == nullptr) { APPL_TRACE_ERROR("%s: peer entry for BTA AV handle 0x%x peer %s not found", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return nullptr; } APPL_TRACE_DEBUG("%s: peer %s bta_av_handle = 0x%x previous address %s", __func__, peer_address.ToString().c_str(), bta_av_handle, p_peer->addr.ToString().c_str()); __func__, ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); p_peer->addr = peer_address; return p_peer; } Loading @@ -875,7 +876,7 @@ void BtaAvCo::ProcessDiscoveryResult(tBTA_AV_HNDL bta_av_handle, uint8_t num_sources, uint16_t uuid_local) { APPL_TRACE_DEBUG( "%s: peer %s bta_av_handle:0x%x num_seps:%d num_sinks:%d num_sources:%d", __func__, peer_address.ToString().c_str(), bta_av_handle, num_seps, __func__, ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, num_seps, num_sinks, num_sources); // Find the peer Loading @@ -883,14 +884,14 @@ void BtaAvCo::ProcessDiscoveryResult(tBTA_AV_HNDL bta_av_handle, if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return; } /* Sanity check : this should never happen */ if (p_peer->opened) { APPL_TRACE_ERROR("%s: peer %s already opened", __func__, peer_address.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(peer_address)); } /* Copy the discovery results */ Loading @@ -914,7 +915,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( uint8_t* p_codec_info, uint8_t* p_sep_info_idx, uint8_t seid, uint8_t* p_num_protect, uint8_t* p_protect_info) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle:0x%x codec:%s seid:%d", __func__, peer_address.ToString().c_str(), bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, A2DP_CodecName(p_codec_info), seid); APPL_TRACE_DEBUG("%s: num_protect:0x%02x protect_info:0x%02x%02x%02x", __func__, *p_num_protect, p_protect_info[0], Loading @@ -927,7 +928,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return A2DP_FAIL; } APPL_TRACE_DEBUG("%s: peer(o=%d, n_sinks=%d, n_rx_sinks=%d, n_sup_sinks=%d)", Loading @@ -953,7 +954,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( memcpy(p_sink->protect_info, p_protect_info, AVDT_CP_INFO_LEN); } else { APPL_TRACE_ERROR("%s: peer %s : no more room for Sink info", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } } Loading @@ -964,7 +965,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( return A2DP_FAIL; } APPL_TRACE_DEBUG("%s: last Sink codec reached for peer %s (local %s)", __func__, p_peer->addr.ToString().c_str(), __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), p_peer->acceptor ? "acceptor" : "initiator"); // Select the Source codec Loading @@ -979,7 +980,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( p_sink = p_peer->p_sink; if (p_sink == nullptr) { APPL_TRACE_ERROR("%s: cannot find the selected codec for peer %s", __func__, p_peer->addr.ToString().c_str()); __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return A2DP_FAIL; } } else { Loading @@ -988,7 +989,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( p_sink = FindPeerSink(p_peer, BTAV_A2DP_CODEC_INDEX_SOURCE_SBC); if (p_sink != nullptr) { APPL_TRACE_API("%s: mandatory codec preferred for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); btav_a2dp_codec_config_t high_priority_mandatory{ .codec_type = BTAV_A2DP_CODEC_INDEX_SOURCE_SBC, .codec_priority = BTAV_A2DP_CODEC_PRIORITY_HIGHEST, Loading @@ -1006,13 +1007,13 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( &config_updated); } else { APPL_TRACE_WARNING("%s: mandatory codec not found for peer %s", __func__, p_peer->addr.ToString().c_str()); __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } } p_sink = SelectSourceCodec(p_peer); if (p_sink == nullptr) { APPL_TRACE_ERROR("%s: cannot set up codec for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return A2DP_FAIL; } } Loading @@ -1027,13 +1028,13 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( // If acceptor -> reconfig otherwise reply for configuration *p_sep_info_idx = p_sink->sep_info_idx; APPL_TRACE_EVENT("%s: peer %s acceptor:%s reconfig_needed:%s", __func__, p_peer->addr.ToString().c_str(), ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), (p_peer->acceptor) ? "true" : "false", (p_peer->reconfig_needed) ? "true" : "false"); if (p_peer->acceptor) { if (p_peer->reconfig_needed) { APPL_TRACE_DEBUG("%s: call BTA_AvReconfig(0x%x) for peer %s", __func__, bta_av_handle, p_peer->addr.ToString().c_str()); bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); BTA_AvReconfig(bta_av_handle, true, p_sink->sep_info_idx, p_peer->codec_config, *p_num_protect, bta_av_co_cp_scmst); } Loading @@ -1058,7 +1059,7 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, std::lock_guard<std::recursive_mutex> lock(codec_lock_); APPL_TRACE_DEBUG("%s: peer %s bta_av_handle:0x%x codec:%s seid:%d", __func__, peer_address.ToString().c_str(), bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, A2DP_CodecName(p_codec_info), seid); APPL_TRACE_DEBUG("%s: num_protect:0x%02x protect_info:0x%02x%02x%02x", __func__, *p_num_protect, p_protect_info[0], Loading @@ -1071,13 +1072,13 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return A2DP_FAIL; } APPL_TRACE_DEBUG( "%s: peer %s found (o=%d, n_sources=%d, n_rx_sources=%d, " "n_sup_sources=%d)", __func__, p_peer->addr.ToString().c_str(), p_peer->opened, __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), p_peer->opened, p_peer->num_sources, p_peer->num_rx_sources, p_peer->num_sup_sources); p_peer->num_rx_sources++; Loading @@ -1099,7 +1100,7 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, memcpy(p_source->protect_info, p_protect_info, AVDT_CP_INFO_LEN); } else { APPL_TRACE_ERROR("%s: peer %s : no more room for Source info", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } } Loading @@ -1110,7 +1111,7 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, return A2DP_FAIL; } APPL_TRACE_DEBUG("%s: last Source codec reached for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Select the Sink codec const BtaAvCoSep* p_source = nullptr; Loading @@ -1124,14 +1125,14 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, p_source = p_peer->p_source; if (p_source == nullptr) { APPL_TRACE_ERROR("%s: cannot find the selected codec for peer %s", __func__, p_peer->addr.ToString().c_str()); __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return A2DP_FAIL; } } else { p_source = SelectSinkCodec(p_peer); if (p_source == nullptr) { APPL_TRACE_ERROR("%s: cannot set up codec for the peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return A2DP_FAIL; } } Loading @@ -1146,13 +1147,13 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, // If acceptor -> reconfig otherwise reply for configuration *p_sep_info_idx = p_source->sep_info_idx; APPL_TRACE_EVENT("%s: peer %s acceptor:%s reconfig_needed:%s", __func__, p_peer->addr.ToString().c_str(), ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), (p_peer->acceptor) ? "true" : "false", (p_peer->reconfig_needed) ? "true" : "false"); if (p_peer->acceptor) { if (p_peer->reconfig_needed) { APPL_TRACE_DEBUG("%s: call BTA_AvReconfig(0x%x) for peer %s", __func__, bta_av_handle, p_peer->addr.ToString().c_str()); bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); BTA_AvReconfig(bta_av_handle, true, p_source->sep_info_idx, p_peer->codec_config, *p_num_protect, bta_av_co_cp_scmst); } Loading @@ -1176,7 +1177,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, APPL_TRACE_DEBUG( "%s: bta_av_handle=0x%x peer_address=%s seid=%d " "num_protect=%d t_local_sep=%d avdt_handle=%d", __func__, bta_av_handle, peer_address.ToString().c_str(), seid, __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address), seid, num_protect, t_local_sep, avdt_handle); APPL_TRACE_DEBUG("%s: p_codec_info[%x:%x:%x:%x:%x:%x]", __func__, p_codec_info[1], p_codec_info[2], p_codec_info[3], Loading @@ -1192,7 +1193,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); // Call call-in rejecting the configuration bta_av_ci_setconfig(bta_av_handle, A2DP_BUSY, AVDT_ASC_CODEC, 0, nullptr, false, avdt_handle); Loading @@ -1202,13 +1203,13 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, APPL_TRACE_DEBUG( "%s: peer %s found (o=%d, n_sinks=%d, n_rx_sinks=%d, " "n_sup_sinks=%d)", __func__, p_peer->addr.ToString().c_str(), p_peer->opened, __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), p_peer->opened, p_peer->num_sinks, p_peer->num_rx_sinks, p_peer->num_sup_sinks); // Sanity check: should not be opened at this point if (p_peer->opened) { APPL_TRACE_ERROR("%s: peer %s already in use", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } if (num_protect != 0) { Loading @@ -1216,14 +1217,14 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, if ((num_protect != 1) || !BtaAvCo::ContentProtectIsScmst(p_protect_info)) { APPL_TRACE_ERROR("%s: wrong CP configuration for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); status = A2DP_BAD_CP_TYPE; category = AVDT_ASC_PROTECT; } } else { // Do not support content protection for the time being APPL_TRACE_ERROR("%s: wrong CP configuration for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); status = A2DP_BAD_CP_TYPE; category = AVDT_ASC_PROTECT; } Loading @@ -1234,7 +1235,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, if (t_local_sep == AVDT_TSEP_SNK) { APPL_TRACE_DEBUG("%s: peer %s is A2DP Source", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); codec_config_supported = A2DP_IsSinkCodecSupported(p_codec_info); if (codec_config_supported) { // If Peer is Source, and our config subset matches with what is Loading @@ -1244,7 +1245,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, } if (t_local_sep == AVDT_TSEP_SRC) { APPL_TRACE_DEBUG("%s: peer %s is A2DP SINK", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Ignore the restart_output flag: accepting the remote device's // codec selection should not trigger codec reconfiguration. bool dummy_restart_output = false; Loading @@ -1253,7 +1254,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, &dummy_restart_output)) { APPL_TRACE_ERROR("%s: cannot set source codec %s for peer %s", __func__, A2DP_CodecName(p_codec_info), p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } else { codec_config_supported = true; // Check if reconfiguration is needed Loading @@ -1272,7 +1273,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, if (status != A2DP_SUCCESS) { APPL_TRACE_DEBUG("%s: peer %s reject s=%d c=%d", __func__, p_peer->addr.ToString().c_str(), status, category); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), status, category); // Call call-in rejecting the configuration bta_av_ci_setconfig(bta_av_handle, status, category, 0, nullptr, false, avdt_handle); Loading @@ -1283,7 +1284,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, p_peer->acceptor = true; p_peer->reconfig_needed = reconfig_needed; APPL_TRACE_DEBUG("%s: peer %s accept reconf=%d", __func__, p_peer->addr.ToString().c_str(), reconfig_needed); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), reconfig_needed); // Call call-in accepting the configuration bta_av_ci_setconfig(bta_av_handle, A2DP_SUCCESS, A2DP_SUCCESS, 0, nullptr, reconfig_needed, avdt_handle); Loading @@ -1292,14 +1293,14 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, void BtaAvCo::ProcessOpen(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address, uint16_t mtu) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x mtu:%d", __func__, peer_address.ToString().c_str(), bta_av_handle, mtu); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, mtu); // Find the peer BtaAvCoPeer* p_peer = FindPeerAndUpdate(bta_av_handle, peer_address); if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return; } p_peer->opened = true; Loading @@ -1314,7 +1315,7 @@ void BtaAvCo::ProcessOpen(tBTA_AV_HNDL bta_av_handle, void BtaAvCo::ProcessClose(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); btif_av_reset_audio_delay(); // Find the peer Loading @@ -1322,7 +1323,7 @@ void BtaAvCo::ProcessClose(tBTA_AV_HNDL bta_av_handle, if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return; } // Reset the active peer Loading @@ -1337,14 +1338,14 @@ void BtaAvCo::ProcessStart(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address, const uint8_t* p_codec_info, bool* p_no_rtp_header) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); // Find the peer BtaAvCoPeer* p_peer = FindPeerAndUpdate(bta_av_handle, peer_address); if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return; } Loading @@ -1359,7 +1360,7 @@ void BtaAvCo::ProcessStart(tBTA_AV_HNDL bta_av_handle, void BtaAvCo::ProcessStop(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); // Nothing to do } Loading Loading @@ -1401,14 +1402,15 @@ BT_HDR* BtaAvCo::GetNextSourceDataPacket(const uint8_t* p_codec_info, void BtaAvCo::DataPacketWasDropped(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address) { APPL_TRACE_ERROR("%s: peer %s dropped audio packet on handle 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); } void BtaAvCo::ProcessAudioDelay(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address, uint16_t delay) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x delay:0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle, delay); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, delay); btif_av_set_audio_delay(peer_address, delay); } Loading Loading @@ -1475,7 +1477,7 @@ void BtaAvCo::GetPeerEncoderParameters( btif_av_peer_supports_3mbps(peer_address); APPL_TRACE_DEBUG( "%s: peer_address=%s peer_mtu=%d is_peer_edr=%s peer_supports_3mbps=%s", __func__, peer_address.ToString().c_str(), p_peer_params->peer_mtu, __func__, ADDRESS_TO_LOGGABLE_CSTR(peer_address), p_peer_params->peer_mtu, logbool(p_peer_params->is_peer_edr).c_str(), logbool(p_peer_params->peer_supports_3mbps).c_str()); } Loading Loading @@ -1685,7 +1687,7 @@ bool BtaAvCo::ReportSourceCodecState(BtaAvCoPeer* p_peer) { bool BtaAvCo::ReportSinkCodecState(BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer_address=%s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Nothing to do (for now) return true; } Loading @@ -1707,7 +1709,8 @@ void BtaAvCo::DebugDump(int fd) { dprintf(fd, "\nA2DP Peers State:\n"); dprintf(fd, " Active peer: %s\n", (active_peer_ != nullptr) ? active_peer_->addr.ToString().c_str() (active_peer_ != nullptr) ? ADDRESS_TO_LOGGABLE_CSTR(active_peer_->addr) : "null"); for (size_t i = 0; i < BTA_AV_CO_NUM_ELEMENTS(peers_); i++) { Loading @@ -1715,7 +1718,7 @@ void BtaAvCo::DebugDump(int fd) { if (peer.addr.IsEmpty()) { continue; } dprintf(fd, " Peer: %s\n", peer.addr.ToString().c_str()); dprintf(fd, " Peer: %s\n", ADDRESS_TO_LOGGABLE_CSTR(peer.addr)); dprintf(fd, " Number of sinks: %u\n", peer.num_sinks); dprintf(fd, " Number of sources: %u\n", peer.num_sources); dprintf(fd, " Number of SEPs: %u\n", peer.num_seps); Loading Loading @@ -1824,7 +1827,7 @@ BtaAvCoSep* BtaAvCo::FindPeerSink(BtaAvCoPeer* p_peer, btav_a2dp_codec_index_t codec_index) { if (codec_index == BTAV_A2DP_CODEC_INDEX_MAX) { APPL_TRACE_WARNING("%s: invalid codec index for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return nullptr; } Loading Loading @@ -1852,7 +1855,7 @@ BtaAvCoSep* BtaAvCo::FindPeerSource(BtaAvCoPeer* p_peer, btav_a2dp_codec_index_t codec_index) { if (codec_index == BTAV_A2DP_CODEC_INDEX_MAX) { APPL_TRACE_WARNING("%s: invalid codec index for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return nullptr; } Loading Loading @@ -1933,7 +1936,8 @@ const BtaAvCoSep* BtaAvCo::AttemptSinkCodecSelection( } size_t BtaAvCo::UpdateAllSelectableSourceCodecs(BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); size_t updated_codecs = 0; for (const auto& iter : p_peer->GetCodecs()->orderedSourceCodecs()) { Loading @@ -1948,7 +1952,8 @@ size_t BtaAvCo::UpdateAllSelectableSourceCodecs(BtaAvCoPeer* p_peer) { bool BtaAvCo::UpdateSelectableSourceCodec(const A2dpCodecConfig& codec_config, BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Find the peer Sink for the codec const BtaAvCoSep* p_sink = FindPeerSink(p_peer, codec_config.codecIndex()); Loading @@ -1958,7 +1963,7 @@ bool BtaAvCo::UpdateSelectableSourceCodec(const A2dpCodecConfig& codec_config, } if (!p_peer->GetCodecs()->setPeerSinkCodecCapabilities(p_sink->codec_caps)) { APPL_TRACE_WARNING("%s: cannot update peer %s codec capabilities for %s", __func__, p_peer->addr.ToString().c_str(), __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), A2DP_CodecName(p_sink->codec_caps)); return false; } Loading @@ -1966,7 +1971,8 @@ bool BtaAvCo::UpdateSelectableSourceCodec(const A2dpCodecConfig& codec_config, } size_t BtaAvCo::UpdateAllSelectableSinkCodecs(BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); size_t updated_codecs = 0; for (const auto& iter : p_peer->GetCodecs()->orderedSinkCodecs()) { Loading @@ -1981,7 +1987,8 @@ size_t BtaAvCo::UpdateAllSelectableSinkCodecs(BtaAvCoPeer* p_peer) { bool BtaAvCo::UpdateSelectableSinkCodec(const A2dpCodecConfig& codec_config, BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Find the peer Source for the codec const BtaAvCoSep* p_source = Loading @@ -1993,7 +2000,7 @@ bool BtaAvCo::UpdateSelectableSinkCodec(const A2dpCodecConfig& codec_config, if (!p_peer->GetCodecs()->setPeerSourceCodecCapabilities( p_source->codec_caps)) { APPL_TRACE_WARNING("%s: cannot update peer %s codec capabilities for %s", __func__, p_peer->addr.ToString().c_str(), __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), A2DP_CodecName(p_source->codec_caps)); return false; } Loading @@ -2004,7 +2011,8 @@ void BtaAvCo::SaveNewCodecConfig(BtaAvCoPeer* p_peer, const uint8_t* new_codec_config, uint8_t num_protect, const uint8_t* p_protect_info) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); APPL_TRACE_DEBUG("%s: codec: %s", __func__, A2DP_CodecInfoString(new_codec_config).c_str()); Loading Loading @@ -2116,7 +2124,8 @@ tA2DP_STATUS bta_av_co_audio_getconfig(tBTA_AV_HNDL bta_av_handle, uint16_t peer_uuid = bta_av_co_cb.FindPeerUuid(bta_av_handle); APPL_TRACE_DEBUG("%s: peer %s bta_av_handle=0x%x peer_uuid=0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle, peer_uuid); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, peer_uuid); switch (peer_uuid) { case UUID_SERVCLASS_AUDIO_SOURCE: Loading @@ -2131,8 +2140,8 @@ tA2DP_STATUS bta_av_co_audio_getconfig(tBTA_AV_HNDL bta_av_handle, break; } APPL_TRACE_ERROR( "%s: peer %s : Invalid peer UUID: 0x%x for bta_av_handle 0x%x", __func__, peer_address.ToString().c_str(), peer_uuid, bta_av_handle); "%s: peer %s : Invalid peer UUID: 0x%x for bta_av_handle 0x%x", __func__, ADDRESS_TO_LOGGABLE_CSTR(peer_address), peer_uuid, bta_av_handle); return A2DP_FAIL; } Loading Loading
system/btif/avrcp/avrcp_service.cc +6 −3 Original line number Diff line number Diff line Loading @@ -401,19 +401,22 @@ ServiceInterface* AvrcpService::GetServiceInterface() { } void AvrcpService::ConnectDevice(const RawAddress& bdaddr) { LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << bdaddr.ToString(); LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << ADDRESS_TO_LOGGABLE_STR(bdaddr); connection_handler_->ConnectDevice(bdaddr); } void AvrcpService::DisconnectDevice(const RawAddress& bdaddr) { LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << bdaddr.ToString(); LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << ADDRESS_TO_LOGGABLE_STR(bdaddr); connection_handler_->DisconnectDevice(bdaddr); } void AvrcpService::SetBipClientStatus(const RawAddress& bdaddr, bool connected) { LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << bdaddr.ToString() LOG(INFO) << __PRETTY_FUNCTION__ << ": address=" << ADDRESS_TO_LOGGABLE_STR(bdaddr) << ", connected=" << connected; connection_handler_->SetBipClientStatus(bdaddr, connected); } Loading
system/btif/co/bta_av_co.cc +72 −63 Original line number Diff line number Diff line Loading @@ -845,18 +845,19 @@ BtaAvCoPeer* BtaAvCo::FindPeer(tBTA_AV_HNDL bta_av_handle) { BtaAvCoPeer* BtaAvCo::FindPeerAndUpdate(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle = 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); BtaAvCoPeer* p_peer = FindPeer(bta_av_handle); if (p_peer == nullptr) { APPL_TRACE_ERROR("%s: peer entry for BTA AV handle 0x%x peer %s not found", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return nullptr; } APPL_TRACE_DEBUG("%s: peer %s bta_av_handle = 0x%x previous address %s", __func__, peer_address.ToString().c_str(), bta_av_handle, p_peer->addr.ToString().c_str()); __func__, ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); p_peer->addr = peer_address; return p_peer; } Loading @@ -875,7 +876,7 @@ void BtaAvCo::ProcessDiscoveryResult(tBTA_AV_HNDL bta_av_handle, uint8_t num_sources, uint16_t uuid_local) { APPL_TRACE_DEBUG( "%s: peer %s bta_av_handle:0x%x num_seps:%d num_sinks:%d num_sources:%d", __func__, peer_address.ToString().c_str(), bta_av_handle, num_seps, __func__, ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, num_seps, num_sinks, num_sources); // Find the peer Loading @@ -883,14 +884,14 @@ void BtaAvCo::ProcessDiscoveryResult(tBTA_AV_HNDL bta_av_handle, if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return; } /* Sanity check : this should never happen */ if (p_peer->opened) { APPL_TRACE_ERROR("%s: peer %s already opened", __func__, peer_address.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(peer_address)); } /* Copy the discovery results */ Loading @@ -914,7 +915,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( uint8_t* p_codec_info, uint8_t* p_sep_info_idx, uint8_t seid, uint8_t* p_num_protect, uint8_t* p_protect_info) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle:0x%x codec:%s seid:%d", __func__, peer_address.ToString().c_str(), bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, A2DP_CodecName(p_codec_info), seid); APPL_TRACE_DEBUG("%s: num_protect:0x%02x protect_info:0x%02x%02x%02x", __func__, *p_num_protect, p_protect_info[0], Loading @@ -927,7 +928,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return A2DP_FAIL; } APPL_TRACE_DEBUG("%s: peer(o=%d, n_sinks=%d, n_rx_sinks=%d, n_sup_sinks=%d)", Loading @@ -953,7 +954,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( memcpy(p_sink->protect_info, p_protect_info, AVDT_CP_INFO_LEN); } else { APPL_TRACE_ERROR("%s: peer %s : no more room for Sink info", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } } Loading @@ -964,7 +965,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( return A2DP_FAIL; } APPL_TRACE_DEBUG("%s: last Sink codec reached for peer %s (local %s)", __func__, p_peer->addr.ToString().c_str(), __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), p_peer->acceptor ? "acceptor" : "initiator"); // Select the Source codec Loading @@ -979,7 +980,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( p_sink = p_peer->p_sink; if (p_sink == nullptr) { APPL_TRACE_ERROR("%s: cannot find the selected codec for peer %s", __func__, p_peer->addr.ToString().c_str()); __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return A2DP_FAIL; } } else { Loading @@ -988,7 +989,7 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( p_sink = FindPeerSink(p_peer, BTAV_A2DP_CODEC_INDEX_SOURCE_SBC); if (p_sink != nullptr) { APPL_TRACE_API("%s: mandatory codec preferred for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); btav_a2dp_codec_config_t high_priority_mandatory{ .codec_type = BTAV_A2DP_CODEC_INDEX_SOURCE_SBC, .codec_priority = BTAV_A2DP_CODEC_PRIORITY_HIGHEST, Loading @@ -1006,13 +1007,13 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( &config_updated); } else { APPL_TRACE_WARNING("%s: mandatory codec not found for peer %s", __func__, p_peer->addr.ToString().c_str()); __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } } p_sink = SelectSourceCodec(p_peer); if (p_sink == nullptr) { APPL_TRACE_ERROR("%s: cannot set up codec for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return A2DP_FAIL; } } Loading @@ -1027,13 +1028,13 @@ tA2DP_STATUS BtaAvCo::ProcessSourceGetConfig( // If acceptor -> reconfig otherwise reply for configuration *p_sep_info_idx = p_sink->sep_info_idx; APPL_TRACE_EVENT("%s: peer %s acceptor:%s reconfig_needed:%s", __func__, p_peer->addr.ToString().c_str(), ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), (p_peer->acceptor) ? "true" : "false", (p_peer->reconfig_needed) ? "true" : "false"); if (p_peer->acceptor) { if (p_peer->reconfig_needed) { APPL_TRACE_DEBUG("%s: call BTA_AvReconfig(0x%x) for peer %s", __func__, bta_av_handle, p_peer->addr.ToString().c_str()); bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); BTA_AvReconfig(bta_av_handle, true, p_sink->sep_info_idx, p_peer->codec_config, *p_num_protect, bta_av_co_cp_scmst); } Loading @@ -1058,7 +1059,7 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, std::lock_guard<std::recursive_mutex> lock(codec_lock_); APPL_TRACE_DEBUG("%s: peer %s bta_av_handle:0x%x codec:%s seid:%d", __func__, peer_address.ToString().c_str(), bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, A2DP_CodecName(p_codec_info), seid); APPL_TRACE_DEBUG("%s: num_protect:0x%02x protect_info:0x%02x%02x%02x", __func__, *p_num_protect, p_protect_info[0], Loading @@ -1071,13 +1072,13 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return A2DP_FAIL; } APPL_TRACE_DEBUG( "%s: peer %s found (o=%d, n_sources=%d, n_rx_sources=%d, " "n_sup_sources=%d)", __func__, p_peer->addr.ToString().c_str(), p_peer->opened, __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), p_peer->opened, p_peer->num_sources, p_peer->num_rx_sources, p_peer->num_sup_sources); p_peer->num_rx_sources++; Loading @@ -1099,7 +1100,7 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, memcpy(p_source->protect_info, p_protect_info, AVDT_CP_INFO_LEN); } else { APPL_TRACE_ERROR("%s: peer %s : no more room for Source info", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } } Loading @@ -1110,7 +1111,7 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, return A2DP_FAIL; } APPL_TRACE_DEBUG("%s: last Source codec reached for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Select the Sink codec const BtaAvCoSep* p_source = nullptr; Loading @@ -1124,14 +1125,14 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, p_source = p_peer->p_source; if (p_source == nullptr) { APPL_TRACE_ERROR("%s: cannot find the selected codec for peer %s", __func__, p_peer->addr.ToString().c_str()); __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return A2DP_FAIL; } } else { p_source = SelectSinkCodec(p_peer); if (p_source == nullptr) { APPL_TRACE_ERROR("%s: cannot set up codec for the peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return A2DP_FAIL; } } Loading @@ -1146,13 +1147,13 @@ tA2DP_STATUS BtaAvCo::ProcessSinkGetConfig(tBTA_AV_HNDL bta_av_handle, // If acceptor -> reconfig otherwise reply for configuration *p_sep_info_idx = p_source->sep_info_idx; APPL_TRACE_EVENT("%s: peer %s acceptor:%s reconfig_needed:%s", __func__, p_peer->addr.ToString().c_str(), ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), (p_peer->acceptor) ? "true" : "false", (p_peer->reconfig_needed) ? "true" : "false"); if (p_peer->acceptor) { if (p_peer->reconfig_needed) { APPL_TRACE_DEBUG("%s: call BTA_AvReconfig(0x%x) for peer %s", __func__, bta_av_handle, p_peer->addr.ToString().c_str()); bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); BTA_AvReconfig(bta_av_handle, true, p_source->sep_info_idx, p_peer->codec_config, *p_num_protect, bta_av_co_cp_scmst); } Loading @@ -1176,7 +1177,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, APPL_TRACE_DEBUG( "%s: bta_av_handle=0x%x peer_address=%s seid=%d " "num_protect=%d t_local_sep=%d avdt_handle=%d", __func__, bta_av_handle, peer_address.ToString().c_str(), seid, __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address), seid, num_protect, t_local_sep, avdt_handle); APPL_TRACE_DEBUG("%s: p_codec_info[%x:%x:%x:%x:%x:%x]", __func__, p_codec_info[1], p_codec_info[2], p_codec_info[3], Loading @@ -1192,7 +1193,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); // Call call-in rejecting the configuration bta_av_ci_setconfig(bta_av_handle, A2DP_BUSY, AVDT_ASC_CODEC, 0, nullptr, false, avdt_handle); Loading @@ -1202,13 +1203,13 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, APPL_TRACE_DEBUG( "%s: peer %s found (o=%d, n_sinks=%d, n_rx_sinks=%d, " "n_sup_sinks=%d)", __func__, p_peer->addr.ToString().c_str(), p_peer->opened, __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), p_peer->opened, p_peer->num_sinks, p_peer->num_rx_sinks, p_peer->num_sup_sinks); // Sanity check: should not be opened at this point if (p_peer->opened) { APPL_TRACE_ERROR("%s: peer %s already in use", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } if (num_protect != 0) { Loading @@ -1216,14 +1217,14 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, if ((num_protect != 1) || !BtaAvCo::ContentProtectIsScmst(p_protect_info)) { APPL_TRACE_ERROR("%s: wrong CP configuration for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); status = A2DP_BAD_CP_TYPE; category = AVDT_ASC_PROTECT; } } else { // Do not support content protection for the time being APPL_TRACE_ERROR("%s: wrong CP configuration for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); status = A2DP_BAD_CP_TYPE; category = AVDT_ASC_PROTECT; } Loading @@ -1234,7 +1235,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, if (t_local_sep == AVDT_TSEP_SNK) { APPL_TRACE_DEBUG("%s: peer %s is A2DP Source", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); codec_config_supported = A2DP_IsSinkCodecSupported(p_codec_info); if (codec_config_supported) { // If Peer is Source, and our config subset matches with what is Loading @@ -1244,7 +1245,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, } if (t_local_sep == AVDT_TSEP_SRC) { APPL_TRACE_DEBUG("%s: peer %s is A2DP SINK", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Ignore the restart_output flag: accepting the remote device's // codec selection should not trigger codec reconfiguration. bool dummy_restart_output = false; Loading @@ -1253,7 +1254,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, &dummy_restart_output)) { APPL_TRACE_ERROR("%s: cannot set source codec %s for peer %s", __func__, A2DP_CodecName(p_codec_info), p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); } else { codec_config_supported = true; // Check if reconfiguration is needed Loading @@ -1272,7 +1273,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, if (status != A2DP_SUCCESS) { APPL_TRACE_DEBUG("%s: peer %s reject s=%d c=%d", __func__, p_peer->addr.ToString().c_str(), status, category); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), status, category); // Call call-in rejecting the configuration bta_av_ci_setconfig(bta_av_handle, status, category, 0, nullptr, false, avdt_handle); Loading @@ -1283,7 +1284,7 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, p_peer->acceptor = true; p_peer->reconfig_needed = reconfig_needed; APPL_TRACE_DEBUG("%s: peer %s accept reconf=%d", __func__, p_peer->addr.ToString().c_str(), reconfig_needed); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), reconfig_needed); // Call call-in accepting the configuration bta_av_ci_setconfig(bta_av_handle, A2DP_SUCCESS, A2DP_SUCCESS, 0, nullptr, reconfig_needed, avdt_handle); Loading @@ -1292,14 +1293,14 @@ void BtaAvCo::ProcessSetConfig(tBTA_AV_HNDL bta_av_handle, void BtaAvCo::ProcessOpen(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address, uint16_t mtu) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x mtu:%d", __func__, peer_address.ToString().c_str(), bta_av_handle, mtu); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, mtu); // Find the peer BtaAvCoPeer* p_peer = FindPeerAndUpdate(bta_av_handle, peer_address); if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return; } p_peer->opened = true; Loading @@ -1314,7 +1315,7 @@ void BtaAvCo::ProcessOpen(tBTA_AV_HNDL bta_av_handle, void BtaAvCo::ProcessClose(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); btif_av_reset_audio_delay(); // Find the peer Loading @@ -1322,7 +1323,7 @@ void BtaAvCo::ProcessClose(tBTA_AV_HNDL bta_av_handle, if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return; } // Reset the active peer Loading @@ -1337,14 +1338,14 @@ void BtaAvCo::ProcessStart(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address, const uint8_t* p_codec_info, bool* p_no_rtp_header) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); // Find the peer BtaAvCoPeer* p_peer = FindPeerAndUpdate(bta_av_handle, peer_address); if (p_peer == nullptr) { APPL_TRACE_ERROR( "%s: could not find peer entry for bta_av_handle 0x%x peer %s", __func__, bta_av_handle, peer_address.ToString().c_str()); __func__, bta_av_handle, ADDRESS_TO_LOGGABLE_CSTR(peer_address)); return; } Loading @@ -1359,7 +1360,7 @@ void BtaAvCo::ProcessStart(tBTA_AV_HNDL bta_av_handle, void BtaAvCo::ProcessStop(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); // Nothing to do } Loading Loading @@ -1401,14 +1402,15 @@ BT_HDR* BtaAvCo::GetNextSourceDataPacket(const uint8_t* p_codec_info, void BtaAvCo::DataPacketWasDropped(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address) { APPL_TRACE_ERROR("%s: peer %s dropped audio packet on handle 0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle); } void BtaAvCo::ProcessAudioDelay(tBTA_AV_HNDL bta_av_handle, const RawAddress& peer_address, uint16_t delay) { APPL_TRACE_DEBUG("%s: peer %s bta_av_handle: 0x%x delay:0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle, delay); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, delay); btif_av_set_audio_delay(peer_address, delay); } Loading Loading @@ -1475,7 +1477,7 @@ void BtaAvCo::GetPeerEncoderParameters( btif_av_peer_supports_3mbps(peer_address); APPL_TRACE_DEBUG( "%s: peer_address=%s peer_mtu=%d is_peer_edr=%s peer_supports_3mbps=%s", __func__, peer_address.ToString().c_str(), p_peer_params->peer_mtu, __func__, ADDRESS_TO_LOGGABLE_CSTR(peer_address), p_peer_params->peer_mtu, logbool(p_peer_params->is_peer_edr).c_str(), logbool(p_peer_params->peer_supports_3mbps).c_str()); } Loading Loading @@ -1685,7 +1687,7 @@ bool BtaAvCo::ReportSourceCodecState(BtaAvCoPeer* p_peer) { bool BtaAvCo::ReportSinkCodecState(BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer_address=%s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Nothing to do (for now) return true; } Loading @@ -1707,7 +1709,8 @@ void BtaAvCo::DebugDump(int fd) { dprintf(fd, "\nA2DP Peers State:\n"); dprintf(fd, " Active peer: %s\n", (active_peer_ != nullptr) ? active_peer_->addr.ToString().c_str() (active_peer_ != nullptr) ? ADDRESS_TO_LOGGABLE_CSTR(active_peer_->addr) : "null"); for (size_t i = 0; i < BTA_AV_CO_NUM_ELEMENTS(peers_); i++) { Loading @@ -1715,7 +1718,7 @@ void BtaAvCo::DebugDump(int fd) { if (peer.addr.IsEmpty()) { continue; } dprintf(fd, " Peer: %s\n", peer.addr.ToString().c_str()); dprintf(fd, " Peer: %s\n", ADDRESS_TO_LOGGABLE_CSTR(peer.addr)); dprintf(fd, " Number of sinks: %u\n", peer.num_sinks); dprintf(fd, " Number of sources: %u\n", peer.num_sources); dprintf(fd, " Number of SEPs: %u\n", peer.num_seps); Loading Loading @@ -1824,7 +1827,7 @@ BtaAvCoSep* BtaAvCo::FindPeerSink(BtaAvCoPeer* p_peer, btav_a2dp_codec_index_t codec_index) { if (codec_index == BTAV_A2DP_CODEC_INDEX_MAX) { APPL_TRACE_WARNING("%s: invalid codec index for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return nullptr; } Loading Loading @@ -1852,7 +1855,7 @@ BtaAvCoSep* BtaAvCo::FindPeerSource(BtaAvCoPeer* p_peer, btav_a2dp_codec_index_t codec_index) { if (codec_index == BTAV_A2DP_CODEC_INDEX_MAX) { APPL_TRACE_WARNING("%s: invalid codec index for peer %s", __func__, p_peer->addr.ToString().c_str()); ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); return nullptr; } Loading Loading @@ -1933,7 +1936,8 @@ const BtaAvCoSep* BtaAvCo::AttemptSinkCodecSelection( } size_t BtaAvCo::UpdateAllSelectableSourceCodecs(BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); size_t updated_codecs = 0; for (const auto& iter : p_peer->GetCodecs()->orderedSourceCodecs()) { Loading @@ -1948,7 +1952,8 @@ size_t BtaAvCo::UpdateAllSelectableSourceCodecs(BtaAvCoPeer* p_peer) { bool BtaAvCo::UpdateSelectableSourceCodec(const A2dpCodecConfig& codec_config, BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Find the peer Sink for the codec const BtaAvCoSep* p_sink = FindPeerSink(p_peer, codec_config.codecIndex()); Loading @@ -1958,7 +1963,7 @@ bool BtaAvCo::UpdateSelectableSourceCodec(const A2dpCodecConfig& codec_config, } if (!p_peer->GetCodecs()->setPeerSinkCodecCapabilities(p_sink->codec_caps)) { APPL_TRACE_WARNING("%s: cannot update peer %s codec capabilities for %s", __func__, p_peer->addr.ToString().c_str(), __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), A2DP_CodecName(p_sink->codec_caps)); return false; } Loading @@ -1966,7 +1971,8 @@ bool BtaAvCo::UpdateSelectableSourceCodec(const A2dpCodecConfig& codec_config, } size_t BtaAvCo::UpdateAllSelectableSinkCodecs(BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); size_t updated_codecs = 0; for (const auto& iter : p_peer->GetCodecs()->orderedSinkCodecs()) { Loading @@ -1981,7 +1987,8 @@ size_t BtaAvCo::UpdateAllSelectableSinkCodecs(BtaAvCoPeer* p_peer) { bool BtaAvCo::UpdateSelectableSinkCodec(const A2dpCodecConfig& codec_config, BtaAvCoPeer* p_peer) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); // Find the peer Source for the codec const BtaAvCoSep* p_source = Loading @@ -1993,7 +2000,7 @@ bool BtaAvCo::UpdateSelectableSinkCodec(const A2dpCodecConfig& codec_config, if (!p_peer->GetCodecs()->setPeerSourceCodecCapabilities( p_source->codec_caps)) { APPL_TRACE_WARNING("%s: cannot update peer %s codec capabilities for %s", __func__, p_peer->addr.ToString().c_str(), __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr), A2DP_CodecName(p_source->codec_caps)); return false; } Loading @@ -2004,7 +2011,8 @@ void BtaAvCo::SaveNewCodecConfig(BtaAvCoPeer* p_peer, const uint8_t* new_codec_config, uint8_t num_protect, const uint8_t* p_protect_info) { APPL_TRACE_DEBUG("%s: peer %s", __func__, p_peer->addr.ToString().c_str()); APPL_TRACE_DEBUG("%s: peer %s", __func__, ADDRESS_TO_LOGGABLE_CSTR(p_peer->addr)); APPL_TRACE_DEBUG("%s: codec: %s", __func__, A2DP_CodecInfoString(new_codec_config).c_str()); Loading Loading @@ -2116,7 +2124,8 @@ tA2DP_STATUS bta_av_co_audio_getconfig(tBTA_AV_HNDL bta_av_handle, uint16_t peer_uuid = bta_av_co_cb.FindPeerUuid(bta_av_handle); APPL_TRACE_DEBUG("%s: peer %s bta_av_handle=0x%x peer_uuid=0x%x", __func__, peer_address.ToString().c_str(), bta_av_handle, peer_uuid); ADDRESS_TO_LOGGABLE_CSTR(peer_address), bta_av_handle, peer_uuid); switch (peer_uuid) { case UUID_SERVCLASS_AUDIO_SOURCE: Loading @@ -2131,8 +2140,8 @@ tA2DP_STATUS bta_av_co_audio_getconfig(tBTA_AV_HNDL bta_av_handle, break; } APPL_TRACE_ERROR( "%s: peer %s : Invalid peer UUID: 0x%x for bta_av_handle 0x%x", __func__, peer_address.ToString().c_str(), peer_uuid, bta_av_handle); "%s: peer %s : Invalid peer UUID: 0x%x for bta_av_handle 0x%x", __func__, ADDRESS_TO_LOGGABLE_CSTR(peer_address), peer_uuid, bta_av_handle); return A2DP_FAIL; } Loading