Example #1
0
        private void InvokeCaptured(Byte[] data)
        {
            CaptureEventHandler capturedHandler = CapturedEvent;

            if (capturedHandler != null)
            {
                capturedHandler(data);
            }
            else
            {
                Trace.TraceInformation("capturedHandler is null");
            }
        }
Example #2
0
        public override async Task StreamingServer(StreamRequest request, IServerStreamWriter <StreamImages> responseStream, ServerCallContext context)
        {
            var capture = new Capture(new CaptureSetting(request.X, request.Y, request.W, request.H)
            {
                ID = request.Index
            });
            CaptureEventHandler CaptureEvent = new CaptureEventHandler(new EventDrivenCapture.Capture[1] {
                capture
            });

            capture.CapturedEventHandler += (sender, args) =>
            {
                var images       = new StreamImages();
                var streamReader = new MemoryStream();
                capture.CapturedImage.Save(streamReader, ImageFormat.Bmp);
                images.Image = ByteString.CopyFrom(streamReader.ToArray());
                responseStream.WriteAsync(images).Wait(); // use await here will make event handler async void which actually will not wait for response write to be done, that may cause write to a uncomplete response stream
            };
            CaptureEvent.Start();

            resetEvent.WaitOne();
        }
Example #3
0
 public void AddCaptureEventHandler(CaptureEventHandler handler)
 {
     m_d3d9Capturer.CapturedEvent += handler;
 }
Example #4
0
 public void AddCaptureEventHandler(CaptureEventHandler handler)
 {
     m_d3d9Capturer.CapturedEvent += handler;
 }