11#ifndef INCGUARD_MGL_AUDIO_STREAM_QUEUE_H_1611908441
12#define INCGUARD_MGL_AUDIO_STREAM_QUEUE_H_1611908441
14#include <condition_variable>
35 StreamQueue(
size_t bufferSize, uint32_t bufferCount)
noexcept;
37 void Reset() noexcept;
40 bool AddBuffer(QueueBuffer *queueBuffer) noexcept;
41 bool GetSample(
float &frameDataL,
float &frameDataR) noexcept;
59 QueueBuffer *_top{
nullptr};
60 QueueBuffer *_tail{
nullptr};
63 uint32_t _bufferCount;
64 uint32_t _activeBufferCount{0};
65 uint32_t _currentFrameOffset{0};
68 std::condition_variable _condition;
オーディオストリームキュークラス
Definition mgl_audio_stream_queue.h:23
constexpr size_t GetBufferSize() const noexcept
バッファサイズを取得
Definition mgl_audio_stream_queue.h:51
bool GetSample(float &frameDataL, float &frameDataR) noexcept
サンプルデータの取得
Definition mgl_audio_stream_queue.cc:127
QueueBuffer * GetFreeBuffer() noexcept
空いているバッファを取得
Definition mgl_audio_stream_queue.cc:63
void Wait() noexcept
キューが操作可能になるまで待つ
Definition mgl_audio_stream_queue.cc:182
bool AddBuffer(QueueBuffer *queueBuffer) noexcept
バッファを追加
Definition mgl_audio_stream_queue.cc:87
StreamQueue(size_t bufferSize, uint32_t bufferCount) noexcept
コンストラクタ
Definition mgl_audio_stream_queue.cc:22
void Reset() noexcept
ストリームキューを初期状態に戻す
Definition mgl_audio_stream_queue.cc:39
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247
キューバッファ情報
Definition mgl_audio_stream_queue.h:27
size_t dataSize
データのサイズ
Definition mgl_audio_stream_queue.h:30
QueueBuffer * next
次のバッファアドレス
Definition mgl_audio_stream_queue.h:31
uint32_t channelCount
1フレームのチャンネル数(1: モノラル,2: ステレオ)
Definition mgl_audio_stream_queue.h:29
STL::unique_ptr< float[]> data
バッファアドレス
Definition mgl_audio_stream_queue.h:28
bool isActive
使用中フラグ
Definition mgl_audio_stream_queue.h:32