2015-01-11 00:46:10 +01:00
|
|
|
#pragma once
|
2015-11-16 16:04:49 +01:00
|
|
|
#ifdef _MSC_VER
|
2015-01-11 00:46:10 +01:00
|
|
|
|
|
|
|
|
#include "Emu/Audio/AudioThread.h"
|
2015-11-16 16:04:49 +01:00
|
|
|
|
2016-01-06 00:52:48 +01:00
|
|
|
#pragma push_macro("_WIN32_WINNT")
|
|
|
|
|
#undef _WIN32_WINNT
|
2015-08-12 23:34:54 +02:00
|
|
|
#define _WIN32_WINNT 0x0601 // This is to be sure that correct (2.7) header is included
|
2016-03-29 19:59:50 +02:00
|
|
|
#include "3rdparty/XAudio2_7/XAudio2.h" // XAudio2 2.8 available only on Win8+, used XAudio2 2.7 from dxsdk
|
2016-01-06 00:52:48 +01:00
|
|
|
#pragma pop_macro("_WIN32_WINNT")
|
2015-01-11 00:46:10 +01:00
|
|
|
|
|
|
|
|
class XAudio2Thread : public AudioThread
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
IXAudio2* m_xaudio2_instance;
|
|
|
|
|
IXAudio2MasteringVoice* m_master_voice;
|
|
|
|
|
IXAudio2SourceVoice* m_source_voice;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
virtual ~XAudio2Thread();
|
2015-06-02 01:28:04 +02:00
|
|
|
XAudio2Thread();
|
2015-01-11 00:46:10 +01:00
|
|
|
|
|
|
|
|
virtual void Init();
|
|
|
|
|
virtual void Quit();
|
|
|
|
|
virtual void Play();
|
|
|
|
|
virtual void Open(const void* src, int size);
|
|
|
|
|
virtual void Close();
|
|
|
|
|
virtual void Stop();
|
|
|
|
|
virtual void AddData(const void* src, int size);
|
|
|
|
|
};
|
2015-11-16 16:04:49 +01:00
|
|
|
#endif
|