Example #1
0
    ///////////////////////////////////////////////////////////////////////////////
    // Methods and Eventhandling for Background tasks                            //
    ///////////////////////////////////////////////////////////////////////////////

    /// <summary>
    /// The presentations <see cref="Thread"/> DoWork event handler.
    ///   Initializes the <see cref="PresenterModule"/> for presentation and
    ///   wires the events.
    /// </summary>
    /// <param name="data">
    /// A <see cref="object"/> with the list of slides.
    /// </param>
    private void PresentationThreadDoWork(object data)
    {
      // Create presentation form
      this.presenterForm = new PresenterModule();

      // Cast thread data.
      var threadParams = (List<object>)data;
      var trialCollection = threadParams[0] as TrialCollection;
      var trigger = threadParams[1] as Trigger;
      var enableTrigger = (bool)threadParams[2];
      var captureProperties = (ScreenCaptureProperties)threadParams[3];

      CaptureDeviceProperties userCameraProperties = null;

      if (threadParams.Count > 4)
      {
        userCameraProperties = (CaptureDeviceProperties)threadParams[4];
      }

      GetTimeDelegate getTimeMethod = this.GetCurrentTime;

      // Set triggering state
      this.presenterForm.EnableTrigger = enableTrigger;

      // Set general trigger
      this.presenterForm.GeneralTrigger = trigger;

      // Set slide list of presenter
      this.presenterForm.TrialList = trialCollection;

      // Set screen capture device properties
      this.presenterForm.ScreenCaptureProperties = captureProperties;

      // Set user camera properties
      this.presenterForm.UserCameraProperties = userCameraProperties;

      // sets the get time method
      this.presenterForm.GetTimeMethod = getTimeMethod;

      // Wire presenter events
      this.presenterForm.CounterChanged += this.ObjPresenterCounterChanged;
      this.presenterForm.SlideChanged += this.ObjPresenterSlideChanged;
      this.presenterForm.TrialChanged += this.ObjPresenterTrialChanged;
      this.presenterForm.TrialEventOccured += this.ObjPresenterTrialEventOccured;
      this.presenterForm.PresentationDone += this.ObjPresenterPresentationDone;

      // Wire this forms event
      this.NewRawDataAvailable += this.RecordModuleNewRawDataAvailable;

      // Captures input to presentation form.
      this.presenterForm.Capture = true;

      // Show presenter form, that starts presentation.
      this.presenterForm.ShowDialog();

      // Presentation is done, so unplug event handlers.
      this.presenterForm.CounterChanged -= this.ObjPresenterCounterChanged;
      this.presenterForm.SlideChanged -= this.ObjPresenterSlideChanged;
      this.presenterForm.TrialChanged -= this.ObjPresenterTrialChanged;
      this.presenterForm.TrialEventOccured -= this.ObjPresenterTrialEventOccured;
      this.presenterForm.PresentationDone -= this.ObjPresenterPresentationDone;

      // Delete presentation form
      this.presenterForm.Dispose();
      this.presenterForm = null;

      this.NewRawDataAvailable -= this.RecordModuleNewRawDataAvailable;
    }
Example #2
0
    /// <summary>
    /// The <see cref="Control.Click"/> event handler for the
    /// <see cref="Button"/> <see cref="btnPreviewSlideshow"/>.
    /// Starts a <see cref="PresenterModule"/> with the given slides.
    /// </summary>
    /// <param name="sender">Source of the event.</param>
    /// <param name="e">An empty <see cref="EventArgs"/></param>
    private void BtnPreviewSlideshowClick(object sender, EventArgs e)
    {
      if (!RecordModule.CheckForCorrectPresentationScreenResolution(PresentationScreen.GetPresentationResolution()))
      {
        return;
      }

      PresenterModule objPresenter = new PresenterModule();

      // Create a newly randomized trial list.
      TrialCollection trials = this.slideshow.GetRandomizedTrials();

      // Create a hardcopy of the trials.
      TrialCollection copyOfTrials = (TrialCollection)trials.Clone();

      // Set slide list of presenter
      objPresenter.TrialList = copyOfTrials;

      // Show presenter form, that starts presentation.
      objPresenter.ShowDialog();

      // Update slideshow pictures of newly created trials
      Document.ActiveDocument.ExperimentSettings.SlideShow.UpdateExperimentPathOfResources(Document.ActiveDocument.ExperimentSettings.SlideResourcesPath);
    }