public AuxStream GetAuxStream(IntPtr handle)
        {
            AuxStream result = null;

            if (handle == IntPtr.Zero)
            {
                return(result);
            }

            if (AuxStreams.Count <= 0)
            {
                return(result);
            }
            return(AuxStreams.FirstOrDefault(x => x.Handle == handle));
        }
        /// <summary>
        /// Subscribe a new auxiliary stream with a view handle. The Maximum of auxiliary videos you can subscribe is 4 currently.
        /// You can invoke this API When receive RemoteAuxVideosCountChangedEvent event or call status is connected.
        /// </summary>
        /// <param name="handle">the remote auxiliary display window handle</param>
        /// <returns>The subscribed auxiliary stream instance. Return null if subscribing failed.</returns>
        /// <remarks>Since: 2.0.0</remarks>
        public void OpenAuxStream(IntPtr handle)
        {
            if (handle == IntPtr.Zero)
            {
                return;
            }
            if (!IsGroup)
            {
                var str = "one2one call cannot open auxiliary stream.";
                SdkLogger.Instance.Error(str);
                TrigerOnAuxStreamEvent(new AuxStreamOpenedEvent(this, null, new WebexApiEventArgs <IntPtr>(false, new WebexError(WebexErrorCode.IllegalOperation, str), IntPtr.Zero)));
                return;
            }
            if (AvailableAuxStreamCount == 0 && Status != CallStatus.Connected)
            {
                var str = "There isn't available auxiliary streams.";
                SdkLogger.Instance.Error(str);
                TrigerOnAuxStreamEvent(new AuxStreamOpenedEvent(this, null, new WebexApiEventArgs <IntPtr>(false, new WebexError(WebexErrorCode.IllegalOperation, str), IntPtr.Zero)));
                return;
            }
            if (AuxStreams.Count >= 4)
            {
                var str = "The max count of auxiliary view is 4";
                SdkLogger.Instance.Error(str);
                TrigerOnAuxStreamEvent(new AuxStreamOpenedEvent(this, null, new WebexApiEventArgs <IntPtr>(false, new WebexError(WebexErrorCode.IllegalOperation, str), IntPtr.Zero)));
                return;
            }
            if (GetAuxStream(handle) != null)
            {
                var str = "this view has opened. Please give another view handle.";
                SdkLogger.Instance.Error(str);
                TrigerOnAuxStreamEvent(new AuxStreamOpenedEvent(this, null, new WebexApiEventArgs <IntPtr>(false, new WebexError(WebexErrorCode.IllegalOperation, str), IntPtr.Zero)));
                return;
            }
            m_core_telephoneService.subscribeAuxVideo(this.CallId);

            var newAuxStream = new AuxStream(this)
            {
                Handle = handle
            };

            AuxStreams.Add(newAuxStream);
        }
 internal AuxStreamSizeChangedEvent(Call call, AuxStream remoteAuxVideo)
     : base(call, remoteAuxVideo)
 {
 }
 internal ReceivingAuxStreamEvent(Call call, AuxStream remoteAuxVideo)
     : base(call, remoteAuxVideo)
 {
 }
 internal AuxStreamPersonChangedEvent(CallMembership oldperson, CallMembership newperson, Call call, AuxStream remoteAuxVideo)
     : base(call, remoteAuxVideo)
 {
     FromPerson = oldperson;
     ToPerson   = newperson;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AuxStreamEvent"/> class.
 /// </summary>
 /// <param name="call">current call instance.</param>
 /// <param name="auxStream">the auxiliary stream instance.</param>
 /// <remarks>Since: 2.0.0</remarks>
 protected AuxStreamEvent(Call call, AuxStream auxStream)
     : base(call)
 {
     this.auxStream = auxStream;
 }
 internal AuxStreamOpenedEvent(Call call, AuxStream remoteAuxVideo, WebexApiEventArgs <IntPtr> result)
     : base(call, remoteAuxVideo)
 {
     Result = result;
 }
 internal AuxStreamSendingEvent(Call call, AuxStream remoteAuxVideo)
     : base(call, remoteAuxVideo)
 {
 }