diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-03 19:01:49 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-03 19:01:49 +0000 |
commit | 80eac81f0f122675305832e6d839a94f75663e68 (patch) | |
tree | ba9b8dd832a72a3ddd4504f521a76e274ea33246 /media | |
parent | 5ece804ea3e360c6476f23672df7dabbd56f5057 (diff) | |
download | chromium_src-80eac81f0f122675305832e6d839a94f75663e68.zip chromium_src-80eac81f0f122675305832e6d839a94f75663e68.tar.gz chromium_src-80eac81f0f122675305832e6d839a94f75663e68.tar.bz2 |
Linux: make AudioManagerLinux::ShowAudioInputSettings work on Unity.
BUG=none
Review URL: https://codereview.chromium.org/11691007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174987 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/audio/linux/audio_manager_linux.cc | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/media/audio/linux/audio_manager_linux.cc b/media/audio/linux/audio_manager_linux.cc index 48be0b7..47d4195 100644 --- a/media/audio/linux/audio_manager_linux.cc +++ b/media/audio/linux/audio_manager_linux.cc @@ -76,9 +76,9 @@ bool AudioManagerLinux::CanShowAudioInputSettings() { case base::nix::DESKTOP_ENVIRONMENT_GNOME: case base::nix::DESKTOP_ENVIRONMENT_KDE3: case base::nix::DESKTOP_ENVIRONMENT_KDE4: + case base::nix::DESKTOP_ENVIRONMENT_UNITY: return true; case base::nix::DESKTOP_ENVIRONMENT_OTHER: - case base::nix::DESKTOP_ENVIRONMENT_UNITY: case base::nix::DESKTOP_ENVIRONMENT_XFCE: return false; } @@ -89,12 +89,26 @@ bool AudioManagerLinux::CanShowAudioInputSettings() { void AudioManagerLinux::ShowAudioInputSettings() { scoped_ptr<base::Environment> env(base::Environment::Create()); - base::nix::DesktopEnvironment desktop = base::nix::GetDesktopEnvironment( - env.get()); - std::string command((desktop == base::nix::DESKTOP_ENVIRONMENT_GNOME) ? - "gnome-volume-control" : "kmix"); - base::LaunchProcess(CommandLine(FilePath(command)), base::LaunchOptions(), - NULL); + CommandLine command_line(CommandLine::NO_PROGRAM); + switch (base::nix::GetDesktopEnvironment(env.get())) { + case base::nix::DESKTOP_ENVIRONMENT_GNOME: + command_line.SetProgram(FilePath("gnome-volume-control")); + break; + case base::nix::DESKTOP_ENVIRONMENT_KDE3: + case base::nix::DESKTOP_ENVIRONMENT_KDE4: + command_line.SetProgram(FilePath("kmix")); + break; + case base::nix::DESKTOP_ENVIRONMENT_UNITY: + command_line.SetProgram(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); } void AudioManagerLinux::GetAudioInputDeviceNames( |