private CutLists GetCutMatches() { var items = _cutResultsListView.SelectedItems; if (items.Count == 0) { return(null); } uint currentFileIndex = uint.MaxValue; var fileCuts = new FileCuts(); var result = new CutLists(); foreach (var item in items) { var listViewItem = item as ListViewItem; if (listViewItem == null) { continue; } var displayInfo = listViewItem.Content as SearchResultCutDisplayInfo; if (displayInfo == null) { continue; } var match = displayInfo.Match; if (match.DemoInputIndex >= (uint)_resultDemos.Count) { continue; } if (currentFileIndex != match.DemoInputIndex) { if (fileCuts.Cuts.Count > 0) { fileCuts.FilePath = _resultDemos[(int)currentFileIndex].FilePath; result.FileCuts.Add(fileCuts); fileCuts = new FileCuts(); } } var cut = new UDT_DLL.Cut(); cut.GameStateIndex = (int)match.GameStateIndex; cut.StartTimeMs = match.StartTimeMs; cut.EndTimeMs = match.EndTimeMs; fileCuts.Cuts.Add(cut); currentFileIndex = match.DemoInputIndex; } if (fileCuts.Cuts.Count > 0) { fileCuts.FilePath = _resultDemos[(int)currentFileIndex].FilePath; result.FileCuts.Add(fileCuts); } return(result); }
private CutLists GetFileMatches() { var items = _fileResultsListView.SelectedItems; if (items.Count == 0) { return(null); } var result = new CutLists(); foreach (var item in items) { var listViewItem = item as ListViewItem; if (listViewItem == null) { continue; } var displayInfo = listViewItem.Content as SearchResultFileDisplayInfo; if (displayInfo == null) { continue; } if (displayInfo.FileIndex >= (uint)_resultDemos.Count) { continue; } var filePath = _resultDemos[(int)displayInfo.FileIndex].FilePath; if (!App.IsValidWriteProtocol(App.GetProtocolFromFilePath(filePath))) { continue; } var matches = _results.FindAll(c => c.DemoInputIndex == displayInfo.FileIndex); var fileCuts = new FileCuts(); fileCuts.FilePath = filePath; foreach (var match in matches) { var cut = new UDT_DLL.Cut(); cut.GameStateIndex = (int)match.GameStateIndex; cut.StartTimeMs = match.StartTimeMs; cut.EndTimeMs = match.EndTimeMs; fileCuts.Cuts.Add(cut); } result.FileCuts.Add(fileCuts); } return(result); }