void MiningPage::minerFinished() { if (getMiningType() == ClientModel::SoloMining) reportToList("Solo mining stopped.", ERROR, NULL); else reportToList("Miner exited.", ERROR, NULL); ui->list->addItem(""); minerActive = false; resetMiningButton(); model->setMining(getMiningType(), false, initThreads, 0); }
void MiningPage::minerStarted() { if (!minerActive) if (getMiningType() == ClientModel::SoloMining) reportToList("Solo mining started.", ERROR, NULL); else reportToList("Miner started. You might not see any output for a few minutes.", STARTED, NULL); minerActive = true; resetMiningButton(); model->setMining(getMiningType(), true, initThreads, 0); }
void MiningPage::minerStarted() { if (!minerActive) if (getMiningType() == ClientModel::SoloMining) reportToList("Solo mining start", ERROR, NULL); else reportToList("Mining start", STARTED, NULL); minerActive = true; resetMiningButton(); model->setMining(getMiningType(), true, initThreads, 0); }
void MiningPage::updateSpeed() { double totalSpeed=0; int totalThreads=0; QMapIterator<int, double> iter(threadSpeed); while(iter.hasNext()) { iter.next(); totalSpeed += iter.value(); totalThreads++; } if (totalThreads == 0) return; // If all threads haven't reported the hash speed yet, make an assumption if (totalThreads != initThreads) { totalSpeed = (totalSpeed * initThreads / totalThreads); } QString speedString = QString("%1").arg(totalSpeed); if (totalThreads == initThreads) ui->mineSpeedLabel->setText(QString("Your hash rate: %1 kH/s").arg(speedString)); else ui->mineSpeedLabel->setText(QString("Your hash rate: ~%1 kH/s").arg(speedString)); clientmodel->setMining(getMiningType(), true, -1); }
int MiningPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: startPressed(); break; case 1: startPoolMining(); break; case 2: stopPoolMining(); break; case 3: updateSpeed(); break; case 4: loadSettings(); break; case 5: saveSettings(); break; case 6: reportToList((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3]))); break; case 7: minerStarted(); break; case 8: minerError((*reinterpret_cast< QProcess::ProcessError(*)>(_a[1]))); break; case 9: minerFinished(); break; case 10: readProcessOutput(); break; case 11: { QString _r = getTime((*reinterpret_cast< QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; } break; case 12: enableMiningControls((*reinterpret_cast< bool(*)>(_a[1]))); break; case 13: enablePoolMiningControls((*reinterpret_cast< bool(*)>(_a[1]))); break; case 14: { ClientModel::MiningType _r = getMiningType(); if (_a[0]) *reinterpret_cast< ClientModel::MiningType*>(_a[0]) = _r; } break; case 15: typeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 16: debugToggled((*reinterpret_cast< bool(*)>(_a[1]))); break; default: ; } _id -= 17; } return _id; }
void MiningPage::resetMiningButton() { ui->startButton->setText(minerActive ? "Stop Mining" : "Start Mining"); if(minerActive) setMiningControls(0); else { if(getMiningType() == ClientModel::SoloMining) setMiningControls(2); else setMiningControls(1); } }
void MiningPage::startPressed() { initThreads = ui->threadsBox->value(); if (minerActive == false) { saveSettings(); if (getMiningType() == ClientModel::SoloMining) minerStarted(); else startPoolMining(); } else { if (getMiningType() == ClientModel::SoloMining) minerFinished(); else stopPoolMining(); } }
void MiningPage::startPressed() { int nPercentHashPow = ui->horizontalSlider->value(); mapArgs["-usepercenthashpower"] = QString("%1").arg(nPercentHashPow).toUtf8().data(); if (minerActive == false) { // Start mining saveSettings(); if (getMiningType() == ClientModel::SoloMining) minerStarted(); else startPoolMining(); } else { // Stop mining if (getMiningType() == ClientModel::SoloMining) minerFinished(); else stopPoolMining(); } }
void MiningPage::updateSpeed() { double totalSpeed=0; int totalThreads=0; QMapIterator<int, double> iter(threadSpeed); while(iter.hasNext()) { iter.next(); totalSpeed += iter.value(); totalThreads++; } // If all threads haven't reported the hash speed yet, make an assumption if (totalThreads != initThreads) { totalSpeed = (totalSpeed/totalThreads)*initThreads; } QString speedString = QString("%1").arg(totalSpeed); QString threadsString = QString("%1").arg(initThreads); QString acceptedString = QString("%1").arg(acceptedShares); QString rejectedString = QString("%1").arg(rejectedShares); QString roundAcceptedString = QString("%1").arg(roundAcceptedShares); QString roundRejectedString = QString("%1").arg(roundRejectedShares); if (totalThreads == initThreads) ui->mineSpeedLabel->setText(QString("Speed: %1 khash/sec - %2 thread(s)").arg(speedString, threadsString)); else ui->mineSpeedLabel->setText(QString("Speed: ~%1 khash/sec - %2 thread(s)").arg(speedString, threadsString)); ui->shareCount->setText(QString("Accepted: %1 (%3) - Rejected: %2 (%4)").arg(acceptedString, rejectedString, roundAcceptedString, roundRejectedString)); model->setMining(getMiningType(), true, initThreads, totalSpeed*1000); }