コード例 #1
0
        public IList <string> CreateHeaderLinesFromRecordInfo(IFileRecordInfo recordInfo)
        {
            var datetime = DateTime.Now;

            return(new List <string>()
            {
                $"{FileRecordInfo.HEADER_MARKER}Id{FileRecordInfo.INFO_SEPERATOR}{Guid.NewGuid().ToString()}",
                $"{FileRecordInfo.HEADER_MARKER}GameName{FileRecordInfo.INFO_SEPERATOR}{recordInfo.GameName}",
                $"{FileRecordInfo.HEADER_MARKER}ProcessName{FileRecordInfo.INFO_SEPERATOR}{recordInfo.ProcessName}",
                $"{FileRecordInfo.HEADER_MARKER}CreationDate{FileRecordInfo.INFO_SEPERATOR}{datetime.ToString("yyyy-MM-dd")}",
                $"{FileRecordInfo.HEADER_MARKER}CreationTime{FileRecordInfo.INFO_SEPERATOR}{datetime.ToString("HH:mm:ss")}",
                $"{FileRecordInfo.HEADER_MARKER}Motherboard{FileRecordInfo.INFO_SEPERATOR}{recordInfo.MotherboardName}",
                $"{FileRecordInfo.HEADER_MARKER}OS{FileRecordInfo.INFO_SEPERATOR}{recordInfo.OsVersion}",
                $"{FileRecordInfo.HEADER_MARKER}Processor{FileRecordInfo.INFO_SEPERATOR}{recordInfo.ProcessorName}",
                $"{FileRecordInfo.HEADER_MARKER}System RAM{FileRecordInfo.INFO_SEPERATOR}{recordInfo.SystemRamInfo}",
                $"{FileRecordInfo.HEADER_MARKER}Base Driver Version{FileRecordInfo.INFO_SEPERATOR}{recordInfo.BaseDriverVersion}",
                $"{FileRecordInfo.HEADER_MARKER}Driver Package{FileRecordInfo.INFO_SEPERATOR}{recordInfo.DriverPackage}",
                $"{FileRecordInfo.HEADER_MARKER}GPU{FileRecordInfo.INFO_SEPERATOR}{recordInfo.GraphicCardName}",
                $"{FileRecordInfo.HEADER_MARKER}GPU #{FileRecordInfo.INFO_SEPERATOR}{recordInfo.NumberGPUs}",
                $"{FileRecordInfo.HEADER_MARKER}GPU Core Clock (MHz){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUCoreClock}",
                $"{FileRecordInfo.HEADER_MARKER}GPU Memory Clock (MHz){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUMemoryClock}",
                $"{FileRecordInfo.HEADER_MARKER}GPU Memory (MB){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUMemory}",
                $"{FileRecordInfo.HEADER_MARKER}Comment{FileRecordInfo.INFO_SEPERATOR}{string.Empty}",
                $"{FileRecordInfo.HEADER_MARKER}IsAggregated{FileRecordInfo.INFO_SEPERATOR}{true.ToString()}"
            });
        }
コード例 #2
0
        private void SubscribeToUpdateSession()
        {
            _eventAggregator.GetEvent <PubSubEvent <ViewMessages.UpdateSession> >()
            .Subscribe(msg =>
            {
                if (msg == null)
                {
                    return;
                }

                _session    = msg.CurrentSession;
                _recordInfo = msg.RecordInfo;

                if (_useUpdateSession)
                {
                    if (msg.RecordInfo != null && msg.RecordInfo.GameName != null)
                    {
                        // Do update actions
                        CurrentGameName = msg.RecordInfo.GameName;
                        UpdateCharts();
                        SyncRangePercentage = GetSyncRangePercentageString();
                    }
                }
            });

            _eventAggregator.GetEvent <PubSubEvent <ViewMessages.ThemeChanged> >()
            .Subscribe(msg =>
            {
                UpdateCharts();
            });
        }
