- #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;
-
- }
-
- }
|