diff options
Diffstat (limited to 'quantum/encoder.c')
-rw-r--r-- | quantum/encoder.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/quantum/encoder.c b/quantum/encoder.c index 3aee340249..1046fe6cc3 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -77,7 +77,29 @@ __attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { } __attribute__((weak)) bool encoder_update_kb(uint8_t index, bool clockwise) { - return encoder_update_user(index, clockwise); + bool res = encoder_update_user(index, clockwise); +#if !defined(ENCODER_TESTS) + if (res) { + if (clockwise) { +# if defined(EXTRAKEY_ENABLE) + tap_code_delay(KC_VOLU, 10); +# elif defined(MOUSEKEY_ENABLE) + tap_code_delay(KC_MS_WH_UP, 10); +# else + tap_code_delay(KC_PGDN, 10); +# endif + } else { +# if defined(EXTRAKEY_ENABLE) + tap_code_delay(KC_VOLD, 10); +# elif defined(MOUSEKEY_ENABLE) + tap_code_delay(KC_MS_WH_DOWN, 10); +# else + tap_code_delay(KC_PGUP, 10); +# endif + } + } +#endif // ENCODER_TESTS + return res; } __attribute__((weak)) bool should_process_encoder(void) { @@ -147,12 +169,12 @@ void encoder_init(void) { #ifdef ENCODER_MAP_ENABLE static void encoder_exec_mapping(uint8_t index, bool clockwise) { // The delays below cater for Windows and its wonderful requirements. - action_exec(clockwise ? ENCODER_CW_EVENT(index, true) : ENCODER_CCW_EVENT(index, true)); + action_exec(clockwise ? MAKE_ENCODER_CW_EVENT(index, true) : MAKE_ENCODER_CCW_EVENT(index, true)); # if ENCODER_MAP_KEY_DELAY > 0 wait_ms(ENCODER_MAP_KEY_DELAY); # endif // ENCODER_MAP_KEY_DELAY > 0 - action_exec(clockwise ? ENCODER_CW_EVENT(index, false) : ENCODER_CCW_EVENT(index, false)); + action_exec(clockwise ? MAKE_ENCODER_CW_EVENT(index, false) : MAKE_ENCODER_CCW_EVENT(index, false)); # if ENCODER_MAP_KEY_DELAY > 0 wait_ms(ENCODER_MAP_KEY_DELAY); # endif // ENCODER_MAP_KEY_DELAY > 0 |