Example #1
0
        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();
        }
Example #2
0
 public void ForceStopEmbeddedAnalysis(EmbeddedAnalysisHandler handler)
 {
     EmbeddedHandler.OnEmbeddedAnalysisEnded();
     ClearEmbeddedAnalysisPanel();
     IsEmbedded = false;
 }