summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrago <rago@google.com>2017-07-27 04:49:12 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-07-27 04:49:12 +0000
commit08c87b8f7a1b7fc79a7fa6b9e83a092fd4d2171a (patch)
treedecc63ec606feb5cd367ed7005505a08f40887c7
parentd45ac2692b42a37dab0b4fce8a1c1df1d3a43ac2 (diff)
parent20ec4487777677f1f3cbf08c5bcbfae36f14afe9 (diff)
downloadfugu-08c87b8f7a1b7fc79a7fa6b9e83a092fd4d2171a.tar.gz
Fix for recording source UNPROCESSEDoreo-dr1-dev
am: 20ec448777 Change-Id: Ibe901a5c04868cca005f7e6748f400f22333441f
-rw-r--r--libaudio/ATVAudioPolicyManager.cpp3
-rw-r--r--libaudio/AudioHardwareInput.cpp12
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;
}