summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorbryant_liu <bryant_liu@htc.com>2014-08-19 20:07:05 +0800
committerDmitry Shmidt <dimitrysh@google.com>2014-08-28 18:13:57 -0700
commitf5e7e79bf88b0c08c73262e7992634797a4f81a1 (patch)
treedf685f1dfae541ef19ab8551372b3c67c420ac7f /services
parent890a5637b3e3eb197fd2c7f5deec816c7feb13fc (diff)
downloadframeworks_av-f5e7e79bf88b0c08c73262e7992634797a4f81a1.zip
frameworks_av-f5e7e79bf88b0c08c73262e7992634797a4f81a1.tar.gz
frameworks_av-f5e7e79bf88b0c08c73262e7992634797a4f81a1.tar.bz2
audiopolicy: Indicate output device change to all input threads for pre-processing
Bug: 17129715 Change-Id: I1fd938cce0b85241c80ea00f3d013a98948d3975
Diffstat (limited to 'services')
-rw-r--r--services/audiopolicy/AudioPolicyManager.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp
index 06dd22c..f65e136 100644
--- a/services/audiopolicy/AudioPolicyManager.cpp
+++ b/services/audiopolicy/AudioPolicyManager.cpp
@@ -4317,6 +4317,20 @@ uint32_t AudioPolicyManager::setOutputDevice(audio_io_handle_t output,
mpClientInterface->onAudioPatchListUpdate();
}
}
+
+ // inform all input as well
+ for (size_t i = 0; i < mInputs.size(); i++) {
+ const sp<AudioInputDescriptor> inputDescriptor = mInputs.valueAt(i);
+ if (!isVirtualInputDevice(inputDescriptor->mDevice)) {
+ AudioParameter inputCmd = AudioParameter();
+ ALOGV("%s: inform input %d of device:%d", __func__,
+ inputDescriptor->mIoHandle, device);
+ inputCmd.addInt(String8(AudioParameter::keyRouting),device);
+ mpClientInterface->setParameters(inputDescriptor->mIoHandle,
+ inputCmd.toString(),
+ delayMs);
+ }
+ }
}
// update stream volumes according to new device