#include "EnergySaver.h" #include #include #include void EnergySaver::init(int interval) { EnergySaver* saver = instance(); saver->initTimer(interval*1000); saver->restartTimer(); } EnergySaver *EnergySaver::instance() { static EnergySaver* inst; if (inst == nullptr) { inst = new EnergySaver(); } return inst; } void EnergySaver::restartTimer() { if(mTimer.isActive()){ mTimer.stop(); } mTimer.start(); } void EnergySaver::initTimer(int interval) { connect(&mTimer, &QTimer::timeout, this, &EnergySaver::onTimeout); mTimer.setInterval(interval); mTimer.setSingleShot(true); } void EnergySaver::onTimeout() { std::cout << "Shutting down."; #ifndef _DEBUG QProcess p; p.start("/usr/local/sbin/do_shutdown.sh"); p.waitForFinished(); #endif }