rpcsx/rpcs3/Emu/Audio/AudioManager.cpp

40 lines
767 B
C++

#include "stdafx.h"
#include "rpcs3/Ini.h"
#include "AudioManager.h"
#include "Emu/state.h"
#include "AL/OpenALThread.h"
#include "Null/NullAudioThread.h"
#include "XAudio2/XAudio2Thread.h"
AudioManager::AudioManager() : m_audio_out(nullptr)
{
}
AudioManager::~AudioManager()
{
Close();
}
void AudioManager::Init()
{
if (m_audio_out) return;
m_audio_info.Init();
switch (rpcs3::state.config.audio.out.value())
{
default:
case audio_output_type::Null: m_audio_out = new NullAudioThread(); break;
case audio_output_type::OpenAL: m_audio_out = new OpenALThread(); break;
#if defined (_WIN32)
case audio_output_type::XAudio2: m_audio_out = new XAudio2Thread(); break;
#endif
}
}
void AudioManager::Close()
{
delete m_audio_out;
m_audio_out = nullptr;
}