Index: media/audio/linux/audio_manager_linux.cc |
diff --git a/media/audio/linux/audio_manager_linux.cc b/media/audio/linux/audio_manager_linux.cc |
index 90543d7ab8e232731cf0d19b2f2f282c4e98c3f9..fa8612573fe95397f905062cfd531aa20af5684b 100644 |
--- a/media/audio/linux/audio_manager_linux.cc |
+++ b/media/audio/linux/audio_manager_linux.cc |
@@ -19,7 +19,7 @@ |
#include "media/audio/linux/alsa_output.h" |
#include "media/audio/linux/alsa_wrapper.h" |
#if defined(USE_PULSEAUDIO) |
-#include "media/audio/pulse/pulse_output.h" |
+#include "media/audio/pulse/audio_manager_pulse.h" |
#endif |
#include "media/base/limits.h" |
#include "media/base/media_switches.h" |
@@ -41,25 +41,8 @@ static const char* kInvalidAudioInputDevices[] = { |
"surround", |
}; |
-// Implementation of AudioManager. |
-bool AudioManagerLinux::HasAudioOutputDevices() { |
- return HasAnyAlsaAudioDevice(kStreamPlayback); |
-} |
- |
-bool AudioManagerLinux::HasAudioInputDevices() { |
- return HasAnyAlsaAudioDevice(kStreamCapture); |
-} |
- |
-AudioManagerLinux::AudioManagerLinux() |
- : wrapper_(new AlsaWrapper()) { |
- SetMaxOutputStreamsAllowed(kMaxOutputStreams); |
-} |
- |
-AudioManagerLinux::~AudioManagerLinux() { |
- Shutdown(); |
-} |
- |
-void AudioManagerLinux::ShowAudioInputSettings() { |
+// static |
+void AudioManagerLinux::ShowLinuxAudioInputSettings() { |
scoped_ptr<base::Environment> env(base::Environment::Create()); |
CommandLine command_line(CommandLine::NO_PROGRAM); |
switch (base::nix::GetDesktopEnvironment(env.get())) { |
@@ -83,6 +66,28 @@ void AudioManagerLinux::ShowAudioInputSettings() { |
base::LaunchProcess(command_line, base::LaunchOptions(), NULL); |
} |
+// Implementation of AudioManager. |
+bool AudioManagerLinux::HasAudioOutputDevices() { |
+ return HasAnyAlsaAudioDevice(kStreamPlayback); |
+} |
+ |
+bool AudioManagerLinux::HasAudioInputDevices() { |
+ return HasAnyAlsaAudioDevice(kStreamCapture); |
+} |
+ |
+AudioManagerLinux::AudioManagerLinux() |
+ : wrapper_(new AlsaWrapper()) { |
+ SetMaxOutputStreamsAllowed(kMaxOutputStreams); |
+} |
+ |
+AudioManagerLinux::~AudioManagerLinux() { |
+ Shutdown(); |
+} |
+ |
+void AudioManagerLinux::ShowAudioInputSettings() { |
+ ShowLinuxAudioInputSettings(); |
+} |
+ |
void AudioManagerLinux::GetAudioInputDeviceNames( |
media::AudioDeviceNames* device_names) { |
DCHECK(device_names->empty()); |
@@ -248,12 +253,6 @@ AudioInputStream* AudioManagerLinux::MakeLowLatencyInputStream( |
AudioOutputStream* AudioManagerLinux::MakeOutputStream( |
const AudioParameters& params) { |
-#if defined(USE_PULSEAUDIO) |
- if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUsePulseAudio)) { |
- return new PulseAudioOutputStream(params, this); |
- } |
-#endif |
- |
std::string device_name = AlsaPcmOutputStream::kAutoSelectDevice; |
if (CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kAlsaOutputDevice)) { |
@@ -282,6 +281,14 @@ AudioManager* CreateAudioManager() { |
} |
#endif |
+#if defined(USE_PULSEAUDIO) |
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUsePulseAudio)) { |
+ AudioManager* manager = AudioManagerPulse::Create(); |
+ if (manager) |
+ return manager; |
+ } |
+#endif |
+ |
return new AudioManagerLinux(); |
} |