Added pause-on-active option

Windows only for now. When set to true, pauses mining when user touches mouse or keyboard.
This commit is contained in:
SChernykh 2021-02-14 15:32:18 +01:00
parent 8e3fec5768
commit 82830e359a
13 changed files with 57 additions and 6 deletions

View file

@ -352,6 +352,7 @@ public:
Algorithms algorithms;
bool active = false;
bool battery_power = false;
bool user_active = false;
bool enabled = true;
bool reset = true;
Controller *controller;
@ -629,18 +630,32 @@ void xmrig::Miner::onTimer(const Timer *)
if (d_ptr->controller->config()->isPauseOnBattery()) {
const bool battery_power = Platform::isOnBatteryPower();
if (battery_power && d_ptr->enabled) {
if (battery_power && !d_ptr->battery_power) {
LOG_INFO("%s " YELLOW_BOLD("on battery power"), Tags::miner());
d_ptr->battery_power = true;
setEnabled(false);
}
else if (!battery_power && !d_ptr->enabled && d_ptr->battery_power) {
else if (!battery_power && d_ptr->battery_power) {
LOG_INFO("%s " GREEN_BOLD("on AC power"), Tags::miner());
d_ptr->battery_power = false;
setEnabled(true);
}
}
if (d_ptr->controller->config()->isPauseOnActive()) {
const bool user_active = Platform::isUserActive();
if (user_active && !d_ptr->user_active) {
LOG_INFO("%s " YELLOW_BOLD("user active"), Tags::miner());
d_ptr->user_active = true;
}
else if (!user_active && d_ptr->user_active) {
LOG_INFO("%s " GREEN_BOLD("user inactive"), Tags::miner());
d_ptr->user_active = false;
}
}
const bool batteryEnabled = !(d_ptr->controller->config()->isPauseOnBattery() && d_ptr->battery_power);
const bool userActiveEnabled = !(d_ptr->controller->config()->isPauseOnActive() && d_ptr->user_active);
setEnabled(batteryEnabled && userActiveEnabled);
if (stopMiner) {
stop();
}