private void AddNewMappingItem_Click(object sender, RoutedEventArgs e) { var newMappingItem = new GamepadMappingItem { Type = GamepadMappingItemType.Empty, ConvertAxis = false, InvertAxis = false }; var newListViewItem = new ListViewItem { Content = newMappingItem, ContentTemplate = DataTemplateForMappingType(newMappingItem.Type) }; ListViewMappingItems.Add(newListViewItem); MappingItemsListView.AlternationCount = ListViewMappingItems.Count + 1; }
private void UpdateAxis(double itemValue, GamepadMappingItem configForCurrentItem) { var value = NormalizeAxis(itemValue, configForCurrentItem.ConvertAxis ?? false); if (configForCurrentItem.InvertAxis ?? false) { value = InvertNormalizedAxis(value); } var axisSetStatus = NtStatus.Success; switch (configForCurrentItem.AxisType) { case AxisType.Rx: axisSetStatus = _vGenWrapper.vbox_SetAxisRx(_config.GamepadId, (short) (value*short.MaxValue)); break; case AxisType.Ry: axisSetStatus = _vGenWrapper.vbox_SetAxisRy(_config.GamepadId, (short) (value*short.MaxValue)); break; case AxisType.Lx: axisSetStatus = _vGenWrapper.vbox_SetAxisLx(_config.GamepadId, (short) (value*short.MaxValue)); break; case AxisType.Ly: axisSetStatus = _vGenWrapper.vbox_SetAxisLy(_config.GamepadId, (short) (value*short.MaxValue)); break; case AxisType.LTrigger: axisSetStatus = _vGenWrapper.vbox_SetTriggerL(_config.GamepadId, (byte) (value*byte.MaxValue)); break; case AxisType.RTrigger: axisSetStatus = _vGenWrapper.vbox_SetTriggerR(_config.GamepadId, (byte) (value*byte.MaxValue)); break; } if (axisSetStatus != NtStatus.Success) { Log($"Failed to set axis {configForCurrentItem.AxisType} (${axisSetStatus}). Gamepad {_config.GamepadId}"); } }