#include "EnergySaver.h" #include EnergySaver::EnergySaver(QObject *parent) : QObject(parent) { } void EnergySaver::init(int interval) { EnergySaver* saver = instance(); saver->initTimer(interval); saver->restartTimer(); } /** * @brief Implements the singleton pattern. * @return Instance * * If no instance has been created yet, create new instance. */ EnergySaver *EnergySaver::instance() { static EnergySaver* inst; if (inst == nullptr) { inst = new EnergySaver(); } return inst; } void EnergySaver::restartTimer() { if(mTimer.isActive()){ mTimer.stop(); } mTimer.start(); } /** * @brief Initialize and connect timer. * @param interval Timeout interval in millisecond. */ void EnergySaver::initTimer(int interval) { connect(&mTimer, &QTimer::timeout, this, &EnergySaver::onTimeout); mTimer.setInterval(interval); mTimer.setSingleShot(true); } /** * @brief Behavior on timeout: shut down RaspberryPi. * @todo Call shutdown script. */ void EnergySaver::onTimeout() { qDebug() << "shutting down."; }