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) { }