public void Load(IModuleContext context) { var settingsManager = context.ServiceLocator.GetInstance<ISettingsManager>(); settingsManager.RegisterSettings<KeyboardBindingSettings>(); settingsManager.RegisterSettings<GamepadBindingSettings>(); settingsManager.RegisterSettings<InputSettings>(); SetDefaults(settingsManager); InputManager inputManager = new InputManager(); context.InputSourceAssembler.ConfigureInputSource((c) => { var settings = settingsManager.LoadSettings<InputSettings>(c); if (settings.IsUserInputEnabled) { var bindings = settingsManager.LoadSettings<KeyboardBindingSettings>(c); KeyboardInputSource keyboard = new KeyboardInputSource(inputManager.GetKeyboard(), bindings); return keyboard; } return null; }); context.InputSourceAssembler.ConfigureInputSource((c) => { var settings = settingsManager.LoadSettings<InputSettings>(c); if (settings.IsUserInputEnabled) { CompositeInputSource cis = new CompositeInputSource(); for (Int32 i = 0; i < inputManager.GetJoystickCount(); i++) { var bindings = settingsManager.LoadSettings<GamepadBindingSettings>(c); if (i == 0) { GamepadInputSource gamepad = new GamepadInputSource(inputManager.GetJoystick(i), bindings.Gamepad1Bindings); cis.AddInputSource(gamepad); } else if (i == 1) { GamepadInputSource gamepad = new GamepadInputSource(inputManager.GetJoystick(i), bindings.Gamepad2Bindings); cis.AddInputSource(gamepad); } } return cis; } return null; }); }
public SmsInputViewModel(ISettingsManager settingsManager, InputManager inputManager) { _settingsManager = settingsManager; _keyboardSettings = _settingsManager.LoadSettings<KeyboardBindingSettings>(new EmulationContext(new Game(String.Empty, String.Empty), new EmulatedSystem("SMS"))); _gamepadSettings = _settingsManager.LoadSettings<GamepadBindingSettings>(new EmulationContext(new Game(String.Empty, String.Empty), new EmulatedSystem("SMS"))); _newKeyboardBindings = new List<KeyboardBindingSettings.KeyBinding>(_keyboardSettings.Bindings); _newGamepad1BindingSettings = new List<GamepadBindingSettings.GamepadBinding>(_gamepadSettings.Gamepad1Bindings); _newGamepad2BindingSettings = new List<GamepadBindingSettings.GamepadBinding>(_gamepadSettings.Gamepad2Bindings); UpdateStrings(); }