rpcsx/rpcs3/Emu/Audio/XAudio2/XAudio2Thread.h
Danila Malyutin 8483b17995 Initialize pointers to null on creation
Fixes access violation in hello_world.ppu.elf on window close.
As I understood the reason - when dtor of XAudioThread is called it
checks:
if (m_source_voice) Quit();
But m_source_voice isn't initialized to 0 by default so when in Quit()
in tries to call some funcs from unitialized ptrs and access violation
happens.
2015-07-10 04:26:57 +03:00

27 lines
595 B
C++

#pragma once
#include "Emu/Audio/AudioThread.h"
#if defined (_WIN32)
#include "XAudio2.h" // XAudio2 2.8 available only on Win8+, used XAudio2 2.7 from dxsdk
class XAudio2Thread : public AudioThread
{
private:
IXAudio2* m_xaudio2_instance;
IXAudio2MasteringVoice* m_master_voice;
IXAudio2SourceVoice* m_source_voice;
public:
virtual ~XAudio2Thread();
XAudio2Thread();
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);
};
#endif