aboutsummaryrefslogtreecommitdiff
path: root/src/game_tab/right_panel
diff options
context:
space:
mode:
Diffstat (limited to 'src/game_tab/right_panel')
-rw-r--r--src/game_tab/right_panel/GameTabRightPanel.cpp6
-rw-r--r--src/game_tab/right_panel/GameTabRightPanel.hpp1
-rw-r--r--src/game_tab/right_panel/LiveEngineDialog.cpp11
-rw-r--r--src/game_tab/right_panel/LiveEngineDialog.hpp8
4 files changed, 25 insertions, 1 deletions
diff --git a/src/game_tab/right_panel/GameTabRightPanel.cpp b/src/game_tab/right_panel/GameTabRightPanel.cpp
index 7aa8bbd..f421228 100644
--- a/src/game_tab/right_panel/GameTabRightPanel.cpp
+++ b/src/game_tab/right_panel/GameTabRightPanel.cpp
@@ -60,6 +60,12 @@ void GameTabRightPanel::OnLiveAnalysis(wxCommandEvent &event) {
live_engine->Bind(wxEVT_CLOSE_WINDOW,
&GameTabRightPanel::OnLiveEngineClose, this,
ID_LIVE_ENGINE_DIALOG);
+ live_engine->Bind(SHOW_ENGINE_EVALUATION, [p=this](wxCommandEvent &e){
+ wxCommandEvent notifyEvent(SHOW_ENGINE_EVALUATION,p->GetId());
+ notifyEvent.SetEventObject(p);
+ notifyEvent.SetClientData(e.GetClientData());
+ p->ProcessEvent(notifyEvent);
+ });
}
}
}
diff --git a/src/game_tab/right_panel/GameTabRightPanel.hpp b/src/game_tab/right_panel/GameTabRightPanel.hpp
index 6f3aaaa..1b94e86 100644
--- a/src/game_tab/right_panel/GameTabRightPanel.hpp
+++ b/src/game_tab/right_panel/GameTabRightPanel.hpp
@@ -16,6 +16,7 @@ wxDECLARE_EVENT(REFRESH_TAB_TITLE, wxCommandEvent);
// Foreign events
wxDECLARE_EVENT(GAME_CHANGE, wxCommandEvent);
+wxDECLARE_EVENT(SHOW_ENGINE_EVALUATION, wxCommandEvent);
class GameTabRightPanel : public TabGameRightPanel {
std::shared_ptr<Game> game;
diff --git a/src/game_tab/right_panel/LiveEngineDialog.cpp b/src/game_tab/right_panel/LiveEngineDialog.cpp
index 9184216..347c32e 100644
--- a/src/game_tab/right_panel/LiveEngineDialog.cpp
+++ b/src/game_tab/right_panel/LiveEngineDialog.cpp
@@ -104,12 +104,16 @@ void LiveEngineDialog::OnTimerTick(wxTimerEvent &event) {
wxLogDebug("Tick!");
lines_list->DeleteAllItems();
engine->SyncAfter(0);
+ EngineEvaluation *eval=new EngineEvaluation();
for (auto const &line : engine->GetLines()) {
long index = lines_list->InsertItem(0, std::to_string(line.first));
std::string line_moves;
for (std::string move : line.second.pv) {
line_moves += move + " ";
}
+ if(line.second.pv.size()>0){
+ eval->best_lines.push_back(line.second.pv[0]);
+ }
std::string cp_str = std::to_string(line.second.score_cp);
if (line.second.score_cp > 0) {
cp_str = "+" + cp_str;
@@ -117,5 +121,10 @@ void LiveEngineDialog::OnTimerTick(wxTimerEvent &event) {
lines_list->SetItem(index, 1, cp_str);
lines_list->SetItem(index, 2, line_moves);
}
- wxLogDebug("%s", engine->GetBuffer());
+ //wxLogDebug("%s", engine->GetBuffer());
+ // Notify GameTab
+ wxCommandEvent notifyEvent(SHOW_ENGINE_EVALUATION,GetId());
+ notifyEvent.SetEventObject(this);
+ notifyEvent.SetClientData(eval);
+ ProcessEvent(notifyEvent);
} \ No newline at end of file
diff --git a/src/game_tab/right_panel/LiveEngineDialog.hpp b/src/game_tab/right_panel/LiveEngineDialog.hpp
index 0996ba0..d99c3f5 100644
--- a/src/game_tab/right_panel/LiveEngineDialog.hpp
+++ b/src/game_tab/right_panel/LiveEngineDialog.hpp
@@ -1,7 +1,15 @@
+#pragma once
+
#include "UCI.hpp"
#include "ochess.hpp"
#include <wx/timer.h>
+wxDECLARE_EVENT(SHOW_ENGINE_EVALUATION, wxCommandEvent);
+
+typedef struct EngineEvaluation {
+ std::vector<std::string> best_lines;
+} EngineEvaluation;
+
class LiveEngineDialog : public DialogLiveEngine {
uciadapter::UCI *engine;
std::string engine_name;