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 return FakeAudioOutputStream::MakeFakeStream(this, params); 38} 39 40AudioInputStream* FakeAudioManager::MakeLinearInputStream( 41 const AudioParameters& params, 42 const std::string& device_id) { 43 return FakeAudioInputStream::MakeFakeStream(this, params); 44} 45 46AudioInputStream* FakeAudioManager::MakeLowLatencyInputStream( 47 const AudioParameters& params, 48 const std::string& device_id) { 49 return FakeAudioInputStream::MakeFakeStream(this, params); 50} 51 52AudioParameters FakeAudioManager::GetPreferredOutputStreamParameters( 53 const std::string& output_device_id, 54 const AudioParameters& input_params) { 55 static const int kDefaultOutputBufferSize = 2048; 56 static const int kDefaultSampleRate = 48000; 57 ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; 58 int sample_rate = kDefaultSampleRate; 59 int buffer_size = kDefaultOutputBufferSize; 60 int bits_per_sample = 16; 61 if (input_params.IsValid()) { 62 sample_rate = input_params.sample_rate(); 63 bits_per_sample = input_params.bits_per_sample(); 64 channel_layout = input_params.channel_layout(); 65 buffer_size = std::min(input_params.frames_per_buffer(), buffer_size); 66 } 67 68 return AudioParameters( 69 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, 70 sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS); 71} 72 73AudioParameters FakeAudioManager::GetInputStreamParameters( 74 const std::string& device_id) { 75 return AudioParameters( 76 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, 77 kDefaultSampleRate, 16, kDefaultInputBufferSize); 78} 79 80} // namespace media 81