Exemplo n.º 1
0
 public void SetVideoRenderer(IVideoRenderer renderer)
 {
     this._videoRenderer = renderer;
     if (this._videoParams != null)
     {
         this._videoRenderer.SetVideoParams(this, this._videoParams);
     }
 }
 public void StartVideoCall(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer)
 {
     Executor.Execute(() =>
     {
         PeerConnectionClient.CreatePeerConnection(localRenderer, remoteRenderer);
         OnChannelConnectedInternal(_signalingParameters);
     });
 }
        private void StartVideoCallInternal(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer)
        {
            var session = RTCAudioSession.SharedInstance;

            session.UseManualAudio = true;
            session.IsAudioEnabled = false;

            StartVideoCall(localRenderer, remoteRenderer);
        }
Exemplo n.º 4
0
 public Z80Model(System.Windows.Forms.Form d, int size)
 {
     if (size == 128)
         memoryManager = new Z80MemoryManager128K();
     else
         memoryManager = new Z80MemoryManager48KFlat();
     portManager = new Z80PortManager();
     videoRenderer = new VideoRenderer(d);
 }
Exemplo n.º 5
0
 public void StartVideoCall(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer)
 {
     Executor.Execute(() =>
     {
         Logger.Debug(TAG, $"VideoCall starting, CreatePeerConnection witl local and remote video renderers");
         PeerConnectionClient.CreatePeerConnection(localRenderer, remoteRenderer);
         OnChannelConnectedInternal(_signalingParameters);
     });
 }
Exemplo n.º 6
0
        private void CloseInternal()
        {
            if (_factory != null && _parameters.AecDump)
            {
                _factory.StopAecDump();
            }

            _logger.Debug(TAG, "Closing peer connection.");
            if (_rtcEventLog != null)
            {
                // RtcEventLog should stop before the peer connection is disposed.
                _rtcEventLog.Stop();
                _rtcEventLog = null;
            }

            _logger.Debug(TAG, "Closing audio source.");
            if (_audioSource != null)
            {
                _audioSource.Dispose();
                _audioSource = null;
            }

            _logger.Debug(TAG, "Stopping capturer.");
            if (_videoCapturer != null)
            {
                _videoCapturer.StopCapture();
                _videoCapturer.Dispose();
                _videoCapturerStopped = true;
                _videoCapturer        = null;
            }

            _logger.Debug(TAG, "Closing video source.");
            if (_videoSource != null)
            {
                _videoSource.Dispose();
                _videoSource = null;
            }

            _localRenderer  = null;
            _remoteRenderer = null;
            _logger.Debug(TAG, "Closing peer connection factory.");
            if (_factory != null)
            {
                _factory.Dispose();
                _factory = null;
            }

            _logger.Debug(TAG, "Closing peer connection done.");
            _peerConnectionEvents.OnPeerConnectionClosed();
            PeerConnectionFactory.StopInternalTracingCapture();
            PeerConnectionFactory.ShutdownInternalTracer();

            _executor.Release();
        }
Exemplo n.º 7
0
 public Z80Model(System.Windows.Forms.Form d, int size)
 {
     if (size == 128)
     {
         memoryManager = new Z80MemoryManager128K();
     }
     else
     {
         memoryManager = new Z80MemoryManager48KFlat();
     }
     portManager   = new Z80PortManager();
     videoRenderer = new VideoRenderer(d);
 }
Exemplo n.º 8
0
        /// <summary>
        /// Will expand the input into the appropriate content based on scope.
        /// </summary>
        /// <param name="scopeName">The scope name.</param>
        /// <param name="input">The input to be expanded.</param>
        /// <param name="htmlEncode">Function that will html encode the output.</param>
        /// <param name="attributeEncode">Function that will html attribute encode the output.</param>
        /// <returns>The expanded content.</returns>
        protected override string PerformExpand(string scopeName, string input, Func <string, string> htmlEncode, Func <string, string> attributeEncode)
        {
            if (scopeName == ScopeName.InvalidVideo)
            {
                throw new ArgumentException("Invalid video type.", "type");
            }

            string[] parameters = input.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            string   url        = Parameters.ExtractUrl(parameters);

            WikiPlex.Legacy.HorizontalAlign align = Parameters.ExtractAlign(parameters, WikiPlex.Legacy.HorizontalAlign.Center);

            IVideoRenderer videoRenderer = GetVideoRenderer(scopeName);

            videoRenderer.Dimensions = Parameters.ExtractDimensions(parameters, 285, 320);

            var content = new StringBuilder();

            using (var tw = new StringWriter(content))
                using (var writer = new WikiPlex.Legacy.HtmlTextWriter(tw, string.Empty))
                {
                    writer.NewLine = string.Empty;
                    writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Class, "video");
                    writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Style, string.Format("text-align:{0}", align));
                    writer.RenderBeginTag(WikiPlex.Legacy.HtmlTextWriterTag.Div);

                    writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Class, "player");
                    writer.RenderBeginTag(WikiPlex.Legacy.HtmlTextWriterTag.Span);

                    videoRenderer.Render(url, writer);

                    writer.RenderEndTag(); // </span>

                    writer.Write("<br />");

                    writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Class, "external");
                    writer.RenderBeginTag(WikiPlex.Legacy.HtmlTextWriterTag.Span);
                    writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Href, url);
                    writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Target, "_blank");
                    writer.RenderBeginTag(WikiPlex.Legacy.HtmlTextWriterTag.A);
                    writer.Write("Launch in another window");
                    writer.RenderEndTag();
                    writer.RenderEndTag();

                    writer.RenderEndTag(); // </div>
                }

            return(content.ToString());
        }
Exemplo n.º 9
0
        public void CreatePeerConnection(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer)
        {
            _localRenderer  = localRenderer;
            _remoteRenderer = remoteRenderer;

            _executor.Execute(() =>
            {
                try
                {
                    CreateMediaConstraintsInternal();
                    CreatePeerConnectionInternal();
                    MaybeCreateAndStartRtcEventLog();
                }
                catch (Exception ex)
                {
                    ReportError("Failed to create peer connection: " + ex.Message);
                    throw;
                }
                if (_peerConnection != null)
                {
                    _peerConnectionEvents.OnPeerConnectionCreated(_peerConnection);
                }
            });
        }
 protected abstract void StartVideoCall(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer);
 public void AddRenderer(IVideoRenderer videoRenderer)
 {
     _videoTrack.AddSink(videoRenderer.ToNative <IVideoSink>());
 }
 public void RemoveRenderer(IVideoRenderer videoRenderer)
 {
     _videoTrack.RemoveSink(videoRenderer.ToNative <IVideoSink>());
 }
Exemplo n.º 13
0
 public void RemoveRenderer(IVideoRenderer videoRenderer)
 {
     _videoTrack.RemoveRenderer(videoRenderer.ToNative <IRTCVideoRenderer>());
 }
 public void RemoveVideoRenderer(IVideoRenderer videoRenderer) => _videoTrack.RemoveSink(videoRenderer.ToPlatformNative <IVideoSink>());
        //public IVideoSource Source =>

        public void AddRenderer(IVideoRenderer videoRenderer) => _videoTrack.AddSink(videoRenderer.ToPlatformNative <IVideoSink>());
 public void StartVideoCall(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer)
 {
     CallController.StartVideoCall(localRenderer, remoteRenderer);
 }
Exemplo n.º 17
0
 public void SetVideoRenderer(IVideoRenderer videoRenderer)
 {
     EmulatedGameBoy.Bus.VideoRenderer = videoRenderer;
 }