Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Unified Diff: media/audio/linux/audio_manager_linux.cc

Issue 8491044: Link things together and enable the device selection for linux and mac. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: rebase2 Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/audio/linux/audio_manager_linux.h ('k') | media/audio/mac/audio_low_latency_input_mac.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 bf684d53d6d2c6283453e81758d4a8efb115ec1b..656c0bc41bf846e433e92b28503af5583c96177e 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",
};
// Implementation of AudioManager.
@@ -87,8 +86,9 @@ AudioOutputStream* AudioManagerLinux::MakeAudioOutputStream(
}
AudioInputStream* AudioManagerLinux::MakeAudioInputStream(
- const AudioParameters& params) {
- if (!params.IsValid() || params.channels > kMaxInputChannels)
+ const AudioParameters& params, const std::string& device_id) {
+ if (!params.IsValid() || params.channels > kMaxInputChannels ||
+ device_id.empty())
return NULL;
if (params.format == AudioParameters::AUDIO_MOCK) {
@@ -100,8 +100,8 @@ 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 = (device_id == AudioManagerBase::kDefaultDeviceId) ?
+ AlsaPcmInputStream::kAutoSelectDevice : device_id;
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAlsaInputDevice)) {
device_name = CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kAlsaInputDevice);
@@ -183,7 +183,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 +257,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) == 0) ||
+ (strncmp(kNotWantedSurroundDevices, device_name,
+ arraysize(kNotWantedSurroundDevices) - 1) == 0))
return false;
}
« no previous file with comments | « media/audio/linux/audio_manager_linux.h ('k') | media/audio/mac/audio_low_latency_input_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698