Loading system/bta/le_audio/client.cc +1 −1 Original line number Diff line number Diff line Loading @@ -461,7 +461,7 @@ class LeAudioClientImpl : public LeAudioClient { group_id, ToString(group->GetState()).c_str(), ToString(group->GetTargetState()).c_str()); group->SetTargetState(AseState::BTA_LE_AUDIO_ASE_STATE_IDLE); group->CigClearCis(); group->PrintDebugState(); /* There is an issue with a setting up stream or any other operation which Loading system/bta/le_audio/le_audio_client_test.cc +45 −0 Original line number Diff line number Diff line Loading @@ -4585,4 +4585,49 @@ TEST_F(UnicastTest, HandleDatabaseOutOfSync) { Mock::VerifyAndClearExpectations(&mock_gatt_interface_); } TEST_F(UnicastTest, SpeakerStreamingTimeout) { const RawAddress test_address0 = GetTestAddress(0); int group_id = bluetooth::groups::kGroupUnknown; SetSampleDatabaseEarbudsValid( 1, test_address0, codec_spec_conf::kLeAudioLocationStereo, codec_spec_conf::kLeAudioLocationStereo, default_channel_cnt, default_channel_cnt, 0x0004, /* source sample freq 16khz */ false /*add_csis*/, true /*add_cas*/, true /*add_pacs*/, default_ase_cnt /*add_ascs_cnt*/, 1 /*set_size*/, 0 /*rank*/); EXPECT_CALL(mock_audio_hal_client_callbacks_, OnConnectionState(ConnectionState::CONNECTED, test_address0)) .Times(1); EXPECT_CALL(mock_audio_hal_client_callbacks_, OnGroupNodeStatus(test_address0, _, GroupNodeStatus::ADDED)) .WillOnce(DoAll(SaveArg<1>(&group_id))); ConnectLeAudio(test_address0); ASSERT_NE(group_id, bluetooth::groups::kGroupUnknown); // Start streaming uint8_t cis_count_out = 1; uint8_t cis_count_in = 0; // Audio sessions are started only when device gets active EXPECT_CALL(*mock_le_audio_source_hal_client_, Start(_, _)).Times(1); EXPECT_CALL(*mock_le_audio_sink_hal_client_, Start(_, _)).Times(1); LeAudioClient::Get()->GroupSetActive(group_id); StartStreaming(AUDIO_USAGE_MEDIA, AUDIO_CONTENT_TYPE_MUSIC, group_id); Mock::VerifyAndClearExpectations(&mock_audio_hal_client_callbacks_); Mock::VerifyAndClearExpectations(&mock_le_audio_source_hal_client_); SyncOnMainLoop(); // Verify Data transfer on one audio source cis TestAudioDataTransfer(group_id, cis_count_out, cis_count_in, 1920); state_machine_callbacks_->OnStateTransitionTimeout(group_id); /* No assigned cises should remain when transition remains in IDLE state */ auto group = streaming_groups.at(group_id); ASSERT_EQ(0, static_cast<int>(group->cises_.size())); } } // namespace le_audio Loading
system/bta/le_audio/client.cc +1 −1 Original line number Diff line number Diff line Loading @@ -461,7 +461,7 @@ class LeAudioClientImpl : public LeAudioClient { group_id, ToString(group->GetState()).c_str(), ToString(group->GetTargetState()).c_str()); group->SetTargetState(AseState::BTA_LE_AUDIO_ASE_STATE_IDLE); group->CigClearCis(); group->PrintDebugState(); /* There is an issue with a setting up stream or any other operation which Loading
system/bta/le_audio/le_audio_client_test.cc +45 −0 Original line number Diff line number Diff line Loading @@ -4585,4 +4585,49 @@ TEST_F(UnicastTest, HandleDatabaseOutOfSync) { Mock::VerifyAndClearExpectations(&mock_gatt_interface_); } TEST_F(UnicastTest, SpeakerStreamingTimeout) { const RawAddress test_address0 = GetTestAddress(0); int group_id = bluetooth::groups::kGroupUnknown; SetSampleDatabaseEarbudsValid( 1, test_address0, codec_spec_conf::kLeAudioLocationStereo, codec_spec_conf::kLeAudioLocationStereo, default_channel_cnt, default_channel_cnt, 0x0004, /* source sample freq 16khz */ false /*add_csis*/, true /*add_cas*/, true /*add_pacs*/, default_ase_cnt /*add_ascs_cnt*/, 1 /*set_size*/, 0 /*rank*/); EXPECT_CALL(mock_audio_hal_client_callbacks_, OnConnectionState(ConnectionState::CONNECTED, test_address0)) .Times(1); EXPECT_CALL(mock_audio_hal_client_callbacks_, OnGroupNodeStatus(test_address0, _, GroupNodeStatus::ADDED)) .WillOnce(DoAll(SaveArg<1>(&group_id))); ConnectLeAudio(test_address0); ASSERT_NE(group_id, bluetooth::groups::kGroupUnknown); // Start streaming uint8_t cis_count_out = 1; uint8_t cis_count_in = 0; // Audio sessions are started only when device gets active EXPECT_CALL(*mock_le_audio_source_hal_client_, Start(_, _)).Times(1); EXPECT_CALL(*mock_le_audio_sink_hal_client_, Start(_, _)).Times(1); LeAudioClient::Get()->GroupSetActive(group_id); StartStreaming(AUDIO_USAGE_MEDIA, AUDIO_CONTENT_TYPE_MUSIC, group_id); Mock::VerifyAndClearExpectations(&mock_audio_hal_client_callbacks_); Mock::VerifyAndClearExpectations(&mock_le_audio_source_hal_client_); SyncOnMainLoop(); // Verify Data transfer on one audio source cis TestAudioDataTransfer(group_id, cis_count_out, cis_count_in, 1920); state_machine_callbacks_->OnStateTransitionTimeout(group_id); /* No assigned cises should remain when transition remains in IDLE state */ auto group = streaming_groups.at(group_id); ASSERT_EQ(0, static_cast<int>(group->cises_.size())); } } // namespace le_audio