SkyWay Linux SDK
読み取り中…
検索中…
一致する文字列を見つけられません
room_publication.hpp
1#ifndef SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP
2#define SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP
3
5#include "skyway/media/stream/interface/local/local_stream.hpp"
6#include "skyway/room/interface/local_room_member.hpp"
7#include "skyway/room/interface/room_member.hpp"
8#include "skyway/room/interface/room_subscription.hpp"
10
11namespace skyway {
12namespace room {
13namespace interface {
14
17public:
20 public:
21 virtual ~EventListener() = default;
24 virtual void OnSubscribed(std::shared_ptr<RoomSubscription> subscription) {}
25
28 virtual void OnUnsubscribed(std::shared_ptr<RoomSubscription> subscription) {}
29
31 virtual void OnSubscriptionListChanged() {}
32
35 virtual void OnMetadataUpdated(const std::string& metadata) {}
36
38 virtual void OnEnabled() {}
39
41 virtual void OnDisabled() {}
42
44 virtual void OnStateChanged() {}
45
48 virtual void OnConnectionStateChanged(const ConnectionState new_state) {}
49 };
50 virtual ~RoomPublication() = default;
52 virtual std::string Id() = 0;
56 virtual std::shared_ptr<RoomMember> Publisher() = 0;
58 virtual std::vector<std::shared_ptr<RoomSubscription>> Subscriptions() = 0;
62 virtual std::optional<std::string> Metadata() = 0;
64 virtual std::vector<Codec> CodecCapabilities() = 0;
66 virtual std::vector<Encoding> Encodings() = 0;
68 virtual PublicationState State() = 0;
70 virtual std::shared_ptr<media::stream::interface::local::LocalStream> Stream() = 0;
72 virtual void AddEventListener(EventListener* listener) = 0;
74 virtual void RemoveEventListener(EventListener* listener) = 0;
76 virtual bool UpdateMetadata(const std::string& metadata) = 0;
80 virtual bool UpdateEncodings(std::vector<Encoding> encodings) = 0;
82 virtual bool ReplaceStream(
83 std::shared_ptr<media::stream::interface::local::LocalStream> stream) = 0;
88 [[deprecated]] virtual std::optional<WebRTCStats> GetStats(const std::string& selector) = 0;
90 virtual bool Enable() = 0;
92 virtual bool Disable() = 0;
93};
94
95} // namespace interface
96} // namespace room
97} // namespace skyway
98
99#endif /* SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP */
イベントリスナ
Definition room_publication.hpp:19
virtual void OnSubscribed(std::shared_ptr< RoomSubscription > subscription)
このPublicationがSubscribeされた後に発生するイベント
Definition room_publication.hpp:24
virtual void OnEnabled()
Publicationが有効状態に変化した後にコールされるイベント
Definition room_publication.hpp:38
virtual void OnSubscriptionListChanged()
このPublicationに紐づくSubscriptionの数が変化した後に発生するイベント
Definition room_publication.hpp:31
virtual void OnUnsubscribed(std::shared_ptr< RoomSubscription > subscription)
このPublicationがUnsubscribeされた後に発生するイベント
Definition room_publication.hpp:28
virtual void OnMetadataUpdated(const std::string &metadata)
Metadataが更新された後に発生するイベント
Definition room_publication.hpp:35
virtual void OnDisabled()
Publicationが無効状態に変化した後にコールされるイベント
Definition room_publication.hpp:41
virtual void OnConnectionStateChanged(const ConnectionState new_state)
Publicationの接続状態が変化した後にコールされるイベント
Definition room_publication.hpp:48
virtual void OnStateChanged()
Publicationの状態(Enabled, Disabled, Canceled)が変化した後にコールされるイベント
Definition room_publication.hpp:44
RoomのPublicationを操作するインタフェース
Definition room_publication.hpp:16
virtual std::vector< Codec > CodecCapabilities()=0
このPublicationのコーデック一覧を取得します。
virtual PublicationState State()=0
State(公開状態がEnableかDisabelかCancelか)を取得します。
virtual bool ReplaceStream(std::shared_ptr< media::stream::interface::local::LocalStream > stream)=0
公開しているStreamを変更します。
virtual domain::ContentType ContentType()=0
ContentType(VideoかAudioかDataか)を取得します。
virtual std::shared_ptr< RoomMember > Publisher()=0
このPublicationを公開しているMemberを取得します。
virtual std::optional< std::string > Metadata()=0
Metadataを取得します。
virtual bool UpdateEncodings(std::vector< Encoding > encodings)=0
エンコーディング設定を更新します。
virtual void RemoveEventListener(EventListener *listener)=0
イベントの購読を中止します。
virtual domain::PublicationType Type()=0
PublicationのTypeを取得します。
virtual bool Enable()=0
Publicationの公開を開始します。disableによって停止していた場合は再開します。
virtual std::vector< std::shared_ptr< RoomSubscription > > Subscriptions()=0
このPublicationを購読しているSubsciptionの一覧を取得します。
virtual std::string Id()=0
Idを取得します。
virtual std::shared_ptr< media::stream::interface::local::LocalStream > Stream()=0
Publisherが持つStreamを取得します。
virtual void AddEventListener(EventListener *listener)=0
イベントを購読します。
virtual std::optional< WebRTCStats > GetStats(const std::string &selector)=0
統計情報を取得します。
virtual std::vector< Encoding > Encodings()=0
このPublicationのエンコーディング設定の一覧を取得します。
virtual bool UpdateMetadata(const std::string &metadata)=0
Metadataを更新します。
virtual bool Disable()=0
Publicationの公開を一時停止します。
SkyWay全体で使用される列挙型や定数を定義するヘッダーファイル
PublicationType
Publicationの通信方式
Definition domain.hpp:19
ContentType
コンテンツの種類
Definition domain.hpp:22
Roomの状態や種別、統計情報などの型を定義するヘッダーファイル
ConnectionState
Publication/Subscriptionの接続状態
Definition types.hpp:27
PublicationState
Publicationの公開状態
Definition types.hpp:30