12#ifndef _PRIVMXLIB_ENDPOINT_STREAM_STREAMAPI_HPP_
13#define _PRIVMXLIB_ENDPOINT_STREAM_STREAMAPI_HPP_
18#include <privmx/endpoint/core/Connection.hpp>
19#include <privmx/endpoint/core/Types.hpp>
20#include <privmx/endpoint/event/EventApi.hpp>
23#include "privmx/endpoint/stream/webrtc/Types.hpp"
24#include "privmx/endpoint/stream/webrtc/OnTrackInterface.hpp"
67 const std::string& contextId,
68 const std::vector<core::UserWithPubKey>& users,
69 const std::vector<core::UserWithPubKey>&managers,
72 const std::optional<core::ContainerPolicy>& policies
90 const std::string& streamRoomId,
91 const std::vector<core::UserWithPubKey>& users,
92 const std::vector<core::UserWithPubKey>&managers,
95 const int64_t version,
97 const bool forceGenerateNewKey,
98 const std::optional<core::ContainerPolicy>& policies
133 std::vector<std::string>
subscribeFor(
const std::vector<std::string>& subscriptionQueries);
159 std::vector<StreamInfo>
listStreams(
const std::string& streamRoomId);
280 void modifyRemoteStreamsSubscriptions(
const std::string& streamRoomId,
const std::vector<StreamSubscription>& subscriptionsToAdd,
const std::vector<StreamSubscription>& subscriptionsToRemove);
305 void addRemoteStreamListener(
const std::string& streamRoomId, std::optional<int64_t> streamId, std::shared_ptr<OnTrackInterface> onTrack);
310 std::shared_ptr<StreamApiImpl>
getImpl()
const {
return _impl; }
313 void validateEndpoint();
314 StreamApi(
const std::shared_ptr<StreamApiImpl>& impl);
315 std::shared_ptr<StreamApiImpl> _impl;
Definition Connection.hpp:22
Definition EventApi.hpp:18
std::vector< std::string > subscribeFor(const std::vector< std::string > &subscriptionQueries)
StreamRoom getStreamRoom(const std::string &streamRoomId)
StreamPublishResult updateStream(const StreamHandle &streamHandle)
void enableStreamRoomRecording(const std::string &streamRoomId)
std::string buildSubscriptionQuery(EventType eventType, EventSelectorType selectorType, const std::string &selectorId)
void leaveStreamRoom(const std::string &streamRoomId)
void subscribeToRemoteStreams(const std::string &streamRoomId, const std::vector< StreamSubscription > &subscriptions)
void addRemoteStreamListener(const std::string &streamRoomId, std::optional< int64_t > streamId, std::shared_ptr< OnTrackInterface > onTrack)
std::vector< StreamInfo > listStreams(const std::string &streamRoomId)
std::string createStreamRoom(const std::string &contextId, const std::vector< core::UserWithPubKey > &users, const std::vector< core::UserWithPubKey > &managers, const core::Buffer &publicMeta, const core::Buffer &privateMeta, const std::optional< core::ContainerPolicy > &policies)
void modifyRemoteStreamsSubscriptions(const std::string &streamRoomId, const std::vector< StreamSubscription > &subscriptionsToAdd, const std::vector< StreamSubscription > &subscriptionsToRemove)
void unpublishStream(const StreamHandle &streamHandle)
std::vector< AudioDevice > getAudioDevices()
std::shared_ptr< StreamApiImpl > getImpl() const
Definition StreamApi.hpp:310
static StreamApi create(core::Connection &connection, event::EventApi &eventApi)
void unsubscribeFromRemoteStreams(const std::string &streamRoomId, const std::vector< StreamSubscription > &subscriptionsToRemove)
StreamPublishResult publishStream(const StreamHandle &streamHandle)
void updateStreamRoom(const std::string &streamRoomId, const std::vector< core::UserWithPubKey > &users, const std::vector< core::UserWithPubKey > &managers, const core::Buffer &publicMeta, const core::Buffer &privateMeta, const int64_t version, const bool force, const bool forceGenerateNewKey, const std::optional< core::ContainerPolicy > &policies)
std::vector< VideoDevice > getVideoDevices()
void unsubscribeFrom(const std::vector< std::string > &subscriptionIds)
void joinStreamRoom(const std::string &streamRoomId)
void dropBrokenFrames(const std::string &streamRoomId, bool enable)
core::PagingList< StreamRoom > listStreamRooms(const std::string &contextId, const core::PagingQuery &query)
std::vector< DesktopDevice > getDesktopDevices(DesktopType desktopType)
void removeTrack(const StreamHandle &streamHandle, const MediaDevice &track)
MediaTrack addTrack(const StreamHandle &streamHandle, const MediaDevice &track, const MediaTrackConstrains &mediaTrackConstrains)
std::vector< stream::RecordingEncKey > getStreamRoomRecordingKeys(const std::string &streamRoomId)
void deleteStreamRoom(const std::string &streamRoomId)
StreamHandle createStream(const std::string &streamRoomId)