mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-11-24 20:32:58 +00:00
Use TAP_CODE_DELAY
for encoder mapping by default (#18098)
This commit is contained in:
parent
7ef6c179e4
commit
d910e8df77
@ -88,6 +88,14 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
|||||||
#endif
|
#endif
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Using encoder mapping pumps events through the normal QMK keycode processing pipeline, resulting in a _keydown/keyup_ combination pushed through `process_record_xxxxx()`. To configure the amount of time between the encoder "keyup" and "keydown", you can add the following to your `config.h`:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#define ENCODER_MAP_KEY_DELAY 10
|
||||||
|
```
|
||||||
|
|
||||||
|
?> By default, the encoder map delay matches the value of `TAP_CODE_DELAY`.
|
||||||
|
|
||||||
## Callbacks
|
## Callbacks
|
||||||
|
|
||||||
When not using `ENCODER_MAP_ENABLE = yes`, the callback functions can be inserted into your `<keyboard>.c`:
|
When not using `ENCODER_MAP_ENABLE = yes`, the callback functions can be inserted into your `<keyboard>.c`:
|
||||||
|
@ -24,7 +24,8 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#ifndef ENCODER_MAP_KEY_DELAY
|
#ifndef ENCODER_MAP_KEY_DELAY
|
||||||
# define ENCODER_MAP_KEY_DELAY 2
|
# include "action.h"
|
||||||
|
# define ENCODER_MAP_KEY_DELAY TAP_CODE_DELAY
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(ENCODER_RESOLUTIONS) && !defined(ENCODER_RESOLUTION)
|
#if !defined(ENCODER_RESOLUTIONS) && !defined(ENCODER_RESOLUTION)
|
||||||
@ -143,9 +144,14 @@ void encoder_init(void) {
|
|||||||
static void encoder_exec_mapping(uint8_t index, bool clockwise) {
|
static void encoder_exec_mapping(uint8_t index, bool clockwise) {
|
||||||
// The delays below cater for Windows and its wonderful requirements.
|
// 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 ? ENCODER_CW_EVENT(index, true) : ENCODER_CCW_EVENT(index, true));
|
||||||
|
# if ENCODER_MAP_KEY_DELAY > 0
|
||||||
wait_ms(ENCODER_MAP_KEY_DELAY);
|
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 ? ENCODER_CW_EVENT(index, false) : ENCODER_CCW_EVENT(index, false));
|
||||||
|
# if ENCODER_MAP_KEY_DELAY > 0
|
||||||
wait_ms(ENCODER_MAP_KEY_DELAY);
|
wait_ms(ENCODER_MAP_KEY_DELAY);
|
||||||
|
# endif // ENCODER_MAP_KEY_DELAY > 0
|
||||||
}
|
}
|
||||||
#endif // ENCODER_MAP_ENABLE
|
#endif // ENCODER_MAP_ENABLE
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user