You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qmk_firmware/quantum
Gergely Nagy 29f64d7a93 tap-dance: Major rework, to make it more reliable
This reworks how the tap-dance feature works: instead of one global
state, we have a state for each tap-dance key, so we can cancel them
when another tap-dance key is in flight. This fixes #527.

Since we have a state for each key, we can avoid situation where a keyup
would mess with our global state. This fixes #563.

And while here, we also make sure to fire events only once, and this
fixes #574.

There is one breaking change, though: tap-dance debugging support was
removed, because dumping the whole state would increase the firmware
size too much. Any keymap that made use of this, will have to be
updated (but there's no such keymap in the repo).

Also, there's a nice trick used in this rework: we need to iterate
through tap_dance_actions in a few places, to check for timeouts, and so
on. For this, we'd need to know the size of the array. We can't discover
that at compile-time, because tap-dance gets compiled separately. We'd
like to avoid having to terminate the list with a sentinel value,
because that would require updates to all keymaps that use the feature.
So, we keep track of the highest tap-dance code seen so far, and iterate
until that index.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
..
audio Add IN_LIKE_FLINT song 8 years ago
keymap_extras Removed unnecessary comment 8 years ago
process_keycode tap-dance: Major rework, to make it more reliable 8 years ago
serial_link Remove extra serial_link subdirectory 8 years ago
template fixes quantum template (actually) 8 years ago
tools Backlight abstraction and other changes (#439) 8 years ago
visualizer Move the visualizer_user file to keymap folder 8 years ago
analog.c quantum separated 9 years ago
analog.h quantum separated 9 years ago
config_common.h Backlight abstraction and other changes (#439) 8 years ago
keycode_config.c Cleans up quantum/keymap situation, removes extra lufa folders (#416) 8 years ago
keycode_config.h Add ChibiOS support for QMK (#465) 8 years ago
keymap.h fix typo 8 years ago
keymap_common.c Fixes midi functionality 8 years ago
light_ws2812.c updates rgblight implementation, makes non-timer stuff compatible with audio 8 years ago
light_ws2812.h Integrate WS2812 code into quantum core 9 years ago
matrix.c fix/annotate wait_us lines 8 years ago
quantum.c process_unicode: Call process_ucis() automatically 8 years ago
quantum.h Most ergodox keymaps compiles on Infinity 8 years ago
rgblight.c Simplify HSV->RGB calculation 8 years ago
rgblight.h updates rgblight implementation, makes non-timer stuff compatible with audio 8 years ago