aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboard/planck/keymaps/default/keymap.c9
-rw-r--r--quantum/keymap_common.c8
-rw-r--r--quantum/keymap_common.h4
3 files changed, 12 insertions, 9 deletions
diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c
index dee2840f2..56092d04f 100644
--- a/keyboard/planck/keymaps/default/keymap.c
+++ b/keyboard/planck/keymaps/default/keymap.c
@@ -174,16 +174,7 @@ float tone_dv[][2] = {
174}; 174};
175#endif 175#endif
176 176
177#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer)))
178#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer)))
179 177
180void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
181 if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
182 layer_on(layer3);
183 } else {
184 layer_off(layer3);
185 }
186}
187const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 178const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
188{ 179{
189 // MACRODOWN only works in this function 180 // MACRODOWN only works in this function
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c
index e3030a886..3a00d36f0 100644
--- a/quantum/keymap_common.c
+++ b/quantum/keymap_common.c
@@ -291,3 +291,11 @@ action_t keymap_func_to_action(uint16_t keycode)
291 // For FUNC without 8bit limit 291 // For FUNC without 8bit limit
292 return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) }; 292 return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) };
293} 293}
294
295void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
296 if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
297 layer_on(layer3);
298 } else {
299 layer_off(layer3);
300 }
301}
diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h
index 4a877d2a7..7452a1ff3 100644
--- a/quantum/keymap_common.h
+++ b/quantum/keymap_common.h
@@ -208,5 +208,9 @@ extern const uint16_t fn_actions[];
208#define UNICODE(n) (n | 0x8000) 208#define UNICODE(n) (n | 0x8000)
209#define UC(n) UNICODE(n) 209#define UC(n) UNICODE(n)
210 210
211// For tri-layer
212void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3);
213#define IS_LAYER_ON(layer) ((layer_state) & (1UL<<(layer)))
214#define IS_LAYER_OFF(layer) ((!layer_state) & (1UL<<(layer)))
211 215
212#endif 216#endif