Ejemplo n.º 1
0
        private void DemoCutByTimeThread(object arg)
        {
            var info = (CutByTimeInfo)arg;

            if (info == null)
            {
                _app.LogError("Invalid thread argument type");
                return;
            }

            var protocol = App.GetProtocolFromFilePath(info.FilePath);

            if (protocol == UDT_DLL.udtProtocol.Invalid)
            {
                _app.LogError("Unrecognized protocol for demo '{0}'", Path.GetFileName(info.FilePath));
                return;
            }

            _app.InitParseArg();
            _app.ParseArg.FileOffset     = info.FileOffset;
            _app.ParseArg.GameStateIndex = info.GameStateIndex;

            try
            {
                UDT_DLL.CutDemoByTime(_app.GetMainThreadContext(), ref _app.ParseArg, info.FilePath, info.StartTime, info.EndTime);
            }
            catch (Exception exception)
            {
                var startTimeDisplay = App.FormatMinutesSeconds(info.StartTime);
                var endTimeDisplay   = App.FormatMinutesSeconds(info.EndTime);
                _app.LogError("Caught an exception while writing cut {0}-{1}: {2}", startTimeDisplay, endTimeDisplay, exception.Message);
            }
        }
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);
        }