12345678910111213141516171819202122232425262728 |
- #include "tap-hold.h"
- #ifndef TAP_HOLD_TIME
- #define TAP_HOLD_TIME 200
- #endif
- uint16_t tap_hold_timer;
- void tap_or_hold( keyrecord_t *record, uint16_t tap, uint16_t hold ) {
- if ( record->event.pressed ) {
- tap_hold_timer = timer_read();
- } else {
- if ( tap_hold_timer &&
- timer_elapsed( tap_hold_timer ) > TAP_HOLD_TIME ) {
- /* Held down then released */
- tap_code( hold );
- } else {
- /* Quickly Tapped */
- tap_code( tap );
- }
- tap_hold_timer = 0;
- }
- }
|