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

Unified Diff: media/audio/audio_manager.cc

Issue 1908423006: Allow content embedders to create AudioManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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: media/audio/audio_manager.cc
diff --git a/media/audio/audio_manager.cc b/media/audio/audio_manager.cc
index 573102a0410b2ca20e8f748ca6a20e068121d07d..ce415755203f12a6caa15c4f1e6f57dfede32518 100644
--- a/media/audio/audio_manager.cc
+++ b/media/audio/audio_manager.cc
@@ -20,7 +20,6 @@
#include "base/power_monitor/power_monitor.h"
#include "base/strings/stringprintf.h"
#include "build/build_config.h"
-#include "media/audio/audio_manager_factory.h"
#include "media/audio/fake_audio_log_factory.h"
#include "media/base/media_resources.h"
#include "media/base/media_switches.h"
@@ -36,13 +35,6 @@ namespace {
// The singleton instance of AudioManager. This is set when Create() is called.
AudioManager* g_last_created = nullptr;
-// The singleton instance of AudioManagerFactory. This is only set if
-// SetFactory() is called. If it is set when Create() is called, its
-// CreateInstance() function is used to set |g_last_created|. Otherwise, the
-// linked implementation of media::CreateAudioManager is used to set
-// |g_last_created|.
-AudioManagerFactory* g_audio_manager_factory = nullptr;
-
// Maximum number of failed pings to the audio thread allowed. A UMA will be
// recorded once this count is reached; if enabled, a non-crash dump will be
// captured as well. We require at least three failed pings before recording to
@@ -73,9 +65,8 @@ class AudioManagerHelper : public base::PowerObserver {
scoped_refptr<base::SingleThreadTaskRunner> monitor_task_runner) {
CHECK(!monitor_task_runner_);
CHECK(!audio_task_runner_);
- CHECK(g_last_created);
monitor_task_runner_ = std::move(monitor_task_runner);
- audio_task_runner_ = g_last_created->GetTaskRunner();
+ audio_task_runner_ = AudioManager::Get()->GetTaskRunner();
base::PowerMonitor::Get()->AddObserver(this);
io_task_running_ = audio_task_running_ = true;
@@ -316,44 +307,14 @@ AudioManager::~AudioManager() {
}
// static
-void AudioManager::SetFactory(AudioManagerFactory* factory) {
- CHECK(factory);
- CHECK(!g_last_created);
- CHECK(!g_audio_manager_factory);
- g_audio_manager_factory = factory;
-}
-
-// static
-void AudioManager::ResetFactoryForTesting() {
- if (g_audio_manager_factory) {
- delete g_audio_manager_factory;
- g_audio_manager_factory = nullptr;
- }
-}
-
-// static
ScopedAudioManagerPtr AudioManager::Create(
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> monitor_task_runner,
AudioLogFactory* audio_log_factory) {
DCHECK(task_runner);
DCHECK(worker_task_runner);
- ScopedAudioManagerPtr manager;
- if (g_audio_manager_factory) {
- manager = g_audio_manager_factory->CreateInstance(
- std::move(task_runner), std::move(worker_task_runner),
- audio_log_factory);
- } else {
- manager =
- CreateAudioManager(std::move(task_runner),
- std::move(worker_task_runner), audio_log_factory);
- }
-
- if (monitor_task_runner)
- g_helper.Pointer()->StartHangTimer(std::move(monitor_task_runner));
-
- return manager;
+ return CreateAudioManager(std::move(task_runner),
+ std::move(worker_task_runner), audio_log_factory);
}
// static
@@ -362,11 +323,21 @@ ScopedAudioManagerPtr AudioManager::CreateForTesting(
#if defined(OS_WIN)
g_helper.Pointer()->InitializeCOMForTesting();
#endif
- return Create(task_runner, task_runner, nullptr,
+ return Create(task_runner, task_runner,
g_helper.Pointer()->fake_log_factory());
}
// static
+void AudioManager::StartHangMonitor(
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
+ DCHECK(AudioManager::Get());
+ DCHECK(task_runner);
+ DCHECK_NE(task_runner, AudioManager::Get()->GetTaskRunner());
+
+ g_helper.Pointer()->StartHangTimer(std::move(task_runner));
+}
+
+// static
void AudioManager::EnableCrashKeyLoggingForAudioThreadHangs() {
CHECK(!g_last_created);
g_helper.Pointer()->enable_crash_key_logging();

Powered by Google App Engine
This is Rietveld 408576698