summaryrefslogtreecommitdiff
path: root/quantum/quantum.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c13
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
446layer_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
452void 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