private void tmrProcess_Tick(object sender, EventArgs e) { byte keyCount = 0; for (int i = 0; i < buttonCount; i++) { keyCount += btns[i].Process(); } kpsHandler.Update(keyCount); }
private void tmrProcess_Tick(object sender, EventArgs e) { byte keyCount = 0; uint eventmask = 0; for (int i = 0; i < buttonCount; i++) { byte state = btns[i].Process(); if (state == 1 && ((previousbuttonstate >> i) & 1) == 0) { previousbuttonstate |= 1 << i; keyCount += state; } else if (state == 0) { previousbuttonstate &= ~(1 << i); } eventmask = (eventmask << 1) | state; } eventmask <<= (MAX_BUTTONS - buttonCount); kpsHandler.Update(keyCount); UpdateRecord(eventmask); }