private const int MAX_HIT_PER_SECOND = 30; //33.3333ms delay public HitFilter(FrmMain main, byte numPads, IRawToGui translater) { m_RawToGuiConverter = translater; m_HitVelocities = new byte?[numPads]; m_Timers = new Timer[numPads]; m_NumPads = numPads; m_Main = main; for (int i = 0; i < m_NumPads; ++i) { m_HitVelocities[i] = null; m_Timers[i] = new Timer(1.0f / MAX_HIT_PER_SECOND * 1000); m_Timers[i].AutoReset = true; m_Timers[i].Elapsed += new ElapsedEventHandler(HitFilterTimer_Elapsed); } }