예제 #1
0
        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;
        }
예제 #2
0
 private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
 {
     _settings.UpdateScreenValues();
 }