コード例 #3
0
        private void AddComparisonRecord(IFileRecordInfo recordInfo)
        {
            if (ComparisonRecords.Count < _comparisonBrushes.Count())
            {
                var comparisonRecordInfo        = GetComparisonRecordInfoFromFileRecordInfo(recordInfo);
                var wrappedComparisonRecordInfo = GetWrappedRecordInfo(comparisonRecordInfo);

                //Update list and index
                ComparisonRecords.Add(wrappedComparisonRecordInfo);
                wrappedComparisonRecordInfo.CollectionIndex = ComparisonRecords.Count - 1;

                var color = _freeColors.First();
                _freeColors.Remove(color);
                wrappedComparisonRecordInfo.Color = color;
                wrappedComparisonRecordInfo.FrametimeGraphColor = color.Color;

                InitialIconVisibility       = !ComparisonRecords.Any();
                ComparisonItemControlHeight = ComparisonRecords.Any() ? "Auto" : "300";

                UpdateCuttingParameter();

                //Draw charts and performance parameter
                AddToCharts(wrappedComparisonRecordInfo);
            }
        }
コード例 #4
0
        private bool CheckListContains(IFileRecordInfo recordInfo)
        {
            var recordInfoWrapper = ComparisonRecords
                                    .FirstOrDefault(info => info.WrappedRecordInfo.FileRecordInfo.Id == recordInfo.Id);

            return(recordInfoWrapper != null && ComparisonRecords.Any());
        }
コード例 #5
0
        private void AddComparisonItem(IFileRecordInfo recordInfo)
        {
            if (CheckListContains(recordInfo))
            {
                MessageText = $"The list already contains this record and therefore cannot be inserted. " +
                              $"Select a different record for the comparison.";
                MessageDialogContentIsOpen = true;
                return;
            }

            var comparisonRecordInfo        = GetComparisonRecordInfoFromFileRecordInfo(recordInfo);
            var wrappedComparisonRecordInfo = GetWrappedRecordInfo(comparisonRecordInfo);

            // Insert into list (sorted)
            SetMetrics(wrappedComparisonRecordInfo);
            InsertComparisonRecordsSorted(wrappedComparisonRecordInfo);

            HasComparisonItems = ComparisonRecords.Any();

            // Manage game name header
            HasUniqueGameNames = GetHasUniqueGameNames();
            CurrentGameName    = comparisonRecordInfo.Game;

            // Update height of bar chart control here
            UpdateBarChartHeight();
            UpdateRangeSliderParameter();

            //Draw charts and performance parameter
            UpdateCharts();
        }
コード例 #6
0
 private void SubscribeToUpdateSession()
 {
     _eventAggregator.GetEvent <PubSubEvent <ViewMessages.UpdateSession> >()
     .Subscribe(msg =>
     {
         _recordInfo = msg.RecordInfo;
     });
 }
コード例 #7
0
 private void AddToRecordInfoList(IFileRecordInfo recordFileInfo)
 {
     if (recordFileInfo != null)
     {
         Application.Current.Dispatcher.Invoke(new Action(() =>
         {
             RecordInfoList.Add(recordFileInfo);
         }));
     }
 }
