diff options
author | Eric Laurent <elaurent@google.com> | 2015-04-24 08:48:48 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2015-04-28 19:05:19 -0700 |
commit | 054d9d3dea1390294650ac704acb4aa0a0731217 (patch) | |
tree | 4d67c48a2cf367d661f1e33a6670cda052a569a3 /services/audioflinger/AudioFlinger.cpp | |
parent | f62a067a5b21c840c915d36392679346ac0abfd7 (diff) | |
download | frameworks_av-054d9d3dea1390294650ac704acb4aa0a0731217.zip frameworks_av-054d9d3dea1390294650ac704acb4aa0a0731217.tar.gz frameworks_av-054d9d3dea1390294650ac704acb4aa0a0731217.tar.bz2 |
PatchPanel: do not use setParameters() internally.
Do not use setParameters() with AUDIO_PARAMETER_STREAM_ROUTING
when communicating the input or output device selected to playback or
record threads, even for HAL version less than 3.0.
Use createAudioPatch()/releaseAudioPatch() instead.
This allows to send more information on the output or input device being
selected.
Also fix a regression introduced in L where the output device selection
was not communicated to effects on record threads.
Change-Id: I4780ada53241d56694b005c992171e173c3bf8f5
Diffstat (limited to 'services/audioflinger/AudioFlinger.cpp')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 5002099..0530aae 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -1013,6 +1013,14 @@ bool AudioFlinger::streamMute(audio_stream_type_t stream) const return streamMute_l(stream); } + +void AudioFlinger::broacastParametersToRecordThreads_l(const String8& keyValuePairs) +{ + for (size_t i = 0; i < mRecordThreads.size(); i++) { + mRecordThreads.valueAt(i)->setParameters(keyValuePairs); + } +} + status_t AudioFlinger::setParameters(audio_io_handle_t ioHandle, const String8& keyValuePairs) { ALOGV("setParameters(): io %d, keyvalue %s, calling pid %d", @@ -1087,9 +1095,7 @@ status_t AudioFlinger::setParameters(audio_io_handle_t ioHandle, const String8& int value; if ((param.getInt(String8(AudioParameter::keyRouting), value) == NO_ERROR) && (value != 0)) { - for (size_t i = 0; i < mRecordThreads.size(); i++) { - mRecordThreads.valueAt(i)->setParameters(keyValuePairs); - } + broacastParametersToRecordThreads_l(keyValuePairs); } } } |