audo policy: add effects to record clients
Add list of active effects on input streams and record
clients for further reporting in AudioRecordingConfiguration.
Bug: 111438757
Test: make and dumpsys
Change-Id: I1ae00d2431c80b053f67e2b780f368d5a4822b01
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 64a2b8a..3686f2d 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -2423,6 +2423,33 @@
return mEffects.registerEffect(desc, io, strategy, session, id);
}
+status_t AudioPolicyManager::unregisterEffect(int id)
+{
+ if (mEffects.getEffect(id) == nullptr) {
+ return INVALID_OPERATION;
+ }
+
+ if (mEffects.isEffectEnabled(id)) {
+ ALOGW("%s effect %d enabled", __FUNCTION__, id);
+ setEffectEnabled(id, false);
+ }
+ return mEffects.unregisterEffect(id);
+}
+
+status_t AudioPolicyManager::setEffectEnabled(int id, bool enabled)
+{
+ sp<EffectDescriptor> effect = mEffects.getEffect(id);
+ if (effect == nullptr) {
+ return INVALID_OPERATION;
+ }
+
+ status_t status = mEffects.setEffectEnabled(id, enabled);
+ if (status == NO_ERROR) {
+ mInputs.trackEffectEnabled(effect, enabled);
+ }
+ return status;
+}
+
bool AudioPolicyManager::isStreamActive(audio_stream_type_t stream, uint32_t inPastMs) const
{
bool active = false;