private void ConfigureComposite() { if (!cameraLoaded || cameraManager == null) { return; } FormConfigureComposite form = new FormConfigureComposite(delayCompositeConfiguration); FormsHelper.Locate(form); if (form.ShowDialog() == DialogResult.OK) { delayCompositeConfiguration = form.Configuration; delayComposite = GetComposite(delayCompositeConfiguration); delayCompositer.ResetComposite(delayComposite); PreferencesManager.CapturePreferences.DelayCompositeConfiguration = delayCompositeConfiguration; PreferencesManager.Save(); } form.Dispose(); }
public CaptureScreen() { // There are several nested lifetimes with symetric setup/teardown methods: // Screen -> ctor / BeforeClose. // Camera association -> LoadCamera / UnloadCamera. // Connection (frame grab) -> Connect / Disconnect. // Recording -> StartRecord / StopRecord. log.Debug("Constructing a CaptureScreen."); view = new CaptureScreenView(this); view.DualCommandReceived += OnDualCommandReceived; viewportController = new ViewportController(); viewportController.DisplayRectangleUpdated += ViewportController_DisplayRectangleUpdated; viewportController.Poked += viewportController_Poked; view.SetViewport(viewportController.View); view.SetCapturedFilesView(capturedFiles.View); InitializeCaptureFilenames(); InitializeTools(); InitializeMetadata(); delayCompositer = new DelayCompositer(delayer); delayCompositeConfiguration = PreferencesManager.CapturePreferences.DelayCompositeConfiguration; delayComposite = GetComposite(delayCompositeConfiguration); delayCompositer.SetComposite(delayComposite); view.SetToolbarView(drawingToolbarPresenter.View); IntPtr forceHandleCreation = dummy.Handle; // Needed to show that the main thread "owns" this Control. nonGrabbingInteractionTimer.Interval = 40; nonGrabbingInteractionTimer.Tick += NonGrabbingInteractionTimer_Tick; grabTimer.Tick += grabTimer_Tick; pipelineManager.FrameSignaled += pipelineManager_FrameSignaled; }
public void SetComposite(IDelayComposite composite) { this.composite = composite; }
public void ResetComposite(IDelayComposite composite) { this.composite = composite; currentPosition = 0; composite.UpdateSubframes(imageDescriptor, delayer.Capacity); }