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 3387d56d2872e6ec507e1fdb2fb9edda6a04c827..f5a808984dd79b47a248dd5488a2c1db459c3461 100644 |
--- a/media/audio/linux/audio_manager_linux.cc |
+++ b/media/audio/linux/audio_manager_linux.cc |
@@ -16,7 +16,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 |
#if defined(USE_CRAS) |
#include "media/audio/linux/cras_input.h" |
@@ -45,6 +45,31 @@ static const char* kInvalidAudioInputDevices[] = { |
static const char kCrasAutomaticDeviceName[] = "Automatic"; |
static const char kCrasAutomaticDeviceId[] = "automatic"; |
+// static |
+void AudioManagerLinux::ShowLinuxAudioInputSettings() { |
+ scoped_ptr<base::Environment> env(base::Environment::Create()); |
+ CommandLine command_line(CommandLine::NO_PROGRAM); |
+ switch (base::nix::GetDesktopEnvironment(env.get())) { |
+ case base::nix::DESKTOP_ENVIRONMENT_GNOME: |
+ command_line.SetProgram(base::FilePath("gnome-volume-control")); |
+ break; |
+ case base::nix::DESKTOP_ENVIRONMENT_KDE3: |
+ case base::nix::DESKTOP_ENVIRONMENT_KDE4: |
+ command_line.SetProgram(base::FilePath("kmix")); |
+ break; |
+ case base::nix::DESKTOP_ENVIRONMENT_UNITY: |
+ command_line.SetProgram(base::FilePath("gnome-control-center")); |
+ command_line.AppendArg("sound"); |
+ command_line.AppendArg("input"); |
+ break; |
+ default: |
+ LOG(ERROR) << "Failed to show audio input settings: we don't know " |
+ << "what command to use for your desktop environment."; |
+ return; |
+ } |
+ base::LaunchProcess(command_line, base::LaunchOptions(), NULL); |
+} |
+ |
// Implementation of AudioManager. |
bool AudioManagerLinux::HasAudioOutputDevices() { |
if (UseCras()) |
@@ -70,27 +95,7 @@ AudioManagerLinux::~AudioManagerLinux() { |
} |
void AudioManagerLinux::ShowAudioInputSettings() { |
- scoped_ptr<base::Environment> env(base::Environment::Create()); |
- CommandLine command_line(CommandLine::NO_PROGRAM); |
- switch (base::nix::GetDesktopEnvironment(env.get())) { |
- case base::nix::DESKTOP_ENVIRONMENT_GNOME: |
- command_line.SetProgram(base::FilePath("gnome-volume-control")); |
- break; |
- case base::nix::DESKTOP_ENVIRONMENT_KDE3: |
- case base::nix::DESKTOP_ENVIRONMENT_KDE4: |
- command_line.SetProgram(base::FilePath("kmix")); |
- break; |
- case base::nix::DESKTOP_ENVIRONMENT_UNITY: |
- command_line.SetProgram(base::FilePath("gnome-control-center")); |
- command_line.AppendArg("sound"); |
- command_line.AppendArg("input"); |
- break; |
- default: |
- LOG(ERROR) << "Failed to show audio input settings: we don't know " |
- << "what command to use for your desktop environment."; |
- return; |
- } |
- base::LaunchProcess(command_line, base::LaunchOptions(), NULL); |
+ ShowLinuxAudioInputSettings(); |
} |
void AudioManagerLinux::GetAudioInputDeviceNames( |
@@ -285,12 +290,6 @@ AudioOutputStream* AudioManagerLinux::MakeOutputStream( |
} |
#endif |
-#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)) { |
@@ -319,6 +318,14 @@ AudioInputStream* AudioManagerLinux::MakeInputStream( |
} |
AudioManager* CreateAudioManager() { |
+#if defined(USE_PULSEAUDIO) |
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUsePulseAudio)) { |
+ AudioManager* manager = AudioManagerPulse::Create(); |
+ if (manager) |
+ return manager; |
+ } |
+#endif |
+ |
return new AudioManagerLinux(); |
} |