diff options
author | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 08:41:52 +0000 |
---|---|---|
committer | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 08:41:52 +0000 |
commit | afc1d76e492ae30e311a740447ac7f0774212691 (patch) | |
tree | 4095d4bb577e01af89a82980e8abd5d752cad01a /media | |
parent | f36171713e205b6d3c4edbff418bac0bc6f6102c (diff) | |
download | chromium_src-afc1d76e492ae30e311a740447ac7f0774212691.zip chromium_src-afc1d76e492ae30e311a740447ac7f0774212691.tar.gz chromium_src-afc1d76e492ae30e311a740447ac7f0774212691.tar.bz2 |
Implement GetAudioOutputDeviceNames for Mac OS X.
BUG=276894
R=tommi@chromium.org
Review URL: https://codereview.chromium.org/24072002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222217 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/audio/audio_manager_unittest.cc | 8 | ||||
-rw-r--r-- | media/audio/mac/audio_manager_mac.cc | 27 | ||||
-rw-r--r-- | media/audio/mac/audio_manager_mac.h | 2 |
3 files changed, 28 insertions, 9 deletions
diff --git a/media/audio/audio_manager_unittest.cc b/media/audio/audio_manager_unittest.cc index 859e0fe..4fefe85 100644 --- a/media/audio/audio_manager_unittest.cc +++ b/media/audio/audio_manager_unittest.cc @@ -32,6 +32,8 @@ void GetAudioOutputDeviceNamesImpl(AudioManager* audio_manager) { } TEST(AudioManagerTest, GetAudioOutputDeviceNames) { + // On Linux, we may be able to test both the Alsa and Pulseaudio + // versions of the audio manager. #if defined(USE_PULSEAUDIO) { VLOG(2) << "Testing AudioManagerPulse."; @@ -49,6 +51,12 @@ TEST(AudioManagerTest, GetAudioOutputDeviceNames) { GetAudioOutputDeviceNamesImpl(alsa_audio_manager.get()); } #endif // defined(USE_ALSA) + +#if defined(OS_MACOSX) + VLOG(2) << "Testing platform-default AudioManager."; + scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); + GetAudioOutputDeviceNamesImpl(audio_manager.get()); +#endif // defined(OS_MACOSX) } } // namespace media diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc index 21b9318..ef37045 100644 --- a/media/audio/mac/audio_manager_mac.cc +++ b/media/audio/mac/audio_manager_mac.cc @@ -81,6 +81,8 @@ bool AudioManagerMac::HasUnifiedDefaultIO() { return input_id == output_id; } +// Retrieves information on audio devices, and prepends the default +// device to the list if the list is non-empty. static void GetAudioDeviceInfo(bool is_input, media::AudioDeviceNames* device_names) { // Query the number of total devices. @@ -173,6 +175,16 @@ static void GetAudioDeviceInfo(bool is_input, if (name) CFRelease(name); } + + if (!device_names->empty()) { + // Prepend the default device to the list since we always want it to be + // on the top of the list for all platforms. There is no duplicate + // counting here since the default device has been abstracted out before. + media::AudioDeviceName name; + name.device_name = AudioManagerBase::kDefaultDeviceName; + name.unique_id = AudioManagerBase::kDefaultDeviceId; + device_names->push_front(name); + } } static AudioDeviceID GetAudioDeviceIdByUId(bool is_input, @@ -396,15 +408,12 @@ void AudioManagerMac::GetAudioInputDeviceNames( media::AudioDeviceNames* device_names) { DCHECK(device_names->empty()); GetAudioDeviceInfo(true, device_names); - if (!device_names->empty()) { - // Prepend the default device to the list since we always want it to be - // on the top of the list for all platforms. There is no duplicate - // counting here since the default device has been abstracted out before. - media::AudioDeviceName name; - name.device_name = AudioManagerBase::kDefaultDeviceName; - name.unique_id = AudioManagerBase::kDefaultDeviceId; - device_names->push_front(name); - } +} + +void AudioManagerMac::GetAudioOutputDeviceNames( + media::AudioDeviceNames* device_names) { + DCHECK(device_names->empty()); + GetAudioDeviceInfo(false, device_names); } AudioParameters AudioManagerMac::GetInputStreamParameters( diff --git a/media/audio/mac/audio_manager_mac.h b/media/audio/mac/audio_manager_mac.h index 876109b..dd91f22 100644 --- a/media/audio/mac/audio_manager_mac.h +++ b/media/audio/mac/audio_manager_mac.h @@ -29,6 +29,8 @@ class MEDIA_EXPORT AudioManagerMac : public AudioManagerBase { virtual bool HasAudioInputDevices() OVERRIDE; virtual void GetAudioInputDeviceNames(media::AudioDeviceNames* device_names) OVERRIDE; + virtual void GetAudioOutputDeviceNames(media::AudioDeviceNames* device_names) + OVERRIDE; virtual AudioParameters GetInputStreamParameters( const std::string& device_id) OVERRIDE; |