Example #1
0
        public VideoState(string name, FrameOverlayManager mainWindow, string video, State parent, ITransitionStyle transition, IMediaPlayer player)
            : base(name, mainWindow.Manager, DefaultBG)
        {
            mPlayer = player;
            mMainWindow = mainWindow;
            mVideo = Path.GetFullPath(video);
            mPlayer.PlaybackFinished += mPlayer_VideoFinished;

            mTrigger = new SimpleTrigger();
            AddTransition(new StateTransition(Manager, this, parent, mTrigger, transition));
        }
        /// <summary>
        /// Start the transition transition one state to another.
        /// </summary>
        /// <param name="transition">The transition to begin.</param>
        public void BeginTransition(StateTransition transition)
        {
            if (Transitioning)
                throw new InvalidOperationException("Unable to start transition transition " + transition.From.Name
                     + " to " + transition.To.Name + ". There is already a transition in progress.");

            lock (this) {
                mCurrentState = null;
                mCurrentTransition = transition;
                transition.Finished += mTransitionCompleteListener;
            }
            if (TransitionStarting != null)
                TransitionStarting(transition);
            transition.Begin();
        }
        /// <summary>
        /// Add a state to the manager.
        /// </summary>
        public void AddState(State state)
        {
            state.Init();

            if (!mStates.ContainsKey(state.Name))
                mStates.Add(state.Name, state);
            if (StateAdded != null)
                StateAdded(state);
        }
Example #4
0
 private void OnStart()
 {
     mState = Plugins.State.Running;
     mRoute.Clear();
     mRoute.Add(mPrev);
     mStart = DateTime.Now;
     mCore.Tick += mTickListener;
     mPrep = false;
     if (StateChanged != null)
         StateChanged();
 }
Example #5
0
 private void OnFinish()
 {
     mCore.Tick -= mTickListener;
     mFinish = DateTime.Now;
     mState = Plugins.State.Finished;
     if (StateChanged != null)
         StateChanged();
     if (TimeChanged != null)
         TimeChanged();
 }
 public TickStatistics this[State state]
 {
     get { return mStatistics[state.Name]; }
 }
        private void StateActivated(State state)
        {
            if (mCurrentStats != null)
                mCurrentStats.End();

            mCurrentStats = mStatistics[state.Name];
            mCurrentStats.Begin();
        }