From 8c8913157d2310b3437628e5567468ca828c9bcb Mon Sep 17 00:00:00 2001 From: hwwuhaobo Date: Fri, 26 May 2023 16:04:38 +0800 Subject: [PATCH] modify daudio extension code Signed-off-by: hwwuhaobo --- .../v1_0/src/audio_adapter_interface_impl.cpp | 22 +++++++++++----- .../managersink/include/daudio_sink_dev.h | 2 +- .../managersink/src/daudio_sink_dev.cpp | 26 ++++++++++++------- 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/hdf_service/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp b/hdf_service/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp index 25780ced..baa69dd7 100644 --- a/hdf_service/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp +++ b/hdf_service/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp @@ -85,15 +85,20 @@ int32_t AudioAdapterInterfaceImpl::CreateRender(const AudioDeviceDescriptor &des return HDF_FAILURE; } } - renderFlags_ = Audioext::V1_0::NORMAL_MODE; - audioRender_ = new AudioRenderInterfaceImpl(adpDescriptor_.adapterName, desc, attrs, extSpkCallback_); #ifdef DAUDIO_SUPPORT_EXTENSION if (attrs.type == AUDIO_MMAP_NOIRQ) { DHLOGI("Try to mmap mode."); + renderFlags_ = Audioext::V1_0::MMAP_MODE; audioRender_ = new AudioRenderExtImpl(); audioRender_->SetAttrs(adpDescriptor_.adapterName, desc, attrs, extSpkCallback_); - renderFlags_ = Audioext::V1_0::MMAP_MODE; + } else { + DHLOGI("Try to normal mode."); + renderFlags_ = Audioext::V1_0::NORMAL_MODE; + audioRender_ = new AudioRenderInterfaceImpl(adpDescriptor_.adapterName, desc, attrs, extSpkCallback_); } +#else + renderFlags_ = Audioext::V1_0::NORMAL_MODE; + audioRender_ = new AudioRenderInterfaceImpl(adpDescriptor_.adapterName, desc, attrs, extSpkCallback_); #endif if (audioRender_ == nullptr) { DHLOGE("Create render failed."); @@ -145,15 +150,20 @@ int32_t AudioAdapterInterfaceImpl::CreateCapture(const AudioDeviceDescriptor &de return HDF_FAILURE; } } - capturerFlags_ = Audioext::V1_0::NORMAL_MODE; - audioCapture_ = new AudioCaptureInterfaceImpl(adpDescriptor_.adapterName, desc, attrs, extMicCallback_); #ifdef DAUDIO_SUPPORT_EXTENSION if (attrs.type == AUDIO_MMAP_NOIRQ) { DHLOGI("Try to mmap mode."); + capturerFlags_ = Audioext::V1_0::MMAP_MODE; audioCapture_ = new AudioCaptureExtImpl(); audioCapture_->SetAttrs(adpDescriptor_.adapterName, desc, attrs, extMicCallback_); - capturerFlags_ = Audioext::V1_0::MMAP_MODE; + } else { + DHLOGI("Try to normal mode."); + capturerFlags_ = Audioext::V1_0::NORMAL_MODE; + audioCapture_ = new AudioCaptureInterfaceImpl(adpDescriptor_.adapterName, desc, attrs, extMicCallback_); } +#else + capturerFlags_ = Audioext::V1_0::NORMAL_MODE; + audioCapture_ = new AudioCaptureInterfaceImpl(adpDescriptor_.adapterName, desc, attrs, extMicCallback_); #endif if (audioCapture_ == nullptr) { DHLOGE("Create capture failed."); diff --git a/services/audiomanager/managersink/include/daudio_sink_dev.h b/services/audiomanager/managersink/include/daudio_sink_dev.h index 1a87a97a..eac0f378 100644 --- a/services/audiomanager/managersink/include/daudio_sink_dev.h +++ b/services/audiomanager/managersink/include/daudio_sink_dev.h @@ -103,4 +103,4 @@ private: }; } // DistributedHardware } // OHOS -#endif // OHOS_DAUDIO_SINK_DEV_H \ No newline at end of file +#endif // OHOS_DAUDIO_SINK_DEV_H diff --git a/services/audiomanager/managersink/src/daudio_sink_dev.cpp b/services/audiomanager/managersink/src/daudio_sink_dev.cpp index 945c7e94..3d3731b6 100644 --- a/services/audiomanager/managersink/src/daudio_sink_dev.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_dev.cpp @@ -392,15 +392,19 @@ int32_t DAudioSinkDev::TaskOpenDSpeaker(const std::string &args) } if (speakerClient_ == nullptr) { - speakerClient_ = std::make_shared(devId_, shared_from_this()); - } #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()); - } + 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 + } ret = speakerClient_->SetUp(audioParam); if (ret != DH_SUCCESS) { DHLOGE("Setup speaker failed, ret: %d.", ret); @@ -462,15 +466,19 @@ int32_t DAudioSinkDev::TaskOpenDMic(const std::string &args) do { if (micClient_ == nullptr) { - micClient_ = std::make_shared(devId_, shared_from_this()); - } #ifdef DAUDIO_SUPPORT_DIRECT if (audioParam.captureOpts.capturerFlags == MMAP_MODE) { DHLOGI("Try to mmap mode."); micClient_ = std::make_shared(); micClient_->SetAttrs(devId_, shared_from_this()); + } else { + DHLOGI("Try to normal mode."); + micClient_ = std::make_shared(devId_, shared_from_this()); } +#else + micClient_ = std::make_shared(devId_, shared_from_this()); #endif + } ret = micClient_->SetUp(audioParam); if (ret != DH_SUCCESS) { DHLOGE("Set up mic failed, ret: %d.", ret); -- Gitee