audio policy: extend API used to silence capture from a given app
In preparation for concurrent capture policy, extend current audio policy
interface setRecordSilenced(uid...) to a more generic API setAppState(uid...)
Bug: 111438757
Test: CTS test AudioRecord.testRecordNoDataForIdleUids
Change-Id: Idba540e2724a6c71ec275a5ff73c312e5b6040a4
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index d118459..e9e1a22 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -3715,11 +3715,13 @@
return profileUpdated ? NO_ERROR : INVALID_OPERATION;
}
-void AudioPolicyManager::setRecordSilenced(uid_t uid, bool silenced)
+void AudioPolicyManager::setAppState(uid_t uid, app_state_t state)
{
+ Vector<sp<AudioInputDescriptor> > activeInputs = mInputs.getActiveInputs();
+ bool silenced = state == APP_STATE_IDLE;
+
ALOGV("AudioPolicyManager:setRecordSilenced(uid:%d, silenced:%d)", uid, silenced);
- Vector<sp<AudioInputDescriptor> > activeInputs = mInputs.getActiveInputs();
for (size_t i = 0; i < activeInputs.size(); i++) {
sp<AudioInputDescriptor> activeDesc = activeInputs[i];
RecordClientVector clients = activeDesc->clientsList(true /*activeOnly*/);
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index f559b7f..0436b1d 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -242,7 +242,7 @@
// return the strategy corresponding to a given stream type
routing_strategy getStrategy(audio_stream_type_t stream) const;
- virtual void setRecordSilenced(uid_t uid, bool silenced);
+ virtual void setAppState(uid_t uid, app_state_t state);
protected:
// A constructor that allows more fine-grained control over initialization process,