diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index f97dac19016c8a11c3bbbbce7e6ef1b72cfa8a16..eb18089a2f10afc5ca6136bbdb146db8fb369581 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -590,11 +590,8 @@ int32_t DAudioSourceDev::HandleNotifyRPC(const AudioEvent &event) } cJSON *jParam = cJSON_Parse(event.content.c_str()); CHECK_NULL_RETURN(jParam, ERR_DH_AUDIO_NULLPTR); - if (!CJsonParamCheck(jParam, { KEY_RESULT })) { - DHLOGE("Not found the keys of result."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_FAILED; - } + CHECK_AND_FREE_RETURN_RET_LOG(!CJsonParamCheck(jParam, { KEY_RESULT }), ERR_DH_AUDIO_FAILED, jParam, + "Not found the keys of result."); rpcResult_ = cJSON_GetObjectItem(jParam, KEY_RESULT)->valueint; DHLOGD("Notify RPC event: %{public}d, result: %{public}d.", event.type, rpcResult_); @@ -961,21 +958,14 @@ int32_t DAudioSourceDev::CreateSpkEngine(std::shared_ptr speaker) CHECK_NULL_RETURN(speaker, ERR_DH_AUDIO_NULLPTR); int32_t ret = speaker->InitSenderEngine(DAudioSourceManager::GetInstance().getSenderProvider()); DaudioRadar::GetInstance().ReportSpeakerOpenProgress("InitSenderEngine", SpeakerOpen::INIT_ENGINE, ret); - if (ret != DH_SUCCESS) { - DHLOGE("Speaker init sender Engine, error code %{public}d.", ret); - return ret; - } + CHECK_AND_RETURN_RET_LOG(ret != DH_SUCCESS, ret, "Speaker init sender Engine, error code %{public}d.", ret); + ret = speaker->InitCtrlTrans(); DaudioRadar::GetInstance().ReportSpeakerOpenProgress("InitCtrlTrans", SpeakerOpen::TRANS_CONTROL, ret); - if (ret != DH_SUCCESS) { - DHLOGE("Speaker InitCtrlTrans, error code %{public}d.", ret); - return ret; - } + CHECK_AND_RETURN_RET_LOG(ret != DH_SUCCESS, ret, "Speaker InitCtrlTrans, error code %{public}d.", ret); + ret = WaitForRPC(NOTIFY_OPEN_CTRL_RESULT); - if (ret != DH_SUCCESS) { - DHLOGE("Speaker init sender engine, create ctrl error."); - return ret; - } + CHECK_AND_RETURN_RET_LOG(ret != DH_SUCCESS, ret, "Speaker init sender engine, create ctrl error."); return DH_SUCCESS; } @@ -1137,32 +1127,21 @@ int32_t DAudioSourceDev::TaskCloseDSpeaker(const std::string &args) int32_t DAudioSourceDev::CreateMicEngine(std::shared_ptr mic) { - if (mic == nullptr) { - DHLOGE("Mic device not init"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(mic, ERR_DH_AUDIO_NULLPTR); + int32_t ret = mic->InitReceiverEngine(DAudioSourceManager::GetInstance().getReceiverProvider()); DaudioRadar::GetInstance().ReportMicOpenProgress("InitReceiverEngine", MicOpen::INIT_ENGINE, ret); - if (ret != DH_SUCCESS) { - DHLOGE("Init receiver engine failed."); - return ret; - } + CHECK_AND_RETURN_RET_LOG(ret != DH_SUCCESS, ret, "Init receiver engine failed."); + ret = mic->InitCtrlTrans(); DaudioRadar::GetInstance().ReportMicOpenProgress("InitCtrlTrans", MicOpen::TRANS_CONTROL, ret); - if (ret != DH_SUCCESS) { - DHLOGE("mic InitCtrlTrans, error code %{public}d.", ret); - return ret; - } + CHECK_AND_RETURN_RET_LOG(ret != DH_SUCCESS, ret, "Mic InitCtrlTrans, error code %{public}d.", ret); + ret = WaitForRPC(NOTIFY_OPEN_CTRL_RESULT); - if (ret != DH_SUCCESS) { - DHLOGE("Mic init sender engine, create ctrl error."); - return ret; - } + CHECK_AND_RETURN_RET_LOG(ret != DH_SUCCESS, ret, "Mic init sender engine, create ctrl error."); + ret = mic->SetUp(); - if (ret != DH_SUCCESS) { - DHLOGE("Mic setup failed."); - return ret; - } + CHECK_AND_RETURN_RET_LOG(ret != DH_SUCCESS, ret, "Mic setup failed."); return DH_SUCCESS; } diff --git a/services/audiomanager/managersource/src/dmic_dev.cpp b/services/audiomanager/managersource/src/dmic_dev.cpp index daac1b46213716f3bbf4fa82b90b0aa6c3eb03d0..e56a4b6b37648df722f1acbcab728273d5c3ee03 100644 --- a/services/audiomanager/managersource/src/dmic_dev.cpp +++ b/services/audiomanager/managersource/src/dmic_dev.cpp @@ -59,10 +59,8 @@ void DMicDev::OnEngineTransDataAvailable(const std::shared_ptr &audio { std::lock_guard lock(ringbufferMutex_); CHECK_NULL_VOID(ringBuffer_); - if (ringBuffer_->RingBufferInsert(audioData->Data(), static_cast(audioData->Capacity())) != DH_SUCCESS) { - DHLOGE("Insert ringbuffer failed."); - return; - } + CHECK_AND_RETURN_LOG(ringBuffer_->RingBufferInsert(audioData->Data(), + static_cast(audioData->Capacity())) != DH_SUCCESS, "RingBufferInsert failed."); DHLOGD("ringbuffer insert one"); } @@ -100,10 +98,7 @@ void DMicDev::SendToProcess(const std::shared_ptr &audioData) DHLOGD("On Engine Data available"); if (echoCannelOn_) { #ifdef ECHO_CANNEL_ENABLE - if (echoManager_ == nullptr) { - DHLOGE("Echo manager is nullptr."); - return; - } + CHECK_NULL_VOID(echoManager_); echoManager_->OnMicDataReceived(audioData); #endif } else { @@ -428,10 +423,7 @@ int32_t DMicDev::Stop() CHECK_NULL_RETURN(echoManager_, DH_SUCCESS); ret = echoManager_->Stop(); DaudioRadar::GetInstance().ReportMicCloseProgress("Stop", MicClose::STOP_TRANS, ret); - if (ret != DH_SUCCESS) { - DHLOGE("Echo manager stop failed. ret: %{public}d.", ret); - return ret; - } + CHECK_AND_RETURN_RET_LOG(ret != DH_SUCCESS, ret, "Echo manager stop failed, ret: %{public}d.", ret); #endif return DH_SUCCESS; } diff --git a/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp b/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp index 003fb4af483e9651e75b19b6ff8badd3466ce2c8..d4230f8038cc68484bfe5da7ee11fea1147c1e8f 100644 --- a/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp +++ b/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp @@ -183,9 +183,24 @@ HWTEST_F(DAudioSourceDevTest, NotifyEvent_001, TestSize.Level1) EXPECT_EQ(DH_SUCCESS, sourceDev_->AwakeAudioDev()); AudioEvent event = AudioEvent(EVENT_UNKNOWN, ""); sourceDev_->NotifyEvent(event); - event.type = VOLUME_SET; sourceDev_->NotifyEvent(event); + event.type = OPEN_SPEAKER; + sourceDev_->NotifyEvent(event); + event.type = CLOSE_SPEAKER; + sourceDev_->NotifyEvent(event); + event.type = SPEAKER_OPENED; + sourceDev_->NotifyEvent(event); + event.type = SPEAKER_CLOSED; + sourceDev_->NotifyEvent(event); + event.type = NOTIFY_OPEN_SPEAKER_RESULT; + sourceDev_->NotifyEvent(event); + event.type = NOTIFY_CLOSE_SPEAKER_RESULT; + sourceDev_->NotifyEvent(event); + event.type = NOTIFY_OPEN_MIC_RESULT; + sourceDev_->NotifyEvent(event); + event.type = NOTIFY_CLOSE_MIC_RESULT; + sourceDev_->NotifyEvent(event); sourceDev_->SleepAudioDev(); } @@ -482,9 +497,9 @@ HWTEST_F(DAudioSourceDevTest, OnEnableTaskResult_001, TestSize.Level1) { sourceDev_->OnEnableTaskResult(DH_SUCCESS, "", FUNC_NAME); sourceDev_->OnDisableTaskResult(DH_SUCCESS, "", FUNC_NAME); - std::string tempLongStr(DAUDIO_MAX_JSON_LEN + 1, 'a'); sourceDev_->OnEnableTaskResult(DH_SUCCESS, tempLongStr, FUNC_NAME); + sourceDev_->OnDisableTaskResult(DH_SUCCESS, tempLongStr, FUNC_NAME); cJSON *jParam = cJSON_CreateObject(); CHECK_NULL_VOID(jParam); @@ -534,7 +549,12 @@ HWTEST_F(DAudioSourceDevTest, EnableDSpeaker_001, TestSize.Level1) sourceDev_->deviceMap_[dhId] = speaker; EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->EnableDSpeaker(dhId, ATTRS)); sourceDev_->deviceMap_[dhId] = nullptr; - + std::string stra = "123"; + std::string strb = "1"; + sourceDev_->isFull_ = true; + sourceDev_->NotifyFwkRunning(stra, strb); + sourceDev_->isFull_ = true; + sourceDev_->NotifyFwkRunning(stra, strb); EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->EnableDSpeaker(dhId, ATTRS)); } diff --git a/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp b/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp index 815fe58abbd66ad93458d0078199a41700fea240..93802e4adce0858e8b5ff4e1224841e4a7a23afc 100644 --- a/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp +++ b/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp @@ -52,20 +52,29 @@ HWTEST_F(DMicDevTest, InitReceiverEngine_001, TestSize.Level1) IAVEngineProvider *providerPtr = nullptr; AVTransEvent event = { EventType::EVENT_START_SUCCESS, "", "" }; mic_->OnEngineTransEvent(event); + event.type = EventType::EVENT_STOP_SUCCESS; + mic_->OnEngineTransEvent(event); + event.type = EventType::EVENT_START_FAIL; + mic_->OnEngineTransEvent(event); + event.type = EventType::EVENT_CHANNEL_CLOSED; + mic_->OnEngineTransEvent(event); + event.type = EventType::EVENT_START_SUCCESS; + mic_->OnEngineTransEvent(event); + std::shared_ptr message = nullptr; mic_->OnEngineTransMessage(message); size_t size = 4096; auto audioData = std::make_shared(size); mic_->OnEngineTransDataAvailable(audioData); + mic_->SendToProcess(audioData); + mic_->echoCannelOn_ = true; + mic_->OnEngineTransDataAvailable(audioData); + mic_->SendToProcess(audioData); + mic_->echoCannelOn_ = false; + mic_->SendToProcess(audioData); EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, mic_->InitReceiverEngine(providerPtr)); mic_->micTrans_ = std::make_shared(); EXPECT_EQ(DH_SUCCESS, mic_->InitReceiverEngine(providerPtr)); - - event = { EventType::EVENT_STOP_SUCCESS, "", "" }; - mic_->OnEngineTransEvent(event); - - mic_->echoCannelOn_ = true; - mic_->OnEngineTransDataAvailable(audioData); } /** @@ -426,6 +435,18 @@ HWTEST_F(DMicDevTest, SendMessage_001, TestSize.Level1) mic_->micTrans_ = std::make_shared(); mic_->InitCtrlTrans(); EXPECT_EQ(DH_SUCCESS, mic_->SendMessage(OPEN_MIC, content, dstDevId)); + AVTransEvent event = { EventType::EVENT_START_SUCCESS, "", "" }; + mic_->OnCtrlTransEvent(event); + event.type = EventType::EVENT_STOP_SUCCESS; + mic_->OnCtrlTransEvent(event); + event.type = EventType::EVENT_START_FAIL; + mic_->OnCtrlTransEvent(event); + event.type = EventType::EVENT_CHANNEL_CLOSED; + mic_->OnCtrlTransEvent(event); + event.type = EventType::EVENT_START_SUCCESS; + mic_->OnCtrlTransEvent(event); + mic_->micTrans_ = nullptr; + EXPECT_NE(DH_SUCCESS, mic_->InitCtrlTrans()); } /**