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 25780ced9f29141c68b3aec1529c0e92540bc15b..baa69dd7b3837cf4093f371e5816af4caf5fd24c 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 1a87a97a42ad10b5edd1d51192e5153b70b53bc7..eac0f37878ee0572fc08f620006452cad2f33b93 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 945c7e949ae3a885b5930359b2e9a6988b6a45d8..3d3731b63b667ed112d1915380805dbf235efed6 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);