コード例 #8
0
        private ReportInfo GetReportInfoFromRecordInfo(IFileRecordInfo recordInfo)
        {
            var session = _recordManager.LoadData(recordInfo.FullPath);

            double GeMetricValue(IList <double> sequence, EMetric metric) =>
            _frametimeStatisticProvider.GetFpsMetricValue(sequence, metric);

            var frameTimes = session.Runs.SelectMany(r => r.CaptureData.MsBetweenPresents).ToList();
            var recordTime = session.Runs.SelectMany(r => r.CaptureData.TimeInSeconds).Last();

            var max                       = GeMetricValue(frameTimes, EMetric.Max);
            var p99_quantile              = GeMetricValue(frameTimes, EMetric.P99);
            var p95_quantile              = GeMetricValue(frameTimes, EMetric.P95);
            var average                   = GeMetricValue(frameTimes, EMetric.Average);
            var median                    = GeMetricValue(frameTimes, EMetric.Median);
            var p0dot1_quantile           = GeMetricValue(frameTimes, EMetric.P0dot1);
            var p0dot2_quantile           = GeMetricValue(frameTimes, EMetric.P0dot2);
            var p1_quantile               = GeMetricValue(frameTimes, EMetric.P1);
            var p5_quantile               = GeMetricValue(frameTimes, EMetric.P5);
            var p1_averageLow             = GeMetricValue(frameTimes, EMetric.OnePercentLow);
            var p0dot1_averageLow         = GeMetricValue(frameTimes, EMetric.ZerodotOnePercentLow);
            var min                       = GeMetricValue(frameTimes, EMetric.Min);
            var adaptiveStandardDeviation = GeMetricValue(frameTimes, EMetric.AdaptiveStd);

            var reportInfo = new ReportInfo()
            {
                Game            = recordInfo.GameName,
                Date            = recordInfo.CreationDate,
                Time            = recordInfo.CreationTime,
                NumberOfSamples = frameTimes.Count,
                RecordTime      = Math.Round(recordTime, 2).ToString(CultureInfo.InvariantCulture),
                Cpu             = recordInfo.ProcessorName == null ? "" : recordInfo.ProcessorName.Trim(new Char[] { ' ', '"' }),
                GraphicCard     = recordInfo.GraphicCardName == null ? "" : recordInfo.GraphicCardName.Trim(new Char[] { ' ', '"' }),
                Ram             = recordInfo.SystemRamInfo == null ? "" : recordInfo.SystemRamInfo.Trim(new Char[] { ' ', '"' }),
                MaxFps          = max,
                NinetyNinePercentQuantileFps = p99_quantile,
                NinetyFivePercentQuantileFps = p95_quantile,
                AverageFps                     = average,
                MedianFps                      = median,
                FivePercentQuantileFps         = p5_quantile,
                OnePercentQuantileFps          = p1_quantile,
                OnePercentLowAverageFps        = p1_averageLow,
                ZeroDotTwoPercentQuantileFps   = p0dot2_quantile,
                ZeroDotOnePercentQuantileFps   = p0dot1_quantile,
                ZeroDotOnePercentLowAverageFps = p0dot1_averageLow,
                MinFps         = min,
                AdaptiveSTDFps = adaptiveStandardDeviation,
                CustomComment  = recordInfo.Comment
            };

            return(reportInfo);
        }
コード例 #9
0
        private void AddAggregationEntry(IFileRecordInfo recordInfo, Session session)
        {
            if (recordInfo != null)
            {
                if (_fileRecordInfoList.Any())
                {
                    if (!_fileRecordInfoList.All(info => info.ProcessName == recordInfo.ProcessName))
                    {
                        return;
                    }
                }

                _fileRecordInfoList.Add(recordInfo);
            }
            else
            {
                return;
            }


            List <double> frametimes = session?.FrameTimes;

            if (session == null)
            {
                var localSession = RecordManager.LoadData(recordInfo.FullPath);
                frametimes = localSession?.FrameTimes;
            }

            var metricAnalysis = _statisticProvider
                                 .GetMetricAnalysis(frametimes, SelectedSecondMetric.ConvertToString(),
                                                    SelectedThirdMetric.ConvertToString());

            AggregationEntries.Add(new AggregationEntry()
            {
                GameName          = recordInfo.GameName,
                CreationDate      = recordInfo.CreationDate,
                CreationTime      = recordInfo.CreationTime,
                AverageValue      = metricAnalysis.Average,
                SecondMetricValue = metricAnalysis.Second,
                ThirdMetricValue  = metricAnalysis.Third,
                MetricAnalysis    = metricAnalysis,
                FileRecordInfo    = recordInfo
            });
        }
