internal static ICaptureState GetCaptureState(CaptureStates captureState) { if (States.TryGetValue(captureState, out ICaptureState state)) { return(state); } switch (captureState) { case CaptureStates.WaitingLock: state = new WaitingLockState(_instance._runPrecaptureSequence, _instance._captureStillPhoto); States[CaptureStates.WaitingLock] = state; break; case CaptureStates.WaitingPrecapture: state = new WaitingPrecaptureState(); States[CaptureStates.WaitingPrecapture] = state; break; case CaptureStates.WaitingNonPrecapture: state = new WaitingNonPrecaptureState(_instance._captureStillPhoto); States[CaptureStates.WaitingNonPrecapture] = state; break; case CaptureStates.PictureTaken: state = new PictureTakenState(); States[CaptureStates.PictureTaken] = state; break; default: throw new ArgumentOutOfRangeException(nameof(captureState), captureState, null); } return(state); }
private void SetAutoCapture(bool isAuto, CaptureStates State) { this.AutoCaptureFrequencySlider.IsEnabled = isAuto; CaptureStage StateHolder = CaptureStage.Instance; StateHolder.State = State; }
private void OnCameraStateChanged(object sender, CaptureStateChangedEventArgs e) { if (!this.Dispatcher.CheckAccess()) { this.Dispatcher.Invoke(() => { OnCameraStateChanged(sender, e); }); } else { _butStart.IsEnabled = e.NewState == CaptureStates.Ready || e.NewState == CaptureStates.Paused; _butPause.IsEnabled = e.NewState == CaptureStates.Running; _butStop.IsEnabled = e.NewState == CaptureStates.Running; if (e.NewState == CaptureStates.Terminated) { Camera = null; } _state = e.NewState; } }