1#ifndef SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
2#define SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
5#include "skyway/room/interface/room_member.hpp"
8#include "skyway/media/stream/interface/remote/remote_stream.hpp"
30 std::shared_ptr<media::stream::interface::remote::RemoteStream> stream) {}
34 virtual std::string
Id() = 0;
44 virtual std::shared_ptr<media::stream::interface::remote::RemoteStream>
Stream() = 0;
57 [[deprecated]]
virtual std::optional<WebRTCStats>
GetStats() = 0;
イベントリスナ
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