Add support for querying whether there is currently a recording
underway from the specified audio source.
Bug
7314859
Change-Id: I8894845b176241134870af5df2bebc5ef27e4de4
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)
{
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);
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;
virtual status_t setEffectEnabled(int id, bool enabled) = 0;
virtual bool isStreamActive(int stream, uint32_t inPastMs = 0) const = 0;
+ virtual bool isSourceActive(audio_source_t source) const = 0;
//dump state
virtual status_t dump(int fd) = 0;
virtual status_t setEffectEnabled(int id, bool enabled);
virtual bool isStreamActive(int stream, uint32_t inPastMs = 0) const;
+ virtual bool isSourceActive(audio_source_t source) const;
virtual status_t dump(int fd);