summaryrefslogtreecommitdiffstats
path: root/media/audio/audio_manager.cc
diff options
context:
space:
mode:
authordalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-04 08:33:59 +0000
committerdalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-04 08:33:59 +0000
commitadba07359216f215d3edb72084d0de69eac4d4a2 (patch)
treeb4f1f1ec310a436b732d9cd594176d93e31e8f27 /media/audio/audio_manager.cc
parentbb9d33be4be1e86a99af7f6d78a0cbc28f5c1fd9 (diff)
downloadchromium_src-adba07359216f215d3edb72084d0de69eac4d4a2.zip
chromium_src-adba07359216f215d3edb72084d0de69eac4d4a2.tar.gz
chromium_src-adba07359216f215d3edb72084d0de69eac4d4a2.tar.bz2
Plumb AudioLog support into AudioManager.
AudioManager is now also an AudioLogFactory. Changing the constructor of AudioManager isn't viable due to its psuedo-singleton behavior, so MediaInternal's AudioLogFactory must be injected after construction. The next step after this CL is to have AudioOutputDispatcherImpl objects own an AudioLog instance. BUG=260005 TEST=none, just plumbing. Review URL: https://codereview.chromium.org/99733004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238637 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/audio/audio_manager.cc')
-rw-r--r--media/audio/audio_manager.cc24
1 files changed, 15 insertions, 9 deletions
diff --git a/media/audio/audio_manager.cc b/media/audio/audio_manager.cc
index 3f49a45..03eeb17 100644
--- a/media/audio/audio_manager.cc
+++ b/media/audio/audio_manager.cc
@@ -4,12 +4,12 @@
#include "media/audio/audio_manager.h"
-#include "base/at_exit.h"
-#include "base/atomicops.h"
#include "base/bind.h"
#include "base/bind_helpers.h"
+#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
+#include "media/audio/fake_audio_log_factory.h"
namespace media {
namespace {
@@ -17,24 +17,30 @@ AudioManager* g_last_created = NULL;
}
// Forward declaration of the platform specific AudioManager factory function.
-AudioManager* CreateAudioManager();
+AudioManager* CreateAudioManager(AudioLogFactory* audio_log_factory);
-AudioManager::AudioManager() {
-}
+AudioManager::AudioManager() {}
AudioManager::~AudioManager() {
- CHECK(g_last_created == NULL || g_last_created == this);
+ CHECK(!g_last_created || g_last_created == this);
g_last_created = NULL;
}
// static
-AudioManager* AudioManager::Create() {
- CHECK(g_last_created == NULL);
- g_last_created = CreateAudioManager();
+AudioManager* AudioManager::Create(AudioLogFactory* audio_log_factory) {
+ CHECK(!g_last_created);
+ g_last_created = CreateAudioManager(audio_log_factory);
return g_last_created;
}
// static
+AudioManager* AudioManager::CreateForTesting() {
+ static base::LazyInstance<FakeAudioLogFactory>::Leaky fake_log_factory =
+ LAZY_INSTANCE_INITIALIZER;
+ return Create(fake_log_factory.Pointer());
+}
+
+// static
AudioManager* AudioManager::Get() {
return g_last_created;
}