fake_audio_manager.cc revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "media/audio/fake_audio_manager.h" 6 7namespace media { 8 9namespace { 10 11const int kDefaultInputBufferSize = 1024; 12const int kDefaultSampleRate = 48000; 13 14} // namespace 15 16FakeAudioManager::FakeAudioManager(AudioLogFactory* audio_log_factory) 17 : AudioManagerBase(audio_log_factory) {} 18 19FakeAudioManager::~FakeAudioManager() { 20 Shutdown(); 21} 22 23// Implementation of AudioManager. 24bool FakeAudioManager::HasAudioOutputDevices() { return false; } 25 26bool FakeAudioManager::HasAudioInputDevices() { return false; } 27 28// Implementation of AudioManagerBase. 29AudioOutputStream* FakeAudioManager::MakeLinearOutputStream( 30 const AudioParameters& params) { 31 return FakeAudioOutputStream::MakeFakeStream(this, params); 32} 33 34AudioOutputStream* FakeAudioManager::MakeLowLatencyOutputStream( 35 const AudioParameters& params, 36 const std::string& device_id, 37 const std::string& input_device_id) { 38 return FakeAudioOutputStream::MakeFakeStream(this, params); 39} 40 41AudioInputStream* FakeAudioManager::MakeLinearInputStream( 42 const AudioParameters& params, 43 const std::string& device_id) { 44 return FakeAudioInputStream::MakeFakeStream(this, params); 45} 46 47AudioInputStream* FakeAudioManager::MakeLowLatencyInputStream( 48 const AudioParameters& params, 49 const std::string& device_id) { 50 return FakeAudioInputStream::MakeFakeStream(this, params); 51} 52 53AudioParameters FakeAudioManager::GetPreferredOutputStreamParameters( 54 const std::string& output_device_id, 55 const AudioParameters& input_params) { 56 static const int kDefaultOutputBufferSize = 2048; 57 static const int kDefaultSampleRate = 48000; 58 ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; 59 int sample_rate = kDefaultSampleRate; 60 int buffer_size = kDefaultOutputBufferSize; 61 int bits_per_sample = 16; 62 int input_channels = 0; 63 if (input_params.IsValid()) { 64 sample_rate = input_params.sample_rate(); 65 bits_per_sample = input_params.bits_per_sample(); 66 channel_layout = input_params.channel_layout(); 67 input_channels = input_params.input_channels(); 68 buffer_size = std::min(input_params.frames_per_buffer(), buffer_size); 69 } 70 71 return AudioParameters( 72 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels, 73 sample_rate, bits_per_sample, buffer_size); 74} 75 76AudioParameters FakeAudioManager::GetInputStreamParameters( 77 const std::string& device_id) { 78 return AudioParameters( 79 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, 80 kDefaultSampleRate, 16, kDefaultInputBufferSize); 81} 82 83} // namespace media 84