summaryrefslogtreecommitdiff
path: root/chromium/media/audio/fake_audio_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/audio/fake_audio_manager.cc')
-rw-r--r--chromium/media/audio/fake_audio_manager.cc83
1 files changed, 83 insertions, 0 deletions
diff --git a/chromium/media/audio/fake_audio_manager.cc b/chromium/media/audio/fake_audio_manager.cc
new file mode 100644
index 00000000000..bfe9a0a7ff3
--- /dev/null
+++ b/chromium/media/audio/fake_audio_manager.cc
@@ -0,0 +1,83 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "media/audio/fake_audio_manager.h"
+
+namespace media {
+
+namespace {
+
+const int kDefaultInputBufferSize = 1024;
+const int kDefaultSampleRate = 48000;
+
+} // namespace
+
+FakeAudioManager::FakeAudioManager(AudioLogFactory* audio_log_factory)
+ : AudioManagerBase(audio_log_factory) {}
+
+FakeAudioManager::~FakeAudioManager() {
+ Shutdown();
+}
+
+// Implementation of AudioManager.
+bool FakeAudioManager::HasAudioOutputDevices() { return false; }
+
+bool FakeAudioManager::HasAudioInputDevices() { return false; }
+
+// Implementation of AudioManagerBase.
+AudioOutputStream* FakeAudioManager::MakeLinearOutputStream(
+ const AudioParameters& params) {
+ return FakeAudioOutputStream::MakeFakeStream(this, params);
+}
+
+AudioOutputStream* FakeAudioManager::MakeLowLatencyOutputStream(
+ const AudioParameters& params,
+ const std::string& device_id,
+ const std::string& input_device_id) {
+ return FakeAudioOutputStream::MakeFakeStream(this, params);
+}
+
+AudioInputStream* FakeAudioManager::MakeLinearInputStream(
+ const AudioParameters& params,
+ const std::string& device_id) {
+ return FakeAudioInputStream::MakeFakeStream(this, params);
+}
+
+AudioInputStream* FakeAudioManager::MakeLowLatencyInputStream(
+ const AudioParameters& params,
+ const std::string& device_id) {
+ return FakeAudioInputStream::MakeFakeStream(this, params);
+}
+
+AudioParameters FakeAudioManager::GetPreferredOutputStreamParameters(
+ const std::string& output_device_id,
+ const AudioParameters& input_params) {
+ static const int kDefaultOutputBufferSize = 2048;
+ static const int kDefaultSampleRate = 48000;
+ ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
+ int sample_rate = kDefaultSampleRate;
+ int buffer_size = kDefaultOutputBufferSize;
+ int bits_per_sample = 16;
+ int input_channels = 0;
+ if (input_params.IsValid()) {
+ sample_rate = input_params.sample_rate();
+ bits_per_sample = input_params.bits_per_sample();
+ channel_layout = input_params.channel_layout();
+ input_channels = input_params.input_channels();
+ buffer_size = std::min(input_params.frames_per_buffer(), buffer_size);
+ }
+
+ return AudioParameters(
+ AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels,
+ sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS);
+}
+
+AudioParameters FakeAudioManager::GetInputStreamParameters(
+ const std::string& device_id) {
+ return AudioParameters(
+ AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
+ kDefaultSampleRate, 16, kDefaultInputBufferSize);
+}
+
+} // namespace media