]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - tmk_core/common/action_code.h
Merge branch 'usb_usb_editor'
[max/tmk_keyboard.git] / tmk_core / common / action_code.h
index bc40e2c6fbfeebf4c82cd832ef0b90e42c88501e..da93f77b2276760850e157364882497de2962145 100644 (file)
@@ -70,13 +70,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * 1001|oopp|BBBB BBBB   8-bit Bitwise Operation???
  *
  * ACT_LAYER_TAP(101x):
- * 101E|LLLL| keycode    On/Off with tap key
- * 101E|LLLL|1110 mods   On/Off with modifiers(0xE0-EF)
- * 101E|LLLL|1111 0000   Invert with tap toggle(0xF0)
- * 101E|LLLL|1111 0001   On/Off
- * 101E|LLLL|1111 0010   Off/On
- * 101E|LLLL|1111 0011   Set/Clear
- * 101E|LLLL|1111 xxxx   Reserved(0xF4-FF)
+ * 101E|LLLL| keycode    On/Off with tap key    (0x00-DF)[TAP]
+ * 101E|LLLL|1110 mods   On/Off with modifiers  (0xE0-EF)[NOT TAP]
+ * 101E|LLLL|1111 0000   Invert with tap toggle (0xF0)   [TAP]
+ * 101E|LLLL|1111 0001   On/Off                 (0xF1)   [NOT TAP]
+ * 101E|LLLL|1111 0010   Off/On                 (0xF2)   [NOT TAP]
+ * 101E|LLLL|1111 0011   Set/Clear              (0xF3)   [NOT TAP]
+ * 101E|LLLL|1111 xxxx   Reserved               (0xF4-FF)
  *   ELLLL: layer 0-31(E: extra bit for layer 16-31)
  *
  *
@@ -255,6 +255,7 @@ enum layer_pram_tap_op {
 #define ACTION_LAYER_TAP(layer, key)                (ACT_LAYER_TAP<<12 | (layer)<<8 | (key))
 /* Default Layer */
 #define ACTION_DEFAULT_LAYER_SET(layer)             ACTION_DEFAULT_LAYER_BIT_SET((layer)/4, 1<<((layer)%4))
+#define ACTION_DEFAULT_LAYER_TOGGLE(layer)          ACTION_DEFAULT_LAYER_BIT_XOR((layer)/4, 1<<((layer)%4))
 /* Layer Operation */
 #define ACTION_LAYER_CLEAR(on)                      ACTION_LAYER_BIT_AND(0, 0, (on))
 #define ACTION_LAYER_MOMENTARY(layer)               ACTION_LAYER_ON_OFF(layer)
@@ -266,7 +267,7 @@ enum layer_pram_tap_op {
 #define ACTION_LAYER_ON_OFF(layer)                  ACTION_LAYER_TAP((layer), OP_ON_OFF)
 #define ACTION_LAYER_OFF_ON(layer)                  ACTION_LAYER_TAP((layer), OP_OFF_ON)
 #define ACTION_LAYER_SET_CLEAR(layer)               ACTION_LAYER_TAP((layer), OP_SET_CLEAR)
-#define ACTION_LAYER_MODS(layer, mods)              ACTION_LAYER_TAP((layer), 0xe0 | (mods)&0x0f)
+#define ACTION_LAYER_MODS(layer, mods)              ACTION_LAYER_TAP((layer), 0xe0 | ((mods)&0x0f))
 /* With Tapping */
 #define ACTION_LAYER_TAP_KEY(layer, key)            ACTION_LAYER_TAP((layer), (key))
 #define ACTION_LAYER_TAP_TOGGLE(layer)              ACTION_LAYER_TAP((layer), OP_TAP_TOGGLE)