Files
renderbug-cpp/src/inputs/Idle.cpp
2023-12-23 11:11:49 +01:00

42 lines
701 B
C++

#include "Idle.h"
#include "../Static.h"
IdleTimer::IdleTimer()
: InputSource("IdleTimer"),
m_idleTime(60), m_secondsRemaining(0)
{
}
InputEvent
IdleTimer::read()
{
EVERY_N_SECONDS(1) {
if (m_secondsRemaining > 0) {
m_secondsRemaining -= 1;
if (m_secondsRemaining == 0) {
return InputEvent::IdleStart;
}
}
}
return InputEvent::None;
}
void
IdleTimer::handleEvent(const InputEvent& evt)
{
switch(evt.intent) {
case InputEvent::IdleStart:
m_secondsRemaining = 0;
break;
case InputEvent::IdleStop:
m_secondsRemaining = m_idleTime;
break;
default:
break;
}
}
STATIC_ALLOC(IdleTimer);
STATIC_TASK(IdleTimer);