11#ifndef INCGUARD_MGL_AUDIO_WAVE_STREAM_VOICE_H_1611969320
12#define INCGUARD_MGL_AUDIO_WAVE_STREAM_VOICE_H_1611969320
19#include <condition_variable>
33 bool Load()
noexcept override;
34 bool GetSample(
float &outDataL,
float &outDataR)
noexcept override;
35 bool Start(uint32_t trackIndex,
LoopType loopType)
noexcept override;
36 void Stop()
noexcept override;
45 uint32_t
GetTotalFrame([[maybe_unused]] uint32_t trackIndex)
const noexcept override
58 bool IsLoop([[maybe_unused]] uint32_t trackIndex)
const noexcept override
60 return _isDefaultLoop;
70 uint32_t
GetLoopFrame([[maybe_unused]] uint32_t trackIndex)
const noexcept override
87 bool LoadWaveFile() noexcept;
88 void ReadSample() noexcept;
91 uint32_t _totalFrame{0};
94 StreamQueue _streamQueue;
95 std::atomic<bool> _isBusy{
false};
96 std::atomic<bool> _isFinished{
false};
100 std::thread _readSampleThread;
101 std::future<void> _loadFuture;
104 std::condition_variable _condition;
MGL オーディオボイス
Definition mgl_audio_voice.h:24
MGL WAVEストリームボイス
Definition mgl_audio_wave_stream_voice.h:28
~WaveStreamVoice() noexcept override
デストラクタ
Definition mgl_audio_wave_stream_voice.cc:50
bool Start(uint32_t trackIndex, LoopType loopType) noexcept override
ボイスの開始処理
Definition mgl_audio_wave_stream_voice.cc:142
uint32_t GetLoopFrame(uint32_t trackIndex) const noexcept override
指定したトラックのループフレームを取得
Definition mgl_audio_wave_stream_voice.h:70
bool IsLoop(uint32_t trackIndex) const noexcept override
指定したトラックのループ設定を取得
Definition mgl_audio_wave_stream_voice.h:58
bool GetSample(float &outDataL, float &outDataR) noexcept override
ダイナミックボイスのサンプルの取得
Definition mgl_audio_wave_stream_voice.cc:250
void Stop() noexcept override
ボイスの再生終了
Definition mgl_audio_wave_stream_voice.cc:171
bool Load() noexcept override
ボイスの読み込み処理
Definition mgl_audio_wave_stream_voice.cc:68
uint32_t GetTrackCount() const noexcept override
ボイスが持つトラックの数を取得
Definition mgl_audio_wave_stream_voice.h:81
WaveStreamVoice(VoiceKey key, const File::PathView &path, bool isLoop=false, uint32_t loopFrame=0) noexcept
コンストラクタ
Definition mgl_audio_wave_stream_voice.cc:35
uint32_t GetTotalFrame(uint32_t trackIndex) const noexcept override
ボイスの最大フレーム数を取得
Definition mgl_audio_wave_stream_voice.h:45
文字列の参照のみを行うファイルパスクラス
Definition mgl_file_path_view.h:20
VoiceKey
ボイスキー
Definition mgl_audio_defs.h:22
LoopType
ループタイプ
Definition mgl_audio_defs.h:71