constructor()

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();
  }