diff options
Diffstat (limited to 'quantum/process_keycode/process_haptic.c')
| -rw-r--r-- | quantum/process_keycode/process_haptic.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/quantum/process_keycode/process_haptic.c b/quantum/process_keycode/process_haptic.c index 64d455d00..85b2ffcdd 100644 --- a/quantum/process_keycode/process_haptic.c +++ b/quantum/process_keycode/process_haptic.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include "process_haptic.h" | 17 | #include "process_haptic.h" |
| 18 | #include "quantum_keycodes.h" | 18 | #include "quantum_keycodes.h" |
| 19 | #include "action_tapping.h" | 19 | #include "action_tapping.h" |
| 20 | #include "usb_device_state.h" | ||
| 20 | 21 | ||
| 21 | __attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record) { | 22 | __attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record) { |
| 22 | switch (keycode) { | 23 | switch (keycode) { |
| @@ -30,8 +31,9 @@ __attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t | |||
| 30 | case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: | 31 | case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: |
| 31 | if (record->tap.count == 0) return false; | 32 | if (record->tap.count == 0) return false; |
| 32 | break; | 33 | break; |
| 33 | case KC_LCTRL ... KC_RGUI: | 34 | case KC_LEFT_CTRL ... KC_RIGHT_GUI: |
| 34 | case QK_MOMENTARY ... QK_MOMENTARY_MAX: | 35 | case QK_MOMENTARY ... QK_MOMENTARY_MAX: |
| 36 | case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: | ||
| 35 | #endif | 37 | #endif |
| 36 | #ifdef NO_HAPTIC_FN | 38 | #ifdef NO_HAPTIC_FN |
| 37 | case KC_FN0 ... KC_FN31: | 39 | case KC_FN0 ... KC_FN31: |
| @@ -42,34 +44,34 @@ __attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t | |||
| 42 | #ifdef NO_HAPTIC_PUNCTUATION | 44 | #ifdef NO_HAPTIC_PUNCTUATION |
| 43 | case KC_ENTER: | 45 | case KC_ENTER: |
| 44 | case KC_ESCAPE: | 46 | case KC_ESCAPE: |
| 45 | case KC_BSPACE: | 47 | case KC_BACKSPACE: |
| 46 | case KC_SPACE: | 48 | case KC_SPACE: |
| 47 | case KC_MINUS: | 49 | case KC_MINUS: |
| 48 | case KC_EQUAL: | 50 | case KC_EQUAL: |
| 49 | case KC_LBRACKET: | 51 | case KC_LEFT_BRACKET: |
| 50 | case KC_RBRACKET: | 52 | case KC_RIGHT_BRACKET: |
| 51 | case KC_BSLASH: | 53 | case KC_BACKSLASH: |
| 52 | case KC_NONUS_HASH: | 54 | case KC_NONUS_HASH: |
| 53 | case KC_SCOLON: | 55 | case KC_SEMICOLON: |
| 54 | case KC_QUOTE: | 56 | case KC_QUOTE: |
| 55 | case KC_GRAVE: | 57 | case KC_GRAVE: |
| 56 | case KC_COMMA: | 58 | case KC_COMMA: |
| 57 | case KC_SLASH: | 59 | case KC_SLASH: |
| 58 | case KC_DOT: | 60 | case KC_DOT: |
| 59 | case KC_NONUS_BSLASH: | 61 | case KC_NONUS_BACKSLASH: |
| 60 | #endif | 62 | #endif |
| 61 | #ifdef NO_HAPTIC_LOCKKEYS | 63 | #ifdef NO_HAPTIC_LOCKKEYS |
| 62 | case KC_CAPSLOCK: | 64 | case KC_CAPS_LOCK: |
| 63 | case KC_SCROLLLOCK: | 65 | case KC_SCROLL_LOCK: |
| 64 | case KC_NUMLOCK: | 66 | case KC_NUM_LOCK: |
| 65 | #endif | 67 | #endif |
| 66 | #ifdef NO_HAPTIC_NAV | 68 | #ifdef NO_HAPTIC_NAV |
| 67 | case KC_PSCREEN: | 69 | case KC_PRINT_SCREEN: |
| 68 | case KC_PAUSE: | 70 | case KC_PAUSE: |
| 69 | case KC_INSERT: | 71 | case KC_INSERT: |
| 70 | case KC_DELETE: | 72 | case KC_DELETE: |
| 71 | case KC_PGDOWN: | 73 | case KC_PAGE_DOWN: |
| 72 | case KC_PGUP: | 74 | case KC_PAGE_UP: |
| 73 | case KC_LEFT: | 75 | case KC_LEFT: |
| 74 | case KC_UP: | 76 | case KC_UP: |
| 75 | case KC_RIGHT: | 77 | case KC_RIGHT: |
| @@ -130,7 +132,7 @@ bool process_haptic(uint16_t keycode, keyrecord_t *record) { | |||
| 130 | } | 132 | } |
| 131 | } | 133 | } |
| 132 | 134 | ||
| 133 | if (haptic_get_enable()) { | 135 | if (haptic_get_enable() && ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state == USB_DEVICE_STATE_CONFIGURED))) { |
| 134 | if (record->event.pressed) { | 136 | if (record->event.pressed) { |
| 135 | // keypress | 137 | // keypress |
| 136 | if (haptic_get_feedback() < 2 && get_haptic_enabled_key(keycode, record)) { | 138 | if (haptic_get_feedback() < 2 && get_haptic_enabled_key(keycode, record)) { |
