2018-12-20 23:35:49 +01:00
|
|
|
|
#pragma once
|
2016-04-25 12:49:12 +02:00
|
|
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
2015-01-11 00:46:10 +01:00
|
|
|
|
|
|
|
|
|
|
#include "Emu/Audio/AudioThread.h"
|
2015-11-16 16:04:49 +01:00
|
|
|
|
|
2015-01-11 00:46:10 +01:00
|
|
|
|
class XAudio2Thread : public AudioThread
|
|
|
|
|
|
{
|
2016-07-30 16:10:01 +02:00
|
|
|
|
struct vtable
|
|
|
|
|
|
{
|
|
|
|
|
|
void(*destroy)();
|
|
|
|
|
|
void(*play)();
|
|
|
|
|
|
void(*flush)();
|
|
|
|
|
|
void(*stop)();
|
|
|
|
|
|
void(*open)();
|
2018-12-20 23:35:49 +01:00
|
|
|
|
bool(*is_playing)();
|
|
|
|
|
|
bool(*add)(const void*, int);
|
2016-07-30 16:10:01 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
vtable m_funcs;
|
|
|
|
|
|
|
|
|
|
|
|
static void xa27_init(void*);
|
2016-07-21 15:41:40 +02:00
|
|
|
|
static void xa27_destroy();
|
|
|
|
|
|
static void xa27_play();
|
|
|
|
|
|
static void xa27_flush();
|
|
|
|
|
|
static void xa27_stop();
|
|
|
|
|
|
static void xa27_open();
|
2018-12-20 23:35:49 +01:00
|
|
|
|
static bool xa27_is_playing();
|
|
|
|
|
|
static bool xa27_add(const void*, int);
|
2016-07-21 15:41:40 +02:00
|
|
|
|
|
|
|
|
|
|
static void xa28_init(void*);
|
|
|
|
|
|
static void xa28_destroy();
|
|
|
|
|
|
static void xa28_play();
|
|
|
|
|
|
static void xa28_flush();
|
|
|
|
|
|
static void xa28_stop();
|
|
|
|
|
|
static void xa28_open();
|
2018-12-20 23:35:49 +01:00
|
|
|
|
static bool xa28_is_playing();
|
|
|
|
|
|
static bool xa28_add(const void*, int);
|
2015-01-11 00:46:10 +01:00
|
|
|
|
|
|
|
|
|
|
public:
|
2015-06-02 01:28:04 +02:00
|
|
|
|
XAudio2Thread();
|
2016-02-01 22:51:35 +01:00
|
|
|
|
virtual ~XAudio2Thread() override;
|
2015-01-11 00:46:10 +01:00
|
|
|
|
|
2018-12-20 23:35:49 +01:00
|
|
|
|
virtual void Open() override;
|
2016-02-01 22:51:35 +01:00
|
|
|
|
virtual void Close() override;
|
2018-12-20 23:35:49 +01:00
|
|
|
|
|
|
|
|
|
|
virtual void Play() override;
|
|
|
|
|
|
virtual void Pause() override;
|
|
|
|
|
|
virtual bool IsPlaying() override;
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool AddData(const void* src, int size) override;
|
|
|
|
|
|
virtual void Flush() override;
|
2015-01-11 00:46:10 +01:00
|
|
|
|
};
|
2016-04-25 12:49:12 +02:00
|
|
|
|
|
2015-11-16 16:04:49 +01:00
|
|
|
|
#endif
|