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/service/AudioPolicyService.cpp b/services/audiopolicy/service/AudioPolicyService.cpp
index b1ed522..6da1f9f 100644
--- a/services/audiopolicy/service/AudioPolicyService.cpp
+++ b/services/audiopolicy/service/AudioPolicyService.cpp
@@ -340,17 +340,18 @@
return NO_ERROR;
}
-void AudioPolicyService::setRecordSilenced(uid_t uid, bool silenced)
+void AudioPolicyService::setAppState(uid_t uid, app_state_t state)
{
{
Mutex::Autolock _l(mLock);
if (mAudioPolicyManager) {
AutoCallerClear acc;
- mAudioPolicyManager->setRecordSilenced(uid, silenced);
+ mAudioPolicyManager->setAppState(uid, state);
}
}
sp<IAudioFlinger> af = AudioSystem::get_audio_flinger();
if (af) {
+ bool silenced = state == APP_STATE_IDLE;
af->setRecordSilenced(uid, silenced);
}
}
@@ -585,7 +586,9 @@
void AudioPolicyService::UidPolicy::notifyService(uid_t uid, bool active) {
sp<AudioPolicyService> service = mService.promote();
if (service != nullptr) {
- service->setRecordSilenced(uid, !active);
+ service->setAppState(uid, active ?
+ APP_STATE_FOREGROUND :
+ APP_STATE_IDLE);
}
}