public GamepadConfiguration(uint gamepadId, string mappingJsonRepresentation, HidDeviceRepresentation hidDevice) { GamepadId = gamepadId; HidDevice = hidDevice; var loadedMapping = JsonConvert.DeserializeObject<GamepadMapping>(mappingJsonRepresentation); Mapping = loadedMapping; }
public GamepadConfiguration(uint gamepadId, string mappingJsonRepresentation, HidDeviceRepresentation hidDevice) { GamepadId = gamepadId; HidDevice = hidDevice; var loadedMapping = JsonConvert.DeserializeObject <GamepadMapping>(mappingJsonRepresentation); Mapping = loadedMapping; }
private static async Task SaveConfigurationToFile(GamepadMapping configuration, string filename) { var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); using (var outputFile = new StreamWriter(desktopPath + $"\\{filename}.mfimapping")) { await outputFile.WriteAsync(JsonConvert.SerializeObject(configuration, Formatting.Indented)); } }
private void BindMappingToUi(GamepadMapping mapping) { ListViewMappingItems = new ReactiveCollection<ListViewItem>(); foreach (var mappingItem in mapping.MappingItems) { var item = new ListViewItem { Content = mappingItem, ContentTemplate = DataTemplateForMappingType(mappingItem.Type) }; ListViewMappingItems.Add(item); } MappingItemsListView.ItemsSource = ListViewMappingItems; MappingItemsListView.AlternationCount = ListViewMappingItems.Count + 1; VirtualKeysListViewMappingItems = new ReactiveCollection<ListViewItem>(); foreach (var virtualKeyMappingItem in mapping.VirtualKeysItems) { var item = new ListViewItem { Content = virtualKeyMappingItem, ContentTemplate = (DataTemplate) FindResource("VirtualKeysItemTemplate") }; VirtualKeysListViewMappingItems.Add(item); } VirtualKeysItemsListView.ItemsSource = VirtualKeysListViewMappingItems; SaveButton.IsEnabled = true; AddNewItemButton.IsEnabled = true; AddNewVirtualKeyButton.IsEnabled = true; }
private void NewButton_Click(object sender, RoutedEventArgs e) { var newMapping = new GamepadMapping(new List<GamepadMappingItem>(), new List<VirtualKeyMappingItem>()); SaveButton_Click(null, null); BindMappingToUi(newMapping); }
private async void SaveButton_Click(object sender, RoutedEventArgs e) { var saveFileDialog = new SaveFileDialog { Filter = "MFI Mapping (*.mfimapping)|*.mfimapping" }; if (saveFileDialog.ShowDialog() == true) { using (var outputFile = new StreamWriter(saveFileDialog.FileName)) { URLLabel.Content = saveFileDialog.FileName; var mappingItems = MappingItemsListView.Items.SourceCollection.Cast<ListViewItem>().Select(item => item.Content as GamepadMappingItem).ToList(); var virtualKeysMappingItems = VirtualKeysItemsListView.Items.SourceCollection.Cast<ListViewItem>().Select(item => item.Content as VirtualKeyMappingItem).ToList(); var newMapping = new GamepadMapping(mappingItems, virtualKeysMappingItems); await outputFile.WriteAsync(JsonConvert.SerializeObject(newMapping, Formatting.Indented)); } } }