1 // Copyright (c) 2012 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.
5 #include "base/command_line.h"
6 #include "base/metrics/histogram.h"
8 #include "media/audio/alsa/audio_manager_alsa.h"
10 #include "media/audio/fake_audio_manager.h"
13 #include "media/audio/cras/audio_manager_cras.h"
15 #if defined(USE_PULSEAUDIO)
16 #include "media/audio/pulse/audio_manager_pulse.h"
18 #include "media/base/media_switches.h"
26 kAudioIOMax
= kCras
// Must always be equal to largest logged entry.
29 AudioManager
* CreateAudioManager(AudioLogFactory
* audio_log_factory
) {
31 if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseCras
)) {
32 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kCras
, kAudioIOMax
+ 1);
33 return new AudioManagerCras(audio_log_factory
);
37 #if defined(USE_PULSEAUDIO)
38 AudioManager
* manager
= AudioManagerPulse::Create(audio_log_factory
);
40 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kPulse
, kAudioIOMax
+ 1);
46 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kAlsa
, kAudioIOMax
+ 1);
47 return new AudioManagerAlsa(audio_log_factory
);
49 return new FakeAudioManager(audio_log_factory
);