Zao SDK for Jetson / libzao-endpoint API リファレンス 1.6.0.0 (2024-12-24)
Loading...
Searching...
No Matches
PcmSinkInterface.hpp
1#ifndef ZAO_ENDPOINT_AUDIO_PCM_SINK_INTERFACE_HPP_
2#define ZAO_ENDPOINT_AUDIO_PCM_SINK_INTERFACE_HPP_
3
4#include <future>
5#include <memory>
6#include <string>
7#include <vector>
8
9#include "../EventSourceInterface.hpp"
10#include "../SinkStreamInterface.hpp"
11#include "../StreamInterface.hpp"
12#include "PcmBufferWriter.hpp"
13#include "PcmFormat.hpp"
14#include "PcmSinkBufferDequeueResult.hpp"
15#include "PcmSinkBufferEnqueueResult.hpp"
16#include "PcmSinkBufferInterface.hpp"
17
18namespace zao {
19namespace endpoint {
20namespace audio {
21
22class PcmSinkCallbackInterface;
23
30 public EventSourceInterface<PcmSinkCallbackInterface> {
31 public:
38 [[deprecated("Please use SetSinkFormats function")]]
39 void SetAcceptableFormats(const std::vector<PcmFormat>& formats) {
40 return SetSinkFormats(formats);
41 }
42
56 virtual void SetSinkFormats(const std::vector<PcmFormat>& formats) = 0;
57
64 [[deprecated("Please use GetDeterminedFormat function")]]
65 bool GetDecidedFormat(PcmFormat& format) const {
66 return GetDeterminedFormat(format);
67 }
68
82 virtual bool GetDeterminedFormat(PcmFormat& format) const = 0;
83
90 [[deprecated("Please use GetDeterminedFormatAsync function")]]
91 std::shared_future<PcmFormat> GetFormatDecisionStatus() const {
93 }
94
109 virtual std::shared_future<PcmFormat> GetDeterminedFormatAsync() const = 0;
110
126 virtual void ConfigureQueue(std::size_t samples_per_buffer,
127 std::size_t num_of_buffers) = 0;
128
135
145 std::unique_ptr<PcmSinkBufferInterface> buffer) = 0;
146
154 virtual void FlushQueue() = 0;
155
160 virtual ~PcmSinkInterface() noexcept = default;
161};
162
169 public:
174 enum class EventType {
179 kUnknown = 0,
180
185 kDisconnected,
186
191 kUnlinked,
192
197 kDecodeError,
198
203 kFailedFormatNegotiation,
204 };
205
221 virtual bool OnRequestSinkFormat(const PcmFormat& format) = 0;
222
232 virtual void OnNotifySinkEvent(EventType type, const std::string& message) {}
233
240#ifndef LIBZAO_ENDPOINT_INTERNAL
241 [[deprecated("Never called when new pull-type API is selected.")]]
242#endif
243 virtual std::weak_ptr<PcmBufferPoolWriterInterface> OnRequestPcmBufferPool() {
244 return {};
245 }
246
251 virtual ~PcmSinkCallbackInterface() noexcept = default;
252}; // namespace audio
253
254} // namespace audio
255} // namespace endpoint
256} // namespace zao
257
258#endif // ZAO_ENDPOINT_AUDIO_PCM_SINK_INTERFACE_HPP_
イベントを生成するクラスの共通インターフェース
Definition EventSourceInterface.hpp:31
シンク側ストリーム機能の共通コールバックインターフェース
Definition SinkStreamInterface.hpp:24
シンク側ストリーム機能インターフェース
Definition SinkStreamInterface.hpp:11
ストリーム機能の共通コールバックインターフェース
Definition StreamInterface.hpp:37
エンドポイント側のストリーム機能インターフェース
Definition StreamInterface.hpp:15
PCM音声のフォーマット
Definition PcmFormat.hpp:15
PCM受信用バッファの取り出し結果を示す型。
Definition PcmSinkBufferDequeueResult.hpp:17
PCM受信用バッファの格納結果を示す型。
Definition PcmSinkBufferEnqueueResult.hpp:13
PCMによる音声シンク機能のコールバックインターフェース
Definition PcmSinkInterface.hpp:168
virtual std::weak_ptr< PcmBufferPoolWriterInterface > OnRequestPcmBufferPool()
PCMバッファプールの書き込み側を要求するコールバック。
Definition PcmSinkInterface.hpp:243
EventType
イベントの種類
Definition PcmSinkInterface.hpp:174
virtual void OnNotifySinkEvent(EventType type, const std::string &message)
エラーなどのイベントが発生した時に呼び出されるコールバック。
Definition PcmSinkInterface.hpp:232
virtual ~PcmSinkCallbackInterface() noexcept=default
PcmSinkCallbackInterface オブジェクトを破棄する。
virtual bool OnRequestSinkFormat(const PcmFormat &format)=0
フォーマット決定要求時に呼び出されるコールバック。
PCMによる音声シンク機能インターフェース
Definition PcmSinkInterface.hpp:30
bool GetDecidedFormat(PcmFormat &format) const
決定したフォーマットを取得する。
Definition PcmSinkInterface.hpp:65
virtual PcmSinkBufferDequeueResult DequeueSinkBuffer()=0
PCMを受信するためのバッファをキューから出す。
virtual void FlushQueue()=0
キューの内容を破棄する。
virtual void ConfigureQueue(std::size_t samples_per_buffer, std::size_t num_of_buffers)=0
キューの設定を行う。
void SetAcceptableFormats(const std::vector< PcmFormat > &formats)
受信可能なフォーマット一覧を提示する。
Definition PcmSinkInterface.hpp:39
virtual ~PcmSinkInterface() noexcept=default
PcmSinkInterface オブジェクトを破棄する。
virtual bool GetDeterminedFormat(PcmFormat &format) const =0
決定したフォーマットを取得する。
virtual PcmSinkBufferEnqueueResult EnqueueSinkBuffer(std::unique_ptr< PcmSinkBufferInterface > buffer)=0
PCMを受信した後のバッファをキューに返却する。
virtual std::shared_future< PcmFormat > GetDeterminedFormatAsync() const =0
フォーマット決定状態を取得するshared_futureを取得する。
std::shared_future< PcmFormat > GetFormatDecisionStatus() const
フォーマット決定状態を取得するshared_futureを取得する。
Definition PcmSinkInterface.hpp:91
virtual void SetSinkFormats(const std::vector< PcmFormat > &formats)=0
受信可能なフォーマット一覧を提示する。
Zao製品共通の名前空間
Definition FactoryInterface.hpp:11