diff options
| author | Drashna Jaelre <drashna@live.com> | 2023-02-11 15:23:07 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-12 10:23:07 +1100 |
| commit | fe02abc47921428fe6eb59ca817bfd082f0de4bf (patch) | |
| tree | 5bc3f68ec782969cfed93660c21704df4b530823 /quantum/quantum.c | |
| parent | 40028437971fbca33f49e1d0b683b3b6e2dc9a61 (diff) | |
[Core] Tri Layer Keys (#19795)
Co-authored-by: wilba <wilba@wilba.tech>
Co-authored-by: Pablo MartÃnez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'quantum/quantum.c')
| -rw-r--r-- | quantum/quantum.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c index 5554ecab32..0587f215fe 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c | |||
| @@ -343,6 +343,9 @@ bool process_record_quantum(keyrecord_t *record) { | |||
| 343 | #ifdef AUTOCORRECT_ENABLE | 343 | #ifdef AUTOCORRECT_ENABLE |
| 344 | process_autocorrect(keycode, record) && | 344 | process_autocorrect(keycode, record) && |
| 345 | #endif | 345 | #endif |
| 346 | #ifdef TRI_LAYER_ENABLE | ||
| 347 | process_tri_layer(keycode, record) && | ||
| 348 | #endif | ||
| 346 | true)) { | 349 | true)) { |
| 347 | return false; | 350 | return false; |
| 348 | } | 351 | } |
| @@ -443,16 +446,6 @@ void set_single_persistent_default_layer(uint8_t default_layer) { | |||
| 443 | default_layer_set((layer_state_t)1 << default_layer); | 446 | default_layer_set((layer_state_t)1 << default_layer); |
| 444 | } | 447 | } |
| 445 | 448 | ||
| 446 | layer_state_t update_tri_layer_state(layer_state_t state, uint8_t layer1, uint8_t layer2, uint8_t layer3) { | ||
| 447 | layer_state_t mask12 = ((layer_state_t)1 << layer1) | ((layer_state_t)1 << layer2); | ||
| 448 | layer_state_t mask3 = (layer_state_t)1 << layer3; | ||
| 449 | return (state & mask12) == mask12 ? (state | mask3) : (state & ~mask3); | ||
| 450 | } | ||
| 451 | |||
| 452 | void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { | ||
| 453 | layer_state_set(update_tri_layer_state(layer_state, layer1, layer2, layer3)); | ||
| 454 | } | ||
| 455 | |||
| 456 | //------------------------------------------------------------------------------ | 449 | //------------------------------------------------------------------------------ |
| 457 | // Override these functions in your keymap file to play different tunes on | 450 | // Override these functions in your keymap file to play different tunes on |
| 458 | // different events such as startup and bootloader jump | 451 | // different events such as startup and bootloader jump |
