public MainWindow() { InitializeComponent(); // READ SETTINGS _settings = new ControllerSettings(); _settings.UpdateScreenValues(); SetCurrentSettings(); TouchInjector.InitializeTouchInjection(); _inputSimulator = new InputSimulator(); _gameController = new GameController(new Controller(UserIndex.One), _settings, _inputSimulator); if (_gameController.IsConnected()) { double msPerSecond = 1000; var msPerFrameRefresh = msPerSecond / _settings.refresh_rate; var timer = Observable.Interval(TimeSpan.FromMilliseconds(msPerFrameRefresh)); timer // .DoWhile(_gameController.IsConnected) .Subscribe(_ => { if (_gameController.IsConnected()) { _gameController.Poll(); } }); } else { MessageBox.Show("No controller detected, closing..."); Close(); } // CompositionTarget.Rendering += _gameController.CompositionTarget_Rendering; SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged; }
private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e) { _settings.UpdateScreenValues(); }