Files
Aerofoil/GpAudioDriver_XAudio2/GpAudioBufferXAudio2.h

33 lines
601 B
C
Raw Normal View History

#pragma once
#include "IGpAudioBuffer.h"
2021-04-25 01:59:48 -04:00
#include <xaudio2.h>
2021-04-28 01:46:07 -04:00
struct IGpAllocator;
class GpAudioBufferXAudio2 final : public IGpAudioBuffer
{
public:
2021-04-28 01:46:07 -04:00
static GpAudioBufferXAudio2 *Create(IGpAllocator *alloc, const void *buffer, size_t size);
void AddRef() override;
void Release() override;
const XAUDIO2_BUFFER *GetXA2Buffer() const;
private:
2021-04-28 01:46:07 -04:00
GpAudioBufferXAudio2(IGpAllocator *alloc, const void *data, size_t size);
~GpAudioBufferXAudio2();
void Destroy();
const void *m_data;
size_t m_size;
2021-04-28 01:46:07 -04:00
IGpAllocator *m_alloc;
XAUDIO2_BUFFER m_xa2Buffer;
volatile unsigned int m_count;
};