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 7 namespace media { 8 9 namespace { 10 11 const int kDefaultInputBufferSize = 1024; 12 const int kDefaultSampleRate = 48000; 13 14 } // namespace 15 16 FakeAudioManager::FakeAudioManager(AudioLogFactory* audio_log_factory) 17 : AudioManagerBase(audio_log_factory) {} 18 19 FakeAudioManager::~FakeAudioManager() { 20 Shutdown(); 21 } 22 23 // Implementation of AudioManager. 24 bool FakeAudioManager::HasAudioOutputDevices() { return false; } 25 26 bool FakeAudioManager::HasAudioInputDevices() { return false; } 27 28 // Implementation of AudioManagerBase. 29 AudioOutputStream* FakeAudioManager::MakeLinearOutputStream( 30 const AudioParameters& params) { 31 return FakeAudioOutputStream::MakeFakeStream(this, params); 32 } 33 34 AudioOutputStream* FakeAudioManager::MakeLowLatencyOutputStream( 35 const AudioParameters& params, 36 const std::string& device_id) { 37 return FakeAudioOutputStream::MakeFakeStream(this, params); 38 } 39 40 AudioInputStream* FakeAudioManager::MakeLinearInputStream( 41 const AudioParameters& params, 42 const std::string& device_id) { 43 return FakeAudioInputStream::MakeFakeStream(this, params); 44 } 45 46 AudioInputStream* FakeAudioManager::MakeLowLatencyInputStream( 47 const AudioParameters& params, 48 const std::string& device_id) { 49 return FakeAudioInputStream::MakeFakeStream(this, params); 50 } 51 52 AudioParameters 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 73 AudioParameters 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