Index: media/audio/cras/audio_manager_cras.cc |
diff --git a/media/audio/cras/audio_manager_cras.cc b/media/audio/cras/audio_manager_cras.cc |
index ef46176e19a648baa14dc3a6080ab7dc0c82b0e8..befd3df6dfc9911a9e75c89d87faaa6b3a2c31ba 100644 |
--- a/media/audio/cras/audio_manager_cras.cc |
+++ b/media/audio/cras/audio_manager_cras.cc |
@@ -53,7 +53,8 @@ bool AudioManagerCras::HasAudioInputDevices() { |
} |
AudioManagerCras::AudioManagerCras(AudioLogFactory* audio_log_factory) |
- : AudioManagerBase(audio_log_factory) { |
+ : AudioManagerBase(audio_log_factory), |
+ has_keyboard_mic_(false) { |
SetMaxOutputStreamsAllowed(kMaxOutputStreams); |
} |
@@ -77,15 +78,25 @@ void AudioManagerCras::GetAudioOutputDeviceNames( |
AudioParameters AudioManagerCras::GetInputStreamParameters( |
const std::string& device_id) { |
+ DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
+ |
int user_buffer_size = GetUserBufferSize(); |
int buffer_size = user_buffer_size ? |
user_buffer_size : kDefaultInputBufferSize; |
+ AudioParameters::PlatformEffectsMask effects = |
+ has_keyboard_mic_ ? AudioParameters::KEYBOARD_MIC |
+ : AudioParameters::NO_EFFECTS; |
// TODO(hshi): Fine-tune audio parameters based on |device_id|. The optimal |
// parameters for the loopback stream may differ from the default. |
return AudioParameters( |
AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, |
- kDefaultSampleRate, 16, buffer_size); |
+ kDefaultSampleRate, 16, buffer_size, effects); |
+} |
+ |
+void AudioManagerCras::SetHasKeyboardMic() { |
+ DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
+ has_keyboard_mic_ = true; |
} |
AudioOutputStream* AudioManagerCras::MakeLinearOutputStream( |