void Kaboodle::Player::tickerTimeout(void) { if(engine->state() == Stop) { if ( uncompleted ) { stop(); if( isLooping() ) { play(); } else { uncompleted = false; emit completed(); } } if(embedded) { widget->embed(Arts::PlayObject::null()); embedded = false; } } else if(engine->state() != Stop && engine->state() != Empty) { if(!embedded) { widget->embed(engine->playObject()); embedded = true; } emit timeout(); if(extension) emit setStatusBarText(i18n("Playing %1 - %2") .arg(current.prettyURL()) .arg(positionString() + "/" + lengthString())); } updateTitle(); }
void UciEngine::makeMove(const Chess::Move& move) { if (!m_ponderMove.isNull()) { if (move == m_ponderMove) m_ponderState = PonderHit; m_ponderMove = Chess::Move(); if (m_ponderState != PonderHit) { m_moveStrings.truncate(m_moveStrings.lastIndexOf(' ')); if (isReady()) { m_ignoreThinking = true; if (stopThinking()) ping(false); } else { // Cancel sending the "go ponder" message clearWriteBuffer(); m_rePing = true; } } } if (m_ponderState != PonderHit) { m_ponderState = NotPondering; m_moveStrings += " " + board()->moveString(move, Chess::Board::LongAlgebraic); if (m_ignoreThinking) m_bmBuffer << positionString() << "isready"; else sendPosition(); } }
void UciEngine::sendPosition() { write(positionString()); }