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