in packages/calling-stateful-client/src/CallSubscriber.ts [71:146]
constructor(call: CallCommon, context: CallContext, internalContext: InternalCallContext) {
this._call = call;
this._callIdRef = { callId: call.id };
this._context = context;
this._internalContext = internalContext;
this._diagnosticsSubscriber = new UserFacingDiagnosticsSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.UserFacingDiagnostics)
);
this._participantSubscribers = new Map<string, ParticipantSubscriber>();
this._recordingSubscriber = new RecordingSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.Recording)
);
this._pptLiveSubscriber = new PPTLiveSubscriber(this._callIdRef, this._context, this._call);
this._transcriptionSubscriber = new TranscriptionSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.Transcription)
);
this._raiseHandSubscriber = new RaiseHandSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.RaiseHand)
);
this._reactionSubscriber = new ReactionSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.Reaction)
);
this._optimalVideoCountSubscriber = new OptimalVideoCountSubscriber({
callIdRef: this._callIdRef,
context: this._context,
localOptimalVideoCountFeature: this._call.feature(Features.OptimalVideoCount)
});
this._localVideoStreamVideoEffectsSubscribers = new Map();
this._capabilitiesSubscriber = new CapabilitiesSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.Capabilities)
);
this._spotlightSubscriber = new SpotlightSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.Spotlight)
);
// Clear assigned breakout room closed notification for this call.
this._context.deleteLatestNotification('assignedBreakoutRoomClosed');
this._breakoutRoomsSubscriber = new BreakoutRoomsSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.BreakoutRooms)
);
/* @conditional-compile-remove(together-mode) */
this._togetherModeSubscriber = new TogetherModeSubscriber(
this._callIdRef,
this._context,
this._internalContext,
this._call.feature(Features.TogetherMode)
);
this._mediaAccessSubscriber = new MediaAccessSubscriber(
this._callIdRef,
this._context,
this._call.feature(Features.MediaAccess)
);
this.subscribe();
}