UNPKG

mediasfu-angular

Version:
210 lines (209 loc) 12.2 kB
import { Participant, Stream, AudioCardParameters, EventType, CustomMediaComponent } from '../@types/types'; import * as i0 from "@angular/core"; export interface PrepopulateUserMediaParameters extends AudioCardParameters { participants: Participant[]; allVideoStreams: (Stream | Participant)[]; islevel: string; member: string; shared: boolean; shareScreenStarted: boolean; eventType: EventType; screenId?: string; forceFullDisplay: boolean; updateMainWindow: boolean; mainScreenFilled: boolean; adminOnMainScreen: boolean; mainScreenPerson: string; videoAlreadyOn: boolean; audioAlreadyOn: boolean; oldAllStreams: (Stream | Participant)[]; checkOrientation: () => string; screenForceFullDisplay: boolean; localStreamScreen: MediaStream | null; remoteScreenStream: Stream[]; localStreamVideo: MediaStream | null; mainHeightWidth: number; isWideScreen: boolean; localUIMode: boolean; whiteboardStarted: boolean; whiteboardEnded: boolean; virtualStream: MediaStream | null; keepBackground: boolean; annotateScreenStream: boolean; updateMainScreenPerson: (person: string) => void; updateMainScreenFilled: (filled: boolean) => void; updateAdminOnMainScreen: (admin: boolean) => void; updateMainHeightWidth: (heightWidth: number) => void; updateScreenForceFullDisplay: (force: boolean) => void; updateUpdateMainWindow: (update: boolean) => void; updateMainGridStream: (components: CustomMediaComponent[]) => void; customVideoCard?: any; customAudioCard?: any; customMiniCard?: any; getUpdatedAllParams: () => PrepopulateUserMediaParameters; [key: string]: any; } export interface PrepopulateUserMediaOptions { name: string; parameters: PrepopulateUserMediaParameters; } export type PrepopulateUserMediaType = (options: { name: string; parameters: any; }) => Promise<{ component: any; inputs: any; }[] | void>; /** * Prepopulates the user media based on the provided options. * * This method prepares the UI components for the user's media based on the event type and participant information. * It manages the display of video and audio cards, mini cards, and handles screen sharing scenarios. * * @param {PrepopulateUserMediaOptions} options - The options for prepopulating user media. * @param {string} options.name - The name of the user. * @param {PrepopulateUserMediaParameters} options.parameters - The parameters for prepopulating user media. * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters. * @param {Array<Participant>} options.parameters.participants - List of participants. * @param {Array<Stream>} options.parameters.allVideoStreams - List of all video streams. * @param {string} options.parameters.islevel - The level of the user. * @param {string} options.parameters.member - The member name. * @param {boolean} options.parameters.shared - Indicates if the screen is shared. * @param {boolean} options.parameters.shareScreenStarted - Indicates if screen sharing has started. * @param {string} options.parameters.eventType - The type of event (e.g., "broadcast", "chat", "conference"). * @param {string} options.parameters.screenId - The ID of the screen. * @param {boolean} options.parameters.forceFullDisplay - Indicates if full display is forced. * @param {Function} options.parameters.updateMainWindow - Function to update the main window. * @param {boolean} options.parameters.mainScreenFilled - Indicates if the main screen is filled. * @param {boolean} options.parameters.adminOnMainScreen - Indicates if admin is on the main screen. * @param {string} options.parameters.mainScreenPerson - The person on the main screen. * @param {boolean} options.parameters.videoAlreadyOn - Indicates if the video is already on. * @param {boolean} options.parameters.audioAlreadyOn - Indicates if the audio is already on. * @param {Array<Stream>} options.parameters.oldAllStreams - List of old all streams. * @param {Function} options.parameters.checkOrientation - Function to check orientation. * @param {boolean} options.parameters.screenForceFullDisplay - Indicates if screen force full display is enabled. * @param {Stream} options.parameters.localStreamScreen - The local screen stream. * @param {Array<Stream>} options.parameters.remoteScreenStream - List of remote screen streams. * @param {Stream} options.parameters.localStreamVideo - The local video stream. * @param {number} options.parameters.mainHeightWidth - The main height and width. * @param {boolean} options.parameters.isWideScreen - Indicates if the screen is wide. * @param {boolean} options.parameters.localUIMode - Indicates if local UI mode is enabled. * @param {boolean} options.parameters.whiteboardStarted - Indicates if whiteboard has started. * @param {boolean} options.parameters.whiteboardEnded - Indicates if whiteboard has ended. * @param {Stream} options.parameters.virtualStream - The virtual stream. * @param {boolean} options.parameters.keepBackground - Indicates if background should be kept. * @param {Stream} options.parameters.annotateScreenStream - The annotate screen stream. * @param {Function} options.parameters.updateMainScreenPerson - Function to update the main screen person. * @param {Function} options.parameters.updateMainScreenFilled - Function to update if the main screen is filled. * @param {Function} options.parameters.updateAdminOnMainScreen - Function to update if admin is on the main screen. * @param {Function} options.parameters.updateMainHeightWidth - Function to update the main height and width. * @param {Function} options.parameters.updateScreenForceFullDisplay - Function to update screen force full display. * @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window update status. * @param {Function} options.parameters.updateMainGridStream - Function to update the main grid stream. * * @returns {Promise<{ component: any; inputs: any }[] | void>} A promise that resolves with the components and inputs or void. * * @throws {Error} Throws an error if there is an issue preparing and populating the main screen. * * @example * ```typescript * const options = { * name: 'John Doe', * parameters: { * getUpdatedAllParams: () => { }, * participants: [], * allVideoStreams: [], * islevel: '1', * member: 'John', * shared: false, * shareScreenStarted: false, * eventType: 'conference', * screenId: 'screen123', * forceFullDisplay: false, * updateMainWindow: false, * mainScreenFilled: false, * adminOnMainScreen: false, * mainScreenPerson: '', * videoAlreadyOn: false, * audioAlreadyOn: false, * oldAllStreams: [], * checkOrientation: () => 'landscape', * screenForceFullDisplay: false, * localStreamScreen: null, * remoteScreenStream: [], * localStreamVideo: null, * mainHeightWidth: 100, * isWideScreen: true, * localUIMode: false, * whiteboardStarted: false, * whiteboardEnded: false, * virtualStream: null, * keepBackground: false, * annotateScreenStream: false, * updateMainScreenPerson: (person) => { console.log(updated) }, * updateMainScreenFilled: (filled) => { console.log(updated) }, * updateAdminOnMainScreen: (admin) => { console.log(updated) }, * updateMainHeightWidth: (heightWidth) => { console.log(updated) }, * updateScreenForceFullDisplay: (force) => { console.log(updated) }, * updateUpdateMainWindow: (update) => { console.log(updated) }, * updateMainGridStream: (components) => { console.log(updated) }, * }, * }; * * await prepopulateUserMedia(options); * ``` */ export declare class PrepopulateUserMedia { /** * Prepopulates the user media based on the provided options. * * @param {PrepopulateUserMediaOptions} options - The options for prepopulating user media. * @param {string} options.name - The name of the user. * @param {Parameters} options.parameters - The parameters for prepopulating user media. * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters. * @param {Array<Participant>} options.parameters.participants - List of participants. * @param {Array<Stream>} options.parameters.allVideoStreams - List of all video streams. * @param {string} options.parameters.islevel - The level of the user. * @param {string} options.parameters.member - The member name. * @param {boolean} options.parameters.shared - Indicates if the screen is shared. * @param {boolean} options.parameters.shareScreenStarted - Indicates if screen sharing has started. * @param {string} options.parameters.eventType - The type of event. * @param {string} options.parameters.screenId - The screen ID. * @param {boolean} options.parameters.forceFullDisplay - Indicates if full display is forced. * @param {Function} options.parameters.updateMainWindow - Function to update the main window. * @param {boolean} options.parameters.mainScreenFilled - Indicates if the main screen is filled. * @param {boolean} options.parameters.adminOnMainScreen - Indicates if admin is on the main screen. * @param {string} options.parameters.mainScreenPerson - The person on the main screen. * @param {boolean} options.parameters.videoAlreadyOn - Indicates if the video is already on. * @param {boolean} options.parameters.audioAlreadyOn - Indicates if the audio is already on. * @param {Array<Stream>} options.parameters.oldAllStreams - List of old all streams. * @param {Function} options.parameters.checkOrientation - Function to check orientation. * @param {boolean} options.parameters.screenForceFullDisplay - Indicates if screen force full display is enabled. * @param {Stream} options.parameters.localStreamScreen - The local screen stream. * @param {Array<Stream>} options.parameters.remoteScreenStream - List of remote screen streams. * @param {Stream} options.parameters.localStreamVideo - The local video stream. * @param {number} options.parameters.mainHeightWidth - The main height and width. * @param {boolean} options.parameters.isWideScreen - Indicates if the screen is wide. * @param {boolean} options.parameters.localUIMode - Indicates if local UI mode is enabled. * @param {boolean} options.parameters.whiteboardStarted - Indicates if whiteboard has started. * @param {boolean} options.parameters.whiteboardEnded - Indicates if whiteboard has ended. * @param {Stream} options.parameters.virtualStream - The virtual stream. * @param {boolean} options.parameters.keepBackground - Indicates if background should be kept. * @param {Stream} options.parameters.annotateScreenStream - The annotate screen stream. * @param {Function} options.parameters.updateMainScreenPerson - Function to update the main screen person. * @param {Function} options.parameters.updateMainScreenFilled - Function to update if the main screen is filled. * @param {Function} options.parameters.updateAdminOnMainScreen - Function to update if admin is on the main screen. * @param {Function} options.parameters.updateMainHeightWidth - Function to update the main height and width. * @param {Function} options.parameters.updateScreenForceFullDisplay - Function to update screen force full display. * @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window update status. * @param {Function} options.parameters.updateMainGridStream - Function to update the main grid stream. * * @returns {Promise<{ component: any, inputs: any }[] | void>} A promise that resolves with the components and inputs or void. */ prepopulateUserMedia: ({ name, parameters, }: PrepopulateUserMediaOptions) => Promise<{ component: any; inputs: any; }[] | void>; static ɵfac: i0.ɵɵFactoryDeclaration<PrepopulateUserMedia, never>; static ɵprov: i0.ɵɵInjectableDeclaration<PrepopulateUserMedia>; }