summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-03 19:01:49 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-03 19:01:49 +0000
commit80eac81f0f122675305832e6d839a94f75663e68 (patch)
treeba9b8dd832a72a3ddd4504f521a76e274ea33246 /media
parent5ece804ea3e360c6476f23672df7dabbd56f5057 (diff)
downloadchromium_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.cc28
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(