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

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

Issue 2368213002: Remove AudioOutputDeviceEnumerator. Replace usage with MediaDevicesManager. (Closed)
Patch Set: Remove BoolDeviceTypes std::array literals Created 4 years, 3 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
deleted file mode 100644
index e215d08d47dffb76da1bae347e9772a7fa9d3cd1..0000000000000000000000000000000000000000
--- a/content/browser/renderer_host/media/audio_output_device_enumerator.cc
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright (c) 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/renderer_host/media/audio_output_device_enumerator.h"
-
-#include "base/callback_helpers.h"
-#include "base/location.h"
-#include "base/single_thread_task_runner.h"
-#include "base/task_runner_util.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "media/audio/audio_device_description.h"
-#include "media/audio/audio_manager.h"
-
-namespace content {
-
-namespace {
-
-AudioOutputDeviceEnumeration EnumerateDevicesOnDeviceThread(
- media::AudioManager* audio_manager) {
- DCHECK(audio_manager->GetTaskRunner()->BelongsToCurrentThread());
-
- AudioOutputDeviceEnumeration snapshot;
- 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 (!snapshot.has_actual_devices) {
- snapshot.devices.push_back(
- {media::AudioDeviceDescription::kDefaultDeviceId,
- media::AudioDeviceDescription::GetDefaultDeviceName(),
- audio_manager->GetGroupIDOutput(
- media::AudioDeviceDescription::kDefaultDeviceId),
- audio_manager->GetDefaultOutputStreamParameters()});
- return snapshot;
- }
-
- for (const media::AudioDeviceName& name : device_names) {
- snapshot.devices.push_back(
- {name.unique_id, name.device_name,
- audio_manager->GetGroupIDOutput(name.unique_id),
- name.unique_id == media::AudioDeviceDescription::kDefaultDeviceId
- ? audio_manager->GetDefaultOutputStreamParameters()
- : audio_manager->GetOutputStreamParameters(name.unique_id)});
- }
- return snapshot;
-}
-
-} // namespace
-
-AudioOutputDeviceInfo::AudioOutputDeviceInfo() {}
-
-AudioOutputDeviceInfo::~AudioOutputDeviceInfo() {}
-
-AudioOutputDeviceInfo::AudioOutputDeviceInfo(
- const std::string& unique_id,
- const std::string& device_name,
- const std::string& group_id,
- media::AudioParameters output_params)
- : unique_id(unique_id),
- device_name(device_name),
- group_id(group_id),
- output_params(output_params) {}
-
-AudioOutputDeviceInfo::AudioOutputDeviceInfo(
- const AudioOutputDeviceInfo& audio_output_device_info) = default;
-
-AudioOutputDeviceInfo::AudioOutputDeviceInfo(
- AudioOutputDeviceInfo&& audio_output_device_info) = default;
-
-AudioOutputDeviceInfo& AudioOutputDeviceInfo::operator=(
- const AudioOutputDeviceInfo& audio_output_device_info) = default;
-
-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(
- const AudioOutputDeviceEnumeration& other) = default;
-
-AudioOutputDeviceEnumeration::~AudioOutputDeviceEnumeration() {}
-
-AudioOutputDeviceEnumerator::AudioOutputDeviceEnumerator(
- media::AudioManager* audio_manager,
- CachePolicy cache_policy)
- : audio_manager_(audio_manager),
- cache_policy_(cache_policy),
- current_event_sequence_(0),
- seq_last_enumeration_(0),
- seq_last_invalidation_(0),
- is_enumeration_ongoing_(false),
- weak_factory_(this) {}
-
-AudioOutputDeviceEnumerator::~AudioOutputDeviceEnumerator() {
- DCHECK(thread_checker_.CalledOnValidThread());
-}
-
-void AudioOutputDeviceEnumerator::Enumerate(
- const AudioOutputDeviceEnumerationCB& callback) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- // If caching is disabled, force a cache invalidation
- if (cache_policy_ == CACHE_POLICY_NO_CACHING) {
- InvalidateCache();
- }
-
- if (IsLastEnumerationValid()) {
- DCHECK(pending_callbacks_.empty());
- callback.Run(cache_);
- } else {
- pending_callbacks_.push_back(callback);
- if (!is_enumeration_ongoing_) {
- DoEnumerateDevices();
- }
- }
-}
-
-void AudioOutputDeviceEnumerator::InvalidateCache() {
- DCHECK(thread_checker_.CalledOnValidThread());
- seq_last_invalidation_ = NewEventSequence();
-}
-
-void AudioOutputDeviceEnumerator::SetCachePolicy(CachePolicy policy) {
- DCHECK(thread_checker_.CalledOnValidThread());
- if (policy == CACHE_POLICY_NO_CACHING)
- InvalidateCache();
-
- cache_policy_ = policy;
-}
-
-bool AudioOutputDeviceEnumerator::IsCacheEnabled() {
- DCHECK(thread_checker_.CalledOnValidThread());
- return cache_policy_ != CACHE_POLICY_NO_CACHING;
-}
-
-void AudioOutputDeviceEnumerator::DoEnumerateDevices() {
- DCHECK(thread_checker_.CalledOnValidThread());
- is_enumeration_ongoing_ = true;
- seq_last_enumeration_ = NewEventSequence();
- base::PostTaskAndReplyWithResult(
- audio_manager_->GetTaskRunner(), FROM_HERE,
- base::Bind(&EnumerateDevicesOnDeviceThread, audio_manager_),
- base::Bind(&AudioOutputDeviceEnumerator::DevicesEnumerated,
- weak_factory_.GetWeakPtr()));
-}
-
-void AudioOutputDeviceEnumerator::DevicesEnumerated(
- const AudioOutputDeviceEnumeration& snapshot) {
- DCHECK(thread_checker_.CalledOnValidThread());
- is_enumeration_ongoing_ = false;
- if (IsLastEnumerationValid()) {
- cache_ = snapshot;
- while (!pending_callbacks_.empty()) {
- AudioOutputDeviceEnumerationCB callback = pending_callbacks_.front();
- pending_callbacks_.pop_front();
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(callback, snapshot));
- }
- pending_callbacks_.clear();
- } else {
- DoEnumerateDevices();
- }
-}
-
-int64_t AudioOutputDeviceEnumerator::NewEventSequence() {
- DCHECK(thread_checker_.CalledOnValidThread());
- return ++current_event_sequence_;
-}
-
-bool AudioOutputDeviceEnumerator::IsLastEnumerationValid() const {
- DCHECK(thread_checker_.CalledOnValidThread());
- return seq_last_enumeration_ > seq_last_invalidation_ &&
- !is_enumeration_ongoing_;
-}
-
-} // namespace content

Powered by Google App Engine
This is Rietveld 408576698