public void SaveControllers() { foreach (var device in Devices) { var filename = Path.Combine(PresetsDirectory, device.Device.InstanceGuid + ".ini"); var ini = new IniFile { ["CONTROLLER"] = { ["NAME"] = device.DisplayName, ["PRODUCT"] = device.Device.ProductGuid.ToString() } }; foreach (var entry in WheelAxleEntries.Where(x => x.Input?.Device == device)) { ini[entry.Id].Set("AXLE", entry.Input?.Id); } foreach (var entry in WheelButtonEntries.Select(x => x.WheelButton).Where(x => x.Input?.Device == device)) { ini[entry.Id].Set("BUTTON", entry.Input?.Id); } foreach (var entry in WheelHShifterButtonEntries.Where(x => x.Input?.Device == device)) { ini["SHIFTER"].Set(entry.Id, entry.Input?.Id); } ini.Save(filename); } }
internal ControlsSettings() : base("controls", false) { try { KeyboardButtonEntries = WheelButtonEntries.Select(x => x.KeyboardButton).ToArray(); KeyboardSpecificButtonEntries = new[] { new KeyboardSpecificButtonEntry("GAS", ToolsStrings.Controls_Throttle), new KeyboardSpecificButtonEntry("BRAKE", ToolsStrings.Controls_Brakes), new KeyboardSpecificButtonEntry("RIGHT", ToolsStrings.Controls_SteerRight), new KeyboardSpecificButtonEntry("LEFT", ToolsStrings.Controls_SteerLeft) }.Union(WheelGearsButtonEntries.Select(x => x.KeyboardButton)).ToArray(); _keyboardInput = new Dictionary <int, KeyboardInputButton>(); _timer = new DispatcherTimer(DispatcherPriority.Background, Application.Current.Dispatcher) { Interval = OptionUpdatePeriod }; } catch (Exception e) { Logging.Warning("ControlsSettings exception: " + e); } }