diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-11-24 18:09:37 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-11-24 18:09:37 (GMT) |
commit | c7fb528f0d80f9d96a2d84444352386d5d4288dc (patch) | |
tree | bc52f4729e948c5021ab322e6ad739f315d41140 /SwifTools/Idle/ActualIdleDetector.cpp | |
parent | ea951bec1c4b84b739a9f435e0d17dbb99e4d724 (diff) | |
download | swift-contrib-c7fb528f0d80f9d96a2d84444352386d5d4288dc.zip swift-contrib-c7fb528f0d80f9d96a2d84444352386d5d4288dc.tar.bz2 |
Added SwifTools/Idle module.
Diffstat (limited to 'SwifTools/Idle/ActualIdleDetector.cpp')
-rw-r--r-- | SwifTools/Idle/ActualIdleDetector.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/SwifTools/Idle/ActualIdleDetector.cpp b/SwifTools/Idle/ActualIdleDetector.cpp new file mode 100644 index 0000000..2e3f307 --- /dev/null +++ b/SwifTools/Idle/ActualIdleDetector.cpp @@ -0,0 +1,29 @@ +#include "SwifTools/Idle/ActualIdleDetector.h" + +#include <boost/bind.hpp> + +#include "SwifTools/Idle/IdleQuerier.h" +#include "Swiften/Network/Timer.h" +#include "Swiften/Network/TimerFactory.h" + +namespace Swift { + +ActualIdleDetector::ActualIdleDetector(IdleQuerier* querier, TimerFactory* timerFactory, int refreshRateSeconds) : querier(querier), isIdle(false) { + timer = timerFactory->createTimer(refreshRateSeconds*1000); + timer->onTick.connect(boost::bind(&ActualIdleDetector::handleTimerTick, this)); + timer->start(); +} + +ActualIdleDetector::~ActualIdleDetector() { + timer->stop(); +} + +void ActualIdleDetector::handleTimerTick() { + bool idle = (querier->getIdleTimeSeconds() >= getIdleTimeSeconds()); + if (idle != isIdle) { + isIdle = idle; + onIdleChanged(isIdle); + } +} + +} |