MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_audio_renderer_xaudio2.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_AUDIO_RENDERER_XAUDIO2_H_1617349652
12#define INCGUARD_MGL_AUDIO_RENDERER_XAUDIO2_H_1617349652
13
14#include <mgl/mgl_environment.h>
15#if defined(MGL_AUDIO_RENDERER_ENABLE_XAUDIO2)
16
19
20#include <atlbase.h>
21#include <xaudio2.h>
22
23namespace MGL::Audio
24{
27 , IXAudio2VoiceCallback
28{
29public:
30 XAudio2Renderer() noexcept;
31 ~XAudio2Renderer() noexcept;
32
33 bool Initialize(InitializeMode initMode, RenderingFunction rendering) noexcept override;
34
35private:
36 void STDMETHODCALLTYPE OnVoiceProcessingPassStart(UINT32 samplesRequired) override;
37
38 // 未使用コールバック関数
39 void STDMETHODCALLTYPE OnVoiceProcessingPassEnd(void) override {}
40 void STDMETHODCALLTYPE OnStreamEnd(void) override {}
41 void STDMETHODCALLTYPE OnBufferStart(void * /*pBufferContext*/) override {}
42 void STDMETHODCALLTYPE OnBufferEnd(void * /*pBufferContext*/) override {}
43 void STDMETHODCALLTYPE OnLoopEnd(void * /*pBufferContext*/) override {}
44 void STDMETHODCALLTYPE OnVoiceError(void * /*pBufferContext*/, HRESULT /*Error*/) override {}
45
46 bool _isInitialize;
47 CComPtr<IXAudio2> _xaudio2;
48 IXAudio2MasteringVoice *_masteringVoice;
49 IXAudio2SourceVoice *_sourceVoice;
50
51 static constexpr int kRingBufferCount = 2;
52 STL::unique_ptr<std::byte[]> _ringBuffer[kRingBufferCount];
53 int _currentRingBuffer;
54};
55} // namespace MGL::Audio
56
57#endif // MGL_AUDIO_RENDERER_ENABLE_XAUDIO2
58#endif // INCGUARD_MGL_AUDIO_RENDERER_XAUDIO2_H_1617349652
59
60// vim: et ts=4 sw=4 sts=4
オーディオレンダラクラス
Definition mgl_audio_renderer.h:24
XAudio2オーディオレンダラ
Definition mgl_audio_renderer_xaudio2.h:28
~XAudio2Renderer() noexcept
デストラクタ
Definition mgl_audio_renderer_xaudio2.cc:48
XAudio2Renderer() noexcept
コンストラクタ
Definition mgl_audio_renderer_xaudio2.cc:32
bool Initialize(InitializeMode initMode, RenderingFunction rendering) noexcept override
初期化処理
Definition mgl_audio_renderer_xaudio2.cc:81
InitializeMode
初期化モード
Definition mgl_audio_defs.h:42
MGL オーディオレンダラ
void(*)(void **outData, size_t outDataCount, const DataFormat &dataFormat, size_t frameCount) noexcept RenderingFunction
レンダリング関数の型
Definition mgl_audio_renderer.h:20
MGL 環境定義
MGL STLのメモリ関連の代替
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247