| 94 | } |
| 95 | |
| 96 | void ChessEngine::applyConfiguration(const EngineConfiguration& configuration) |
| 97 | { |
| 98 | if (!configuration.name().isEmpty()) |
| 99 | setName(configuration.name()); |
| 100 | |
| 101 | const auto initStrings = configuration.initStrings(); |
| 102 | for (const QString& str : initStrings) |
| 103 | write(str); |
| 104 | |
| 105 | const auto options = configuration.options(); |
| 106 | for (const auto option : options) |
| 107 | { |
| 108 | if (option->isEditable()) |
| 109 | setOption(option->name(), option->value()); |
| 110 | } |
| 111 | |
| 112 | m_whiteEvalPov = configuration.whiteEvalPov(); |
| 113 | m_pondering = configuration.pondering(); |
| 114 | m_timeoutScale = configuration.timeoutScale(); |
| 115 | m_restartMode = configuration.restartMode(); |
| 116 | m_debugEnabled = configuration.debugEnabled(); |
| 117 | |
| 118 | setClaimsValidated(configuration.areClaimsValidated()); |
| 119 | |
| 120 | // Read protocol timeouts from QSettings. |
| 121 | // Scale timer intervals according to m_timeoutScale |
| 122 | QSettings settings; |
| 123 | settings.beginGroup("Timing"); |
| 124 | |
| 125 | int pingTimeout = m_timeoutScale * settings.value("PingTimeout", defaultPingTimeout).toInt(); |
| 126 | int quitTimeout = m_timeoutScale * settings.value("QuitTimeout", defaultQuitTimeout).toInt(); |
| 127 | int idleTimeout = m_timeoutScale * settings.value("IdleTimeout", defaultIdleTimeout).toInt(); |
| 128 | double protocolStartTimeout = m_timeoutScale * settings.value("ProtocolStartTimeout", |
| 129 | defaultProtocolStartTimeout).toInt(); |
| 130 | settings.endGroup(); |
| 131 | |
| 132 | m_pingTimer->setInterval(pingTimeout); |
| 133 | m_quitTimer->setInterval(quitTimeout); |
| 134 | m_idleTimer->setInterval(idleTimeout); |
| 135 | m_protocolStartTimer->setInterval(protocolStartTimeout); |
| 136 | } |
| 137 | |
| 138 | void ChessEngine::addOption(EngineOption* option) |
| 139 | { |
no test coverage detected