SkyWay Linux SDK
読み取り中…
検索中…
一致する文字列を見つけられません
room_subscription.hpp
1#ifndef SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
2#define SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
3
5#include "skyway/room/interface/room_member.hpp"
7
8#include "skyway/media/stream/interface/remote/remote_stream.hpp"
9
10namespace skyway {
11namespace room {
12namespace interface {
13
14class RoomPublication;
15
18public:
21 public:
22 virtual ~EventListener() = default;
25 virtual void OnConnectionStateChanged(const ConnectionState state) {}
26
29 virtual void OnStreamAttached(
30 std::shared_ptr<media::stream::interface::remote::RemoteStream> stream) {}
31 };
32 virtual ~RoomSubscription() = default;
34 virtual std::string Id() = 0;
38 virtual std::shared_ptr<RoomPublication> Publication() = 0;
40 virtual std::shared_ptr<RoomMember> Subscriber() = 0;
42 virtual SubscriptionState State() = 0;
44 virtual std::shared_ptr<media::stream::interface::remote::RemoteStream> Stream() = 0;
46 virtual std::optional<std::string> PreferredEncodingId() = 0;
47
49 virtual void AddEventListener(EventListener* listener) = 0;
51 virtual void RemoveEventListener(EventListener* listener) = 0;
53 virtual bool ChangePreferredEncoding(const std::string& id) = 0;
57 [[deprecated]] virtual std::optional<WebRTCStats> GetStats() = 0;
58};
59
60} // namespace interface
61} // namespace room
62} // namespace skyway
63
64#endif /* SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP */
イベントリスナ
Definition room_subscription.hpp:20
virtual void OnStreamAttached(std::shared_ptr< media::stream::interface::remote::RemoteStream > stream)
SubscriptionのRemoteStreamが利用可能になった後に発生するイベント
Definition room_subscription.hpp:29
virtual void OnConnectionStateChanged(const ConnectionState state)
Subscribe中のStream接続状態が変更された後に発生するイベント
Definition room_subscription.hpp:25
RoomのSubscriptionを操作するインタフェース
Definition room_subscription.hpp:17
virtual std::optional< std::string > PreferredEncodingId()=0
このSubscriptionの優先エンコーディングIDを取得します。
virtual std::shared_ptr< RoomPublication > Publication()=0
このSubscriptionに紐づくPublicationを取得します。
virtual std::shared_ptr< media::stream::interface::remote::RemoteStream > Stream()=0
Publisherが持つStreamを取得します。
virtual void RemoveEventListener(EventListener *listener)=0
イベントの購読を中止します。
virtual std::string Id()=0
Idを取得します。
virtual bool ChangePreferredEncoding(const std::string &id)=0
受信するエンコード設定を切り替えます。
virtual SubscriptionState State()=0
State(公開状態がEnableかDisabelかCancelか)を取得します。
virtual std::shared_ptr< RoomMember > Subscriber()=0
このSubscriptionを購読しているMemberを取得します。
virtual domain::ContentType ContentType()=0
ContentType(VideoかAudioかDataか)を取得します。
virtual void AddEventListener(EventListener *listener)=0
イベントを購読します。
virtual std::optional< WebRTCStats > GetStats()=0
統計情報を取得します。
SkyWay全体で使用される列挙型や定数を定義するヘッダーファイル
ContentType
コンテンツの種類
Definition domain.hpp:22
Roomの状態や種別、統計情報などの型を定義するヘッダーファイル
ConnectionState
Publication/Subscriptionの接続状態
Definition types.hpp:27
SubscriptionState
Subscriptionの購読状態
Definition types.hpp:33