1#ifndef ZAO_ENDPOINT_AUDIO_PCM_BUFFER_READER_HPP_ 
    2#define ZAO_ENDPOINT_AUDIO_PCM_BUFFER_READER_HPP_ 
    8#include "../TimestampInterface.hpp" 
   14class PcmBufferPoolInterface;
 
   49                  std::int16_t* pointer, std::size_t readable_samples,
 
   51      : pool_weak_(std::move(pool_weak)),
 
   53        readable_samples_(readable_samples),
 
   54        head_timestamp_(head_timestamp) {}
 
   64    *
this = std::move(other);
 
   76    std::swap(pool_weak_, other.pool_weak_);
 
   77    std::swap(pointer_, other.pointer_);
 
   78    std::swap(readable_samples_, other.readable_samples_);
 
   79    std::swap(head_timestamp_, other.head_timestamp_);
 
  104  bool IsValid() const noexcept { 
return !!pointer_; }
 
  116  explicit operator bool() const noexcept { 
return IsValid(); }
 
  126  const std::int16_t* 
GetPointer() const noexcept { 
return pointer_; }
 
  147    return head_timestamp_;
 
  163  const std::int16_t* pointer_ = 
nullptr;
 
  164  std::
size_t readable_samples_ = 0;
 
  172#include "PcmBufferPoolInterface.hpp" 
  178  if (
auto pool = pool_weak_.lock()) {
 
  179    pool->FinalizeReader(*
this);
 
  183  readable_samples_ = 0;
 
タイムスタンプ管理機能のインターフェース
Definition TimestampInterface.hpp:13
std::uint64_t Rep
タイムスタンプの表現に用いる整数型
Definition TimestampInterface.hpp:19
PCMバッファプールのインターフェース
Definition PcmBufferPoolInterface.hpp:19
PCMバッファのReader実装
Definition PcmBufferReader.hpp:25
const std::int16_t * GetPointer() const noexcept
管理対象バッファの先頭ポインタを取得する。
Definition PcmBufferReader.hpp:126
void Finalize() noexcept
バッファからのデータ読み込み完了を通知する。
Definition PcmBufferReader.hpp:174
~PcmBufferReader() noexcept
PcmBufferReader オブジェクトを破棄する。
Definition PcmBufferReader.hpp:93
PcmBufferReader(PcmBufferReader &&other) noexcept
PcmBufferReader オブジェクトをムーブ構築する。
Definition PcmBufferReader.hpp:63
TimestampInterface::Rep GetHeadTimestamp() const noexcept
先頭のタイムスタンプを取得する。
Definition PcmBufferReader.hpp:146
PcmBufferReader() noexcept
PcmBufferReader オブジェクトを管理対象無しでデフォルト構築する。
Definition PcmBufferReader.hpp:33
PcmBufferReader(std::weak_ptr< PcmBufferPoolInterface > pool_weak, std::int16_t *pointer, std::size_t readable_samples, TimestampInterface::Rep head_timestamp) noexcept
PcmBufferReader オブジェクトを構築する。
Definition PcmBufferReader.hpp:48
bool IsValid() const noexcept
有効なバッファを保持しているか否かを取得する。
Definition PcmBufferReader.hpp:104
std::size_t GetReadableSamples() const noexcept
有効なサンプル数を取得する。
Definition PcmBufferReader.hpp:140
PcmBufferReader & operator=(PcmBufferReader &&other) noexcept
PcmBufferReader オブジェクトをムーブ代入する。
Definition PcmBufferReader.hpp:74
Zao製品共通の名前空間
Definition FactoryInterface.hpp:11