diff options
Diffstat (limited to 'src/game_tab/right_panel')
| -rw-r--r-- | src/game_tab/right_panel/GameTabRightPanel.cpp | 6 | ||||
| -rw-r--r-- | src/game_tab/right_panel/GameTabRightPanel.hpp | 1 | ||||
| -rw-r--r-- | src/game_tab/right_panel/LiveEngineDialog.cpp | 11 | ||||
| -rw-r--r-- | src/game_tab/right_panel/LiveEngineDialog.hpp | 8 |
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; |
