Exemplo n.º 1
0
        private void TransferDataToEmbedded()
        {
            EmbeddedAnalysisData.Clear();

            foreach (DataRow from in AnalysisData.Rows)
            {
                System.Data.DataRow row = EmbeddedAnalysisData.NewRow();
                FillEmbeddedRowFromNormal(row, from);
                EmbeddedAnalysisData.Rows.Add(row);
            }

            RemoveSuperfluousInfoRows(EmbeddedAnalysisData, maxEmbeddedAnalysisRows);
        }
Exemplo n.º 2
0
        private void ProcessPendingInfoReponses(object sender, System.Timers.ElapsedEventArgs e)
        {
            Dictionary <string, UciInfoResponse> responseByMove = new Dictionary <string, UciInfoResponse>();

            // collect per move so we don't do updates for duplicates
            for (; ;)
            {
                var info = PendingInfoResponses.TryDequeue();
                if (info == null)
                {
                    break;
                }

                if (info.Fen != Fen)
                {
                    continue;
                }

                foreach (var _ in info.Score)
                {
                    // replace so we have the latest
                    responseByMove[info.GetMoveLan()] = info;
                }
            }

            if (responseByMove.Count == 0)
            {
                return;
            }

            if (IsEmbedded)
            {
                var newAnalysisData = EmbeddedAnalysisData.Copy();
                UpdateEmbeddedAnalysisData(newAnalysisData, responseByMove);
                ApplyNewEmbeddedAnalysisData(newAnalysisData);
            }
            else
            {
                var newAnalysisData = AnalysisData.Copy();
                UpdateAnalysisData(newAnalysisData, responseByMove);
                ApplyNewAnalysisData(newAnalysisData);
            }
        }