public PlayerStateController(IFrameDisplay frameDisplay)
        {
            _source = new VideoSource();

            CurrentState         = InitialState = new InitialState(this, _source, frameDisplay);
            StoppedState         = new StoppedState(this, _source, frameDisplay);
            PlayingState         = new PlayingState(this, _source, frameDisplay);
            PausedState          = new PausedState(this, _source, frameDisplay);
            ReccordingState      = new ReccordingState(this, _source, frameDisplay);
            PauseReccordingState = new PauseReccordingState(this, _source, frameDisplay);
            RewindingState       = new RewindingState(this, _source, frameDisplay);
            ForwardingState      = new ForwardingState(this, _source, frameDisplay);
        }
        public void Dispose()
        {
            if (FileOpen)
            {
                CurrentState.Close();
            }

            InitialState.Dispose();
            StoppedState.Dispose();
            PlayingState.Dispose();
            PausedState.Dispose();
            PauseReccordingState.Dispose();
            RewindingState.Dispose();
            ForwardingState.Dispose();
            ReccordingState.Dispose();
        }