SkyWay for Linux
読み取り中…
検索中…
一致する文字列を見つけられません
local_room_member.hpp
1//
2// local_room_member.hpp
3// skyway
4//
5// Created by Naoto Takahashi on 2023/11/21.
6// Copyright © 2023 NTT Communications. All rights reserved.
7//
8
9#ifndef SKYWAY_ROOM_INTERFACE_LOCAL_ROOM_MEMBER_HPP
10#define SKYWAY_ROOM_INTERFACE_LOCAL_ROOM_MEMBER_HPP
11
12#include <skyway/core/interface/local_person.hpp>
13
14#include "skyway/room/interface/room_member.hpp"
15
16namespace skyway {
17namespace room {
18namespace interface {
19
21class LocalRoomMember : public virtual RoomMember {
22public:
25 public:
26 virtual ~EventListener() = default;
29 virtual void OnStreamPublished(std::unique_ptr<RoomPublication> publication) {}
30
33 virtual void OnStreamUnpublished(std::unique_ptr<RoomPublication> publication) {}
34
37 virtual void OnPublicationSubscribed(std::unique_ptr<RoomSubscription> subscription) {}
38
41 virtual void OnPublicationUnsubscribed(std::unique_ptr<RoomSubscription> subscription) {}
42 };
43
47 boost::optional<std::string> metadata;
49 std::vector<model::Codec> codec_capabilities;
51 std::vector<model::Encoding> encodings;
53 bool is_enabled = true;
57 core_opt.metadata = metadata;
59 core_opt.encodings = encodings;
60 core_opt.is_enabled = is_enabled;
61 return core_opt;
62 }
64 };
65
79
80 virtual ~LocalRoomMember() = default;
82 virtual void AddEventListener(EventListener* listener) = 0;
84 virtual void RemoveEventListener(EventListener* listener) = 0;
86 virtual std::unique_ptr<RoomPublication> Publish(std::shared_ptr<core::interface::LocalStream>,
87 PublicationOptions options) = 0;
89 virtual std::unique_ptr<RoomSubscription> Subscribe(const std::string& publication_id,
90 SubscriptionOptions options) = 0;
92 virtual bool Unpublish(const std::string& publication_id) = 0;
94 virtual bool Unsubscribe(const std::string& subscription_id) = 0;
95};
96
97} // namespace interface
98} // namespace room
99} // namespace skyway
100
101#endif /* SKYWAY_ROOM_INTERFACE_LOCAL_ROOM_MEMBER_HPP */
イベントリスナ
Definition local_room_member.hpp:24
virtual void OnStreamPublished(std::unique_ptr< RoomPublication > publication)
このLocalRoomMemerがStreamをPublishした後に発生するイベント
Definition local_room_member.hpp:29
virtual void OnStreamUnpublished(std::unique_ptr< RoomPublication > publication)
このLocalRoomMemerがUnpublishした後に発生するイベント
Definition local_room_member.hpp:33
virtual void OnPublicationSubscribed(std::unique_ptr< RoomSubscription > subscription)
このLocalRoomMemerがSubscribeした後に発生するイベント
Definition local_room_member.hpp:37
virtual void OnPublicationUnsubscribed(std::unique_ptr< RoomSubscription > subscription)
このLocalRoomMemerがUnsubscribeした後に発生するイベント
Definition local_room_member.hpp:41
LocalRoomMemberの操作を行うインターフェース
Definition local_room_member.hpp:21
virtual std::unique_ptr< RoomSubscription > Subscribe(const std::string &publication_id, SubscriptionOptions options)=0
公開されているPublicationを購読します。
virtual void RemoveEventListener(EventListener *listener)=0
イベントの購読を中止します。
virtual void AddEventListener(EventListener *listener)=0
イベントの購読します。
virtual bool Unsubscribe(const std::string &subscription_id)=0
購読しているSubscriptionの購読を解除します。
virtual std::unique_ptr< RoomPublication > Publish(std::shared_ptr< core::interface::LocalStream >, PublicationOptions options)=0
LocalStreamを公開します。
virtual bool Unpublish(const std::string &publication_id)=0
公開しているPublicationを非公開にします。
イベントリスナ
Definition room_member.hpp:26
RoomMemberの操作を行うインターフェース
Definition room_member.hpp:23
PublishでPublicationに対して指定するオプション
Definition local_person.hpp:39
std::vector< model::Encoding > encodings
エンコーディング設定
Definition local_person.hpp:45
boost::optional< std::string > metadata
metadata
Definition local_person.hpp:41
bool is_enabled
Publish時の公開状態
Definition local_person.hpp:47
std::vector< model::Codec > codec_capabilities
コーデック一覧
Definition local_person.hpp:43
SubscribeでSubscriptionに対して指定するオプション
Definition local_person.hpp:52
boost::optional< std::string > preferred_encoding_id
優先エンコーディングID
Definition local_person.hpp:56
Publish時の設定
Definition local_room_member.hpp:45
std::vector< model::Encoding > encodings
エンコーディング一覧
Definition local_room_member.hpp:51
std::vector< model::Codec > codec_capabilities
コーデック一覧
Definition local_room_member.hpp:49
boost::optional< std::string > metadata
Metadata
Definition local_room_member.hpp:47
bool is_enabled
Publish時の公開状態
Definition local_room_member.hpp:53
Subscribe時の設定
Definition local_room_member.hpp:67
boost::optional< std::string > preferred_encoding_id
Subscribe時に選択するエンコーディング設定。
Definition local_room_member.hpp:70