コード例 #10
0
        private void SubscribeToUpdateSession()
        {
            _eventAggregator.GetEvent <PubSubEvent <ViewMessages.UpdateSession> >()
            .Subscribe(msg =>
            {
                _session    = msg.CurrentSession;
                _recordInfo = msg.RecordInfo;

                if (_useUpdateSession)
                {
                    // Do update actions
                    CurrentGameName = msg.RecordInfo.GameName;
                    UpdateCharts();
                    FrametimeDisplayChangedTimeCorrelation =
                        GetCorrelation(msg.CurrentSession);
                    SyncRangePercentage = GetSyncRangePercentageString();
                }
            });
        }
コード例 #11
0
        private ComparisonRecordInfo GetComparisonRecordInfoFromFileRecordInfo(IFileRecordInfo fileRecordInfo)
        {
            string infoText = string.Empty;
            var    session  = RecordManager.LoadData(fileRecordInfo.FullPath);

            if (session != null)
            {
                var newLine = Environment.NewLine;
                infoText += $"{fileRecordInfo.CreationDate} { fileRecordInfo.CreationTime}" + newLine +
                            $"{session.FrameTimes.Count} frames in {Math.Round(session.LastFrameTime, 2).ToString(CultureInfo.InvariantCulture)}s";
            }

            return(new ComparisonRecordInfo
            {
                Game = fileRecordInfo.GameName,
                InfoText = infoText,
                DateTime = fileRecordInfo.FileInfo.LastWriteTime.ToString(),
                Session = session,
                FileRecordInfo = fileRecordInfo
            });
        }
コード例 #12
0
        private void AddCloudEntry(IFileRecordInfo recordInfo, ISession session)
        {
            if (recordInfo != null)
            {
                _fileRecordInfoList.Add(recordInfo);
            }
            else
            {
                return;
            }

            ShareUrl = string.Empty;
            CloudEntries.Add(new CloudEntry()
            {
                GameName       = recordInfo.GameName,
                CreationDate   = recordInfo.CreationDate,
                CreationTime   = recordInfo.CreationTime,
                Comment        = recordInfo.Comment,
                FileRecordInfo = recordInfo
            });
        }
コード例 #13
0
        private ComparisonRecordInfo GetComparisonRecordInfoFromFileRecordInfo(IFileRecordInfo fileRecordInfo)
        {
            string infoText   = string.Empty;
            var    session    = _recordManager.LoadData(fileRecordInfo.FullPath);
            var    frameTimes = session.Runs.SelectMany(r => r.CaptureData.MsBetweenPresents).ToList();
            var    recordTime = session.Runs.SelectMany(r => r.CaptureData.TimeInSeconds).Last();

            if (session != null)
            {
                var newLine = Environment.NewLine;
                infoText += $"{fileRecordInfo.CreationDate} { fileRecordInfo.CreationTime}" + newLine +
                            $"{frameTimes.Count()} frames in {Math.Round(recordTime, 2).ToString(CultureInfo.InvariantCulture)}s";
            }

            return(new ComparisonRecordInfo
            {
                Game = fileRecordInfo.GameName,
                InfoText = infoText,
                DateTime = fileRecordInfo.FileInfo.LastWriteTime.ToString(),
                Session = session,
                FileRecordInfo = fileRecordInfo
            });
        }
コード例 #14
0
        private ComparisonRecordInfo GetComparisonRecordInfoFromFileRecordInfo(IFileRecordInfo fileRecordInfo)
        {
            string infoText = string.Empty;
            var    session  = RecordManager.LoadData(fileRecordInfo.FullPath);

            if (session != null)
            {
                var newLine = Environment.NewLine;
                infoText += "creation date: " + fileRecordInfo.FileInfo.LastWriteTime.ToShortDateString() + newLine +
                            "creation time: " + fileRecordInfo.FileInfo.LastWriteTime.ToString("HH:mm:ss") + newLine +
                            "capture time: " + Math.Round(session.LastFrameTime, 2).ToString(CultureInfo.InvariantCulture) + " s" + newLine +
                            "number of samples: " + session.FrameTimes.Count.ToString();
            }

            return(new ComparisonRecordInfo
            {
                Game = fileRecordInfo.GameName,
                InfoText = infoText,
                DateTime = fileRecordInfo.FileInfo.LastWriteTime.ToString(),
                Session = session,
                FileRecordInfo = fileRecordInfo
            });
        }
