void AutoRepeatKey::update(float a_fElapsed) { if (m_nKey == KeyboardEvent::KC_UNASSIGNED) return; m_fElapsed += a_fElapsed; if (m_fElapsed < m_fDelay) return; m_fElapsed -= m_fDelay; m_fDelay = m_fRepeatDelay; do { repeatKey(m_nKey, m_nChar); m_fElapsed -= m_fRepeatDelay; } while (m_fElapsed >= m_fRepeatDelay); m_fElapsed = 0; }
///======================================================================== void CDIKeyboard::transitionOccured(CEventServer *server, const IInputDeviceEvent *nextMessage) { repeatKey(buildDateFromEvent(nextMessage), server); }