public override void ImportSettings(List <string> settings) { //Clear current bindings ClearSettings(); if (settings == null || settings.Count == 0) { return; } foreach (var setting in settings) { if (!setting.StartsWith("#") && setting.Length > 2 && setting.Contains(InstanceId)) { if (setting.StartsWith("RadioPanelKeyDialPos{")) { var keyBinding = new KeyBindingPZ69DialPosition(); keyBinding.ImportSettings(setting); _keyBindings.Add(keyBinding); } else if (setting.StartsWith("PZ69DisplayValue{")) { var radioPanelPZ69DisplayValue = new RadioPanelPZ69DisplayValue(); radioPanelPZ69DisplayValue.ImportSettings(setting); _displayValues.Add(radioPanelPZ69DisplayValue); } else if (setting.StartsWith("RadioPanelBIPLink{")) { var bipLinkPZ69 = new BIPLinkPZ69(); bipLinkPZ69.ImportSettings(setting); _bipLinks.Add(bipLinkPZ69); } else if (setting.StartsWith("RadioPanelDCSBIOSLCD{")) { var dcsbiosBindingLCDPZ69 = new DCSBIOSBindingLCDPZ69(); dcsbiosBindingLCDPZ69.ImportSettings(setting); _dcsBiosLcdBindings.Add(dcsbiosBindingLCDPZ69); } else if (setting.StartsWith("RadioPanelDCSBIOSControl{")) { var dcsbiosBindingPZ69 = new DCSBIOSBindingPZ69(); dcsbiosBindingPZ69.ImportSettings(setting); _dcsBiosBindings.Add(dcsbiosBindingPZ69); } } } OnSettingsApplied(); }
public void AddOrUpdateSequencedKeyBinding(string information, RadioPanelPZ69KnobsEmulator radioPanelPZ69Knob, SortedList <int, KeyPressInfo> sortedList, bool whenTurnedOn) { var pz69DialPosition = GetDial(radioPanelPZ69Knob); if (sortedList.Count == 0) { RemoveRadioPanelKnobFromList(ControlListPZ69.KEYS, radioPanelPZ69Knob, whenTurnedOn); IsDirtyMethod(); return; } //This must accept lists var found = false; foreach (var keyBinding in _keyBindings) { if (keyBinding.RadioPanelPZ69Key == radioPanelPZ69Knob && keyBinding.WhenTurnedOn == whenTurnedOn && keyBinding.DialPosition == pz69DialPosition) { if (sortedList.Count == 0) { keyBinding.OSKeyPress = null; } else { keyBinding.OSKeyPress = new OSKeyPress(information, sortedList); keyBinding.WhenTurnedOn = whenTurnedOn; } found = true; break; } } if (!found && sortedList.Count > 0) { var keyBinding = new KeyBindingPZ69DialPosition(); keyBinding.RadioPanelPZ69Key = radioPanelPZ69Knob; keyBinding.DialPosition = pz69DialPosition; keyBinding.OSKeyPress = new OSKeyPress(information, sortedList); keyBinding.WhenTurnedOn = whenTurnedOn; _keyBindings.Add(keyBinding); } IsDirtyMethod(); }
public void AddOrUpdateSingleKeyBinding(RadioPanelPZ69KnobsEmulator radioPanelPZ69Knob, string keys, KeyPressLength keyPressLength, bool whenTurnedOn) { var pz69DialPosition = GetDial(radioPanelPZ69Knob); if (string.IsNullOrEmpty(keys)) { var tmp = new RadioPanelPZ69KeyOnOff(radioPanelPZ69Knob, whenTurnedOn); ClearAllBindings(pz69DialPosition, tmp); return; } var found = false; foreach (var keyBinding in _keyBindings) { if (keyBinding.RadioPanelPZ69Key == radioPanelPZ69Knob && keyBinding.WhenTurnedOn == whenTurnedOn && keyBinding.DialPosition == pz69DialPosition) { if (string.IsNullOrEmpty(keys)) { keyBinding.OSKeyPress = null; } else { keyBinding.OSKeyPress = new OSKeyPress(keys, keyPressLength); keyBinding.WhenTurnedOn = whenTurnedOn; } found = true; } } if (!found && !string.IsNullOrEmpty(keys)) { var keyBinding = new KeyBindingPZ69DialPosition(); keyBinding.RadioPanelPZ69Key = radioPanelPZ69Knob; keyBinding.DialPosition = pz69DialPosition; keyBinding.OSKeyPress = new OSKeyPress(keys, keyPressLength); keyBinding.WhenTurnedOn = whenTurnedOn; _keyBindings.Add(keyBinding); } Common.DebugP("RadioPanelPZ69FullEmulator _keyBindings : " + _keyBindings.Count); IsDirtyMethod(); }