rpcsx/rpcs3/Emu/Audio/XAudio2/XAudio2Thread.h

56 lines
1.1 KiB
C
Raw Normal View History

2018-12-20 23:35:49 +01:00
#pragma once
#ifdef _WIN32
#include "Emu/Audio/AudioThread.h"
2015-11-16 16:04:49 +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);
public:
XAudio2Thread();
2016-02-01 22:51:35 +01:00
virtual ~XAudio2Thread() override;
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-11-16 16:04:49 +01:00
#endif