diff options
Diffstat (limited to 'audio')
| -rw-r--r-- | audio/AudioPolicyManagerBase.cpp | 13 | ||||
| -rw-r--r-- | audio/audio_policy_hal.cpp | 7 |
2 files changed, 20 insertions, 0 deletions
diff --git a/audio/AudioPolicyManagerBase.cpp b/audio/AudioPolicyManagerBase.cpp index c7519c9..cacc37d 100644 --- a/audio/AudioPolicyManagerBase.cpp +++ b/audio/AudioPolicyManagerBase.cpp @@ -1159,6 +1159,19 @@ bool AudioPolicyManagerBase::isStreamActive(int stream, uint32_t inPastMs) const return false; } +bool AudioPolicyManagerBase::isSourceActive(audio_source_t source) const +{ + for (size_t i = 0; i < mInputs.size(); i++) { + const AudioInputDescriptor * inputDescriptor = mInputs.valueAt(i); + if ((inputDescriptor->mInputSource == (int) source) + && (inputDescriptor->mRefCount > 0)) { + return true; + } + } + return false; +} + + status_t AudioPolicyManagerBase::dump(int fd) { diff --git a/audio/audio_policy_hal.cpp b/audio/audio_policy_hal.cpp index 9e29bc4..bff6b74 100644 --- a/audio/audio_policy_hal.cpp +++ b/audio/audio_policy_hal.cpp @@ -302,6 +302,12 @@ static bool ap_is_stream_active(const struct audio_policy *pol, audio_stream_typ return lap->apm->isStreamActive((int) stream, in_past_ms); } +static bool ap_is_source_active(const struct audio_policy *pol, audio_source_t source) +{ + const struct legacy_audio_policy *lap = to_clap(pol); + return lap->apm->isSourceActive(source); +} + static int ap_dump(const struct audio_policy *pol, int fd) { const struct legacy_audio_policy *lap = to_clap(pol); @@ -352,6 +358,7 @@ static int create_legacy_ap(const struct audio_policy_device *device, lap->policy.unregister_effect = ap_unregister_effect; lap->policy.set_effect_enabled = ap_set_effect_enabled; lap->policy.is_stream_active = ap_is_stream_active; + lap->policy.is_source_active = ap_is_source_active; lap->policy.dump = ap_dump; lap->service = service; |