コード例 #15
0
        private void AddAggregationEntry(IFileRecordInfo recordInfo, ISession session)
        {
            if (recordInfo == null)
            {
                return;
            }

            if (_fileRecordInfoList.Any())
            {
                if (!_fileRecordInfoList.All(info => info.ProcessName == recordInfo.ProcessName))
                {
                    return;
                }
            }

            _fileRecordInfoList.Add(recordInfo);

            session = session ?? _recordManager.LoadData(recordInfo.FullPath);
            var frametimes = session.Runs.SelectMany(r => r.CaptureData.MsBetweenPresents).ToList();

            var metricAnalysis = _statisticProvider
                                 .GetMetricAnalysis(frametimes, SelectedSecondMetric.ConvertToString(),
                                                    SelectedThirdMetric.ConvertToString());

            AggregationEntries.Add(new AggregationEntry()
            {
                GameName          = recordInfo.GameName,
                CreationDate      = recordInfo.CreationDate,
                CreationTime      = recordInfo.CreationTime,
                AverageValue      = metricAnalysis.Average,
                SecondMetricValue = metricAnalysis.Second,
                ThirdMetricValue  = metricAnalysis.Third,
                MetricAnalysis    = metricAnalysis,
                FileRecordInfo    = recordInfo
            });
        }
コード例 #16
0
        public static List <SystemInfoEntry> GetSystemInfos(IFileRecordInfo recordInfo)
        {
            var systemInfos = new List <SystemInfoEntry>();

            if (!string.IsNullOrWhiteSpace(recordInfo.CreationDate))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Creation Date & Time", Value = recordInfo.CreationDate + "  |  " + recordInfo.CreationTime
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.Comment))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Comment", Value = recordInfo.Comment
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.ProcessorName))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Processor", Value = recordInfo.ProcessorName
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.SystemRamInfo))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "System RAM", Value = recordInfo.SystemRamInfo
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.GraphicCardName))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Graphics Card", Value = recordInfo.GraphicCardName
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.MotherboardName))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Motherboard", Value = recordInfo.MotherboardName
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.OsVersion))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "OS Version", Value = recordInfo.OsVersion
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.NumberGPUs))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "GPU #", Value = recordInfo.NumberGPUs
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.GPUCoreClock))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "GPU Core Clock (MHz)", Value = recordInfo.GPUCoreClock
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.GPUMemoryClock))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "GPU Memory Clock (MHz)", Value = recordInfo.GPUMemoryClock
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.GPUMemory))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "GPU Memory (MB)", Value = recordInfo.GPUMemory
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.BaseDriverVersion))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Base Driver Version", Value = recordInfo.BaseDriverVersion
                });
            }
            if (!string.IsNullOrWhiteSpace(recordInfo.DriverPackage))
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Driver Package", Value = recordInfo.DriverPackage
                });
            }

            return(systemInfos);
        }
