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

Unified Diff: content/browser/renderer_host/media/audio_output_device_enumerator.cc

Issue 1602083003: Correctly handle enumerations for AudioManagers that report only the default audio output device. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update comments Created 4 years, 11 months 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
Index: content/browser/renderer_host/media/audio_output_device_enumerator.cc
diff --git a/content/browser/renderer_host/media/audio_output_device_enumerator.cc b/content/browser/renderer_host/media/audio_output_device_enumerator.cc
index 70a432065ce0df10c240b57049046ad2bd2bf125..54c05311e1fafbaa5a801a34559831cea738d2b7 100644
--- a/content/browser/renderer_host/media/audio_output_device_enumerator.cc
+++ b/content/browser/renderer_host/media/audio_output_device_enumerator.cc
@@ -23,16 +23,19 @@ AudioOutputDeviceEnumeration EnumerateDevicesOnDeviceThread(
media::AudioDeviceNames device_names;
audio_manager->GetAudioOutputDeviceNames(&device_names);
+ snapshot.has_actual_devices = !device_names.empty();
+
// If no devices in enumeration, return a list with a default device
- if (device_names.empty()) {
- snapshot.push_back({media::AudioManagerBase::kDefaultDeviceId,
- media::AudioManager::GetDefaultDeviceName(),
- audio_manager->GetDefaultOutputStreamParameters()});
+ if (!snapshot.has_actual_devices) {
+ snapshot.devices.push_back(
+ {media::AudioManagerBase::kDefaultDeviceId,
+ media::AudioManager::GetDefaultDeviceName(),
+ audio_manager->GetDefaultOutputStreamParameters()});
return snapshot;
}
for (const media::AudioDeviceName& name : device_names) {
- snapshot.push_back(
+ snapshot.devices.push_back(
{name.unique_id, name.device_name,
name.unique_id == media::AudioManagerBase::kDefaultDeviceId
? audio_manager->GetDefaultOutputStreamParameters()
@@ -43,6 +46,16 @@ AudioOutputDeviceEnumeration EnumerateDevicesOnDeviceThread(
} // namespace
+AudioOutputDeviceEnumeration::AudioOutputDeviceEnumeration(
+ const std::vector<AudioOutputDeviceInfo>& devices,
+ bool has_actual_devices)
+ : devices(devices), has_actual_devices(has_actual_devices) {}
+
+AudioOutputDeviceEnumeration::AudioOutputDeviceEnumeration()
+ : has_actual_devices(false) {}
+
+AudioOutputDeviceEnumeration::~AudioOutputDeviceEnumeration() {}
+
AudioOutputDeviceEnumerator::AudioOutputDeviceEnumerator(
media::AudioManager* audio_manager,
CachePolicy cache_policy)

Powered by Google App Engine
This is Rietveld 408576698