#ifndef MXMINIAUDIO_H #define MXMINIAUDIO_H #include "mxtypes.h" #include #include template class MxMiniaudio : public T { public: MxMiniaudio() : m_initialized(false) {} template ma_result Init(Fn ma_init, Args&&... args) { ma_result result = ma_init(std::forward(args)..., this); if (result == MA_SUCCESS) { m_initialized = true; } return result; } template void Destroy(Fn ma_uninit) { if (m_initialized) { ma_uninit(this); m_initialized = false; } } private: bool m_initialized; }; #endif // MXMINIAUDIO_H