Browse Source

[Erez & Jack] Makes tri-layer available across Quantum

Erez Zukerman 9 years ago
parent
commit
9cfc74c35b
3 changed files with 12 additions and 9 deletions
  1. 0 9
      keyboard/planck/keymaps/default/keymap.c
  2. 8 0
      quantum/keymap_common.c
  3. 4 0
      quantum/keymap_common.h

+ 0 - 9
keyboard/planck/keymaps/default/keymap.c

@@ -174,16 +174,7 @@ float tone_dv[][2] = {
 };
 };
 #endif
 #endif
 
 
-#define IS_LAYER_ON(layer)  ((layer_state) & (1<<(layer)))
-#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer)))
 
 
-void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
-  if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
-    layer_on(layer3);
-  } else {
-    layer_off(layer3);
-  }
-}
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 {
 {
   // MACRODOWN only works in this function
   // MACRODOWN only works in this function

+ 8 - 0
quantum/keymap_common.c

@@ -291,3 +291,11 @@ action_t keymap_func_to_action(uint16_t keycode)
 	// For FUNC without 8bit limit
 	// For FUNC without 8bit limit
     return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) };
     return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) };
 }
 }
+
+void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
+  if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
+    layer_on(layer3);
+  } else {
+    layer_off(layer3);
+  }
+}

+ 4 - 0
quantum/keymap_common.h

@@ -208,5 +208,9 @@ extern const uint16_t fn_actions[];
 #define UNICODE(n) (n | 0x8000)
 #define UNICODE(n) (n | 0x8000)
 #define UC(n) UNICODE(n)
 #define UC(n) UNICODE(n)
 
 
+// For tri-layer
+void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3);
+#define IS_LAYER_ON(layer)  ((layer_state) & (1UL<<(layer)))
+#define IS_LAYER_OFF(layer) ((!layer_state) & (1UL<<(layer)))
 
 
 #endif
 #endif