diff --git a/services/audio_engine/manager/include/hpae_manager.h b/services/audio_engine/manager/include/hpae_manager.h index 95ac9654c1c8a5c5ffbaa61a107c8b757d500a3a..5670fd0770e25b8378af4a10680d7f44293ec363 100644 --- a/services/audio_engine/manager/include/hpae_manager.h +++ b/services/audio_engine/manager/include/hpae_manager.h @@ -194,6 +194,13 @@ public: void AddStreamVolumeToEffect(const std::string stringSessionID, const float streamVolume) override; void DeleteStreamVolumeToEffect(const std::string stringSessionID) override; uint64_t ProcessPendingTransitionsAndGetNextDelay(); + // interfaces for injector + void UpdateAudioPortInfo(const uint32_t &sinkPortIndex, const AudioModuleInfo &audioPortInfo) override; + void AddCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) override; + void RemoveCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) override; + int32_t PeekAudioData(const uint32_t &sinkPortIndex, uint8_t *buffer, size_t bufferSize) override; private: int32_t CloseOutAudioPort(std::string sinkName); int32_t CloseInAudioPort(std::string sourceName); diff --git a/services/audio_engine/manager/include/hpae_manager_impl.h b/services/audio_engine/manager/include/hpae_manager_impl.h index 193003245b978a5dea75f3ee6cc37df1965331ba..b6a8fb5bb6a9f54ee754ad27a98eba27e0cc4f54 100644 --- a/services/audio_engine/manager/include/hpae_manager_impl.h +++ b/services/audio_engine/manager/include/hpae_manager_impl.h @@ -139,6 +139,14 @@ public: int32_t UpdateCollaborativeState(bool isCollaborationEnabled) override; void AddStreamVolumeToEffect(const std::string stringSessionID, const float streamVolume) override; void DeleteStreamVolumeToEffect(const std::string stringSessionID) override; + + // interfaces for injector + void UpdateAudioPortInfo(const uint32_t &sinkPortIndex, const AudioModuleInfo &audioPortInfo) override; + void AddCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) override; + void RemoveCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) override; + int32_t PeekAudioData(const uint32_t &sinkPortIndex, uint8_t *buffer, size_t bufferSize) override; private: std::shared_ptr manager_; }; diff --git a/services/audio_engine/manager/include/i_hpae_manager.h b/services/audio_engine/manager/include/i_hpae_manager.h index 3fa458db443c974be70ef1319c94c2f23b0e8c73..2035223a256bb6d3e97e408296f919d53996b6df 100644 --- a/services/audio_engine/manager/include/i_hpae_manager.h +++ b/services/audio_engine/manager/include/i_hpae_manager.h @@ -143,6 +143,14 @@ public: virtual int32_t UpdateCollaborativeState(bool isCollaborationEnabled) = 0; virtual void AddStreamVolumeToEffect(const std::string stringSessionID, const float streamVolume) = 0; virtual void DeleteStreamVolumeToEffect(const std::string stringSessionID) = 0; + + // interfaces for injector + virtual void UpdateAudioPortInfo(const uint32_t &sinkPortIndex, const AudioModuleInfo &audioPortInfo) = 0; + virtual void AddCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) = 0; + virtual void RemoveCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) = 0; + virtual int32_t PeekAudioData(const uint32_t &sinkPortIndex, uint8_t *buffer, size_t bufferSize) = 0; }; } // namespace HPAE } // namespace AudioStandard diff --git a/services/audio_engine/manager/src/hpae_manager.cpp b/services/audio_engine/manager/src/hpae_manager.cpp index c869cf6e28515d0e5ea2229530b812ef19c1be73..1b49efc11feeb8ba1a8d78224298818c4bdab660 100644 --- a/services/audio_engine/manager/src/hpae_manager.cpp +++ b/services/audio_engine/manager/src/hpae_manager.cpp @@ -2468,6 +2468,23 @@ void HpaeManager::DeleteStreamVolumeToEffect(const std::string stringSessionID) }; SendRequest(request, __func__); } + +// interfaces for injector +void HpaeManager::UpdateAudioPortInfo(const uint32_t &sinkPortIndex, const AudioModuleInfo &audioPortInfo) +{} + +void HpaeManager::AddCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) +{} + +void HpaeManager::RemoveCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) +{} + +int32_t HpaeManager::PeekAudioData(const uint32_t &sinkPortIndex, uint8_t *buffer, size_t bufferSize) +{ + return SUCCESS; +} } // namespace HPAE } // namespace AudioStandard } // namespace OHOS diff --git a/services/audio_engine/manager/src/hpae_manager_impl.cpp b/services/audio_engine/manager/src/hpae_manager_impl.cpp index 60cc4f20b72c733e6537d3e9c017e77a98c9aa40..aaef1ca8da40eed45de75e3f37a62b76142c1ba2 100644 --- a/services/audio_engine/manager/src/hpae_manager_impl.cpp +++ b/services/audio_engine/manager/src/hpae_manager_impl.cpp @@ -588,6 +588,33 @@ void HpaeManagerImpl::DeleteStreamVolumeToEffect(const std::string stringSession CHECK_AND_RETURN_LOG(manager_, "manager is nullptr"); manager_->DeleteStreamVolumeToEffect(stringSessionID); } + +// interfaces for injector +void HpaeManagerImpl::UpdateAudioPortInfo(const uint32_t &sinkPortIndex, const AudioModuleInfo &audioPortInfo) +{ + CHECK_AND_RETURN_LOG(manager_, "manager is nullptr"); + manager_->UpdateAudioPortInfo(sinkPortIndex, audioPortInfo); +} + +void HpaeManagerImpl::AddCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) +{ + CHECK_AND_RETURN_LOG(manager_, "manager is nullptr"); + manager_->AddCaptureInjector(sinkPortIndex, sourcePortIndex, sourceType); +} + +void HpaeManagerImpl::RemoveCaptureInjector( + const uint32_t &sinkPortIndex, const uint32_t &sourcePortIndex, const SourceType &sourceType) +{ + CHECK_AND_RETURN_LOG(manager_, "manager is nullptr"); + manager_->RemoveCaptureInjector(sinkPortIndex, sourcePortIndex, sourceType); +} + +int32_t HpaeManagerImpl::PeekAudioData(const uint32_t &sinkPortIndex, uint8_t *buffer, size_t bufferSize) +{ + CHECK_AND_RETURN_RET_LOG(manager_, ERR_ILLEGAL_STATE, "manager is nullptr"); + return manager_->PeekAudioData(sinkPortIndex, buffer, bufferSize); +} } // namespace HPAE } // namespace AudioStandard } // namespace OHOS