Beispiel #1
0
        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);
        }
Beispiel #2
0
        private void SetAutoCapture(bool isAuto, CaptureStates State)
        {
            this.AutoCaptureFrequencySlider.IsEnabled = isAuto;
            CaptureStage StateHolder = CaptureStage.Instance;

            StateHolder.State = State;
        }
Beispiel #3
0
 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;
     }
 }