public SwitchProControl() { InitializeComponent(); _calLeftJoystick = new NintrollerLib.Joystick(); _calRightJoystick = new NintrollerLib.Joystick(); leftXCalibration = new AxisCalibration(0, 65535, 32767, 2048); leftYCalibration = new AxisCalibration(0, 65535, 32767, 2048); rightXCalibration = new AxisCalibration(0, 65535, 32767, 2048); rightYCalibration = new AxisCalibration(0, 65535, 32767, 2048); }
protected override void CalibrateInput(string inputName) { _leftCalibration = inputName == "swpL"; string targetCalibration = _leftCalibration ? App.CAL_SWP_LJOYSTICK : App.CAL_SWP_RJOYSTICK; NintrollerLib.Joystick nonCalibrated = new NintrollerLib.Joystick { minX = 0, minY = 0, maxX = 65535, maxY = 65535, centerX = 32767, centerY = 32767 }; NintrollerLib.Joystick curCalibration = new NintrollerLib.Joystick { minX = _leftCalibration ? leftXCalibration.min : rightXCalibration.min, minY = _leftCalibration ? leftYCalibration.min : rightYCalibration.min, maxX = _leftCalibration ? leftXCalibration.max : rightXCalibration.max, maxY = _leftCalibration ? leftYCalibration.max : rightYCalibration.max, centerX = _leftCalibration ? leftXCalibration.center : rightXCalibration.center, centerY = _leftCalibration ? leftYCalibration.center : rightYCalibration.center, deadXn = _leftCalibration ? leftXCalibration.deadNeg : rightXCalibration.deadNeg, deadXp = _leftCalibration ? leftXCalibration.deadPos : rightXCalibration.deadPos, deadYn = _leftCalibration ? leftYCalibration.deadNeg : rightYCalibration.deadNeg, deadYp = _leftCalibration ? leftYCalibration.deadPos : rightYCalibration.deadPos }; Windows.JoyCalibrationWindow joyCal = new Windows.JoyCalibrationWindow(nonCalibrated, curCalibration); _openJoyWindow = joyCal; joyCal.ShowDialog(); if (joyCal.Apply) { OnJoystickCalibrated?.Invoke(joyCal.Calibration, targetCalibration, joyCal.FileName); } _openJoyWindow = null; }
protected void CalibrateJoystick_Click(object sender, RoutedEventArgs e) { _leftCalibration = (sender as FrameworkElement).Tag.ToString() == "swpL"; string targetCalibration = _leftCalibration ? App.CAL_SWP_LJOYSTICK : App.CAL_SWP_RJOYSTICK; NintrollerLib.Joystick nonCalibrated = new NintrollerLib.Joystick { minX = 0, minY = 0, maxX = 65535, maxY = 65535, centerX = 32767, centerY = 32767 }; NintrollerLib.Joystick curCalibration = new NintrollerLib.Joystick { minX = _leftCalibration ? leftXCalibration.min : rightXCalibration.min, minY = _leftCalibration ? leftYCalibration.min : rightYCalibration.min, maxX = _leftCalibration ? leftXCalibration.max : rightXCalibration.max, maxY = _leftCalibration ? leftYCalibration.max : rightYCalibration.max, centerX = _leftCalibration ? leftXCalibration.center : rightXCalibration.center, centerY = _leftCalibration ? leftYCalibration.center : rightYCalibration.center, deadXn = _leftCalibration ? leftXCalibration.deadNeg : rightXCalibration.deadNeg, deadXp = _leftCalibration ? leftXCalibration.deadPos : rightXCalibration.deadPos, deadYn = _leftCalibration ? leftYCalibration.deadNeg : rightYCalibration.deadNeg, deadYp = _leftCalibration ? leftYCalibration.deadPos : rightYCalibration.deadPos }; Windows.JoyCalibrationWindow joyCal = new Windows.JoyCalibrationWindow(nonCalibrated, curCalibration); _openJoyWindow = joyCal; joyCal.ShowDialog(); if (joyCal.Apply) { OnJoystickCalibrated?.Invoke(joyCal.Calibration, targetCalibration, joyCal.FileName); } _openJoyWindow = null; }