Zao SDK for Jetson / libzao-endpoint API リファレンス 1.5.0.0 (2024-09-25)
Loading...
Searching...
No Matches
PcmSourceInterface.hpp
1#ifndef ZAO_ENDPOINT_AUDIO_PCM_SOURCE_INTERFACE_HPP_
2#define ZAO_ENDPOINT_AUDIO_PCM_SOURCE_INTERFACE_HPP_
3
4#include <future>
5#include <memory>
6#include <string>
7#include <vector>
8
9#include "../EventSourceInterface.hpp"
10#include "../SourceStreamInterface.hpp"
11#include "../StreamInterface.hpp"
12#include "PcmBufferWriter.hpp"
13#include "PcmFormat.hpp"
14
15namespace zao {
16namespace endpoint {
17
18class TimestampInterface;
19
20namespace audio {
21
22class PcmSourceCallbackInterface;
23
29 : public StreamInterface,
31 public EventSourceInterface<PcmSourceCallbackInterface> {
32 public:
45 virtual void SetAcceptableFormats(const std::vector<PcmFormat>& formats) = 0;
46
59 virtual bool GetDecidedFormat(PcmFormat& format) const noexcept = 0;
60
74 virtual std::shared_future<PcmFormat> GetFormatDecisionStatus()
75 const noexcept = 0;
76
82 virtual std::weak_ptr<PcmBufferPoolWriterInterface> GetPcmBufferPool() = 0;
83
90 virtual void SendStatistics(/*TODO*/) = 0;
91
92 virtual ~PcmSourceInterface() noexcept = default;
93};
94
101 public:
106 enum class EventType {
111 kUnknown = 0,
112
117 kDisconnected,
118
123 kUnlinked,
124
129 kEncodeError,
130
135 kFailedFormatNegotiation,
136 };
137
153 virtual bool OnRequestSourceFormat(const PcmFormat& format) = 0;
154
174 virtual void OnDecideSourceFormat(const PcmFormat* format) = 0;
175
185 virtual void OnNotifySourceEvent(EventType type, const std::string& message) {
186 }
187
188 virtual ~PcmSourceCallbackInterface() noexcept = default;
189};
190
191} // namespace audio
192} // namespace endpoint
193} // namespace zao
194
195#endif // ZAO_ENDPOINT_AUDIO_PCM_SOURCE_INTERFACE_HPP_
イベントを生成するクラスの共通インターフェース
Definition EventSourceInterface.hpp:27
ソース側ストリーム機能の共通コールバックインターフェース
Definition SourceStreamInterface.hpp:31
ソース側ストリーム機能インターフェース
Definition SourceStreamInterface.hpp:11
ストリーム機能の共通コールバックインターフェース
Definition StreamInterface.hpp:34
エンドポイント側のストリーム機能インターフェース
Definition StreamInterface.hpp:15
PCMバッファプールの書き込み側インターフェース
Definition PcmBufferPoolWriterInterface.hpp:14
PCM音声のフォーマット
Definition PcmFormat.hpp:15
PCMによる音声ソース機能のコールバックインターフェース
Definition PcmSourceInterface.hpp:100
virtual bool OnRequestSourceFormat(const PcmFormat &format)=0
フォーマット決定要求時に呼び出されるコールバック。
virtual void OnNotifySourceEvent(EventType type, const std::string &message)
エラーなどのイベントが発生した時に呼び出されるコールバック
Definition PcmSourceInterface.hpp:185
EventType
イベントの種類
Definition PcmSourceInterface.hpp:106
virtual void OnDecideSourceFormat(const PcmFormat *format)=0
フォーマットが決定された時に呼び出されるコールバック
PCMによる音声ソース機能インターフェース
Definition PcmSourceInterface.hpp:31
virtual std::weak_ptr< PcmBufferPoolWriterInterface > GetPcmBufferPool()=0
PCMバッファプールの書き込み側インターフェースを取得する。
virtual bool GetDecidedFormat(PcmFormat &format) const noexcept=0
決定したフォーマットを取得する。
virtual void SetAcceptableFormats(const std::vector< PcmFormat > &formats)=0
送信可能なフォーマット一覧を提示する
virtual std::shared_future< PcmFormat > GetFormatDecisionStatus() const noexcept=0
フォーマット決定状態を取得するshared_futureを取得する
virtual void SendStatistics()=0
統計情報の送信
Zao製品共通の名前空間
Definition FactoryInterface.hpp:11