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 d6704fe386f2864b24dd07680132e2d7a1afa5fb..03e129d65c212492165ec307ff7b559bc4ed4b7e 100644 |
--- a/media/audio/linux/audio_manager_linux.cc |
+++ b/media/audio/linux/audio_manager_linux.cc |
@@ -36,7 +36,6 @@ static const char* kInvalidAudioInputDevices[] = { |
"null", |
"pulse", |
"dmix", |
- "surround", |
scherkus (not reviewing)
2011/11/16 01:20:40
??
no longer working on chromium
2011/11/16 17:45:48
We would like to strip out all the surround device
|
}; |
// Implementation of AudioManager. |
@@ -87,7 +86,7 @@ AudioOutputStream* AudioManagerLinux::MakeAudioOutputStream( |
} |
AudioInputStream* AudioManagerLinux::MakeAudioInputStream( |
- const AudioParameters& params) { |
+ const AudioParameters& params, const std::string& device_uid) { |
if (!params.IsValid() || params.channels > kMaxInputChannels) |
return NULL; |
@@ -100,8 +99,11 @@ AudioInputStream* AudioManagerLinux::MakeAudioInputStream( |
if (!initialized()) |
return NULL; |
- // TODO(xians): Pass the device name From AudioInputController instead. |
- std::string device_name = AlsaPcmOutputStream::kAutoSelectDevice; |
+ std::string device_name; |
+ if ((device_uid == AudioManagerBase::kDefaultDeviceId) || device_uid.empty()) |
+ device_name = AlsaPcmInputStream::kAutoSelectDevice; |
+ else |
+ device_name = device_uid; |
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAlsaInputDevice)) { |
device_name = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
switches::kAlsaInputDevice); |
@@ -183,7 +185,8 @@ void AudioManagerLinux::GetAudioInputDeviceNames( |
// counting here since the default device has been abstracted out before. |
// We use index 0 to make up the unique_id to identify the default device. |
device_names->push_front(media::AudioDeviceName( |
- AudioManagerBase::kDefaultDeviceName, "0")); |
+ AudioManagerBase::kDefaultDeviceName, |
+ AudioManagerBase::kDefaultDeviceId)); |
} |
} |
@@ -256,13 +259,16 @@ void AudioManagerLinux::GetAlsaDevicesInfo( |
} |
bool AudioManagerLinux::IsAlsaDeviceAvailable(const char* device_name) { |
+ static const char kNotWantedSurroundDevices[] = "surround"; |
+ |
if (!device_name) |
return false; |
// Check if the device is in the list of invalid devices. |
for (size_t i = 0; i < arraysize(kInvalidAudioInputDevices); ++i) { |
- if (!strncmp(kInvalidAudioInputDevices[i], device_name, |
- strlen(kInvalidAudioInputDevices[i]))) |
+ if (!strcmp(kInvalidAudioInputDevices[i], device_name) || |
+ !strncmp(kNotWantedSurroundDevices, device_name, |
+ arraysize(kNotWantedSurroundDevices) -1)) |
scherkus (not reviewing)
2011/11/16 01:20:40
nit space between -1
no longer working on chromium
2011/11/16 17:45:48
Done.
|
return false; |
} |