private void OnScreenFragmentEventHandler(RemoteScreenAdapterHandler adapterHandler, Fragment[] fragments, ScreenReceivedType type) { switch (type) { case ScreenReceivedType.Noninterlaced: this.FrameDataHandler(fragments); _recvImgCount++; this.GetNextScreen(); break; case ScreenReceivedType.Difference: this.FrameDataHandler(fragments); break; case ScreenReceivedType.DifferenceEnd: _recvImgCount++; this.GetNextScreen(); break; default: break; } this.imgDesktop.Image = this._currentFrame; }
private void OnScreenFragmentEventHandler(RemoteScreenAdapterHandler adapterHandler, Core.ScreenSpy.Entitys.Fragment[] fragments, ScreenReceivedType type) { switch (type) { case ScreenReceivedType.Noninterlaced: foreach (var fragment in fragments) { using (MemoryStream ms = new MemoryStream(fragment.FragmentData)) { this.DisplayScreen(Image.FromStream(ms), new Rectangle(fragment.X, fragment.Y, fragment.Width, fragment.Height)); _traffic += ms.Length; } } _recvImgCount++; this.GetNextScreen(); break; case ScreenReceivedType.Difference: foreach (var fragment in fragments) { using (MemoryStream ms = new MemoryStream(fragment.FragmentData)) { this.DisplayScreen(Image.FromStream(ms), new Rectangle(fragment.X, fragment.Y, fragment.Width, fragment.Height)); _traffic += ms.Length; } } break; case ScreenReceivedType.DifferenceEnd: _recvImgCount++; this.GetNextScreen(); break; default: break; } }