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:256
 
キューバッファ情報
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