1
/***************************************************************************
2
* (C) 2006-2007 Sean Estabrooks *
3
* (C) 2007-2009 Michal Rudolf <mrudolf@kdewebdev.org> *
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
#ifndef __UCIENGINE_H__
12
#define __UCIENGINE_H__
15
#include <QTextStream>
20
* The UCIEngine class provides an interface to Winboard/XBoard engines.
22
class UCIEngine : public Engine
25
/** Constucts an engine with a given path/command, and log stream */
26
UCIEngine(const QString& name,
27
const QString& command,
29
const QString& directory = QString(),
30
QTextStream* logStream = NULL);
32
/** Analyses the the given position */
33
bool startAnalysis(const Board& board, int nv);
35
/** Stops any analysis */
38
/** Update number of displayed lines. Restarts engine. */
39
virtual void setMpv(int mpv);
41
virtual bool providesMvp()
46
/** Performs any initialisation required by the engine protocol */
49
/** Performs any shutdown procedure required by the engine protocol */
52
/** Processes messages from the chess engine */
53
void processMessage(const QString& message);
56
/** Parses analysis */
57
void parseAnalysis(const QString& message);
59
/** Parse option string */
60
void parseOptions(const QString &message);
66
bool m_quitAfterAnalysis;
69
#endif // __UCIENGINE_H__