Example #1
0
        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();
        }
Example #2
0
        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;
        }
Example #3
0
 public void SetComposite(IDelayComposite composite)
 {
     this.composite = composite;
 }
Example #4
0
 public void ResetComposite(IDelayComposite composite)
 {
     this.composite  = composite;
     currentPosition = 0;
     composite.UpdateSubframes(imageDescriptor, delayer.Capacity);
 }