105 lines
1.6 KiB
C++
105 lines
1.6 KiB
C++
#include "etools.h"
|
|
|
|
e2d::ETimer::ETimer()
|
|
: m_bRunning(false)
|
|
, m_bWaiting(false)
|
|
, m_nRunTimes(0)
|
|
, m_pParentScene(nullptr)
|
|
, m_pParentNode(nullptr)
|
|
, m_Callback([](int) {})
|
|
, m_nInterval(20LL)
|
|
{
|
|
}
|
|
|
|
e2d::ETimer::ETimer(const EString & name)
|
|
: ETimer()
|
|
{
|
|
m_sName = name;
|
|
}
|
|
|
|
e2d::ETimer::ETimer(const TIMER_CALLBACK & callback, LONGLONG delay /* = 20LL */)
|
|
: ETimer()
|
|
{
|
|
m_Callback = callback;
|
|
}
|
|
|
|
e2d::ETimer::ETimer(const EString & name, const TIMER_CALLBACK & callback, LONGLONG delay /* = 20LL */)
|
|
: ETimer()
|
|
{
|
|
m_sName = name;
|
|
m_Callback = callback;
|
|
}
|
|
|
|
bool e2d::ETimer::isRunning() const
|
|
{
|
|
return m_bRunning && !m_bWaiting;
|
|
}
|
|
|
|
bool e2d::ETimer::isWaiting() const
|
|
{
|
|
return m_bWaiting;
|
|
}
|
|
|
|
void e2d::ETimer::start()
|
|
{
|
|
m_bRunning = true;
|
|
m_tLast = std::chrono::steady_clock::now();
|
|
}
|
|
|
|
void e2d::ETimer::stop()
|
|
{
|
|
m_bRunning = false;
|
|
}
|
|
|
|
void e2d::ETimer::_wait()
|
|
{
|
|
m_bWaiting = true;
|
|
}
|
|
|
|
void e2d::ETimer::_notify()
|
|
{
|
|
m_bWaiting = false;
|
|
m_tLast = std::chrono::steady_clock::now();
|
|
}
|
|
|
|
e2d::EString e2d::ETimer::getName() const
|
|
{
|
|
return m_sName;
|
|
}
|
|
|
|
e2d::EScene * e2d::ETimer::getParentScene() const
|
|
{
|
|
return m_pParentScene;
|
|
}
|
|
|
|
e2d::ENode * e2d::ETimer::getParentNode() const
|
|
{
|
|
return m_pParentNode;
|
|
}
|
|
|
|
void e2d::ETimer::setName(const EString & name)
|
|
{
|
|
m_sName = name;
|
|
}
|
|
|
|
void e2d::ETimer::setInterval(LONGLONG interval)
|
|
{
|
|
m_nInterval = max(interval, 0);
|
|
}
|
|
|
|
void e2d::ETimer::bindWith(EScene * pParentScene)
|
|
{
|
|
ETimerManager::bindTimer(this, pParentScene);
|
|
}
|
|
|
|
void e2d::ETimer::bindWith(ENode * pParentNode)
|
|
{
|
|
ETimerManager::bindTimer(this, pParentNode);
|
|
}
|
|
|
|
void e2d::ETimer::_runCallback()
|
|
{
|
|
m_Callback(m_nRunTimes);
|
|
m_nRunTimes++;
|
|
}
|