private void stageChanged(Stage oldValue, Stage newValue) { var args = new StageChangedEventArgs { OldStage = oldValue, NewStage = newValue }; StageChanged?.Invoke(this, args); }
private void StageChanged(object sender, StageChangedEventArgs e) { _stage = e.Stage; if (_stage != null) { Name = _stage.Name; Track = (uint)_stage.MusicTrack; } }
private void StageSelected(object sender, StageChangedEventArgs e) { if (e.Stage != null) { ribbonStage.IsSelected = true; } this.editorPane.IsActive = true; }
private void StageProgram_StageChanged(object sender, StageChangedEventArgs e) { /* Get next stage, exit on null (END REACHED) */ if (e.IsEndReached) { this.DispatcherInvoke(() => Stop()); return; } this.DispatcherInvoke(() => CueText.Text = e.Stage.Cue); }
private void StageChanged(object sender, StageChangedEventArgs e) { if (e.Stage != null) { SetStage(e.Stage); } else { UnsetStage(); } }
private void StageChanged(object sender, StageChangedEventArgs e) { if (e.Stage != null) { SetTileset(e.Stage.Tileset.Tileset); } else { SetTileset(null); } }
private void AddStageToProject(TilesetDocument tileset) { var stage = _project.AddStage(Name); stage.ChangeTileset(tileset); _dataService.SaveProject(_project); var args = new StageChangedEventArgs(stage); ViewModelMediator.Current.GetEvent <StageChangedEventArgs>().Raise(this, args); }
private void StageProgram_StageChanged(object sender, StageChangedEventArgs e) { /* Get next stage, exit on null (END REACHED) */ if (e.IsEndReached) { this.ControlInvoke(self => Stop()); return; } var stage = e.Stage; _displayText = stage.Cue; if (stage.Marker != null) { var marker = stage.Marker.Value; /* Record marker */ _markable?.Mark(marker); switch (marker) { case MarkerDefinitions.ExperimentStartMarker: _experimentStarted = true; break; case MarkerDefinitions.ExperimentEndMarker: _experimentStarted = false; break; case MarkerDefinitions.TrialStartMarker: _trialStarted = true; break; case MarkerDefinitions.TrialEndMarker: _trialStarted = false; break; case MavepExperiment.StimClearMarker: _stimPos = 0; break; case MavepExperiment.LeftStimMarker: _stimPos = -1; GenerateStimuli(); break; case MavepExperiment.RightStimMarker: _stimPos = +1; GenerateStimuli(); break; } } }
private void StageProgram_StageChanged(object sender, StageChangedEventArgs e) { /* Get next stage, exit on null (END REACHED) */ if (!e.TryGetStage(out var stage)) { this.DispatcherInvoke(() => Stop()); return; } if (stage.Marker != null) { _markable?.Mark(stage.Marker.Value); } this.DispatcherInvoke(() => CueText.Text = stage.Cue); }
private void StageChanged(object sender, StageChangedEventArgs e) { if (e.Stage != null) { if (_history != null) { _history.Updated -= UpdateActions; } _history = e.Stage.History; OnPropertyChanged("Items"); _history.Updated += UpdateActions; } }
private void StageChanged(object sender, StageChangedEventArgs e) { _currentStage = e.Stage; if (_currentStage != null) { var player = _currentStage.Project.EntityByName("Player"); if (player != null) { _playerSprite = SpriteModel.ForEntity(player, _currentStage.Project); } } OnPropertyChanged("HasStage"); }
private void StageProgram_StageChanged(object sender, StageChangedEventArgs e) { /* Get next stage, exit on null (END REACHED) */ if (e.IsEndReached) { this.DispatcherInvoke(() => Stop()); return; } var stage = e.Stage; /* Record marker */ if (stage.Marker != null) { _markable?.Mark(stage.Marker.Value); } this.DispatcherInvoke(() => { /* Update text */ CueTextBlock.Text = stage.Cue; /* Update stage */ if (stage is CptStage cptStage) { var now = CurrentTime; var trial = new CptExperiment.CptTrial { Target = cptStage.IsTarget, Timestamp = now, Replied = false, ReactionTime = -1 }; _currentStage = new ActivedStage(now, cptStage, trial); _trials.AddLast(trial); } else { _currentStage = null; } /* Set focus */ if (!IsFocused) { Focus(); } }); }
private void StageChanged(object sender, StageChangedEventArgs e) { //Console.WriteLine($"Stage changed from {e.OldStage} to {e.NewStage}"); updateTabVisibilities(e.NewStage); SelectedTab = stageToTabIndex(e.NewStage); if (e.NewStage == Stage.Final) { Analyzer.SetFingerprint(Preprocesor.CurrentImage); CurrentImage = Analyzer.FingerprintImage; } else { CurrentImage = Preprocesor.CurrentImage; } if (e.OldStage == Stage.Final) { Analyzer.Clear(); } }
private void StageProgram_StageChanged(object sender, StageChangedEventArgs e) { /* Get next stage, exit on null (END REACHED) */ if (e.IsEndReached) { this.ControlInvoke(self => Stop()); return; } _stageUpdatedAt = CurrentTime; var stage = e.Stage; _displayText = stage.Cue?.Trim2Null(); if (stage.Marker != null) { var marker = stage.Marker.Value; /* Record marker */ _markable?.Mark(marker); switch (marker) { case MarkerDefinitions.ParadigmStartMarker: _paradigmStarted = true; break; case MarkerDefinitions.ParadigmEndMarker: _paradigmStarted = false; break; case MarkerDefinitions.TrialStartMarker: _trialStarted = true; break; case MarkerDefinitions.TrialEndMarker: _trialStarted = false; break; } } }
protected abstract void OnNextStage(StageChangedEventArgs e);
protected override void OnNextStage(StageChangedEventArgs e) { var stage = e.Stage; DisplayText = stage.Cue?.Trim(); SubtitleText = stage.Subtitle?.Trim(); if (stage.Marker != null) { /* Record marker */ Markable?.Mark(stage.Marker.Value); var sessionTime = Session.SessionTime; /* Handle events */ switch (stage.Marker) { case MarkerDefinitions.BaselineStartMarker: if (_hybridSsvepIdentifier != null) { _initializer = _hybridSsvepIdentifier?.CreateInitializer(); _biosignalStreamer.AttachConsumer(_initializer); } break; case MarkerDefinitions.BaselineEndMarker: if (_initializer != null) { _biosignalStreamer.DetachConsumer(_initializer); _initializer.Initialize(); _initializer = null; } SpellerController.CalibrationComplete(); break; case MarkerDefinitions.ParadigmStartMarker: Result.ParadigmStartTime = sessionTime; ParadigmStarted = true; SpellerController.Start(); HintButton(); break; case MarkerDefinitions.ParadigmEndMarker: Result.ParadigmEndTime = sessionTime; break; case MarkerDefinitions.TrialStartMarker: { var trial = new SsvepTrial { TargetFrequencyIndex = HintedButton?.State }; var activedButtons = _activedButtons = UpdateCursor(GazePointHandler.CurrentPosition); if (activedButtons != null) { var buttons = new LinkedList <SpellerParadigm.Result.Button>(); foreach (var activedButton in activedButtons) { if (activedButton != null) { buttons.AddLast(new SsvepButton(activedButton.Key, activedButton.State)); } } trial.ActivedButtons = buttons; } trial.StartTime = CurrentTime; _trial = trial; if (_hybridSsvepIdentifier != null) { _hybridSsvepIdentifier.IsActive = true; } SelectedButton = null; DisplayText = null; TrialCancelled = false; break; } case MarkerDefinitions.TrialEndMarker: { var hintButton = HintedButton; if (Paradigm.Config.Test.AlwaysCorrectFeedback) { SelectedButton = hintButton; SelectionFeedbackCorrect = true; } HintButton(TrialCancelled ? 1 : 2); var trial = _trial; _trial = null; trial.Cancelled = TrialCancelled; trial.EndTime = CurrentTime; if (_hybridSsvepIdentifier != null) { _hybridSsvepIdentifier.IsActive = false; } if (!trial.Cancelled && ComputeTrialResult(_activedButtons, _hybridSsvepIdentifier == null ? null : (Func <IdentificationResult>)_hybridSsvepIdentifier.Identify, hintButton, out var button, out var correct)) { trial.Correct = correct; if (button != null) { trial.SelectedFrequencyIndex = button.State; trial.SelectedButton = new SsvepButton(button.Key, button.State); } else if (!Paradigm.Config.Test.AlwaysCorrectFeedback) { SystemSounds.Exclamation.Play(); } } CheckStop(); Result.Trials.Add(trial); TrialTrigger?.Reset(); break; } } } }
private void StageProgram_StageChanged(object sender, StageChangedEventArgs e) { /* Get next stage, exit on null (END REACHED) */ if (!e.TryGetStage(out var stage)) { this.DispatcherInvoke(() => Stop()); return; } /* Record marker */ if (stage.Marker != null) { _markable?.Mark(stage.Marker.Value); } this.DispatcherInvoke(() => { /* Update text */ CueTextBlock.Text = stage.Cue; /* Experiment start */ if (stage.Marker == MarkerDefinitions.ExperimentStartMarker) { Container.Visibility = Visibility.Visible; } /* Update stage */ if (stage is MrcpStage mrcpStage) { if (mrcpStage.IsInitialStage) { CueImage.Source = _relaxCueImage; _lineGroups.Clear(); var stepX = PathCanvas.ActualWidth / mrcpStage.TotalTicks; var middleY = PathCanvas.ActualHeight / 2; for (var i = 0; i < mrcpStage.TotalTicks; i++) { _lineGroups.Add(new[] { new Line { X1 = stepX * i, Y1 = middleY, X2 = stepX * (i + 1), Y2 = middleY, Style = _defaultLineStyle } }); } var liftYOffset = -PathCanvas.ActualHeight / 6; var liftY = middleY + liftYOffset; var lineIdx = _liftAtIndex = mrcpStage.LiftAt ?? 0; /* Lifting */ for (var i = 0; i < 4; i++) { var line = _lineGroups[lineIdx++][0]; line.Y1 += i / 4.0 * liftYOffset; line.Y2 += (i + 1) / 4.0 * liftYOffset; } for (var i = 0; i < 3; i++) { var line = _lineGroups[lineIdx++][0]; line.Y1 = line.Y2 = liftY; } /* Insert vertical line */ _putDownAtIndex = lineIdx; var verticalLine = new Line { Y1 = liftY, Y2 = middleY, Style = _defaultLineStyle }; verticalLine.X1 = verticalLine.X2 = _lineGroups[_putDownAtIndex][0].X1; _lineGroups[_putDownAtIndex] = new[] { _lineGroups[_putDownAtIndex][0], verticalLine }; /* Add lines to canvas */ PathCanvas.Children.Clear(); foreach (var lineGroup in _lineGroups) { foreach (var line in lineGroup) { PathCanvas.Children.Add(line); } } } foreach (var line in _lineGroups[mrcpStage.CurrentTick]) { line.Style = _highlightedLineStyle; } if (mrcpStage.CurrentTick == _liftAtIndex) { CueImage.Source = _liftCueImage; } else if (mrcpStage.CurrentTick == _putDownAtIndex) { CueImage.Source = _relaxCueImage; } } /* Set focus */ if (!IsFocused) { Focus(); } }); }
protected override void OnNextStage(StageChangedEventArgs e) { var stage = e.Stage; if (TrialCancelled && stage.Marker != null && stage.Marker == SpellerMarkerDefinitions.SubTrialMarker) { e.Action = StageAction.Skip; return; } DisplayText = stage.Cue?.Trim(); SubtitleText = stage.Subtitle?.Trim(); if (stage.Marker != null) { /* Record marker */ Markable?.Mark(stage.Marker.Value); var sessionTime = Session.SessionTime; /* Handle events */ switch (stage.Marker) { case MarkerDefinitions.ExperimentStartMarker: Result.ExperimentStartTime = sessionTime; ExperimentStarted = true; SpellerController.Start(); HintButton(); break; case MarkerDefinitions.ExperimentEndMarker: Result.ExperimentEndTime = sessionTime; break; case MarkerDefinitions.TrialStartMarker: { var trial = new P300Trial { SubTrials = new List <P300Trial.SubTrial>((int)(Experiment.Config.Test.SubTrialCount + 1)) }; UpdateCursor(GazePointHandler.CurrentPosition); var activedButtons = _activedButtons; if (activedButtons != null) { var buttons = new LinkedList <SpellerExperiment.Result.Button>(); foreach (var activedButton in activedButtons) { if (activedButton != null) { buttons.AddLast(new SpellerExperiment.Result.Button(activedButton.Key)); } } trial.ActivedButtons = buttons; } trial.StartTime = CurrentTime; _trial = trial; if (_p300Detector != null) { _p300Detector.Actived = true; } SelectedButton = null; DisplayText = null; TrialCancelled = false; break; } case MarkerDefinitions.TrialEndMarker: { var hintButton = HintedButton; HintButton(TrialCancelled ? 1 : 2); var trial = _trial; _trial = null; trial.Cancelled = TrialCancelled; trial.EndTime = CurrentTime; if (_p300Detector != null) { _p300Detector.Actived = false; } if (!trial.Cancelled && ComputeTrialResult(_activedButtons, _p300Detector == null ? null : (Func <int>)_p300Detector.Compute, hintButton, out var button, out var correct)) { trial.Correct = correct; if (button == null) { SystemSounds.Exclamation.Play(); } else { trial.SelectedButton = new SpellerExperiment.Result.Button(button.Key); } } CheckStop(); Result.Trials.Add(trial); TrialTrigger?.Reset(); break; } case SpellerMarkerDefinitions.SubTrialMarker: { var activedButtons = _activedButtons; var randomBoolSequences = _randomBoolSequences; if (activedButtons != null) { var flags = new bool[activedButtons.Length]; for (var i = 0; i < activedButtons.Length; i++) { var button = activedButtons[i]; if (button != null) { button.State = (flags[i] = randomBoolSequences[i].Next()) ? 1 : 0; } } _trial.SubTrials.Add(new P300Trial.SubTrial { Timestamp = CurrentTime, Flags = flags }); } break; } } } }
private void StageProgram_StageChanged(object sender, StageChangedEventArgs e) { /* Get next stage, exit on null (END REACHED) */ if (e.IsEndReached) { this.ControlInvoke(self => Stop()); return; } var stage = e.Stage; if (stage.Marker != null) { _markable?.Mark(stage.Marker.Value); switch (e.Stage.Marker) { case MarkerDefinitions.ParadigmStartMarker: _paradigmStarted = true; break; case MarkerDefinitions.ParadigmEndMarker: _paradigmStarted = false; break; case MarkerDefinitions.TrialStartMarker: { var trial = new P300Paradigm.Result.Trial(); _result.Trials.Add(trial); trial.SubTrials = new List <P300Paradigm.Result.Trial.SubTrial>((int)(_paradigm.Config.Test.SubTrialCount + 1)); trial.Timestamp = CurrentTime; _trial = trial; _displayText = null; break; } case MarkerDefinitions.TrialEndMarker: _trial = null; break; case P300Paradigm.SubTrialMarker: var targetActived = false; var flags = new bool[_blocks.Length]; for (var i = 0; i < _blocks.Length; i++) { var block = _blocks[i]; var flag = flags[i] = block.Random.Next(); block.Actived = flag; if (flag && block.Target) { targetActived = true; } } if (targetActived) { _markable?.Mark(P300Paradigm.OddBallEventMarker); } _trial.SubTrials.Add(new P300Paradigm.Result.Trial.SubTrial { Timestamp = CurrentTime, Flags = flags }); break; } } _displayText = stage.Cue; }
private void StageChanged(object sender, StageChangedEventArgs e) { _currentStage = e.Stage; OnPropertyChanged("HasStage"); }
protected override void OnNextStage(StageChangedEventArgs e) { var stage = e.Stage; DisplayText = stage.Cue?.Trim(); SubtitleText = stage.Subtitle?.Trim(); if (stage.Marker != null) { /* Record marker */ Markable?.Mark(stage.Marker.Value); var sessionTime = Session.SessionTime; /* Handle events */ switch (stage.Marker) { case MarkerDefinitions.ParadigmStartMarker: Result.ParadigmStartTime = sessionTime; ParadigmStarted = true; SpellerController.Start(); HintButton(); break; case MarkerDefinitions.ParadigmEndMarker: Result.ParadigmEndTime = sessionTime; break; case MarkerDefinitions.TrialStartMarker: { var trial = new SpellerParadigm.Result.Trial(); var activedButton = _activatedButton = UpdateCursor(GazePointHandler.CurrentPosition); if (activedButton != null) { trial.ActivedButtons = new SpellerParadigm.Result.Button(activedButton.Key).SingletonArray(); } trial.StartTime = CurrentTime; _trial = trial; SelectedButton = null; DisplayText = null; TrialCancelled = false; if (activedButton != null) { _detector.Active(activedButton.BorderRect); } break; } case MarkerDefinitions.TrialEndMarker: { var hintButton = HintedButton; HintButton(TrialCancelled ? 1 : 2); var trial = _trial; var detectorResult = _detector.GetResult(Buttons); _detector.Reset(); _trial = null; trial.Cancelled = TrialCancelled; trial.EndTime = CurrentTime; if (!trial.Cancelled && ComputeTrialResult(Buttons, Functions.Constant(detectorResult), hintButton, out var button, out var correct)) { trial.Correct = correct; if (button != null) { trial.SelectedButton = new SpellerParadigm.Result.Button(button.Key); } else if (!Paradigm.Config.Test.AlwaysCorrectFeedback) { SystemSounds.Exclamation.Play(); } } CheckStop(); Result.Trials.Add(trial); TrialTrigger?.Reset(); break; } } } }