Removed unimplemented GUI actions.
[tagua/yd.git] / src / engineinfo.cpp
blob5e271b08a80019b47d1a2533976af40c32b5f139
1 /*
2 Copyright (c) 2006 Paolo Capriotti <p.capriotti@gmail.com>
3 (c) 2006 Maurizio Monge <maurizio.monge@kdemail.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9 */
11 #include "engineinfo.h"
12 #include "xboardengine.h"
13 #include "gnushogiengine.h"
14 #include "ui.h"
15 #include <iostream>
17 using namespace boost;
19 void EngineInfo::playAsWhite() {
20 playAs(0);
23 void EngineInfo::playAsBlack() {
24 playAs(1);
27 void EngineInfo::playAs(int player) {
28 if (m_token[player].valid()) {
29 m_ui.removeEntity(m_token[player]);
30 m_token[player] = EntityToken();
32 else {
33 m_token[player] = m_ui.addPlayingEngine(player, engine());
37 // void EngineInfo::analyze() {
38 // if (m_token.valid()) {
39 // m_ui.removeAnalysingEngine(m_token);
40 // m_token = EntityToken();
41 // }
42 // else
43 // m_token = m_ui.addAnalysingEngine(engine());
44 // }
46 EngineInfo::EngineInfo(const EngineDetails& details, UI& ui)
47 : QObject(&ui)
48 , m_details(details)
49 , m_ui(ui) { }
51 shared_ptr<Engine> EngineInfo::engine() {
52 shared_ptr<Engine> res;
53 if (m_details.type == EngineDetails::XBoard)
54 res = shared_ptr<Engine>(new XBoardEngine(m_details.path, QStringList()));
55 else if (m_details.type == EngineDetails::GNUShogi)
56 res = shared_ptr<Engine>(new GNUShogiEngine(m_details.path, QStringList()));
57 else {
58 ERROR("Unimplemented engine type " << EngineDetails::typeName(m_details.type));
59 return shared_ptr<Engine>();
62 if (res)
63 res->setWorkingPath(m_details.workPath);
65 return res;