SkyWay Linux SDK
読み取り中…
検索中…
一致する文字列を見つけられません
local_room_member.hpp
1#ifndef SKYWAY_ROOM_INTERFACE_LOCAL_ROOM_MEMBER_HPP
2#define SKYWAY_ROOM_INTERFACE_LOCAL_ROOM_MEMBER_HPP
3
4#include <skyway/core/interface/local_person.hpp>
5
6#include "skyway/media/stream/interface/local/local_stream.hpp"
7
8#include "skyway/room/interface/room_member.hpp"
9
10namespace skyway {
11namespace room {
12namespace interface {
13
14class RoomPublication;
15class RoomSubscription;
16
18class LocalRoomMember : public virtual RoomMember {
19public:
22 public:
23 virtual ~EventListener() = default;
26 virtual void OnStreamPublished(std::shared_ptr<RoomPublication> publication) {}
27
30 virtual void OnStreamUnpublished(std::shared_ptr<RoomPublication> publication) {}
31
34 virtual void OnPublicationSubscribed(std::shared_ptr<RoomSubscription> subscription) {}
35
38 virtual void OnPublicationUnsubscribed(std::shared_ptr<RoomSubscription> subscription) {}
39 };
40
44 std::optional<std::string> metadata;
46 std::vector<Codec> codec_capabilities;
48 std::vector<Encoding> encodings;
50 bool is_enabled = true;
57 domain::PublicationType type = domain::PublicationType::kP2P;
58 };
59
64 std::optional<std::string> preferred_encoding_id;
65 };
66
67 virtual ~LocalRoomMember() = default;
69 virtual void AddEventListener(EventListener* listener) = 0;
71 virtual void RemoveEventListener(EventListener* listener) = 0;
73 virtual std::shared_ptr<RoomPublication> Publish(
74 std::shared_ptr<media::stream::interface::local::LocalStream> stream,
75 PublicationOptions options) = 0;
77 virtual std::shared_ptr<RoomSubscription> Subscribe(const std::string& publication_id,
78 SubscriptionOptions options) = 0;
80 virtual bool Unpublish(const std::string& publication_id) = 0;
82 virtual bool Unsubscribe(const std::string& subscription_id) = 0;
83};
84
85} // namespace interface
86} // namespace room
87} // namespace skyway
88
89#endif /* SKYWAY_ROOM_INTERFACE_LOCAL_ROOM_MEMBER_HPP */
イベントリスナ
Definition local_room_member.hpp:21
virtual void OnStreamPublished(std::shared_ptr< RoomPublication > publication)
このLocalRoomMemerがStreamをPublishした後に発生するイベント
Definition local_room_member.hpp:26
virtual void OnStreamUnpublished(std::shared_ptr< RoomPublication > publication)
このLocalRoomMemerがUnpublishした後に発生するイベント
Definition local_room_member.hpp:30
virtual void OnPublicationUnsubscribed(std::shared_ptr< RoomSubscription > subscription)
このLocalRoomMemerがUnsubscribeした後に発生するイベント
Definition local_room_member.hpp:38
virtual void OnPublicationSubscribed(std::shared_ptr< RoomSubscription > subscription)
このLocalRoomMemerがSubscribeした後に発生するイベント
Definition local_room_member.hpp:34
LocalRoomMemberの操作を行うインターフェース
Definition local_room_member.hpp:18
virtual void RemoveEventListener(EventListener *listener)=0
イベントの購読を中止します。
virtual void AddEventListener(EventListener *listener)=0
イベントの購読します。
virtual bool Unsubscribe(const std::string &subscription_id)=0
購読しているSubscriptionの購読を解除します。
virtual std::shared_ptr< RoomPublication > Publish(std::shared_ptr< media::stream::interface::local::LocalStream > stream, PublicationOptions options)=0
LocalStreamを公開します。
virtual bool Unpublish(const std::string &publication_id)=0
公開しているPublicationを非公開にします。
virtual std::shared_ptr< RoomSubscription > Subscribe(const std::string &publication_id, SubscriptionOptions options)=0
公開されているPublicationを購読します。
イベントリスナ
Definition room_member.hpp:26
RoomMemberの操作を行うインターフェース
Definition room_member.hpp:23
PublicationType
Publicationの通信方式
Definition domain.hpp:19
Publish時の設定
Definition local_room_member.hpp:42
int max_subscribers
Subscriberの最大人数
Definition local_room_member.hpp:54
std::vector< Encoding > encodings
エンコーディング一覧
Definition local_room_member.hpp:48
std::optional< std::string > metadata
Metadata
Definition local_room_member.hpp:44
bool is_enabled
Publish時の公開状態
Definition local_room_member.hpp:50
std::vector< Codec > codec_capabilities
コーデック一覧
Definition local_room_member.hpp:46
domain::PublicationType type
PublicationのType
Definition local_room_member.hpp:57
Subscribe時の設定
Definition local_room_member.hpp:61
std::optional< std::string > preferred_encoding_id
Subscribe時に選択するエンコーディング設定。
Definition local_room_member.hpp:64