summaryrefslogtreecommitdiffstats
path: root/media/audio/cras/audio_manager_cras.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/audio/cras/audio_manager_cras.cc')
-rw-r--r--media/audio/cras/audio_manager_cras.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/media/audio/cras/audio_manager_cras.cc b/media/audio/cras/audio_manager_cras.cc
index ef46176..befd3df 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(