diff options
author | rago <rago@google.com> | 2017-07-26 12:48:18 -0700 |
---|---|---|
committer | rago <rago@google.com> | 2017-07-26 14:05:55 -0700 |
commit | 20ec4487777677f1f3cbf08c5bcbfae36f14afe9 (patch) | |
tree | d4209dfbd118ee1886a381ace49b260844297518 | |
parent | e9c0e6bdeed48d7bf3a04fce0ec42927b71aca57 (diff) | |
download | fugu-20ec4487777677f1f3cbf08c5bcbfae36f14afe9.tar.gz |
Fix for recording source UNPROCESSED
Recording source unprocessed was not properly selected for remote or
USB.
Bug: 36575004
Test: tested with recording software and multiple audio sources
Change-Id: Ie96cf7c5396781faab55b376b19ebf0f2962076f
-rw-r--r-- | libaudio/ATVAudioPolicyManager.cpp | 3 | ||||
-rw-r--r-- | libaudio/AudioHardwareInput.cpp | 12 |
2 files changed, 13 insertions, 2 deletions
diff --git a/libaudio/ATVAudioPolicyManager.cpp b/libaudio/ATVAudioPolicyManager.cpp index deb1bf4..0513052 100644 --- a/libaudio/ATVAudioPolicyManager.cpp +++ b/libaudio/ATVAudioPolicyManager.cpp @@ -129,7 +129,8 @@ audio_devices_t ATVAudioPolicyManager::getDeviceForInputSource(audio_source_t in const audio_devices_t availableDeviceTypes = mAvailableInputDevices.types() & ~AUDIO_DEVICE_BIT_IN; - if (inputSource == AUDIO_SOURCE_VOICE_RECOGNITION) { + if (inputSource == AUDIO_SOURCE_VOICE_RECOGNITION || + inputSource == AUDIO_SOURCE_UNPROCESSED) { #ifdef REMOTE_CONTROL_INTERFACE ALOGI("Using REMOTE_CONTROL_INTERFACE."); // Check if remote is actually connected or we should move on diff --git a/libaudio/AudioHardwareInput.cpp b/libaudio/AudioHardwareInput.cpp index eef0e89..71efbf9 100644 --- a/libaudio/AudioHardwareInput.cpp +++ b/libaudio/AudioHardwareInput.cpp @@ -257,6 +257,7 @@ void AudioHardwareInput::onDeviceRemoved(unsigned int pcmCard, unsigned int pcmD const AudioHotplugThread::DeviceInfo* AudioHardwareInput::getBestDevice(int inputSource) { bool doVoiceRecognition = (inputSource == AUDIO_SOURCE_VOICE_RECOGNITION); + const bool favorNoVoiceRecognition = (inputSource == AUDIO_SOURCE_UNPROCESSED); int chosenDeviceIndex = -1; Mutex::Autolock _l(mLock); @@ -266,9 +267,18 @@ const AudioHotplugThread::DeviceInfo* AudioHardwareInput::getBestDevice(int inpu // and no other devices are used for voice recognition. // Currently the RemoteControl is the only device marked with forVoiceRecognition=true. // A connected USB mic could be used for anything but voice recognition. + // For UNPROCESSED source, a connected USB microphone will be favored over the remote mic. for (int i=0; i<kMaxDevices; i++) { if (mDeviceInfos[i].valid) { - if (mDeviceInfos[i].forVoiceRecognition == doVoiceRecognition) { + if (favorNoVoiceRecognition) { + if (mDeviceInfos[i].forVoiceRecognition) { + chosenDeviceIndex = i; + //continue matching + } else { + chosenDeviceIndex = i; + break; + } + } else if (mDeviceInfos[i].forVoiceRecognition == doVoiceRecognition) { chosenDeviceIndex = i; break; } |