public void ClearAllBindings(PZ69DialPosition pz69DialPosition, RadioPanelPZ69KeyOnOff radioPanelPZ69KnobOnOff) { //This must accept lists foreach (var keyBinding in _keyBindings) { if (keyBinding.DialPosition == pz69DialPosition && keyBinding.RadioPanelPZ69Key == radioPanelPZ69KnobOnOff.RadioPanelPZ69Key && keyBinding.WhenTurnedOn == radioPanelPZ69KnobOnOff.ButtonState) { keyBinding.OSKeyPress = null; } } IsDirtyMethod(); }
internal void ImportSettings(string settings) { if (string.IsNullOrEmpty(settings)) { throw new ArgumentException("Import string empty. (DCSBIOSBindingPZ69)"); } if (settings.StartsWith("RadioPanelDCSBIOSLCD{") && settings.Contains("DCSBiosOutput{")) { //RadioPanelDCSBIOSLCD{COM1}\o/{LowerLCD}\o/DCSBiosOutput{ANT_EGIHQTOD|Equals|0} var parameters = settings.Split(new[] { Constants.SEPARATOR_SYMBOL }, StringSplitOptions.RemoveEmptyEntries); //[0] //RadioPanelDCSBIOSLCD{COM1} var param0 = parameters[0].Replace("RadioPanelDCSBIOSLCD{", "").Replace("}", ""); _pz69DialPosition = (PZ69DialPosition)Enum.Parse(typeof(PZ69DialPosition), param0); //[1] //{LowerLCD} var param1 = parameters[1].Replace("{", "").Replace("}", "").Trim(); _pz69LCDPosition = (PZ69LCDPosition)Enum.Parse(typeof(PZ69LCDPosition), param1); //[2] //DCSBiosOutput{ANT_EGIHQTOD|Equals|0} _dcsbiosOutput = new DCSBIOSOutput(); _dcsbiosOutput.ImportString(parameters[2]); } if (settings.StartsWith("RadioPanelDCSBIOSLCD{") && settings.Contains("DCSBiosOutputFormula{")) { //RadioPanelDCSBIOSLCD{COM1}\o/{UpperLCD}\o/DCSBiosOutputFormula{ANT_EGIHQTOD+10} var parameters = settings.Split(new[] { Constants.SEPARATOR_SYMBOL }, StringSplitOptions.RemoveEmptyEntries); //[0] //MultiPanelDCSBIOSFormulaLCD{COM1} var param0 = parameters[0].Replace("RadioPanelDCSBIOSLCD{", "").Replace("}", "").Trim(); _pz69DialPosition = (PZ69DialPosition)Enum.Parse(typeof(PZ69DialPosition), param0); //[1] //{UpperLCD} var param1 = parameters[1].Replace("{", "").Replace("}", "").Trim(); _pz69LCDPosition = (PZ69LCDPosition)Enum.Parse(typeof(PZ69LCDPosition), param1); //[2] //DCSBiosOutputFormula{ANT_EGIHQTOD+10} _dcsbiosOutputFormula = new DCSBIOSOutputFormula(); _dcsbiosOutputFormula.ImportString(parameters[2]); } }
internal override void ImportSettings(string settings) { if (string.IsNullOrEmpty(settings)) { throw new ArgumentException("Import string empty. (DCSBIOSBindingPZ69)"); } if (settings.StartsWith("RadioPanelDCSBIOSControl{")) { // RadioPanelDCSBIOSControl{COM1}\\o/{1UpperSmallFreqWheelInc|DCS-BIOS}\\o/\\o/DCSBIOSInput{AAP_CDUPWR|SET_STATE|1|0}\\o/\\\\?\\hid#vid_06a3&pid_0d06#9&244b4bcc&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\\o/PanelSettingsVersion=2X" var parameters = settings.Split(new[] { SaitekConstants.SEPARATOR_SYMBOL }, StringSplitOptions.RemoveEmptyEntries); // RadioPanelDCSBIOSControl{COM1} var param0 = parameters[0].Replace("RadioPanelDCSBIOSControl{", string.Empty).Replace("}", string.Empty); _pz69DialPosition = (PZ69DialPosition) Enum.Parse(typeof(PZ69DialPosition), param0); var param1 = parameters[1].Replace("{", string.Empty).Replace("}", string.Empty); WhenTurnedOn = (param1.Substring(0, 1) == "1"); if (param1.Contains("|")) { param1 = param1.Substring(1); var stringArray = param1.Split(new[] {"|"}, StringSplitOptions.RemoveEmptyEntries); _panelPZ69Knob = (RadioPanelPZ69KnobsEmulator) Enum.Parse(typeof(RadioPanelPZ69KnobsEmulator), stringArray[0]); Description = stringArray[1]; } else { param1 = param1.Substring(1); _panelPZ69Knob = (RadioPanelPZ69KnobsEmulator) Enum.Parse(typeof(RadioPanelPZ69KnobsEmulator), param1); } // The rest of the array besides last entry are DCSBIOSInput // DCSBIOSInput{AAP_EGIPWR|FIXED_STEP|INC} DCSBIOSInputs = new List<DCSBIOSInput>(); for (var i = 0; i < parameters.Length; i++) { if (parameters[i].StartsWith("DCSBIOSInput{")) { var dcsbiosInput = new DCSBIOSInput(); dcsbiosInput.ImportString(parameters[i]); DCSBIOSInputs.Add(dcsbiosInput); } } } }
internal override void ImportSettings(string settings) { if (string.IsNullOrEmpty(settings)) { throw new ArgumentException("Import string empty. (KeyBinding)"); } if (settings.StartsWith("RadioPanelKeyDialPos{")) { var parameters = settings.Split(new[] { Constants.SEPARATOR_SYMBOL }, StringSplitOptions.RemoveEmptyEntries); var param0 = parameters[0].Replace("RadioPanelKeyDialPos{", "").Replace("}", ""); _pz69DialPosition = (PZ69DialPosition)Enum.Parse(typeof(PZ69DialPosition), param0); var param1 = parameters[1].Replace("{", "").Replace("}", ""); WhenTurnedOn = param1.Substring(0, 1) == "1"; param1 = param1.Substring(1); _panelPZ69Knob = (RadioPanelPZ69KnobsEmulator)Enum.Parse(typeof(RadioPanelPZ69KnobsEmulator), param1); OSKeyPress = new KeyPress(); OSKeyPress.ImportString(parameters[2]); } }
internal override void ImportSettings(string settings) { if (string.IsNullOrEmpty(settings)) { throw new ArgumentException("Import string empty. (KeyBinding)"); } if (settings.StartsWith("RadioPanelOSPZ69Full{")) { var parameters = settings.Split(new[] { SeparatorChars }, StringSplitOptions.RemoveEmptyEntries); var param0 = parameters[0].Replace("RadioPanelOSPZ69Full{", "").Replace("}", ""); _pz69DialPosition = (PZ69DialPosition)Enum.Parse(typeof(PZ69DialPosition), param0); var param1 = parameters[1].Replace("{", "").Replace("}", ""); WhenTurnedOn = param1.Substring(0, 1) == "1"; param1 = param1.Substring(1); _panelPZ69Knob = (RadioPanelPZ69KnobsEmulator)Enum.Parse(typeof(RadioPanelPZ69KnobsEmulator), param1); //OSCommand{FILE\o/ARGUMENTS\o/NAME} OSCommandObject = new OSCommand(); OSCommandObject.ImportString(parameters[2]); } }
private void PZ69KnobChanged(IEnumerable <object> hashSet) { if (ForwardPanelEvent) { foreach (var radioPanelKeyObject in hashSet) { //Looks which switches has been switched and sees whether any key emulation has been tied to them. var radioPanelKey = (RadioPanelPZ69KnobEmulator)radioPanelKeyObject; if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerLargeFreqWheelInc || radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerLargeFreqWheelDec || radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerSmallFreqWheelInc || radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerSmallFreqWheelDec || radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperLargeFreqWheelInc || radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperLargeFreqWheelDec || radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperSmallFreqWheelInc || radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperSmallFreqWheelDec) { if (SkipCurrentFrequencyChange()) { return; } } if (radioPanelKey.IsOn) { if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperCOM1) { _pz69UpperDialPosition = PZ69DialPosition.UpperCOM1; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperCOM2) { _pz69UpperDialPosition = PZ69DialPosition.UpperCOM2; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperNAV1) { _pz69UpperDialPosition = PZ69DialPosition.UpperNAV1; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperNAV2) { _pz69UpperDialPosition = PZ69DialPosition.UpperNAV2; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperADF) { _pz69UpperDialPosition = PZ69DialPosition.UpperADF; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperDME) { _pz69UpperDialPosition = PZ69DialPosition.UpperDME; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.UpperXPDR) { _pz69UpperDialPosition = PZ69DialPosition.UpperXPDR; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerCOM1) { _pz69LowerDialPosition = PZ69DialPosition.LowerCOM1; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerCOM2) { _pz69LowerDialPosition = PZ69DialPosition.LowerCOM2; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerNAV1) { _pz69LowerDialPosition = PZ69DialPosition.LowerNAV1; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerNAV2) { _pz69LowerDialPosition = PZ69DialPosition.LowerNAV2; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerADF) { _pz69LowerDialPosition = PZ69DialPosition.LowerADF; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerDME) { _pz69LowerDialPosition = PZ69DialPosition.LowerDME; } else if (radioPanelKey.RadioPanelPZ69Knob == RadioPanelPZ69KnobsEmulator.LowerXPDR) { _pz69LowerDialPosition = PZ69DialPosition.LowerXPDR; } } foreach (var keyBinding in _keyBindings) { if (keyBinding.DialPosition == _pz69UpperDialPosition || keyBinding.DialPosition == _pz69LowerDialPosition) { if (keyBinding.OSKeyPress != null && keyBinding.RadioPanelPZ69Key == radioPanelKey.RadioPanelPZ69Knob && keyBinding.WhenTurnedOn == radioPanelKey.IsOn) { keyBinding.OSKeyPress.Execute(); break; } } } foreach (var bipLinkPZ55 in _bipLinks) { //if (bipLinkPZ55.DialPosition == _pz69UpperDialPosition || keyBinding.DialPosition == _pz69LowerDialPosition) //{ if (bipLinkPZ55.BIPLights.Count > 0 && bipLinkPZ55.RadioPanelPZ69Knob == radioPanelKey.RadioPanelPZ69Knob && bipLinkPZ55.WhenTurnedOn == radioPanelKey.IsOn) { bipLinkPZ55.Execute(); break; } //} } foreach (var dcsBiosBinding in _dcsBiosBindings) { if (dcsBiosBinding.DialPosition == _pz69UpperDialPosition || dcsBiosBinding.DialPosition == _pz69LowerDialPosition) { if (dcsBiosBinding.DCSBIOSInputs.Count > 0 && dcsBiosBinding.RadioPanelPZ69Knob == radioPanelKey.RadioPanelPZ69Knob && dcsBiosBinding.WhenTurnedOn == radioPanelKey.IsOn) { dcsBiosBinding.SendDCSBIOSCommands(); break; } } } } } foreach (var radioPanelKeyObject in hashSet) { //Looks which switches has been switched and sees whether any key emulation has been tied to them. var radioPanelKey = (RadioPanelPZ69KnobEmulator)radioPanelKeyObject; if (radioPanelKey.IsOn) { if (_panelPZ69DialModesUpper.Contains(radioPanelKey.RadioPanelPZ69Knob)) { _upperActive = -1; _upperStandby = -1; } if (_panelPZ69DialModesLower.Contains(radioPanelKey.RadioPanelPZ69Knob)) { _lowerActive = -1; _lowerStandby = -1; } foreach (var displayValue in _displayValues) { if (displayValue.RadioPanelPZ69Knob == radioPanelKey.RadioPanelPZ69Knob) { if (displayValue.RadioPanelDisplay == RadioPanelPZ69Display.UpperActive) { _upperActive = double.Parse(displayValue.Value, Common.GetPZ69FullDisplayNumberFormat()); } else if (displayValue.RadioPanelDisplay == RadioPanelPZ69Display.UpperStandby) { _upperStandby = double.Parse(displayValue.Value, Common.GetPZ69FullDisplayNumberFormat()); } else if (displayValue.RadioPanelDisplay == RadioPanelPZ69Display.LowerActive) { _lowerActive = double.Parse(displayValue.Value, Common.GetPZ69FullDisplayNumberFormat()); } else if (displayValue.RadioPanelDisplay == RadioPanelPZ69Display.LowerStandby) { _lowerStandby = double.Parse(displayValue.Value, Common.GetPZ69FullDisplayNumberFormat()); } } } Interlocked.Add(ref _doUpdatePanelLCD, 1); ShowFrequenciesOnPanel(); } } }