コード例 #17
0
        public static void UpdateCustomData(IFileRecordInfo recordInfo, string customCpuInfo,
                                            string customGpuInfo, string customRamInfo, string customGameName, string customComment)
        {
            if (recordInfo == null || customCpuInfo == null ||
                customGpuInfo == null || customRamInfo == null || customGameName == null ||
                customComment == null)
            {
                return;
            }

            try
            {
                string[] lines = File.ReadAllLines(recordInfo.FileInfo.FullName);

                if (recordInfo.HasInfoHeader)
                {
                    // Processor
                    int processorNameHeaderIndex = GetHeaderIndex(lines, "Processor");
                    lines[processorNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}Processor{FileRecordInfo.INFO_SEPERATOR}{customCpuInfo}";

                    // GPU
                    int graphicCardNameHeaderIndex = GetHeaderIndex(lines, "GPU");
                    lines[graphicCardNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}GPU{FileRecordInfo.INFO_SEPERATOR}{customGpuInfo}";

                    // RAM
                    int systemRamNameHeaderIndex = GetHeaderIndex(lines, "System RAM");
                    lines[systemRamNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}System RAM{FileRecordInfo.INFO_SEPERATOR}{customRamInfo}";

                    // GameName
                    int gameNameHeaderIndex = GetHeaderIndex(lines, "GameName");
                    lines[gameNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}GameName{FileRecordInfo.INFO_SEPERATOR}{customGameName}";

                    // Comment
                    int commentNameHeaderIndex = GetHeaderIndex(lines, "Comment");
                    lines[commentNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}Comment{FileRecordInfo.INFO_SEPERATOR}{customComment}";

                    File.WriteAllLines(recordInfo.FullPath, lines);
                }
                else
                {
                    // Create header
                    var headerLines = new List <string>()
                    {
                        $"{FileRecordInfo.HEADER_MARKER}GameName{FileRecordInfo.INFO_SEPERATOR}{customGameName}",
                        $"{FileRecordInfo.HEADER_MARKER}ProcessName{FileRecordInfo.INFO_SEPERATOR}{recordInfo.ProcessName}",
                        $"{FileRecordInfo.HEADER_MARKER}CreationDate{FileRecordInfo.INFO_SEPERATOR}{recordInfo.CreationDate}",
                        $"{FileRecordInfo.HEADER_MARKER}CreationTime{FileRecordInfo.INFO_SEPERATOR}{recordInfo.CreationTime}",
                        $"{FileRecordInfo.HEADER_MARKER}Motherboard{FileRecordInfo.INFO_SEPERATOR}{recordInfo.MotherboardName}",
                        $"{FileRecordInfo.HEADER_MARKER}OS{FileRecordInfo.INFO_SEPERATOR}{recordInfo.OsVersion}",
                        $"{FileRecordInfo.HEADER_MARKER}Processor{FileRecordInfo.INFO_SEPERATOR}{customCpuInfo}",
                        $"{FileRecordInfo.HEADER_MARKER}System RAM{FileRecordInfo.INFO_SEPERATOR}{recordInfo.SystemRamInfo}",
                        $"{FileRecordInfo.HEADER_MARKER}Base Driver Version{FileRecordInfo.INFO_SEPERATOR}{recordInfo.BaseDriverVersion}",
                        $"{FileRecordInfo.HEADER_MARKER}Driver Package{FileRecordInfo.INFO_SEPERATOR}{recordInfo.DriverPackage}",
                        $"{FileRecordInfo.HEADER_MARKER}GPU{FileRecordInfo.INFO_SEPERATOR}{customGpuInfo}",
                        $"{FileRecordInfo.HEADER_MARKER}GPU #{FileRecordInfo.INFO_SEPERATOR}{recordInfo.NumberGPUs}",
                        $"{FileRecordInfo.HEADER_MARKER}GPU Core Clock (MHz){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUCoreClock}",
                        $"{FileRecordInfo.HEADER_MARKER}GPU Memory Clock (MHz){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUMemoryClock}",
                        $"{FileRecordInfo.HEADER_MARKER}GPU Memory (MB){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUMemory}",
                        $"{FileRecordInfo.HEADER_MARKER}Comment{FileRecordInfo.INFO_SEPERATOR}{customComment}"
                    };

                    File.WriteAllLines(recordInfo.FullPath, headerLines.Concat(lines));
                }
            }
            //Todo: write message to logger
            catch { }
        }
