aboutsummaryrefslogtreecommitdiff
path: root/common/action.h
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-04-03 01:33:04 +0900
committertmk <nobody@nowhere>2013-04-03 01:33:04 +0900
commitd6122426923fd8f9efaaad06162c48de90e782bb (patch)
tree0cd619412954bfddf90104ac8b9af7bd4d6267d0 /common/action.h
parentc6d88d27956c4b76f8819fcdb076bf94a8f55868 (diff)
downloadqmk_firmware-d6122426923fd8f9efaaad06162c48de90e782bb.tar.gz
qmk_firmware-d6122426923fd8f9efaaad06162c48de90e782bb.zip
Fix ACTION_LAYER macros
Diffstat (limited to 'common/action.h')
-rw-r--r--common/action.h49
1 files changed, 23 insertions, 26 deletions
diff --git a/common/action.h b/common/action.h
index 4daae1d04..49c7879e6 100644
--- a/common/action.h
+++ b/common/action.h
@@ -290,10 +290,6 @@ enum layer_param_on {
290 ON_BOTH = 3, 290 ON_BOTH = 3,
291}; 291};
292 292
293enum layer_param_op {
294 OP_DEFAULT_LAYER = 0,
295};
296
297enum layer_param_bit_op { 293enum layer_param_bit_op {
298 OP_BIT_AND = 0, 294 OP_BIT_AND = 0,
299 OP_BIT_OR, 295 OP_BIT_OR,
@@ -308,35 +304,36 @@ enum layer_pram_tap_op {
308 OP_SET_CLEAR, 304 OP_SET_CLEAR,
309}; 305};
310 306
311/* Layer Operation 1000|ee00|ooov vvvv */
312#define ACTION_LAYER(op, val, on) (ACT_LAYER<<12 | (on)<<10 | (op)<<5 | val)
313/* Layer Bitwise Operation 1000|ooee|pppx BBBB */ 307/* Layer Bitwise Operation 1000|ooee|pppx BBBB */
314#define ACTION_LAYER_BITOP(op, part, bits, on) (ACT_LAYER<<12 | (op)<<10 | (on)<<8 | (part)<<5 | (bits)&0x1f) 308#define ACTION_LAYER_BITOP(op, part, bits, on) (ACT_LAYER<<12 | (op)<<10 | (on)<<8 | (part)<<5 | ((bits)&0x1f))
315/* Layer with Tapping 101x|LLLL| keycode */ 309/* Layer with Tapping 101x|LLLL| keycode */
316#define ACTION_LAYER_TAP(layer, key) (ACT_LAYER_TAP<<12 | (layer)<<8 | (key)) 310#define ACTION_LAYER_TAP(layer, key) (ACT_LAYER_TAP<<12 | (layer)<<8 | (key))
317 311
318/* Default Layer Operation */ 312/* Default Layer Operation */
319#define ACTION_DEFAULT_LAYER_SET(layer) ACTION_DEFAULT_LAYER(layer, ON_RELEASE) 313#define ACTION_DEFAULT_LAYER_SET(layer) ACTION_DEFAULT_LAYER_BIT_SET((layer)/4, 1<<((layer)%4))
320#define ACTION_DEFAULT_LAYER(layer, on) ACTION_LAYER(OP_DEFAULT_LAYER, layer, on)
321/* Layer Operation */ 314/* Layer Operation */
322#define ACTION_LAYER_CLEAR(on) ACTION_LAYER_AND(0x1f, (on)) 315#define ACTION_LAYER_CLEAR(on) ACTION_LAYER_AND(0x1f, (on))
323#define ACTION_LAYER_MOMENTARY(layer) ACTION_LAYER_ON_OFF(layer) 316#define ACTION_LAYER_MOMENTARY(layer) ACTION_LAYER_ON_OFF(layer)
324#define ACTION_LAYER_TOGGLE(layer) ACTION_LAYER_INVERT(layer, ON_RELEASE) 317#define ACTION_LAYER_TOGGLE(layer) ACTION_LAYER_INVERT(layer, ON_RELEASE)
325#define ACTION_LAYER_INVERT(layer, on) ACTION_LAYER_BIT_XOR((layer)/4, 1<<((layer)%4), (on)) 318#define ACTION_LAYER_INVERT(layer, on) ACTION_LAYER_BIT_XOR((layer)/4, 1<<((layer)%4), (on))
326#define ACTION_LAYER_ON(layer, on) ACTION_LAYER_BIT_OR((layer)/4, 1<<((layer)%4), (on)) 319#define ACTION_LAYER_ON(layer, on) ACTION_LAYER_BIT_OR( (layer)/4, 1<<((layer)%4), (on))
327#define ACTION_LAYER_OFF(layer, on) ACTION_LAYER_BIT_AND((layer)/4, ~(1<<((layer)%4)), (on)) 320#define ACTION_LAYER_OFF(layer, on) ACTION_LAYER_BIT_AND((layer)/4, ~(1<<((layer)%4)), (on))
328#define ACTION_LAYER_SET(layer, on) ACTION_LAYER_BIT_SET((layer)/4, 1<<((layer)%4), (on)) 321#define ACTION_LAYER_SET(layer, on) ACTION_LAYER_BIT_SET((layer)/4, 1<<((layer)%4), (on))
329#define ACTION_LAYER_ON_OFF(layer) ACTION_LAYER_TAP((layer), OP_ON_OFF) 322#define ACTION_LAYER_ON_OFF(layer) ACTION_LAYER_TAP((layer), OP_ON_OFF)
330#define ACTION_LAYER_OFF_ON(layer) ACTION_LAYER_TAP((layer), OP_OFF_ON) 323#define ACTION_LAYER_OFF_ON(layer) ACTION_LAYER_TAP((layer), OP_OFF_ON)
331#define ACTION_LAYER_SET_CLEAR(layer) ACTION_LAYER_TAP((layer), OP_SET_CLEAR) 324#define ACTION_LAYER_SET_CLEAR(layer) ACTION_LAYER_TAP((layer), OP_SET_CLEAR)
332/* Bitwise Operation */ 325/* Bitwise Operation */
333#define ACTION_LAYER_BIT_AND(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_AND, part, bits) 326#define ACTION_LAYER_BIT_AND(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_AND, (part), (bits), (on))
334#define ACTION_LAYER_BIT_OR(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_OR, part, bits) 327#define ACTION_LAYER_BIT_OR( part, bits, on) ACTION_LAYER_BITOP(OP_BIT_OR, (part), (bits), (on))
335#define ACTION_LAYER_BIT_XOR(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_XOR, part, bits) 328#define ACTION_LAYER_BIT_XOR(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_XOR, (part), (bits), (on))
336#define ACTION_LAYER_BIT_SET(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_SET, part, bits) 329#define ACTION_LAYER_BIT_SET(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_SET, (part), (bits), (on))
330#define ACTION_DEFAULT_LAYER_BIT_AND(part, bits) ACTION_LAYER_BITOP(OP_BIT_AND, (part), (bits), 0)
331#define ACTION_DEFAULT_LAYER_BIT_OR( part, bits) ACTION_LAYER_BITOP(OP_BIT_OR, (part), (bits), 0)
332#define ACTION_DEFAULT_LAYER_BIT_XOR(part, bits) ACTION_LAYER_BITOP(OP_BIT_XOR, (part), (bits), 0)
333#define ACTION_DEFAULT_LAYER_BIT_SET(part, bits) ACTION_LAYER_BITOP(OP_BIT_SET, (part), (bits), 0)
337/* with Tapping */ 334/* with Tapping */
338#define ACTION_LAYER_TAP_KEY(layer, key) ACTION_LAYER_TAP((layer), (key)) 335#define ACTION_LAYER_TAP_KEY(layer, key) ACTION_LAYER_TAP((layer), (key))
339#define ACTION_LAYER_TAP_TOGGLE(layer) ACTION_LAYER_TAP((layer), OP_TAP_TOGGLE) 336#define ACTION_LAYER_TAP_TOGGLE(layer) ACTION_LAYER_TAP((layer), OP_TAP_TOGGLE)
340 337
341 338
342/* 339/*