audio_manager.cc revision ca12bfac764ba476d6cd062bf1dde12cc64c3f40
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "media/audio/audio_manager.h"
6
7#include "base/at_exit.h"
8#include "base/atomicops.h"
9#include "base/bind.h"
10#include "base/bind_helpers.h"
11#include "base/logging.h"
12#include "base/message_loop/message_loop.h"
13
14namespace media {
15namespace {
16AudioManager* g_last_created = NULL;
17}
18
19// Forward declaration of the platform specific AudioManager factory function.
20AudioManager* CreateAudioManager();
21
22AudioManager::AudioManager() {
23}
24
25AudioManager::~AudioManager() {
26  CHECK(g_last_created == NULL || g_last_created == this);
27  g_last_created = NULL;
28}
29
30// static
31AudioManager* AudioManager::Create() {
32  CHECK(g_last_created == NULL);
33  g_last_created = CreateAudioManager();
34  return g_last_created;
35}
36
37// static
38AudioManager* AudioManager::Get() {
39  return g_last_created;
40}
41
42}  // namespace media
43