コード例 #18
0
ファイル: RecordManager.cs プロジェクト: Phelagor/CapFrameX
        public void UpdateCustomData(IFileRecordInfo recordInfo,
                                     string customCpuInfo, string customGpuInfo,
                                     string customRamInfo, string customGameName,
                                     string customComment)
        {
            if (recordInfo == null)
            {
                return;
            }

            customCpuInfo  = customCpuInfo ?? string.Empty;
            customGpuInfo  = customGpuInfo ?? string.Empty;
            customRamInfo  = customRamInfo ?? string.Empty;
            customGameName = customGameName ?? string.Empty;
            customComment  = customComment ?? string.Empty;

            try
            {
                if (recordInfo.FileInfo.Extension == ".json")
                {
                    var session = LoadSessionFromJSON(recordInfo.FileInfo);
                    session.Info.Processor = customCpuInfo;
                    session.Info.GPU       = customGpuInfo;
                    session.Info.SystemRam = customRamInfo;
                    session.Info.GameName  = customGameName;
                    session.Info.Comment   = customComment;

                    SaveSessionToFile(recordInfo.FileInfo.FullName, session);
                }
                else if (recordInfo.FileInfo.Extension == ".csv")
                {
                    string[] lines = File.ReadAllLines(recordInfo.FileInfo.FullName);

                    if (recordInfo.HasInfoHeader)
                    {
                        // Processor
                        int processorNameHeaderIndex = GetHeaderIndex(lines, "Processor");
                        lines[processorNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}Processor{FileRecordInfo.INFO_SEPERATOR}{customCpuInfo}";

                        // GPU
                        int graphicCardNameHeaderIndex = GetHeaderIndex(lines, "GPU");
                        lines[graphicCardNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}GPU{FileRecordInfo.INFO_SEPERATOR}{customGpuInfo}";

                        // RAM
                        int systemRamNameHeaderIndex = GetHeaderIndex(lines, "System RAM");
                        lines[systemRamNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}System RAM{FileRecordInfo.INFO_SEPERATOR}{customRamInfo}";

                        // GameName
                        int gameNameHeaderIndex = GetHeaderIndex(lines, "GameName");
                        lines[gameNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}GameName{FileRecordInfo.INFO_SEPERATOR}{customGameName}";

                        // Comment
                        int commentNameHeaderIndex = GetHeaderIndex(lines, "Comment");
                        lines[commentNameHeaderIndex] = $"{FileRecordInfo.HEADER_MARKER}Comment{FileRecordInfo.INFO_SEPERATOR}{customComment}";

                        File.WriteAllLines(recordInfo.FullPath, lines);
                    }
                    else
                    {
                        // Create header
                        var headerLines = new List <string>()
                        {
                            $"{FileRecordInfo.HEADER_MARKER}GameName{FileRecordInfo.INFO_SEPERATOR}{customGameName}",
                            $"{FileRecordInfo.HEADER_MARKER}ProcessName{FileRecordInfo.INFO_SEPERATOR}{recordInfo.ProcessName}",
                            $"{FileRecordInfo.HEADER_MARKER}CreationDate{FileRecordInfo.INFO_SEPERATOR}{recordInfo.CreationDate}",
                            $"{FileRecordInfo.HEADER_MARKER}CreationTime{FileRecordInfo.INFO_SEPERATOR}{recordInfo.CreationTime}",
                            $"{FileRecordInfo.HEADER_MARKER}Motherboard{FileRecordInfo.INFO_SEPERATOR}{recordInfo.MotherboardName}",
                            $"{FileRecordInfo.HEADER_MARKER}OS{FileRecordInfo.INFO_SEPERATOR}{recordInfo.OsVersion}",
                            $"{FileRecordInfo.HEADER_MARKER}Processor{FileRecordInfo.INFO_SEPERATOR}{customCpuInfo}",
                            $"{FileRecordInfo.HEADER_MARKER}System RAM{FileRecordInfo.INFO_SEPERATOR}{customRamInfo}",
                            $"{FileRecordInfo.HEADER_MARKER}Base Driver Version{FileRecordInfo.INFO_SEPERATOR}{recordInfo.BaseDriverVersion}",
                            $"{FileRecordInfo.HEADER_MARKER}Driver Package{FileRecordInfo.INFO_SEPERATOR}{recordInfo.DriverPackage}",
                            $"{FileRecordInfo.HEADER_MARKER}GPU{FileRecordInfo.INFO_SEPERATOR}{customGpuInfo}",
                            $"{FileRecordInfo.HEADER_MARKER}GPU #{FileRecordInfo.INFO_SEPERATOR}{recordInfo.NumberGPUs}",
                            $"{FileRecordInfo.HEADER_MARKER}GPU Core Clock (MHz){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUCoreClock}",
                            $"{FileRecordInfo.HEADER_MARKER}GPU Memory Clock (MHz){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUMemoryClock}",
                            $"{FileRecordInfo.HEADER_MARKER}GPU Memory (MB){FileRecordInfo.INFO_SEPERATOR}{recordInfo.GPUMemory}",
                            $"{FileRecordInfo.HEADER_MARKER}Comment{FileRecordInfo.INFO_SEPERATOR}{customComment}"
                        };

                        File.WriteAllLines(recordInfo.FullPath, headerLines.Concat(lines));
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error writing Lines");
            }
        }
コード例 #19
0
ファイル: ViewMessages.cs プロジェクト: DJMajorRush/CapFrameX
 public UpdateRecordInfos(IFileRecordInfo recordInfo)
 {
     RecordInfo = recordInfo;
 }
コード例 #20
0
ファイル: ViewMessages.cs プロジェクト: DJMajorRush/CapFrameX
 public SetFileRecordInfoExternal(IFileRecordInfo recordInfo)
 {
     RecordInfo = recordInfo;
 }
コード例 #21
0
ファイル: ViewMessages.cs プロジェクト: DJMajorRush/CapFrameX
 public SelectSession(Session session, IFileRecordInfo recordInfo) :
     base(session, recordInfo)
 {
 }
コード例 #22
0
ファイル: ViewMessages.cs プロジェクト: DJMajorRush/CapFrameX
 public UpdateSession(Session session, IFileRecordInfo recordInfo)
 {
     CurrentSession = session;
     RecordInfo     = recordInfo;
 }
コード例 #23
0
        public static List <SystemInfoEntry> GetSystemInfos(IFileRecordInfo recordInfo)
        {
            var systemInfos = new List <SystemInfoEntry>();

            if (recordInfo.MotherboardName != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Motherboard", Value = recordInfo.MotherboardName
                });
            }
            if (recordInfo.OsVersion != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "OS Version", Value = recordInfo.OsVersion
                });
            }
            if (recordInfo.ProcessorName != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Processor", Value = recordInfo.ProcessorName
                });
            }
            if (recordInfo.SystemRamInfo != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "System RAM Info", Value = recordInfo.SystemRamInfo
                });
            }
            if (recordInfo.BaseDriverVersion != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Base Driver Version", Value = recordInfo.BaseDriverVersion
                });
            }
            if (recordInfo.DriverPackage != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Driver Package", Value = recordInfo.DriverPackage
                });
            }
            if (recordInfo.NumberGPUs != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "GPU #", Value = recordInfo.NumberGPUs
                });
            }
            if (recordInfo.GraphicCardName != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Graphic Card", Value = recordInfo.GraphicCardName
                });
            }
            if (recordInfo.GPUCoreClock != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "GPU Core Clock (MHz)", Value = recordInfo.GPUCoreClock
                });
            }
            if (recordInfo.GPUMemoryClock != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "GPU Memory Clock (MHz)", Value = recordInfo.GPUMemoryClock
                });
            }
            if (recordInfo.GPUMemory != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "GPU Memory (MB)", Value = recordInfo.GPUMemory
                });
            }
            if (recordInfo.Comment != null)
            {
                systemInfos.Add(new SystemInfoEntry()
                {
                    Key = "Comment", Value = recordInfo.Comment
                });
            }

            return(systemInfos);
        }