Zao SDK for Jetson / libzep API リファレンス  1.0.0.0 (2023-05-08)
PcmSourceInterface.hpp
1 #ifndef ZEP_AUDIO_PCM_SOURCE_INTERFACE_HPP_
2 #define ZEP_AUDIO_PCM_SOURCE_INTERFACE_HPP_
3 
4 #include <future>
5 #include <memory>
6 #include <string>
7 #include <vector>
8 #include <zep/audio/PcmBufferWriter.hpp>
9 
10 #include "../SourceStreamInterface.hpp"
11 #include "../StreamInterface.hpp"
12 #include "PcmFormat.hpp"
13 
14 namespace zep {
15 
16 class TimestampInterface;
17 
18 namespace audio {
19 
20 class PcmSourceCallbackInterface;
21 
26  public SourceStreamInterface {
27  public:
36  virtual void SetAcceptableFormats(const std::vector<PcmFormat>& formats) = 0;
37 
45  virtual bool GetDecidedFormat(PcmFormat& format) const noexcept = 0;
46 
55  virtual std::shared_future<PcmFormat> GetFormatDecisionStatus()
56  const noexcept = 0;
57 
63  virtual std::weak_ptr<PcmBufferPoolWriterInterface> GetPcmBufferPool() = 0;
64 
69  virtual void SendStatistics(/*TODO*/) = 0;
70 
80  virtual void RegisterCallback(
81  const std::shared_ptr<PcmSourceCallbackInterface>& listener,
82  bool use_weak_ptr = false) = 0;
83 
92  virtual void RegisterCallback(
93  std::unique_ptr<PcmSourceCallbackInterface>&& listener) = 0;
94 
95  virtual ~PcmSourceInterface() noexcept = default;
96 };
97 
103  public:
107  enum class EventType {
109  kUnknown = 0,
110 
112  kDisconnected,
113 
115  kUnlinked,
116 
118  kEncodeError,
119 
121  kFailedFormatNegotiation,
122  };
123 
133  virtual bool OnRequestSourceFormat(const PcmFormat& format) = 0;
134 
146  virtual void OnDecideSourceFormat(const PcmFormat* format) = 0;
147 
154  virtual void OnNotifySourceEvent(EventType type, const std::string& message) {
155  }
156 
157  virtual ~PcmSourceCallbackInterface() noexcept = default;
158 };
159 
160 } // namespace audio
161 } // namespace zep
162 
163 #endif // ZEP_AUDIO_PCM_SOURCE_INTERFACE_HPP_
ソース側ストリーム機能インターフェース
Definition: SourceStreamInterface.hpp:9
virtual void SendStatistics()=0
統計情報の送信
ZEP SDK用名前空間
Definition: FactoryInterface.hpp:10
virtual void OnNotifySourceEvent(EventType type, const std::string &message)
エラーなどのイベントが発生した時に呼び出されるコールバック。
Definition: PcmSourceInterface.hpp:154
virtual std::shared_future< PcmFormat > GetFormatDecisionStatus() const noexcept=0
フォーマット決定状態を取得するshared_futureを取得する。
エンドポイント側のストリーム機能インターフェース
Definition: StreamInterface.hpp:13
virtual void RegisterCallback(const std::shared_ptr< PcmSourceCallbackInterface > &listener, bool use_weak_ptr=false)=0
コールバックの送信先をshared_ptrまたはweak_ptrで登録する
PCMによる音声ソース機能のコールバックインターフェース
Definition: PcmSourceInterface.hpp:101
PCM音声のフォーマット
Definition: PcmFormat.hpp:13
virtual bool GetDecidedFormat(PcmFormat &format) const noexcept=0
決定したフォーマットを取得する。
ソース側ストリーム機能の共通コールバックインターフェース
Definition: SourceStreamInterface.hpp:25
EventType
イベントの種類
Definition: PcmSourceInterface.hpp:107
PCMによる音声ソース機能インターフェース
Definition: PcmSourceInterface.hpp:25
ストリーム機能の共通コールバックインターフェース
Definition: StreamInterface.hpp:29
virtual void SetAcceptableFormats(const std::vector< PcmFormat > &formats)=0
送信可能なフォーマット一覧を提示する。
virtual std::weak_ptr< PcmBufferPoolWriterInterface > GetPcmBufferPool()=0
PCMバッファプールの書き込み側インターフェースを取得する。