AudioSessionManager.cpp [plain text]
#include "config.h"
#include "AudioSessionManager.h"
#if USE(AUDIO_SESSION)
using namespace WebCore;
PassOwnPtr<AudioSessionManagerToken> AudioSessionManagerToken::create(AudioSessionManager::AudioType type)
{
return adoptPtr(new AudioSessionManagerToken(type));
}
AudioSessionManagerToken::AudioSessionManagerToken(AudioSessionManager::AudioType type)
: m_type(type)
{
AudioSessionManager::sharedManager().incrementCount(type);
}
AudioSessionManagerToken::~AudioSessionManagerToken()
{
AudioSessionManager::sharedManager().decrementCount(m_type);
}
AudioSessionManager& AudioSessionManager::sharedManager()
{
DEFINE_STATIC_LOCAL(AudioSessionManager, manager, ());
return manager;
}
AudioSessionManager::AudioSessionManager()
{
}
bool AudioSessionManager::has(AudioSessionManager::AudioType type)
{
ASSERT(type >= 0);
return m_typeCount.contains(type);
}
void AudioSessionManager::incrementCount(AudioSessionManager::AudioType type)
{
ASSERT(type >= 0);
m_typeCount.add(type);
updateSessionState();
}
void AudioSessionManager::decrementCount(AudioSessionManager::AudioType type)
{
ASSERT(type >= 0);
m_typeCount.remove(type);
updateSessionState();
}
#if !PLATFORM(MAC)
void AudioSessionManager::updateSessionState()
{
}
#endif
#endif // USE(AUDIO_SESSION)