1#ifndef SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP
2#define SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP
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"
24 virtual void OnSubscribed(std::shared_ptr<RoomSubscription> subscription) {}
28 virtual void OnUnsubscribed(std::shared_ptr<RoomSubscription> subscription) {}
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;
70 virtual std::shared_ptr<media::stream::interface::local::LocalStream>
Stream() = 0;
83 std::shared_ptr<media::stream::interface::local::LocalStream> stream) = 0;
88 [[deprecated]]
virtual std::optional<WebRTCStats>
GetStats(
const std::string& selector) = 0;
イベントリスナ
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