UNPKG

dpg.broadcast-client

Version:
193 lines (192 loc) 5.69 kB
import type Peer from "peerjs"; import type { Socket } from "socket.io-client"; import type { Writable } from "svelte/store"; interface MediaConfig { audio: { active: boolean; disable: boolean; id: string; }; camera: { active: boolean; disable: boolean; id: string; }; } interface ConferenceConfig { id: string; started_at: number; users: { id: string; name: string; media: MediaConfig; pid: string; }[]; owner: { id: string; name: string; media: MediaConfig; }; } interface OwnerBroadcastData { /** * OnAir - it is affixed exclusively when connected to socket */ onAir: boolean; /** * The value of the variable depends on the config, * when putting CID (ID of conference) */ isOwner: boolean; /** * Status of conference * * @variation status * - disable - complete lack of work with the conference * - settings - configuring the conference configuration (owner) * - connections - onAir * - end - conference disable after connection */ status: "disable" | "settings" | "connection" | "end"; /** * Config of connection for working with conference * * @property connection.socket - socket instance for connection * @property connection.media - current media config of users * @property connection.peer - peer settings and config to display the current data */ connection: { socket: Socket; media: MediaConfig; /** * Peer settings and config to display the current data * * @property {Peer} peer.connections - current connections for call * @property peer.streams - current streams to display in the interface */ peer: { calls: { [socketID: string]: any; }; connections: { [socketID: string]: Peer; }; streams: { self: MediaStream; visitors: { [socketID: string]: MediaStream; }; }; }; }; conference?: ConferenceConfig; /** * Media Stream type of MediaConfig * @param {MediaConfig} _config - config type of MediaConfig * @constructor */ SetMediaConfig(_config: MediaConfig): void; /** * Set current user stream for call to conference * @param {MediaStream} _media - MediaStream for config * @constructor */ SetStream(_media: MediaStream): void; /** * Start of Broadcast * @constructor */ StartBroadcast(): void; /** * Initialization is store for standard projects * @param {String} name - name of store * @param val - default value of store * @constructor */ InitStore(name: string, val: any): Writable<any>; } interface VisitorBroadcastData { /** * OnAir - it is affixed exclusively when connected to socket */ onAir: boolean; /** * The value of the variable depends on the config, * when putting CID (ID of conference) */ isOwner: boolean; /** * Status of conference * * @variation status * - disable - complete lack of work with the conference * - connections - onAir * - end - conference disable after connection */ status: "disable" | "connection" | "end"; /** * Config of connection for working with conference * * @property connection.socket - socket instance for connection * @property connection.media - current media config of users * @property connection.peer - peer settings and config to display the current data */ connection: { socket: Socket; media: MediaConfig; /** * Peer settings and config to display the current data * * @property {Peer} peer.connections - current connections for call * @property peer.streams - current streams to display in the interface */ peer: { pids: { [socketID: string]: any; }; calls: { [socketID: string]: any; }; connections: { self: { [socketID: string]: Peer; }; visitors: { [socketID: string]: Peer; }; }; streams: { self: MediaStream; visitors: { [socketID: string]: MediaStream; }; }; }; }; conference?: ConferenceConfig; /** * Media Stream type of MediaConfig * @param {MediaConfig} _config - config type of MediaConfig * @constructor */ SetMediaConfig(_config: MediaConfig): void; /** * Set current user stream for call to conference * @param {MediaStream} _media - MediaStream for config * @constructor */ SetStream(_media: MediaStream): void; /** * Join to broadcast * @constructor */ JoinBroadcast(): void; /** * Initialization is store for standard projects * @param name - name of store * @param val - default value of store * @constructor */ InitStore(name: string, val: any): Writable<any>; } export { OwnerBroadcastData, VisitorBroadcastData, MediaConfig };