2016-04-25 12:49:12 +02:00
|
|
|
#ifdef _WIN32
|
2016-07-21 15:41:40 +02:00
|
|
|
|
2016-04-25 12:49:12 +02:00
|
|
|
#include "Utilities/Log.h"
|
2016-04-27 00:27:24 +02:00
|
|
|
#include "Utilities/StrFmt.h"
|
2016-02-01 22:51:35 +01:00
|
|
|
#include "Utilities/Config.h"
|
2015-01-11 00:46:10 +01:00
|
|
|
#include "Emu/System.h"
|
2015-10-26 22:09:31 +01:00
|
|
|
|
2015-01-11 00:46:10 +01:00
|
|
|
#include "XAudio2Thread.h"
|
2016-07-21 15:41:40 +02:00
|
|
|
#include <Windows.h>
|
2015-01-11 00:46:10 +01:00
|
|
|
|
2016-02-01 22:51:35 +01:00
|
|
|
extern cfg::bool_entry g_cfg_audio_convert_to_u16;
|
2015-06-02 01:28:04 +02:00
|
|
|
|
2016-02-01 22:51:35 +01:00
|
|
|
XAudio2Thread::XAudio2Thread()
|
2016-07-21 15:41:40 +02:00
|
|
|
: m_xaudio(LoadLibraryA("xaudio2_8.dll"))
|
2015-01-11 00:46:10 +01:00
|
|
|
{
|
2016-07-21 15:41:40 +02:00
|
|
|
m_xaudio ? xa28_init(m_xaudio) : xa27_init();
|
2015-01-11 00:46:10 +01:00
|
|
|
}
|
|
|
|
|
|
2016-02-01 22:51:35 +01:00
|
|
|
XAudio2Thread::~XAudio2Thread()
|
2015-01-11 00:46:10 +01:00
|
|
|
{
|
2016-07-21 15:41:40 +02:00
|
|
|
m_xaudio ? xa28_destroy() : xa27_destroy();
|
2016-02-01 22:51:35 +01:00
|
|
|
|
2016-07-21 15:41:40 +02:00
|
|
|
FreeLibrary((HMODULE)m_xaudio);
|
2015-01-11 00:46:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XAudio2Thread::Play()
|
|
|
|
|
{
|
2016-07-21 15:41:40 +02:00
|
|
|
m_xaudio ? xa28_play() : xa27_play();
|
2015-01-11 00:46:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XAudio2Thread::Close()
|
|
|
|
|
{
|
|
|
|
|
Stop();
|
2016-07-21 15:41:40 +02:00
|
|
|
m_xaudio ? xa28_flush() : xa27_flush();
|
2015-01-11 00:46:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XAudio2Thread::Stop()
|
|
|
|
|
{
|
2016-07-21 15:41:40 +02:00
|
|
|
m_xaudio ? xa28_stop() : xa27_stop();
|
2015-01-11 00:46:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XAudio2Thread::Open(const void* src, int size)
|
|
|
|
|
{
|
2016-07-21 15:41:40 +02:00
|
|
|
m_xaudio ? xa28_open() : xa27_open();
|
2015-01-11 00:46:10 +01:00
|
|
|
AddData(src, size);
|
|
|
|
|
Play();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XAudio2Thread::AddData(const void* src, int size)
|
|
|
|
|
{
|
2016-07-21 15:41:40 +02:00
|
|
|
m_xaudio ? xa28_add(src, size) : xa27_add(src, size);
|
2015-01-11 00:46:10 +01:00
|
|
|
}
|
2016-04-25 12:49:12 +02:00
|
|
|
|
2015-01-16 18:09:53 +01:00
|
|
|
#endif
|