diff --git a/services/audioclient/micclient/include/dmic_client.h b/services/audioclient/micclient/include/dmic_client.h index a6283b03ff9e58f87f6bf4638a318282d587d592..af19b5346e480bf23b2e8280dd27b8d07cc4c775 100644 --- a/services/audioclient/micclient/include/dmic_client.h +++ b/services/audioclient/micclient/include/dmic_client.h @@ -79,7 +79,6 @@ private: std::weak_ptr eventCallback_; std::unique_ptr audioCapturer_ = nullptr; std::shared_ptr micTrans_ = nullptr; - bool engineFlag_ = false; }; } // DistributedHardware } // OHOS diff --git a/services/audioclient/micclient/src/dmic_client.cpp b/services/audioclient/micclient/src/dmic_client.cpp index 150191fa941be914f69081b7a32e3a4d344a0fc4..d83f4a31a70467aa2ca8ece4a29f48ebc0368afe 100644 --- a/services/audioclient/micclient/src/dmic_client.cpp +++ b/services/audioclient/micclient/src/dmic_client.cpp @@ -59,16 +59,13 @@ void DMicClient::OnEngineTransMessage(const std::shared_ptr &mes int32_t DMicClient::InitSenderEngine(IAVEngineProvider *providerPtr) { DHLOGI("Init SenderEngine"); - IsParamEnabled(AUDIO_ENGINE_FLAG, engineFlag_); - if (engineFlag_) { - if (micTrans_ == nullptr) { - micTrans_ = std::make_shared(devId_, shared_from_this()); - } - int32_t ret = micTrans_->InitEngine(providerPtr); - if (ret != DH_SUCCESS) { - DHLOGE("Initialize av sender adapter failed. micclient"); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } + if (micTrans_ == nullptr) { + micTrans_ = std::make_shared(devId_, shared_from_this()); + } + int32_t ret = micTrans_->InitEngine(providerPtr); + if (ret != DH_SUCCESS) { + DHLOGE("Initialize av sender adapter failed. micclient"); + return ERR_DH_AUDIO_TRANS_NULL_VALUE; } return DH_SUCCESS; } @@ -130,10 +127,6 @@ int32_t DMicClient::SetUp(const AudioParam ¶m) return ERR_DH_AUDIO_CLIENT_CREATE_CAPTURER_FAILED; } - // Use a unified process regardless of whether it relies on transport components or not - if (!engineFlag_) { - micTrans_ = std::make_shared(devId_); - } if (micTrans_ == nullptr) { DHLOGE("mic trans in engine should be init by dev."); return ERR_DH_AUDIO_NULLPTR; diff --git a/services/audioclient/spkclient/include/dspeaker_client.h b/services/audioclient/spkclient/include/dspeaker_client.h index 0929ef98d6750f58897b5ab39949f27769e666fe..c213c0ac2d493cdf731ecc7e31badbafd45805f7 100644 --- a/services/audioclient/spkclient/include/dspeaker_client.h +++ b/services/audioclient/spkclient/include/dspeaker_client.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -48,6 +49,7 @@ class DSpeakerClient : public IAudioDataTransCallback, public ISpkClient, public AVReceiverTransportCallback, public AudioStandard::VolumeKeyEventCallback, public AudioStandard::AudioRendererCallback, + public AudioStandard::AudioRendererWriteCallback, public std::enable_shared_from_this { public: DSpeakerClient(const std::string &devId, const std::shared_ptr &callback) @@ -75,6 +77,7 @@ public: void OnEngineTransMessage(const std::shared_ptr &message) override; void OnEngineTransDataAvailable(const std::shared_ptr &audioData) override; + void OnWriteData(size_t length) override; private: std::string GetVolumeLevel(); void PlayThreadRunning(); @@ -104,7 +107,6 @@ private: std::unique_ptr audioRenderer_ = nullptr; std::shared_ptr speakerTrans_ = nullptr; std::weak_ptr eventCallback_; - bool engineFlag_ = false; }; } // DistributedHardware } // OHOS diff --git a/services/audioclient/spkclient/src/dspeaker_client.cpp b/services/audioclient/spkclient/src/dspeaker_client.cpp index a1522a99e337dc206b514dc5f1a8a0f46fd1fe15..8302bbe80edd2c0316ca4a68cfd9275a972a0eea 100644 --- a/services/audioclient/spkclient/src/dspeaker_client.cpp +++ b/services/audioclient/spkclient/src/dspeaker_client.cpp @@ -60,16 +60,13 @@ void DSpeakerClient::OnEngineTransDataAvailable(const std::shared_ptr int32_t DSpeakerClient::InitReceiverEngine(IAVEngineProvider *providerPtr) { DHLOGI("InitReceiverEngine enter."); - IsParamEnabled(AUDIO_ENGINE_FLAG, engineFlag_); - if (engineFlag_) { - if (speakerTrans_ == nullptr) { - speakerTrans_ = std::make_shared(devId_, shared_from_this()); - } - int32_t ret = speakerTrans_->InitEngine(providerPtr); - if (ret != DH_SUCCESS) { - DHLOGE("Initialize av receiver adapter failed spkclient."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } + if (speakerTrans_ == nullptr) { + speakerTrans_ = std::make_shared(devId_, shared_from_this()); + } + int32_t ret = speakerTrans_->InitEngine(providerPtr); + if (ret != DH_SUCCESS) { + DHLOGE("Initialize av receiver adapter failed spkclient."); + return ERR_DH_AUDIO_TRANS_NULL_VALUE; } return DH_SUCCESS; } @@ -91,7 +88,7 @@ int32_t DSpeakerClient::CreateAudioRenderer(const AudioParam ¶m) { static_cast(audioParam_.renderOpts.contentType), static_cast(audioParam_.renderOpts.streamUsage), - 0, + audioParam_.renderOpts.renderFlags == MMAP_MODE ? AudioStandard::STREAM_FLAG_FAST : 0, } }; std::lock_guard lck(devMtx_); @@ -101,9 +98,50 @@ int32_t DSpeakerClient::CreateAudioRenderer(const AudioParam ¶m) return ERR_DH_AUDIO_CLIENT_CREATE_RENDER_FAILED; } audioRenderer_ ->SetRendererCallback(shared_from_this()); + if (audioParam_.renderOpts.renderFlags == MMAP_MODE) { + int32_t ret = audioRenderer_->SetRendererWriteCallback(shared_from_this()); + if (ret != DH_SUCCESS) { + DHLOGE("Client save write callback failed."); + return ERR_DH_AUDIO_CLIENT_CREATE_RENDER_FAILED; + } + } return DH_SUCCESS; } +void DSpeakerClient::OnWriteData(size_t length) +{ + AudioStandard::BufferDesc bufDesc; + if (audioRenderer_ == nullptr) { + DHLOGE("AudioRenderer is nullptr."); + return; + } + int32_t ret = audioRenderer_->GetBufferDesc(bufDesc); + if (ret != DH_SUCCESS || bufDesc.buffer == nullptr || bufDesc.bufLength == 0) { + DHLOGE("Get buffer desc failed."); + return; + } + std::shared_ptr audioData = nullptr; + { + std::unique_lock spkLck(dataQueueMtx_); + dataQueueCond_.wait_for(spkLck, std::chrono::milliseconds(REQUEST_DATA_WAIT), + [this]() { return !dataQueue_.empty(); }); + if (dataQueue_.empty()) { + return; + } + audioData = dataQueue_.front(); + dataQueue_.pop(); + DHLOGD("Pop spk data, dataQueue size: %d.", dataQueue_.size()); + } + if (audioData->Capacity() != bufDesc.bufLength) { + DHLOGE("Audio data length is not equal to buflength. datalength: %d, bufLength: %d", + audioData->Capacity(), bufDesc.bufLength); + } + if (memcpy_s(bufDesc.buffer, bufDesc.bufLength, audioData->Data(), audioData->Capacity()) != EOK) { + DHLOGE("Copy audio data failed."); + } + audioRenderer_->Enqueue(bufDesc); +} + int32_t DSpeakerClient::SetUp(const AudioParam ¶m) { int32_t ret = CreateAudioRenderer(param); @@ -111,9 +149,6 @@ int32_t DSpeakerClient::SetUp(const AudioParam ¶m) DHLOGE("Set up failed, Create Audio renderer failed."); return ret; } - if (!engineFlag_) { - speakerTrans_ = std::make_shared(devId_); - } if (speakerTrans_ == nullptr) { DHLOGE("Speaker trans should be init by dev."); return ERR_DH_AUDIO_NULLPTR; @@ -189,8 +224,10 @@ int32_t DSpeakerClient::StartRender() "daudio renderer start failed."); return ERR_DH_AUDIO_CLIENT_RENDER_STARTUP_FAILURE; } - isRenderReady_.store(true); - renderDataThread_ = std::thread(&DSpeakerClient::PlayThreadRunning, this); + if (audioParam_.renderOpts.renderFlags != MMAP_MODE) { + isRenderReady_.store(true); + renderDataThread_ = std::thread(&DSpeakerClient::PlayThreadRunning, this); + } clientStatus_ = AudioStatus::STATUS_START; return DH_SUCCESS; } @@ -213,9 +250,11 @@ int32_t DSpeakerClient::StopRender() } FlushJitterQueue(); - isRenderReady_.store(false); - if (renderDataThread_.joinable()) { - renderDataThread_.join(); + if (audioParam_.renderOpts.renderFlags != MMAP_MODE) { + isRenderReady_.store(false); + if (renderDataThread_.joinable()) { + renderDataThread_.join(); + } } if (!audioRenderer_->Stop()) { @@ -484,9 +523,11 @@ void DSpeakerClient::Pause() { DHLOGI("Pause and flush"); FlushJitterQueue(); - isRenderReady_.store(false); - if (renderDataThread_.joinable()) { - renderDataThread_.join(); + if (audioParam_.renderOpts.renderFlags != MMAP_MODE) { + isRenderReady_.store(false); + if (renderDataThread_.joinable()) { + renderDataThread_.join(); + } } if (speakerTrans_ == nullptr || speakerTrans_->Pause() != DH_SUCCESS) { @@ -505,8 +546,10 @@ void DSpeakerClient::ReStart() if (speakerTrans_ == nullptr || speakerTrans_->Restart(audioParam_, audioParam_) != DH_SUCCESS) { DHLOGE("Speaker trans Restart failed."); } - isRenderReady_.store(true); - renderDataThread_ = std::thread(&DSpeakerClient::PlayThreadRunning, this); + if (audioParam_.renderOpts.renderFlags != MMAP_MODE) { + isRenderReady_.store(true); + renderDataThread_ = std::thread(&DSpeakerClient::PlayThreadRunning, this); + } clientStatus_ = AudioStatus::STATUS_START; } diff --git a/services/audioclient/test/unittest/micclient/src/dmic_client_test.cpp b/services/audioclient/test/unittest/micclient/src/dmic_client_test.cpp index de349ce3a415d1143664b6e1a4606c2f43301325..cfe5d88e8ca274cc7b862bf7caedb5f1e37855fb 100644 --- a/services/audioclient/test/unittest/micclient/src/dmic_client_test.cpp +++ b/services/audioclient/test/unittest/micclient/src/dmic_client_test.cpp @@ -54,7 +54,6 @@ void DMicClientTest::TearDown() HWTEST_F(DMicClientTest, InitSenderEngine_001, TestSize.Level1) { IAVEngineProvider *providerPtr = nullptr; - micClient_->engineFlag_ = true; auto message = std::make_shared(); micClient_->OnEngineTransMessage(message); EXPECT_EQ(DH_SUCCESS, micClient_->InitSenderEngine(providerPtr)); diff --git a/services/audioclient/test/unittest/spkclient/src/dspeaker_client_test.cpp b/services/audioclient/test/unittest/spkclient/src/dspeaker_client_test.cpp index 4522c916880ed6c22e4ab94c5eac17263cdd789b..efd68bdd480f5491a205ddb7de11f95433318b32 100644 --- a/services/audioclient/test/unittest/spkclient/src/dspeaker_client_test.cpp +++ b/services/audioclient/test/unittest/spkclient/src/dspeaker_client_test.cpp @@ -58,7 +58,6 @@ void DSpeakerClientTest::TearDown() HWTEST_F(DSpeakerClientTest, InitReceiverEngine_001, TestSize.Level1) { IAVEngineProvider *providerPtr = nullptr; - speakerClient_->engineFlag_ = true; AVTransEvent event1 = { EventType::EVENT_START_SUCCESS, "", ""}; speakerClient_->OnEngineTransEvent(event1); @@ -102,7 +101,6 @@ HWTEST_F(DSpeakerClientTest, SetUp_001, TestSize.Level1) AudioParam audioParam; EXPECT_NE(DH_SUCCESS, speakerClient_->SetUp(audioParam)); EXPECT_EQ(ERR_DH_AUDIO_TRANS_ERROR, speakerClient_->SetUp(audioParam_)); - speakerClient_->engineFlag_ = true; speakerClient_->speakerTrans_ = nullptr; EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, speakerClient_->SetUp(audioParam)); EXPECT_EQ(ERR_DH_AUDIO_SA_STATUS_ERR, speakerClient_->Release()); diff --git a/services/audiomanager/managersink/include/daudio_sink_dev.h b/services/audiomanager/managersink/include/daudio_sink_dev.h index 2616ff769c19ced41c4439438379f0a95103d8a3..79183916b81a7170058efa3d8643a4c2a277b586 100644 --- a/services/audiomanager/managersink/include/daudio_sink_dev.h +++ b/services/audiomanager/managersink/include/daudio_sink_dev.h @@ -112,7 +112,6 @@ private: using DAudioSinkDevFunc = int32_t (DAudioSinkDev::*)(const AudioEvent &audioEvent); std::map memberFuncMap_; - bool engineFlag_ = false; std::atomic isSpkInUse_ = false; std::atomic isMicInUse_ = false; }; diff --git a/services/audiomanager/managersink/include/daudio_sink_manager.h b/services/audiomanager/managersink/include/daudio_sink_manager.h index 1b6b6f88f1368ef3e83b635645d499572dea53c0..4c898f0a3c99780c22e232cc8a29f494c5025ab6 100644 --- a/services/audiomanager/managersink/include/daudio_sink_manager.h +++ b/services/audiomanager/managersink/include/daudio_sink_manager.h @@ -73,7 +73,6 @@ private: IAVEngineProvider *rcvProviderPtr_ = nullptr; void *pSHandler_ = nullptr; void *pRHandler_ = nullptr; - bool engineFlag_ = false; }; } // DistributedHardware } // OHOS diff --git a/services/audiomanager/managersink/src/daudio_sink_dev.cpp b/services/audiomanager/managersink/src/daudio_sink_dev.cpp index 4e8831ca1cfa2f9f43370633b0273baca5ae662b..96882611a1d7db941d2358b7fbf84627a7cad41a 100644 --- a/services/audiomanager/managersink/src/daudio_sink_dev.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_dev.cpp @@ -52,7 +52,6 @@ DAudioSinkDev::DAudioSinkDev(const std::string &devId) : devId_(devId) memberFuncMap_[VOLUME_MUTE_SET] = &DAudioSinkDev::NotifySetMute; memberFuncMap_[VOLUME_CHANGE] = &DAudioSinkDev::NotifyVolumeChange; memberFuncMap_[CHANGE_PLAY_STATUS] = &DAudioSinkDev::NotifyPlayStatusChange; - IsParamEnabled(AUDIO_ENGINE_FLAG, engineFlag_); } DAudioSinkDev::~DAudioSinkDev() @@ -85,13 +84,13 @@ int32_t DAudioSinkDev::InitAVTransEngines(const ChannelState channelState, IAVEn DHLOGE("The channel type is invalid."); return ERR_DH_AUDIO_FAILED; } - if (engineFlag_ && channelState == ChannelState::MIC_CONTROL_OPENED) { + if (channelState == ChannelState::MIC_CONTROL_OPENED) { // only supports normal audio channel mode micClient_ = std::make_shared(devId_, shared_from_this()); micClient_->InitSenderEngine(providerPtr); } - if (engineFlag_ && channelState == ChannelState::SPK_CONTROL_OPENED) { + if (channelState == ChannelState::SPK_CONTROL_OPENED) { speakerClient_ = std::make_shared(devId_, shared_from_this()); speakerClient_->InitReceiverEngine(providerPtr); } @@ -345,31 +344,6 @@ int32_t DAudioSinkDev::NotifyPlayStatusChange(const AudioEvent &audioEvent) int32_t DAudioSinkDev::TaskOpenCtrlChannel(const std::string &args) { DHLOGI("Open ctrl channel."); - if (!engineFlag_) { - if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { - return ERR_DH_AUDIO_SA_PARAM_INVALID; - } - json jParam = json::parse(args, nullptr, false); - if (!JsonParamCheck(jParam, { KEY_DH_ID })) { - return ERR_DH_AUDIO_FAILED; - } - - if (audioCtrlMgr_ != nullptr && audioCtrlMgr_->IsOpened()) { - DHLOGD("Ctrl channel already opened."); - NotifySourceDev(NOTIFY_OPEN_CTRL_RESULT, jParam[KEY_DH_ID], DH_SUCCESS); - return DH_SUCCESS; - } - - audioCtrlMgr_ = std::make_shared(devId_, shared_from_this()); - int32_t ret = audioCtrlMgr_->SetUp(); - if (ret != DH_SUCCESS) { - DHLOGE("SetUp ctrl mgr failed, ret: %d.", ret); - NotifySourceDev(NOTIFY_OPEN_CTRL_RESULT, jParam[KEY_DH_ID], ERR_DH_AUDIO_FAILED); - return ret; - } - - NotifySourceDev(NOTIFY_OPEN_CTRL_RESULT, jParam[KEY_DH_ID], DH_SUCCESS); - } DHLOGI("Open ctrl channel success, notify open ctrl result."); return DH_SUCCESS; } @@ -377,23 +351,6 @@ int32_t DAudioSinkDev::TaskOpenCtrlChannel(const std::string &args) int32_t DAudioSinkDev::TaskCloseCtrlChannel(const std::string &args) { (void)args; - if (!engineFlag_) { - DHLOGD("Close ctrl channel."); - if (audioCtrlMgr_ == nullptr) { - DHLOGD("Ctrl channel already closed."); - return DH_SUCCESS; - } - - int32_t ret = audioCtrlMgr_->Stop(); - if (ret != DH_SUCCESS) { - DHLOGE("Stop ctrl mgr failed, ret: %d.", ret); - } - ret = audioCtrlMgr_->Release(); - if (ret != DH_SUCCESS) { - DHLOGE("Release ctrl mgr failed, ret: %d.", ret); - } - audioCtrlMgr_ = nullptr; - } DHLOGD("Close ctrl channel success."); return DH_SUCCESS; } @@ -416,24 +373,10 @@ int32_t DAudioSinkDev::TaskOpenDSpeaker(const std::string &args) return ret; } - if (engineFlag_ && speakerClient_ == nullptr) { + if (speakerClient_ == nullptr) { DHLOGE("speaker client should be init by dev."); return ERR_DH_AUDIO_NULLPTR; } - if (!engineFlag_ && speakerClient_ == nullptr) { -#ifdef DAUDIO_SUPPORT_DIRECT - if (audioParam.renderOpts.renderFlags == MMAP_MODE) { - DHLOGI("Try to mmap mode."); - speakerClient_ = std::make_shared(); - speakerClient_->SetAttrs(devId_, shared_from_this()); - } else { - DHLOGI("Try to normal mode."); - speakerClient_ = std::make_shared(devId_, shared_from_this()); - } -#else - speakerClient_ = std::make_shared(devId_, shared_from_this()); -#endif - } DHLOGI("Open speaker device."); ret = speakerClient_->SetUp(audioParam); if (ret != DH_SUCCESS) { @@ -454,32 +397,20 @@ int32_t DAudioSinkDev::TaskCloseDSpeaker(const std::string &args) DHLOGI("Close speaker device."); if (speakerClient_ == nullptr) { DHLOGE("Speaker client is null or already closed."); - if (!engineFlag_) { - NotifySourceDev(NOTIFY_CLOSE_SPEAKER_RESULT, spkDhId_, DH_SUCCESS); - } return DH_SUCCESS; } - bool closeStatus = true; int32_t ret = speakerClient_->StopRender(); if (ret != DH_SUCCESS) { DHLOGE("Stop speaker client failed, ret: %d.", ret); - closeStatus = false; } ret = speakerClient_->Release(); if (ret != DH_SUCCESS) { DHLOGE("Release speaker client failed, ret: %d.", ret); - closeStatus = false; } speakerClient_ = nullptr; - if (!engineFlag_) { - closeStatus ? NotifySourceDev(NOTIFY_CLOSE_SPEAKER_RESULT, spkDhId_, DH_SUCCESS) : - NotifySourceDev(NOTIFY_CLOSE_SPEAKER_RESULT, spkDhId_, ERR_DH_AUDIO_FAILED); - } isSpkInUse_.store(false); - if (engineFlag_) { - JudgeDeviceStatus(); - } + JudgeDeviceStatus(); DHLOGI("Close speaker device task excute success."); return DH_SUCCESS; } @@ -501,11 +432,7 @@ int32_t DAudioSinkDev::TaskOpenDMic(const std::string &args) DHLOGE("Get audio param from json failed, error code %d.", ret); return ret; } - if (engineFlag_ && micClient_ == nullptr) { - DHLOGE("Mic client should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } - if (!engineFlag_ && micClient_ == nullptr) { + if (micClient_ == nullptr) { #ifdef DAUDIO_SUPPORT_DIRECT if (audioParam.captureOpts.capturerFlags == MMAP_MODE) { DHLOGI("Try to mmap mode."); @@ -543,32 +470,20 @@ int32_t DAudioSinkDev::TaskCloseDMic(const std::string &args) DHLOGI("Close mic device."); if (micClient_ == nullptr) { DHLOGE("Mic client is null or already closed."); - if (!engineFlag_) { - NotifySourceDev(NOTIFY_CLOSE_MIC_RESULT, micDhId_, DH_SUCCESS); - } return DH_SUCCESS; } - bool closeStatus = true; int32_t ret = micClient_->StopCapture(); if (ret != DH_SUCCESS) { DHLOGE("Stop mic client failed, ret: %d.", ret); - closeStatus = false; } ret = micClient_->Release(); if (ret != DH_SUCCESS) { DHLOGE("Release mic client failed, ret: %d.", ret); - closeStatus = false; } micClient_ = nullptr; - if (!engineFlag_) { - closeStatus ? NotifySourceDev(NOTIFY_CLOSE_MIC_RESULT, micDhId_, DH_SUCCESS) : - NotifySourceDev(NOTIFY_CLOSE_MIC_RESULT, micDhId_, ERR_DH_AUDIO_FAILED); - } isMicInUse_.store(false); - if (engineFlag_) { - JudgeDeviceStatus(); - } + JudgeDeviceStatus(); DHLOGI("Close mic device task excute success."); return DH_SUCCESS; } @@ -653,29 +568,17 @@ int32_t DAudioSinkDev::TaskPlayStatusChange(const std::string &args) int32_t DAudioSinkDev::SendAudioEventToRemote(const AudioEvent &event) { - if (!engineFlag_) { - if (audioCtrlMgr_ == nullptr) { - DHLOGE("Audio ctrl mgr not init."); - return ERR_DH_AUDIO_NULLPTR; - } - int32_t ret = audioCtrlMgr_->SendAudioEvent(event); - if (ret != DH_SUCCESS) { - DHLOGE("Task send audio event to remote failed."); - return ERR_DH_AUDIO_NULLPTR; - } - } else { - // because: type: VOLUME_CHANGE / AUDIO_FOCUS_CHANGE / AUDIO_RENDER_STATE_CHANGE - // so speakerClient - if (speakerClient_ == nullptr) { - DHLOGE("Audio ctrl mgr not init."); - return ERR_DH_AUDIO_NULLPTR; - } - int32_t ret = speakerClient_->SendMessage(static_cast(event.type), - event.content, devId_); - if (ret != DH_SUCCESS) { - DHLOGE("Task send message to remote failed."); - return ERR_DH_AUDIO_NULLPTR; - } + // because: type: VOLUME_CHANGE / AUDIO_FOCUS_CHANGE / AUDIO_RENDER_STATE_CHANGE + // so speakerClient + if (speakerClient_ == nullptr) { + DHLOGE("Audio ctrl mgr not init."); + return ERR_DH_AUDIO_NULLPTR; + } + int32_t ret = speakerClient_->SendMessage(static_cast(event.type), + event.content, devId_); + if (ret != DH_SUCCESS) { + DHLOGE("Task send message to remote failed."); + return ERR_DH_AUDIO_NULLPTR; } return DH_SUCCESS; } @@ -709,21 +612,16 @@ void DAudioSinkDev::NotifySourceDev(const AudioEventType type, const std::string jEvent[KEY_EVENT_TYPE] = type; jEvent[KEY_RANDOM_TASK_CODE] = std::to_string(randomTaskCode); - if (!engineFlag_) { - DHLOGD("notify source dev, random task code: %s", std::to_string(randomTaskCode).c_str()); - DAudioSinkManager::GetInstance().DAudioNotify(devId_, dhId, type, jEvent.dump()); - } else { - DHLOGD("Notify source dev, new engine, random task code:%s", std::to_string(randomTaskCode).c_str()); - if (type == NOTIFY_OPEN_CTRL_RESULT || type == NOTIFY_CLOSE_CTRL_RESULT) { - DHLOGE("In new engine mode, ctrl is not allowed."); - return; - } - if (speakerClient_ != nullptr) { - speakerClient_->SendMessage(static_cast(type), jEvent.dump(), devId_); - } - if (micClient_ != nullptr) { - micClient_->SendMessage(static_cast(type), jEvent.dump(), devId_); - } + DHLOGD("Notify source dev, new engine, random task code:%s", std::to_string(randomTaskCode).c_str()); + if (type == NOTIFY_OPEN_CTRL_RESULT || type == NOTIFY_CLOSE_CTRL_RESULT) { + DHLOGE("In new engine mode, ctrl is not allowed."); + return; + } + if (speakerClient_ != nullptr) { + speakerClient_->SendMessage(static_cast(type), jEvent.dump(), devId_); + } + if (micClient_ != nullptr) { + micClient_->SendMessage(static_cast(type), jEvent.dump(), devId_); } } diff --git a/services/audiomanager/managersink/src/daudio_sink_manager.cpp b/services/audiomanager/managersink/src/daudio_sink_manager.cpp index fa17858c70ab401b35d9151d3b68d532c67ab515..363adcb929b19a1a22cba1f12d8ea12e4c99e4ab 100644 --- a/services/audiomanager/managersink/src/daudio_sink_manager.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_manager.cpp @@ -68,43 +68,38 @@ int32_t DAudioSinkManager::Init() return ret; } - IsParamEnabled(AUDIO_ENGINE_FLAG, engineFlag_); - if (engineFlag_) { - ret = LoadAVReceiverEngineProvider(); - if (ret != DH_SUCCESS || rcvProviderPtr_ == nullptr) { - DHLOGE("Load av transport receiver engine provider failed."); - return ERR_DH_AUDIO_FAILED; - } - providerListener_ = std::make_shared(); - ret = rcvProviderPtr_->RegisterProviderCallback(providerListener_); - if (ret != DH_SUCCESS) { - DHLOGE("Register av transport receiver Provider Callback failed."); - return ERR_DH_AUDIO_FAILED; - } - DHLOGI("LoadAVReceiverEngineProvider success."); + ret = LoadAVReceiverEngineProvider(); + if (ret != DH_SUCCESS || rcvProviderPtr_ == nullptr) { + DHLOGE("Load av transport receiver engine provider failed."); + return ERR_DH_AUDIO_FAILED; + } + providerListener_ = std::make_shared(); + ret = rcvProviderPtr_->RegisterProviderCallback(providerListener_); + if (ret != DH_SUCCESS) { + DHLOGE("Register av transport receiver Provider Callback failed."); + return ERR_DH_AUDIO_FAILED; + } + DHLOGI("LoadAVReceiverEngineProvider success."); - ret = LoadAVSenderEngineProvider(); - if (ret != DH_SUCCESS || sendProviderPtr_ == nullptr) { - DHLOGI("Load av transport sender engine provider failed."); - return ERR_DH_AUDIO_FAILED; - } - ret = sendProviderPtr_->RegisterProviderCallback(providerListener_); - if (ret != DH_SUCCESS) { - DHLOGE("Register av transport sender Provider Callback failed."); - return ERR_DH_AUDIO_FAILED; - } - DHLOGI("LoadAVSenderEngineProvider success."); + ret = LoadAVSenderEngineProvider(); + if (ret != DH_SUCCESS || sendProviderPtr_ == nullptr) { + DHLOGI("Load av transport sender engine provider failed."); + return ERR_DH_AUDIO_FAILED; } + ret = sendProviderPtr_->RegisterProviderCallback(providerListener_); + if (ret != DH_SUCCESS) { + DHLOGE("Register av transport sender Provider Callback failed."); + return ERR_DH_AUDIO_FAILED; + } + DHLOGI("LoadAVSenderEngineProvider success."); return DH_SUCCESS; } int32_t DAudioSinkManager::UnInit() { DHLOGI("UnInit audio sink manager."); - if (engineFlag_) { - UnloadAVSenderEngineProvider(); - UnloadAVReceiverEngineProvider(); - } + UnloadAVSenderEngineProvider(); + UnloadAVReceiverEngineProvider(); { std::lock_guard remoteSvrLock(remoteSvrMutex_); sourceServiceMap_.clear(); @@ -182,23 +177,21 @@ int32_t DAudioSinkManager::CreateAudioDevice(const std::string &devId) } } - if (engineFlag_) { - int32_t ret = ERR_DH_AUDIO_FAILED; - if (channelState_ == ChannelState::SPK_CONTROL_OPENED) { - ret = dev->InitAVTransEngines(ChannelState::SPK_CONTROL_OPENED, rcvProviderPtr_); - } - if (channelState_ == ChannelState::MIC_CONTROL_OPENED) { - ret = dev->InitAVTransEngines(ChannelState::MIC_CONTROL_OPENED, sendProviderPtr_); - } - if (ret != DH_SUCCESS) { - DHLOGE("Init av transport sender engine failed."); - dev->SleepAudioDev(); - { - std::lock_guard lock(devMapMutex_); - audioDevMap_.erase(devId); - } - return ERR_DH_AUDIO_FAILED; + int32_t ret = ERR_DH_AUDIO_FAILED; + if (channelState_ == ChannelState::SPK_CONTROL_OPENED) { + ret = dev->InitAVTransEngines(ChannelState::SPK_CONTROL_OPENED, rcvProviderPtr_); + } + if (channelState_ == ChannelState::MIC_CONTROL_OPENED) { + ret = dev->InitAVTransEngines(ChannelState::MIC_CONTROL_OPENED, sendProviderPtr_); + } + if (ret != DH_SUCCESS) { + DHLOGE("Init av transport sender engine failed."); + dev->SleepAudioDev(); + { + std::lock_guard lock(devMapMutex_); + audioDevMap_.erase(devId); } + return ERR_DH_AUDIO_FAILED; } return DH_SUCCESS; } @@ -374,4 +367,4 @@ int32_t EngineProviderListener::OnProviderEvent(const AVTransEvent &event) return DH_SUCCESS; } } // namespace DistributedHardware -} // namespace OHOS \ No newline at end of file +} // namespace OHOS diff --git a/services/audiomanager/managersource/include/daudio_source_dev.h b/services/audiomanager/managersource/include/daudio_source_dev.h index 46e853b8498046f629cf62e9aa66d405d769b944..976a88a5ec215594f3ce444d567004aca45e58ea 100644 --- a/services/audiomanager/managersource/include/daudio_source_dev.h +++ b/services/audiomanager/managersource/include/daudio_source_dev.h @@ -139,7 +139,6 @@ private: using DAudioSourceDevFunc = int32_t (DAudioSourceDev::*)(const AudioEvent &audioEvent); std::map memberFuncMap_; std::map eventNotifyMap_; - bool engineFlag_ = false; }; } // DistributedHardware } // OHOS diff --git a/services/audiomanager/managersource/include/daudio_source_manager.h b/services/audiomanager/managersource/include/daudio_source_manager.h index 6a5b8c25e18346d5179c36a6b5e0024cab7c51b0..f0fedee37c3f16a60f095496324f4e2a0edb9634 100644 --- a/services/audiomanager/managersource/include/daudio_source_manager.h +++ b/services/audiomanager/managersource/include/daudio_source_manager.h @@ -79,7 +79,6 @@ private: IAVEngineProvider *rcvProviderPtr_ = nullptr; void *pSHandler_ = nullptr; void *pRHandler_ = nullptr; - bool engineFlag_ = false; }; } // DistributedHardware } // OHOS diff --git a/services/audiomanager/managersource/include/dmic_dev.h b/services/audiomanager/managersource/include/dmic_dev.h index 7fe002aa29fbcdfd4d086c77e84f22dcb712ee09..de80fdaa6361a233eeeab5ff08af170062d9ec33 100644 --- a/services/audiomanager/managersource/include/dmic_dev.h +++ b/services/audiomanager/managersource/include/dmic_dev.h @@ -125,7 +125,6 @@ private: std::thread enqueueDataThread_; std::mutex writeAshmemMutex_; std::condition_variable dataQueueCond_; - bool engineFlag_ = false; }; } // DistributedHardware } // OHOS diff --git a/services/audiomanager/managersource/include/dspeaker_dev.h b/services/audiomanager/managersource/include/dspeaker_dev.h index 9d0359170dc296db1ad7c184fa091f3dea34f1a2..ef64da75b837a5f4d0aaa5da814c797b1aa38e20 100644 --- a/services/audiomanager/managersource/include/dspeaker_dev.h +++ b/services/audiomanager/managersource/include/dspeaker_dev.h @@ -111,7 +111,6 @@ private: int64_t readTvSec_ = 0; int64_t readTvNSec_ = 0; std::thread enqueueDataThread_; - bool engineFlag_ = false; }; } // DistributedHardware } // OHOS diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index e8e1db773cc61f1923f4b091f0b7127b8d79d238..08bec17cf22d9ce5e07a9d9e5b12c7ab39f05f7a 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -65,7 +65,6 @@ DAudioSourceDev::DAudioSourceDev(const std::string &devId, const std::shared_ptr eventNotifyMap_[NOTIFY_CLOSE_MIC_RESULT] = EVENT_NOTIFY_CLOSE_MIC; eventNotifyMap_[NOTIFY_OPEN_CTRL_RESULT] = EVENT_NOTIFY_OPEN_CTRL; eventNotifyMap_[NOTIFY_CLOSE_CTRL_RESULT] = EVENT_NOTIFY_CLOSE_CTRL; - IsParamEnabled(AUDIO_ENGINE_FLAG, engineFlag_); } int32_t DAudioSourceDev::AwakeAudioDev() @@ -246,31 +245,13 @@ int32_t DAudioSourceDev::HandleDMicClosed(const AudioEvent &event) int32_t DAudioSourceDev::OpenCtrlTrans(const AudioEvent &event) { - if (!engineFlag_) { - if (audioCtrlMgr_ == nullptr) { - audioCtrlMgr_ = std::make_shared(devId_, shared_from_this()); - } - if (!audioCtrlMgr_->IsOpened() && (HandleOpenCtrlTrans(event) != DH_SUCCESS)) { - DHLOGE("Open ctrl failed."); - return ERR_DH_AUDIO_SA_OPEN_CTRL_FAILED; - } - } + // todo 该函数可以删除 return DH_SUCCESS; } int32_t DAudioSourceDev::CloseCtrlTrans(const AudioEvent &event, bool isSpk) { - if (!engineFlag_) { - if (audioCtrlMgr_ == nullptr) { - DHLOGD("Ctrl already closed."); - return DH_SUCCESS; - } - if ((!isSpk && (speaker_ == nullptr || !speaker_->IsOpened())) || - (isSpk && (mic_ == nullptr || !mic_->IsOpened()))) { - DHLOGD("No distributed audio device used, close ctrl trans."); - return HandleCloseCtrlTrans(event); - } - } + // todo 该函数可以删除 return DH_SUCCESS; } @@ -623,17 +604,15 @@ int32_t DAudioSourceDev::TaskOpenDSpeaker(const std::string &args) return ERR_DH_AUDIO_FAILED; } - if (engineFlag_) { - int32_t ret = speaker_->InitSenderEngine(DAudioSourceManager::GetInstance().getSenderProvider()); - if (ret != DH_SUCCESS) { - DHLOGE("Speaker init sender Engine, error code %d.", ret); - return ret; - } + int32_t ret = speaker_->InitSenderEngine(DAudioSourceManager::GetInstance().getSenderProvider()); + if (ret != DH_SUCCESS) { + DHLOGE("Speaker init sender Engine, error code %d.", ret); + return ret; } json jAudioParam; to_json(jAudioParam, speaker_->GetAudioParam()); - int32_t ret = NotifySinkDev(OPEN_SPEAKER, jAudioParam, jParam[KEY_DH_ID]); + ret = NotifySinkDev(OPEN_SPEAKER, jAudioParam, jParam[KEY_DH_ID]); if (ret != DH_SUCCESS) { DHLOGE("Notify sink open speaker failed, error code %d.", ret); return ret; @@ -722,7 +701,7 @@ int32_t DAudioSourceDev::TaskCloseDSpeaker(const std::string &args) DHLOGD("args length error."); return ERR_DH_AUDIO_SA_PARAM_INVALID; } - int32_t ret = !engineFlag_ ? CloseSpkOld(args) : CloseSpkNew(args); + int32_t ret = CloseSpkNew(args); if (ret != DH_SUCCESS) { DHLOGE("Close spk in old mode failed."); return ret; @@ -738,17 +717,15 @@ int32_t DAudioSourceDev::TaskOpenDMic(const std::string &args) DHLOGE("Mic device not init"); return ERR_DH_AUDIO_SA_MIC_DEVICE_NOT_INIT; } - if (engineFlag_) { - int32_t ret = mic_->InitReceiverEngine(DAudioSourceManager::GetInstance().getReceiverProvider()); - if (ret != DH_SUCCESS) { - DHLOGE("Init receiver engine failed."); - return ret; - } + int32_t ret = mic_->InitReceiverEngine(DAudioSourceManager::GetInstance().getReceiverProvider()); + if (ret != DH_SUCCESS) { + DHLOGE("Init receiver engine failed."); + return ret; } if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - int32_t ret = mic_->SetUp(); + ret = mic_->SetUp(); if (ret != DH_SUCCESS) { DHLOGE("Mic setup failed."); return ret; @@ -846,7 +823,7 @@ int32_t DAudioSourceDev::TaskCloseDMic(const std::string &args) if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - int32_t ret = !engineFlag_ ? CloseMicOld(args): CloseMicNew(args); + int32_t ret = CloseMicNew(args); if (ret != DH_SUCCESS) { DHLOGE("Task close mic error."); return ret; @@ -858,42 +835,7 @@ int32_t DAudioSourceDev::TaskCloseDMic(const std::string &args) int32_t DAudioSourceDev::TaskOpenCtrlChannel(const std::string &args) { DHLOGI("Task open ctrl channel, args: %s.", args.c_str()); - if (!engineFlag_) { - if (audioCtrlMgr_ == nullptr) { - DHLOGE("Audio source ctrl mgr not init."); - return ERR_DH_AUDIO_NULLPTR; - } - if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { - DHLOGE("Task open ctrl channel, args length is invalid."); - return ERR_DH_AUDIO_SA_PARAM_INVALID; - } - - json jAudioParam; - json jParam = json::parse(args, nullptr, false); - if (!JsonParamCheck(jParam, { KEY_DH_ID })) { - DHLOGE("Task open ctrl channel, json param check error."); - return ERR_DH_AUDIO_FAILED; - } - int32_t ret = NotifySinkDev(OPEN_CTRL, jAudioParam, jParam[KEY_DH_ID]); - if (ret != DH_SUCCESS) { - DHLOGE("Notify sink open ctrl failed."); - return ret; - } - - ret = audioCtrlMgr_->SetUp(); - if (ret != DH_SUCCESS) { - DHLOGE("Set up audio ctrl failed."); - return ret; - } - ret = audioCtrlMgr_->Start(); - if (ret != DH_SUCCESS) { - DHLOGE("Start audio ctrl failed."); - audioCtrlMgr_->Release(); - audioCtrlMgr_ = nullptr; - return ret; - } - } - + // todo 该函数可以删除 DHLOGI("Task open ctrl channel success."); return DH_SUCCESS; } @@ -901,29 +843,7 @@ int32_t DAudioSourceDev::TaskOpenCtrlChannel(const std::string &args) int32_t DAudioSourceDev::TaskCloseCtrlChannel(const std::string &args) { DHLOGI("Task close ctrl channel, args: %s.", args.c_str()); - if (!engineFlag_) { - if (audioCtrlMgr_ == nullptr) { - DHLOGD("Audio source ctrl magr already closed."); - return DH_SUCCESS; - } - - bool closeStatus = true; - int32_t ret = audioCtrlMgr_->Stop(); - if (ret != DH_SUCCESS) { - DHLOGE("Stop audio ctrl failed."); - closeStatus = false; - } - ret = audioCtrlMgr_->Release(); - if (ret != DH_SUCCESS) { - DHLOGE("Release audio ctrl failed."); - closeStatus = false; - } - audioCtrlMgr_ = nullptr; - if (!closeStatus) { - return ERR_DH_AUDIO_FAILED; - } - } - + // todo 该函数可以删除 DHLOGI("Close audio ctrl channel success."); return DH_SUCCESS; } @@ -983,28 +903,16 @@ int32_t DAudioSourceDev::TaskPlayStatusChange(const std::string &args) int32_t DAudioSourceDev::SendAudioEventToRemote(const AudioEvent &event) { - if (!engineFlag_) { - if (audioCtrlMgr_ == nullptr) { - DHLOGE("Audio ctrl mgr not init."); - return ERR_DH_AUDIO_NULLPTR; - } - int32_t ret = audioCtrlMgr_->SendAudioEvent(event); - if (ret != DH_SUCCESS) { - DHLOGE("Task send audio event to remote failed."); - return ERR_DH_AUDIO_NULLPTR; - } - } else { - // because: type: CHANGE_PLAY_STATUS / VOLUME_MUTE_SET / VOLUME_SET, so speaker - if (speaker_ == nullptr) { - DHLOGE("Audio ctrl mgr not init."); - return ERR_DH_AUDIO_NULLPTR; - } - int32_t ret = speaker_->SendMessage(static_cast(event.type), - event.content, devId_); - if (ret != DH_SUCCESS) { - DHLOGE("Task send message to remote failed."); - return ERR_DH_AUDIO_NULLPTR; - } + // because: type: CHANGE_PLAY_STATUS / VOLUME_MUTE_SET / VOLUME_SET, so speaker + if (speaker_ == nullptr) { + DHLOGE("Audio ctrl mgr not init."); + return ERR_DH_AUDIO_NULLPTR; + } + int32_t ret = speaker_->SendMessage(static_cast(event.type), + event.content, devId_); + if (ret != DH_SUCCESS) { + DHLOGE("Task send message to remote failed."); + return ERR_DH_AUDIO_NULLPTR; } return DH_SUCCESS; } @@ -1082,25 +990,20 @@ int32_t DAudioSourceDev::NotifySinkDev(const AudioEventType type, const json Par { KEY_EVENT_TYPE, type }, { KEY_AUDIO_PARAM, Param }, { KEY_RANDOM_TASK_CODE, std::to_string(randomTaskCode) } }; - DHLOGD("Notify sink dev, random task code: %s", std::to_string(randomTaskCode).c_str()); - if (!engineFlag_) { - DAudioSourceManager::GetInstance().DAudioNotify(devId_, dhId, type, jParam.dump()); - } else { - DHLOGD("Notify sink dev, new engine, random task code:%s", std::to_string(randomTaskCode).c_str()); - if (speaker_ == nullptr || mic_ == nullptr) { - DHLOGE("speaker or mic dev is null."); - return ERR_DH_AUDIO_NULLPTR; - } - if (type == OPEN_CTRL || type == CLOSE_CTRL) { - DHLOGE("In new engine mode, ctrl is not allowed."); - return ERR_DH_AUDIO_NULLPTR; - } - speaker_->SendMessage(static_cast(type), jParam.dump(), devId_); - mic_->SendMessage(static_cast(type), jParam.dump(), devId_); - if (type == CLOSE_SPEAKER || type == CLOSE_MIC) { - // Close spk || Close mic do not need to wait RPC - return DH_SUCCESS; - } + DHLOGD("Notify sink dev, new engine, random task code:%s", std::to_string(randomTaskCode).c_str()); + if (speaker_ == nullptr || mic_ == nullptr) { + DHLOGE("speaker or mic dev is null."); + return ERR_DH_AUDIO_NULLPTR; + } + if (type == OPEN_CTRL || type == CLOSE_CTRL) { + DHLOGE("In new engine mode, ctrl is not allowed."); + return ERR_DH_AUDIO_NULLPTR; + } + speaker_->SendMessage(static_cast(type), jParam.dump(), devId_); + mic_->SendMessage(static_cast(type), jParam.dump(), devId_); + if (type == CLOSE_SPEAKER || type == CLOSE_MIC) { + // Close spk || Close mic do not need to wait RPC + return DH_SUCCESS; } return WaitForRPC(static_cast(static_cast(type) + eventOffset)); } diff --git a/services/audiomanager/managersource/src/daudio_source_manager.cpp b/services/audiomanager/managersource/src/daudio_source_manager.cpp index 09dcb92bc08c5f638f4f070a57c786d3837eb653..85923dc1ad531a2e83e23e0916e3d31c8a43e370 100644 --- a/services/audiomanager/managersource/src/daudio_source_manager.cpp +++ b/services/audiomanager/managersource/src/daudio_source_manager.cpp @@ -77,18 +77,15 @@ int32_t DAudioSourceManager::Init(const sptr &callback) ipcCallback_ = callback; daudioMgrCallback_ = std::make_shared(); - IsParamEnabled(AUDIO_ENGINE_FLAG, engineFlag_); - if (engineFlag_) { - int32_t ret = LoadAVSenderEngineProvider(); - if (ret != DH_SUCCESS) { - DHLOGE("load av transport sender engine provider failed"); - return ERR_DH_AUDIO_FAILED; - } - ret = LoadAVReceiverEngineProvider(); - if (ret != DH_SUCCESS) { - DHLOGE("load av transport receiver engine provider failed."); - return ERR_DH_AUDIO_FAILED; - } + int32_t ret = LoadAVSenderEngineProvider(); + if (ret != DH_SUCCESS) { + DHLOGE("load av transport sender engine provider failed"); + return ERR_DH_AUDIO_FAILED; + } + ret = LoadAVReceiverEngineProvider(); + if (ret != DH_SUCCESS) { + DHLOGE("load av transport receiver engine provider failed."); + return ERR_DH_AUDIO_FAILED; } return DH_SUCCESS; } @@ -96,10 +93,8 @@ int32_t DAudioSourceManager::Init(const sptr &callback) int32_t DAudioSourceManager::UnInit() { DHLOGI("Uninit audio source manager."); - if (engineFlag_) { - UnloadAVReceiverEngineProvider(); - UnloadAVSenderEngineProvider(); - } + UnloadAVReceiverEngineProvider(); + UnloadAVSenderEngineProvider(); { std::lock_guard lock(devMapMtx_); for (auto iter = audioDevMap_.begin(); iter != audioDevMap_.end(); iter++) { diff --git a/services/audiomanager/managersource/src/dmic_dev.cpp b/services/audiomanager/managersource/src/dmic_dev.cpp index d5626693723147a9226c5d6ccd233c257e476571..2665c7cf57780760a1db761f64d126f6627070f6 100644 --- a/services/audiomanager/managersource/src/dmic_dev.cpp +++ b/services/audiomanager/managersource/src/dmic_dev.cpp @@ -66,21 +66,18 @@ void DMicDev::OnEngineTransDataAvailable(const std::shared_ptr &audio int32_t DMicDev::InitReceiverEngine(IAVEngineProvider *providerPtr) { DHLOGI("InitReceiverEngine enter."); - IsParamEnabled(AUDIO_ENGINE_FLAG, engineFlag_); - if (engineFlag_) { - if (micTrans_ == nullptr) { - micTrans_ = std::make_shared(devId_, shared_from_this()); - } - int32_t ret = micTrans_->InitEngine(providerPtr); - if (ret != DH_SUCCESS) { - DHLOGE("Initialize av receiver adapter failed. micdev"); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - ret = micTrans_->CreateCtrl(); - if (ret != DH_SUCCESS) { - DHLOGE("Create ctrl channel failed. micdev"); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } + if (micTrans_ == nullptr) { + micTrans_ = std::make_shared(devId_, shared_from_this()); + } + int32_t ret = micTrans_->InitEngine(providerPtr); + if (ret != DH_SUCCESS) { + DHLOGE("Initialize av receiver adapter failed. micdev"); + return ERR_DH_AUDIO_TRANS_NULL_VALUE; + } + ret = micTrans_->CreateCtrl(); + if (ret != DH_SUCCESS) { + DHLOGE("Create ctrl channel failed. micdev"); + return ERR_DH_AUDIO_TRANS_NULL_VALUE; } return DH_SUCCESS; } @@ -233,9 +230,7 @@ int32_t DMicDev::NotifyEvent(const std::string &devId, const int32_t dhId, const int32_t DMicDev::SetUp() { DHLOGI("Set up mic device."); - if (!engineFlag_) { - micTrans_ = std::make_shared(devId_); - } else if (micTrans_ == nullptr) { + if (micTrans_ == nullptr) { DHLOGE("mic trans should be init by dev."); return ERR_DH_AUDIO_NULLPTR; } diff --git a/services/audiomanager/managersource/src/dspeaker_dev.cpp b/services/audiomanager/managersource/src/dspeaker_dev.cpp index 3152d3c28e4e86be6e37f63e63ce5835fbef1dda..b61c382c97d12b574faf1c8d1ecb6de037042be6 100644 --- a/services/audiomanager/managersource/src/dspeaker_dev.cpp +++ b/services/audiomanager/managersource/src/dspeaker_dev.cpp @@ -104,21 +104,18 @@ int32_t DSpeakerDev::DisableDevice(const int32_t dhId) int32_t DSpeakerDev::InitSenderEngine(IAVEngineProvider *providerPtr) { DHLOGI("InitSenderEngine enter"); - IsParamEnabled(AUDIO_ENGINE_FLAG, engineFlag_); - if (engineFlag_) { - if (speakerTrans_ == nullptr) { - speakerTrans_ = std::make_shared(devId_, shared_from_this()); - } - int32_t ret = speakerTrans_->InitEngine(providerPtr); - if (ret != DH_SUCCESS) { - DHLOGE("Initialize av sender adapter failed."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - ret = speakerTrans_->CreateCtrl(); - if (ret != DH_SUCCESS) { - DHLOGE("Create ctrl channel failed."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } + if (speakerTrans_ == nullptr) { + speakerTrans_ = std::make_shared(devId_, shared_from_this()); + } + int32_t ret = speakerTrans_->InitEngine(providerPtr); + if (ret != DH_SUCCESS) { + DHLOGE("Initialize av sender adapter failed."); + return ERR_DH_AUDIO_TRANS_NULL_VALUE; + } + ret = speakerTrans_->CreateCtrl(); + if (ret != DH_SUCCESS) { + DHLOGE("Create ctrl channel failed."); + return ERR_DH_AUDIO_TRANS_NULL_VALUE; } return DH_SUCCESS; } diff --git a/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp b/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp index 7f920640e99b7ec8b5ba9f25b564838f87d330cc..03552f43002b49c3b4877a90d0d2573a41b920b9 100644 --- a/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp +++ b/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp @@ -49,7 +49,6 @@ HWTEST_F(DAudioSinkDevTest, InitAVTransEngines_001, TestSize.Level1) std::shared_ptr senderPtr = std::make_shared(); std::shared_ptr receiverPtr = std::make_shared(); ChannelState type = ChannelState::UNKNOWN; - sinkDev_->engineFlag_ = true; EXPECT_EQ(ERR_DH_AUDIO_FAILED, sinkDev_->InitAVTransEngines(type, receiverPtr.get())); type = ChannelState::MIC_CONTROL_OPENED; @@ -541,7 +540,6 @@ HWTEST_F(DAudioSinkDevTest, TaskPlayStatusChange_001, TestSize.Level1) HWTEST_F(DAudioSinkDevTest, TaskOpenCtrlChannel_001, TestSize.Level1) { std::string args; - sinkDev_->engineFlag_ = true; EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskOpenCtrlChannel(args)); } @@ -555,7 +553,6 @@ HWTEST_F(DAudioSinkDevTest, TaskOpenCtrlChannel_002, TestSize.Level1) { std::string args = "args"; EXPECT_NE(DH_SUCCESS, sinkDev_->TaskOpenCtrlChannel(args)); - sinkDev_->engineFlag_ = true; EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskOpenCtrlChannel(args)); } @@ -583,7 +580,6 @@ HWTEST_F(DAudioSinkDevTest, TaskCloseCtrlChannel_002, TestSize.Level1) std::string args; std::string devId = "devId"; EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseCtrlChannel(args)); - sinkDev_->engineFlag_ = true; EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseCtrlChannel(args)); sinkDev_->audioCtrlMgr_ = std::make_shared(devId, sinkDev_); EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseCtrlChannel(args)); @@ -638,8 +634,6 @@ HWTEST_F(DAudioSinkDevTest, TaskCloseDSpeaker_002, TestSize.Level1) std::string devId = "devId"; sinkDev_->speakerClient_ = std::make_shared(devId, sinkDev_); EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseDSpeaker(args)); - sinkDev_->engineFlag_ = false; - EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseDSpeaker(args)); } /** @@ -676,8 +670,6 @@ HWTEST_F(DAudioSinkDevTest, TaskCloseDMic_001, TestSize.Level1) { std::string args; EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseDMic(args)); - sinkDev_->engineFlag_ = false; - EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseDMic(args)); } /** @@ -692,8 +684,6 @@ HWTEST_F(DAudioSinkDevTest, TaskCloseDMic_002, TestSize.Level1) std::string devId; sinkDev_->micClient_ = std::make_shared(devId, sinkDev_); EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseDMic(args)); - sinkDev_->engineFlag_ = false; - EXPECT_EQ(DH_SUCCESS, sinkDev_->TaskCloseDMic(args)); } /** @@ -837,9 +827,6 @@ HWTEST_F(DAudioSinkDevTest, TaskRenderStateChange_001, TestSize.Level1) std::string args; std::string dhId = "dhId"; int32_t result = 0; - sinkDev_->engineFlag_ = false; - sinkDev_->NotifySourceDev(AUDIO_START, dhId, result); - sinkDev_->engineFlag_ = true; sinkDev_->NotifySourceDev(AUDIO_START, dhId, result); sinkDev_->NotifySourceDev(NOTIFY_OPEN_CTRL_RESULT, dhId, result); EXPECT_NE(DH_SUCCESS, sinkDev_->TaskRenderStateChange(args)); @@ -862,23 +849,6 @@ HWTEST_F(DAudioSinkDevTest, TaskRenderStateChange_002, TestSize.Level1) EXPECT_EQ(ERR_DH_AUDIO_FAILED, sinkDev_->from_json(j, audioParam)); } -/** - * @tc.name: SendAudioEventToRemote_001 - * @tc.desc: Verify the SendAudioEventToRemote function. - * @tc.type: FUNC - * @tc.require: AR000H0E5F - */ -HWTEST_F(DAudioSinkDevTest, SendAudioEventToRemote_001, TestSize.Level1) -{ - sinkDev_->engineFlag_ = false; - AudioEvent event; - std::string args; - std::string devId = "devId"; - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sinkDev_->SendAudioEventToRemote(event)); - sinkDev_->audioCtrlMgr_ = std::make_shared(devId, sinkDev_); - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sinkDev_->SendAudioEventToRemote(event)); -} - /** * @tc.name: SendAudioEventToRemote_002 * @tc.desc: Verify the SendAudioEventToRemote function. @@ -889,7 +859,6 @@ HWTEST_F(DAudioSinkDevTest, SendAudioEventToRemote_002, TestSize.Level1) { std::string devId = "devId"; AudioEvent event; - sinkDev_->engineFlag_ = true; sinkDev_->speakerClient_ = nullptr; EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sinkDev_->SendAudioEventToRemote(event)); sinkDev_->speakerClient_ = std::make_shared(devId, sinkDev_); diff --git a/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp b/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp index 26b1b48d0d5f37f2862e85494a4ed424f746ac5f..30b2dc90d099553e1ce3d3e2d481d465c8c918db 100644 --- a/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp +++ b/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp @@ -39,7 +39,6 @@ void DAudioSinkManagerTest::TearDown() {} HWTEST_F(DAudioSinkManagerTest, Init_001, TestSize.Level1) { EXPECT_NE(DH_SUCCESS, daudioSinkManager.Init()); - daudioSinkManager.engineFlag_ = true; EXPECT_EQ(DH_SUCCESS, daudioSinkManager.UnInit()); } @@ -53,7 +52,6 @@ HWTEST_F(DAudioSinkManagerTest, CreateAudioDevice_001, TestSize.Level1) { std::string devId = "devId"; EXPECT_EQ(DH_SUCCESS, daudioSinkManager.CreateAudioDevice(devId)); - daudioSinkManager.engineFlag_ = true; daudioSinkManager.channelState_ = ChannelState::SPK_CONTROL_OPENED; daudioSinkManager.rcvProviderPtr_ = std::make_shared().get(); EXPECT_EQ(DH_SUCCESS, daudioSinkManager.CreateAudioDevice(devId)); 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 eec31356a8a6969bc77c2d430434143bb16f7872..3549f1af284185dc71570f405d1bcc8ea7699fa7 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 @@ -291,7 +291,6 @@ HWTEST_F(DAudioSourceDevTest, OpenCtrlTrans_001, TestSize.Level1) { AudioEvent event; EXPECT_EQ(ERR_DH_AUDIO_SA_OPEN_CTRL_FAILED, sourceDev_->OpenCtrlTrans(event)); - sourceDev_->engineFlag_ = true; EXPECT_EQ(DH_SUCCESS, sourceDev_->OpenCtrlTrans(event)); sourceDev_->audioCtrlMgr_ = std::make_shared(DEV_ID, sourceDev_); sourceDev_->audioCtrlMgr_->isOpened_ = true; @@ -319,7 +318,6 @@ HWTEST_F(DAudioSourceDevTest, CloseCtrlTrans_001, TestSize.Level1) EXPECT_EQ(DH_SUCCESS, sourceDev_->CloseCtrlTrans(event, isSpk)); sourceDev_->audioCtrlMgr_ = std::make_shared(DEV_ID, sourceDev_); EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->CloseCtrlTrans(event, isSpk)); - sourceDev_->engineFlag_ = true; EXPECT_EQ(DH_SUCCESS, sourceDev_->CloseCtrlTrans(event, isSpk)); } @@ -790,7 +788,6 @@ HWTEST_F(DAudioSourceDevTest, TaskOpenDMic_001, TestSize.Level1) sourceDev_->mic_ = std::make_shared(DEV_ID, sourceDev_); EXPECT_EQ(ERR_DH_AUDIO_SA_PARAM_INVALID, sourceDev_->TaskOpenDMic("")); - sourceDev_->engineFlag_ = true; EXPECT_EQ(ERR_DH_AUDIO_SA_PARAM_INVALID, sourceDev_->TaskOpenDMic("")); std::string tempLongStr(DAUDIO_MAX_JSON_LEN + 1, 'a'); @@ -883,7 +880,6 @@ HWTEST_F(DAudioSourceDevTest, TaskOpenCtrlChannel_001, TestSize.Level1) HWTEST_F(DAudioSourceDevTest, TaskCloseCtrlChannel_001, TestSize.Level1) { EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseCtrlChannel(ARGS)); - sourceDev_->OnTaskResult(DH_SUCCESS, "", FUNC_NAME); } @@ -895,8 +891,6 @@ HWTEST_F(DAudioSourceDevTest, TaskCloseCtrlChannel_001, TestSize.Level1) */ HWTEST_F(DAudioSourceDevTest, TaskCloseCtrlChannel_002, TestSize.Level1) { - sourceDev_->engineFlag_ = false; - EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseCtrlChannel(ARGS)); sourceDev_->audioCtrlMgr_ = std::make_shared(DEV_ID, sourceDev_); EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseCtrlChannel(ARGS)); @@ -1102,31 +1096,11 @@ HWTEST_F(DAudioSourceDevTest, NotifySinkDev_001, TestSize.Level1) sourceDev_->isRpcOpen_.store(true); EXPECT_EQ(ERR_DH_AUDIO_SA_RPC_WAIT_TIMEOUT, sourceDev_->NotifySinkDev(CLOSE_MIC, jAudioParam, DH_ID_SPK)); - sourceDev_->engineFlag_ = false; - EXPECT_EQ(ERR_DH_AUDIO_SA_RPC_WAIT_TIMEOUT, sourceDev_->NotifySinkDev(CLOSE_MIC, jAudioParam, DH_ID_SPK)); - sourceDev_->engineFlag_ = true; sourceDev_->mic_ = std::make_shared(DEV_ID, sourceDev_); sourceDev_->speaker_ = std::make_shared(DEV_ID, sourceDev_); EXPECT_EQ(DH_SUCCESS, sourceDev_->NotifySinkDev(CLOSE_MIC, jAudioParam, DH_ID_SPK)); } -/** - * @tc.name: SendAudioEventToRemote_001 - * @tc.desc: Verify the SendAudioEventToRemote function. - * @tc.type: FUNC - * @tc.require: AR000H0E5F - */ -HWTEST_F(DAudioSourceDevTest, SendAudioEventToRemote_001, TestSize.Level1) -{ - sourceDev_->engineFlag_ = false; - AudioEvent event; - std::string args; - std::string devId = "devId"; - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->SendAudioEventToRemote(event)); - sourceDev_->audioCtrlMgr_ = std::make_shared(DEV_ID, sourceDev_); - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->SendAudioEventToRemote(event)); -} - /** * @tc.name: SendAudioEventToRemote_002 * @tc.desc: Verify the SendAudioEventToRemote function. @@ -1136,7 +1110,6 @@ HWTEST_F(DAudioSourceDevTest, SendAudioEventToRemote_001, TestSize.Level1) HWTEST_F(DAudioSourceDevTest, SendAudioEventToRemote_002, TestSize.Level1) { AudioEvent event; - sourceDev_->engineFlag_ = true; sourceDev_->speaker_ = nullptr; EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->SendAudioEventToRemote(event)); sourceDev_->speaker_ = std::make_shared(DEV_ID, sourceDev_); 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 8e4aa421d951a3448328ad79ea00c3fc57c0fdc9..eb8037b99a918c8f53a47e55bb244244a359c325 100644 --- a/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp +++ b/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp @@ -51,7 +51,6 @@ void DMicDevTest::TearDown(void) HWTEST_F(DMicDevTest, InitReceiverEngine_001, TestSize.Level1) { IAVEngineProvider *providerPtr = nullptr; - mic_->engineFlag_ = true; AVTransEvent event = { EventType::EVENT_START_SUCCESS, "", "" }; mic_->OnEngineTransEvent(event); std::shared_ptr message = nullptr; @@ -172,14 +171,11 @@ HWTEST_F(DMicDevTest, NotifyEvent_001, TestSize.Level1) */ HWTEST_F(DMicDevTest, SetUp_001, TestSize.Level1) { - mic_->engineFlag_ = true; mic_->micTrans_ = nullptr; EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, mic_->SetUp()); mic_->micTrans_ = std::make_shared(); EXPECT_EQ(DH_SUCCESS, mic_->SetUp()); - mic_->engineFlag_ = false; - EXPECT_EQ(ERR_DH_AUDIO_TRANS_ERROR, mic_->SetUp()); } /** @@ -215,7 +211,6 @@ HWTEST_F(DMicDevTest, Start_002, TestSize.Level1) EXPECT_EQ(ERR_DH_AUDIO_TRANS_ERROR, mic_->SetUp()); EXPECT_NE(DH_SUCCESS, mic_->Start()); - mic_->engineFlag_ = true; mic_->micTrans_ = std::make_shared(); EXPECT_EQ(DH_SUCCESS, mic_->SetUp()); EXPECT_EQ(ERR_DH_AUDIO_SA_MIC_CHANNEL_WAIT_TIMEOUT, mic_->Start()); diff --git a/services/audiomanager/test/unittest/sourcedevice/src/dspeaker_dev_test.cpp b/services/audiomanager/test/unittest/sourcedevice/src/dspeaker_dev_test.cpp index ed1f88e88757b9adfff39975b547d1770a963e63..c889ff69969d34594f2d82444011ce2830bbf4a6 100644 --- a/services/audiomanager/test/unittest/sourcedevice/src/dspeaker_dev_test.cpp +++ b/services/audiomanager/test/unittest/sourcedevice/src/dspeaker_dev_test.cpp @@ -51,7 +51,6 @@ void DSpeakerDevTest::TearDown(void) HWTEST_F(DSpeakerDevTest, InitSenderEngine_001, TestSize.Level1) { IAVEngineProvider *providerPtr = nullptr; - spk_->engineFlag_ = true; AVTransEvent event = { EventType::EVENT_START_SUCCESS, "", "" }; spk_->OnEngineTransEvent(event); std::shared_ptr message = nullptr; diff --git a/services/audiomanager/test/unittest/sourcemanager/src/daudio_source_mgr_test.cpp b/services/audiomanager/test/unittest/sourcemanager/src/daudio_source_mgr_test.cpp index 3af420a5d5405fb8420fecc99ae6d3a5e207f25a..6bc3da9c4be1f4818236e2681eea315f97e9ad44 100644 --- a/services/audiomanager/test/unittest/sourcemanager/src/daudio_source_mgr_test.cpp +++ b/services/audiomanager/test/unittest/sourcemanager/src/daudio_source_mgr_test.cpp @@ -57,7 +57,6 @@ HWTEST_F(DAudioSourceMgrTest, Init_001, TestSize.Level1) std::string localDevId; EXPECT_NE(DH_SUCCESS, GetLocalDeviceNetworkId(localDevId)); - sourceMgr.engineFlag_ = true; EXPECT_EQ(DH_SUCCESS, sourceMgr.UnInit()); }