コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }