Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }