示例#1
0
        private void ChangeState(GameLauncherState state)
        {
            if (state == GameLauncherState.Idle && _closeOnIdle)
            {
                Close();
                return;
            }

            Icon   icon;
            bool   settingsEnabled;
            string startText;
            Image  startImage;

            switch (state)
            {
            case GameLauncherState.Idle:
                icon            = Properties.Resources.hl2_blue;
                settingsEnabled = true;
                startText       = "Start recording";
                startImage      = Properties.Resources.film_star;
                break;

            case GameLauncherState.Recording:
                icon            = Properties.Resources.hl2_red;
                settingsEnabled = false;
                startText       = "Stop recording";
                startImage      = Properties.Resources.film_stop;
                break;

            case GameLauncherState.GameStarted:
                icon            = Properties.Resources.hl2_blue;
                settingsEnabled = true;
                startText       = "Resume recording";
                startImage      = Properties.Resources.film_start;
                break;

            case GameLauncherState.GameStartedAndRecording:
                icon            = Properties.Resources.hl2_red;
                settingsEnabled = false;
                startText       = "Pause recording";
                startImage      = Properties.Resources.film_stop;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(state), state, null);
            }

            Icon                                        = icon;
            _notifyIcon.Icon                            = icon;
            _gameSettingsButton.Enabled                 = settingsEnabled;
            _gameSettingsToolStripMenuItem.Enabled      = settingsEnabled;
            _recordingSettingsButton.Enabled            = settingsEnabled;
            _recordingSettingsToolStripMenuItem.Enabled = settingsEnabled;
            _startButton.Text                           = startText;
            _startToolStripMenuItem.Text                = startText;
            _startButton.Image                          = startImage;
            _startToolStripMenuItem.Image               = startImage;
        }
示例#2
0
        public GameLauncher(ApplicationSettings settings, ISynchronizeInvoke synchronizingObject)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (synchronizingObject == null)
            {
                throw new ArgumentNullException(nameof(synchronizingObject));
            }

            _settings = settings;
            _recorder = new TgaSequenceRecorder {
                SynchronizingObject = synchronizingObject
            };
            _process = new Process {
                EnableRaisingEvents = true, SynchronizingObject = synchronizingObject
            };
            _process.Exited += ProcessExited;

            _lastActiveCustom = null;
            _state            = GameLauncherState.Idle;
        }