diff options
author | Eric Laurent <elaurent@google.com> | 2013-09-09 09:08:44 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2013-09-10 14:39:28 -0700 |
commit | 9a54bc27876acd5d8be5b1fc3dc46701fe76fbb3 (patch) | |
tree | 15f25097fc7fc2548d41a29c94c22710472f01ca /services/audioflinger/AudioPolicyService.cpp | |
parent | 84b7fb0c88ddd05ed7c148c82fe1691040a9404d (diff) | |
download | frameworks_av-9a54bc27876acd5d8be5b1fc3dc46701fe76fbb3.zip frameworks_av-9a54bc27876acd5d8be5b1fc3dc46701fe76fbb3.tar.gz frameworks_av-9a54bc27876acd5d8be5b1fc3dc46701fe76fbb3.tar.bz2 |
audioflinger: add HOTWORD audio source.
HOTWORD is a special capture audio source that uses
the same audio tuning as VOICE_RECOGNITION but allows an
active capture to be preempted.
Bug: 10640877.
Change-Id: Iea09a11cbcdbacc8d434e5230e7559dcd1b44ac0
Diffstat (limited to 'services/audioflinger/AudioPolicyService.cpp')
-rw-r--r-- | services/audioflinger/AudioPolicyService.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/services/audioflinger/AudioPolicyService.cpp b/services/audioflinger/AudioPolicyService.cpp index 900b411..4be292f 100644 --- a/services/audioflinger/AudioPolicyService.cpp +++ b/services/audioflinger/AudioPolicyService.cpp @@ -296,9 +296,14 @@ audio_io_handle_t AudioPolicyService::getInput(audio_source_t inputSource, return 0; } // already checked by client, but double-check in case the client wrapper is bypassed - if (uint32_t(inputSource) >= AUDIO_SOURCE_CNT) { + if (inputSource >= AUDIO_SOURCE_CNT && inputSource != AUDIO_SOURCE_HOTWORD) { return 0; } + + if ((inputSource == AUDIO_SOURCE_HOTWORD) && !captureHotwordAllowed()) { + return 0; + } + Mutex::Autolock _l(mLock); // the audio_in_acoustics_t parameter is ignored by get_input() audio_io_handle_t input = mpAudioPolicy->get_input(mpAudioPolicy, inputSource, samplingRate, @@ -308,7 +313,10 @@ audio_io_handle_t AudioPolicyService::getInput(audio_source_t inputSource, return input; } // create audio pre processors according to input source - ssize_t index = mInputSources.indexOfKey(inputSource); + audio_source_t aliasSource = (inputSource == AUDIO_SOURCE_HOTWORD) ? + AUDIO_SOURCE_VOICE_RECOGNITION : inputSource; + + ssize_t index = mInputSources.indexOfKey(aliasSource); if (index < 0) { return input; } |