public EngineAnalysisForm(UciEngineProfileStorage profiles, EmbeddedAnalysisHandler embeddedHandler = null) { InitializeComponent(); Icon = Properties.Resources.application_icon; EngineProfiles = profiles; EmbeddedControl = new EmbeddedEngineAnalysisControl(); AnalysisData = new DataTable(); AnalysisData.Columns.Add(new DataColumn("Move", typeof(MoveWithSan))); AnalysisData.Columns.Add(new DataColumn("Depth", typeof(int))); AnalysisData.Columns.Add(new DataColumn("SelDepth", typeof(int))); AnalysisData.Columns.Add(new DataColumn("Score", typeof(UciScore))); AnalysisData.Columns.Add(new DataColumn("Time", typeof(TimeSpan))); AnalysisData.Columns.Add(new DataColumn("Nodes", typeof(long))); AnalysisData.Columns.Add(new DataColumn("NPS", typeof(long))); AnalysisData.Columns.Add(new DataColumn("MultiPV", typeof(int))); AnalysisData.Columns.Add(new DataColumn("TBHits", typeof(long))); AnalysisData.Columns.Add(new DataColumn("PV", typeof(string))); AnalysisData.Columns.Add(new DataColumn("ScoreInt", typeof(int))); WinFormsControlUtil.MakeDoubleBuffered(analysisDataGridView); analysisDataGridView.DataSource = AnalysisData; SetupColumns(); analysisDataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader; EmbeddedAnalysisData = new DataTable(); EmbeddedAnalysisData.Columns.Add(new DataColumn("Move", typeof(MoveWithSan))); EmbeddedAnalysisData.Columns.Add(new DataColumn("D/SD", typeof(KeyValuePair <int, int>))); EmbeddedAnalysisData.Columns.Add(new DataColumn("Score", typeof(UciScore))); EmbeddedAnalysisData.Columns.Add(new DataColumn("Time", typeof(TimeSpan))); EmbeddedAnalysisData.Columns.Add(new DataColumn("Nodes", typeof(long))); EmbeddedAnalysisData.Columns.Add(new DataColumn("NPS", typeof(long))); EmbeddedAnalysisData.Columns.Add(new DataColumn("TBHits", typeof(long))); EmbeddedAnalysisData.Columns.Add(new DataColumn("ScoreInt", typeof(int))); EmbeddedAnalysisData.Columns.Add(new DataColumn("MultiPV", typeof(int))); WinFormsControlUtil.MakeDoubleBuffered(EmbeddedControl.AnalysisDataGridView); EmbeddedControl.AnalysisDataGridView.ColumnHeadersDefaultCellStyle = analysisDataGridView.ColumnHeadersDefaultCellStyle; foreach (DataGridViewColumn column in analysisDataGridView.Columns) { if (column.ValueType == typeof(long) || column.ValueType == typeof(int)) { column.DefaultCellStyle.Format = "N0"; column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } } UpdateAnalysisButtonName(); EmbeddedControl.ToggleAnalysisButton.Enabled = false; closeToolStripMenuItem.Enabled = false; optionsToolStripMenuItem.Enabled = false; toggleAnalyzeButton.Enabled = false; embedButton.Enabled = false; IsEmbedded = false; EmbeddedHandler = embeddedHandler; if (EmbeddedHandler == null) { embedButton.Enabled = false; } PendingInfoResponses = new BlockingQueue <UciInfoResponse>(); Fen = FenProvider.StartPos; SideToMove = Player.White; InfoUpdateTimer = new System.Timers.Timer { Interval = 2000, AutoReset = true }; InfoUpdateTimer.Elapsed += ProcessPendingInfoReponses; InfoUpdateTimer.Enabled = true; ClearEngineIdInfo(); }
public void ForceStopEmbeddedAnalysis(EmbeddedAnalysisHandler handler) { EmbeddedHandler.OnEmbeddedAnalysisEnded(); ClearEmbeddedAnalysisPanel(); IsEmbedded = false; }