diff --git a/services/audio_engine/manager/include/hpae_policy_manager.h b/services/audio_engine/manager/include/hpae_policy_manager.h index aaaf3f6b663e882716381b4b1a334ea2878d1798..8a3d74236322f4f628796df6a7c3c4c3e7342ae6 100644 --- a/services/audio_engine/manager/include/hpae_policy_manager.h +++ b/services/audio_engine/manager/include/hpae_policy_manager.h @@ -25,6 +25,12 @@ namespace HPAE { class HpaePolicyManager { public: + HpaePolicyManager(const HpaePolicyManager&) = delete; + HpaePolicyManager &operator=(const HpaePolicyManager&) = delete; + + HpaePolicyManager(HpaePolicyManager&&) = delete; + HpaePolicyManager &operator=(HpaePolicyManager&&) = delete; + static HpaePolicyManager &GetInstance(); ~HpaePolicyManager(); // interfaces for render effect diff --git a/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp b/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp index 414e89f86e2d2e38dca83730df0f808d1f0e9d52..35a2a6fe0bf0a69ddb4cedf8fd2ac00c962f0a69 100644 --- a/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp +++ b/services/audio_engine/test/unittest/manager/hpae_manager_test.cpp @@ -335,11 +335,13 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerTest002, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); @@ -387,11 +389,13 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerTest003, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); @@ -440,10 +444,12 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerTest004, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); @@ -493,12 +499,14 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeRenderStreamManagerMoveTest001, TestSize.Leve hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->MoveSinkInputByIndexOrName(streamInfo.sessionId, 1, "Speaker_File1"); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->MoveSinkInputByIndexOrName(streamInfo.sessionId, 0, "Speaker_File"); @@ -679,10 +687,12 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeCaptureStreamManagerTest002, TestSize.Level1) hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->Release(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); @@ -780,12 +790,14 @@ HWTEST_F(HpaeManagerUnitTest, IHpaeCaptureStreamManagerMoveTest001, TestSize.Lev hpaeManager_->Pause(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_PAUSING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_PAUSED); hpaeManager_->MoveSourceOutputByIndexOrName(streamInfo.sessionId, 1, "mic1"); hpaeManager_->Stop(streamInfo.streamClassType, streamInfo.sessionId); WaitForMsgProcessing(hpaeManager_); EXPECT_EQ(hpaeManager_->GetSessionInfo(streamInfo.streamClassType, streamInfo.sessionId, sessionInfo), SUCCESS); + EXPECT_EQ(sessionInfo.state, HPAE_SESSION_STOPPING); EXPECT_EQ(statusChangeCb->GetStatus(), I_STATUS_STOPPED); hpaeManager_->MoveSourceOutputByIndexOrName(streamInfo.sessionId, 0, "mic"); diff --git a/services/audio_service/server/src/hpae_adapter_manager.cpp b/services/audio_service/server/src/hpae_adapter_manager.cpp index 891e3cb855529814ee2510c1a71de191e320d7df..caf5d2db59918be0648de3deaadea4b368cd3fe2 100644 --- a/services/audio_service/server/src/hpae_adapter_manager.cpp +++ b/services/audio_service/server/src/hpae_adapter_manager.cpp @@ -97,6 +97,10 @@ int32_t HpaeAdapterManager::ReleaseRender(uint32_t streamIndex) std::shared_ptr currentRender = rendererStreamMap_[streamIndex]; rendererStreamMap_[streamIndex] = nullptr; rendererStreamMap_.erase(streamIndex); + AUDIO_INFO_LOG("rendererStreamMap_.size() : %{public}zu", rendererStreamMap_.size()); + if (rendererStreamMap_.size() == 0) { + AUDIO_INFO_LOG("Release the last stream"); + } lock.unlock(); if (currentRender->Release() < 0) { @@ -104,11 +108,6 @@ int32_t HpaeAdapterManager::ReleaseRender(uint32_t streamIndex) return ERR_OPERATION_FAILED; } - AUDIO_INFO_LOG("rendererStreamMap_.size() : %{public}zu", rendererStreamMap_.size()); - if (rendererStreamMap_.size() == 0) { - AUDIO_INFO_LOG("Release the last stream"); - } - if (isHighResolutionExist_ && highResolutionIndex_ == streamIndex) { isHighResolutionExist_ = false; } diff --git a/services/audio_service/test/unittest/capturer_in_server_second_unit_test.cpp b/services/audio_service/test/unittest/capturer_in_server_second_unit_test.cpp index 02349dfbaea077410109c24b44203b741e7d13bd..37a4c0245642e8df4ca9a8faf43c91347678bccd 100644 --- a/services/audio_service/test/unittest/capturer_in_server_second_unit_test.cpp +++ b/services/audio_service/test/unittest/capturer_in_server_second_unit_test.cpp @@ -697,7 +697,7 @@ HWTEST_F(CapturerInServerSecondUnitTest, CapturerInServerSecondUnitTest_038, Tes capturerInServer_->isMicIndicatorOn_ = true; ret = capturerInServer_->TurnOffMicIndicator(capturerState); - EXPECT_EQ(false, ret); + EXPECT_EQ(ret, true); } /**