From c125f38cd0ae35409a01b98a99e483550daa1313 Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Fri, 11 Apr 2014 18:37:33 -0700 Subject: audioflinger: forward device change to effects in direct thread Device change during offload playback is not informed to effect chain which causes effects still work on unexpected output devices. Add device change notification in direct output thread. Original author wjiang CRs-Fixed: 630408 Bug: 14053172 Signed-off-by: Glenn Kasten Change-Id: I094a99bdf540479cee2fca6614ec35c2fa7d6046 --- services/audioflinger/Threads.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'services/audioflinger') diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp index feedd89..ae3dd8b 100644 --- a/services/audioflinger/Threads.cpp +++ b/services/audioflinger/Threads.cpp @@ -3951,6 +3951,16 @@ bool AudioFlinger::DirectOutputThread::checkForNewParameters_l() AudioParameter param = AudioParameter(keyValuePair); int value; + if (param.getInt(String8(AudioParameter::keyRouting), value) == NO_ERROR) { + // forward device change to effects that have requested to be + // aware of attached audio device. + if (value != AUDIO_DEVICE_NONE) { + mOutDevice = value; + for (size_t i = 0; i < mEffectChains.size(); i++) { + mEffectChains[i]->setDevice_l(mOutDevice); + } + } + } if (param.getInt(String8(AudioParameter::keyFrameCount), value) == NO_ERROR) { // do not accept frame count changes if tracks are open as the track buffer // size depends on frame count and correct behavior would not be garantied -- cgit v1.1