Home | History | Annotate | Download | only in audio
      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 
     14 namespace media {
     15 namespace {
     16 AudioManager* g_last_created = NULL;
     17 }
     18 
     19 // Forward declaration of the platform specific AudioManager factory function.
     20 AudioManager* CreateAudioManager();
     21 
     22 AudioManager::AudioManager() {
     23 }
     24 
     25 AudioManager::~AudioManager() {
     26   CHECK(g_last_created == NULL || g_last_created == this);
     27   g_last_created = NULL;
     28 }
     29 
     30 // static
     31 AudioManager* AudioManager::Create() {
     32   CHECK(g_last_created == NULL);
     33   g_last_created = CreateAudioManager();
     34   return g_last_created;
     35 }
     36 
     37 // static
     38 AudioManager* AudioManager::Get() {
     39   return g_last_created;
     40 }
     41 
     42 }  // namespace media
     43