private void ProcessingLoop(object s, EventArgs ea) { Stopwatch sw = new Stopwatch(); sw.Start(); using (Mat imgCap = new Mat()) using (Mat imgMat = new Mat()) { DateTime now = DateTime.Now; vc.Retrieve(imgCap, CameraChannels.Zero); ProjectionTransform.Transform(imgMat, imgCap, vtArray); EnterButton.Process(imgMat, now); ScrollBar.Thumb.Process(imgMat, now); DebugImShow(imgCap, imgMat); if (input.AT && (DateTime.Now - ChangedDisplayInfomationTime) >= InformationDisplayInterval) { switch (StatusInfoIndicator.Visibility) { case System.Windows.Visibility.Visible: StatusInfoIndicator.Visibility = System.Windows.Visibility.Hidden; break; case System.Windows.Visibility.Hidden: StatusInfoIndicator.Visibility = System.Windows.Visibility.Visible; break; } ChangedDisplayInfomationTime = DateTime.Now; } else if (input.AT) { } else { StatusInfoIndicator.Visibility = System.Windows.Visibility.Hidden; } sw.Stop(); } int key = Cv.WaitKey(1); if (key == 0x1b) { Close(); } }
private void RetrieveButtonBackground(object ss, EventArgs e) { using (Mat imgMat = new Mat()) using (Mat imgCap = new Mat()) { vc.Retrieve(imgCap, CameraChannels.Zero); ProjectionTransform.Transform(imgMat, imgCap, vtArray); try { switch (StageRetrieveingScrollArea) { case 0: if (EnterButton.SetReferenceImageIfThatIsNull(imgMat, SecondToWaitForAppearingTouchButton)) { StageRetrieveingScrollArea = 1; ScrollBar.Thumb.Visibility = System.Windows.Visibility.Hidden; ScrollBar.PaintScrollAreaBy(ScrollBar.Thumb.ProjectionColor); ScrollBar.Thumb.ReferenceImageAdjustedTime = DateTime.Now; } break; case 1: if (ScrollBar.SetThumbReferenceImageIfThatIsNull(imgMat, SecondToWaitForAppearingTouchButton)) { StageRetrieveingScrollArea = 2; ScrollBar.SetSinceChangingScrollAreaColorNow(); } break; case 2: if (ScrollBar.SetButtonColorBackgroundIfThatIsNull(imgMat, SecondToWaitForAppearingTouchButton)) { StageRetrieveingScrollArea = 3; ScrollBar.PaintScrollAreaBy(ScrollBar.ScrollAreaColor); ScrollBar.SetSinceChangingScrollAreaColorNow(); } break; case 3: if (ScrollBar.SetScrollAreaBackgroundIfThatIsNull(imgMat, SecondToWaitForAppearingTouchButton)) { timerToRetrieveBackground.Stop(); ScrollBar.Thumb.Visibility = System.Windows.Visibility.Visible; ScrollBar.Thumb.ButtonTouching += (s, ea) => ScrollBar.ScrollProcess(s, ea); ScrollBar.ValueChanged += (s, ea) => Move(); EnterButton.ButtonHandDown += (s, ea) => blockCrashView.KeyDownEnterButton(); EnterButton.ButtonHandUp += (s, ea) => blockCrashView.KeyUpEnterButton(); int ThumbValidPixels = ScrollBar.Thumb.ValidateArea.Width * ScrollBar.Thumb.ValidateArea.Height; blockCrashView.Initialize(WPFBlockCrash.BlockCrashView.EOperatingType.VIRTOS_SLIDER); blockCrashView.IsAuto = false; blockCrashView.RunGame(); timerToProcess = new DispatcherTimer(); timerToProcess.Tick += (s, ea) => ProcessingLoop(s, ea); timerToProcess.Interval = TimeSpan.FromMilliseconds(1); timerToProcess.Start(); } break; } } catch (Exception) { //!? throw; } } }