| 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();
|
| }
|
|
|
|
|