diff options
| author | tmk <nobody@nowhere> | 2013-03-05 02:42:28 +0900 |
|---|---|---|
| committer | tmk <nobody@nowhere> | 2013-03-05 02:42:28 +0900 |
| commit | 1aa067e5414873559f59e310f38bb43e8803a45f (patch) | |
| tree | 7dcf57fd127ae32e1828a6e28a60dbcc5220c56c /common | |
| parent | 083c75816fbad6bcbbc268eb77e5011d2d16656b (diff) | |
| download | qmk_firmware-1aa067e5414873559f59e310f38bb43e8803a45f.tar.gz qmk_firmware-1aa067e5414873559f59e310f38bb43e8803a45f.zip | |
Clean action.h and add keymap doc
Diffstat (limited to 'common')
| -rw-r--r-- | common/action.c | 6 | ||||
| -rw-r--r-- | common/action.h | 68 |
2 files changed, 20 insertions, 54 deletions
diff --git a/common/action.c b/common/action.c index 7ca481fba..15e125a3e 100644 --- a/common/action.c +++ b/common/action.c | |||
| @@ -360,6 +360,7 @@ static void process_action(keyrecord_t *record) | |||
| 360 | case OP_RESET: | 360 | case OP_RESET: |
| 361 | switch (action.layer.val & 0x03) { | 361 | switch (action.layer.val & 0x03) { |
| 362 | case 0: | 362 | case 0: |
| 363 | // NOTE: reserved | ||
| 363 | overlay_clear(); | 364 | overlay_clear(); |
| 364 | keymap_clear(); | 365 | keymap_clear(); |
| 365 | break; | 366 | break; |
| @@ -379,6 +380,7 @@ static void process_action(keyrecord_t *record) | |||
| 379 | overlay_clear(); | 380 | overlay_clear(); |
| 380 | keymap_clear(); | 381 | keymap_clear(); |
| 381 | break; | 382 | break; |
| 383 | /* NOTE: 4-7 rserved */ | ||
| 382 | } | 384 | } |
| 383 | break; | 385 | break; |
| 384 | /* Keymap Reset default layer */ | 386 | /* Keymap Reset default layer */ |
| @@ -519,6 +521,7 @@ static void process_action(keyrecord_t *record) | |||
| 519 | // Overlay Invert bit4 | 521 | // Overlay Invert bit4 |
| 520 | case OP_INV4 | 0: | 522 | case OP_INV4 | 0: |
| 521 | if (action.layer.val == 0) { | 523 | if (action.layer.val == 0) { |
| 524 | // NOTE: reserved for future use | ||
| 522 | overlay_clear(); | 525 | overlay_clear(); |
| 523 | } else { | 526 | } else { |
| 524 | overlay_set(overlay_stat ^ action.layer.val); | 527 | overlay_set(overlay_stat ^ action.layer.val); |
| @@ -526,6 +529,7 @@ static void process_action(keyrecord_t *record) | |||
| 526 | break; | 529 | break; |
| 527 | case OP_INV4 | 1: | 530 | case OP_INV4 | 1: |
| 528 | if (action.layer.val == 0) { | 531 | if (action.layer.val == 0) { |
| 532 | // on pressed | ||
| 529 | if (event.pressed) overlay_clear(); | 533 | if (event.pressed) overlay_clear(); |
| 530 | } else { | 534 | } else { |
| 531 | overlay_set(overlay_stat ^ action.layer.val<<4); | 535 | overlay_set(overlay_stat ^ action.layer.val<<4); |
| @@ -533,6 +537,7 @@ static void process_action(keyrecord_t *record) | |||
| 533 | break; | 537 | break; |
| 534 | case OP_INV4 | 2: | 538 | case OP_INV4 | 2: |
| 535 | if (action.layer.val == 0) { | 539 | if (action.layer.val == 0) { |
| 540 | // on released | ||
| 536 | if (!event.pressed) overlay_clear(); | 541 | if (!event.pressed) overlay_clear(); |
| 537 | } else { | 542 | } else { |
| 538 | overlay_set(overlay_stat ^ action.layer.val<<8); | 543 | overlay_set(overlay_stat ^ action.layer.val<<8); |
| @@ -540,6 +545,7 @@ static void process_action(keyrecord_t *record) | |||
| 540 | break; | 545 | break; |
| 541 | case OP_INV4 | 3: | 546 | case OP_INV4 | 3: |
| 542 | if (action.layer.val == 0) { | 547 | if (action.layer.val == 0) { |
| 548 | // on both | ||
| 543 | overlay_clear(); | 549 | overlay_clear(); |
| 544 | } else { | 550 | } else { |
| 545 | overlay_set(overlay_stat ^ action.layer.val<<12); | 551 | overlay_set(overlay_stat ^ action.layer.val<<12); |
diff --git a/common/action.h b/common/action.h index a8c56a613..ead917983 100644 --- a/common/action.h +++ b/common/action.h | |||
| @@ -298,90 +298,50 @@ enum layer_params { | |||
| 298 | /* | 298 | /* |
| 299 | * Default Layer | 299 | * Default Layer |
| 300 | */ | 300 | */ |
| 301 | #define ACTION_DEFAULT_LAYER ACTION(ACT_KEYMAP, 0<<8 | OP_RESET | 0) | 301 | #define ACTION_DEFAULT_LAYER ACTION(ACT_KEYMAP, ON_RELEASE<<8 | OP_RESET | 0) |
| 302 | #define ACTION_DEFAULT_LAYER_SET(layer) ACTION_KEYMAP_RESET(layer) | 302 | #define ACTION_DEFAULT_LAYER_SET(layer) ACTION_DEFAULT_LAYER_TO(layer, ON_RELEASE) |
| 303 | #define ACTION_DEFAULT_LAYER_SET_P(layer) ACTION_KEYMAP_RESET_P(layer) | 303 | #define ACTION_DEFAULT_LAYER_TO(layer, on) ACTION(ACT_KEYMAP, (layer)<<8 | OP_RESET | (on)) |
| 304 | #define ACTION_DEFAULT_LAYER_SET_R(layer) ACTION_KEYMAP_RESET_R(layer) | ||
| 305 | #define ACTION_DEFAULT_LAYER_SET_B(layer) ACTION_KEYMAP_RESET_B(layer) | ||
| 306 | #define ACTION_SET_DEFAULT_LAYER(layer) ACTION_KEYMAP_RESET(layer) | ||
| 307 | #define ACTION_SET_DEFAULT_LAYER_P(layer) ACTION_KEYMAP_RESET_P(layer) | ||
| 308 | #define ACTION_SET_DEFAULT_LAYER_R(layer) ACTION_KEYMAP_RESET_R(layer) | ||
| 309 | #define ACTION_SET_DEFAULT_LAYER_B(layer) ACTION_KEYMAP_RESET_B(layer) | ||
| 310 | /* | 304 | /* |
| 311 | * Keymap Layer | 305 | * Keymap Layer |
| 312 | */ | 306 | */ |
| 313 | #define ACTION_KEYMAP(layer) ACTION_KEYMAP_MOMENTARY(layer) | ||
| 314 | #define ACTION_KEYMAP_MOMENTARY(layer) ACTION_KEYMAP_ON_OFF(layer) | 307 | #define ACTION_KEYMAP_MOMENTARY(layer) ACTION_KEYMAP_ON_OFF(layer) |
| 315 | #define ACTION_KEYMAP_TOGGLE(layer) ACTION_KEYMAP_INV_R(layer) | 308 | #define ACTION_KEYMAP_TOGGLE(layer) ACTION_KEYMAP_INV(layer, ON_RELEASE) |
| 316 | /* Keymap Set and clear overaly */ | ||
| 317 | #define ACTION_KEYMAP_RESET(layer) ACTION_KEYMAP_RESET_R(layer) | ||
| 318 | #define ACTION_KEYMAP_RESET_P(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_RESET | ON_PRESS) | ||
| 319 | #define ACTION_KEYMAP_RESET_R(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_RESET | ON_RELEASE) | ||
| 320 | #define ACTION_KEYMAP_RESET_B(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_RESET | ON_BOTH) | ||
| 321 | /* Keymap Invert */ | 309 | /* Keymap Invert */ |
| 322 | #define ACTION_KEYMAP_INV(layer) ACTION_KEYMAP_INV_B(layer) | 310 | #define ACTION_KEYMAP_INV(layer, on) ACTION(ACT_KEYMAP, (layer)<<8 | OP_INV | (on)) |
| 323 | #define ACTION_KEYMAP_TAP_TOGGLE(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_INV | 0) | 311 | #define ACTION_KEYMAP_TAP_TOGGLE(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_INV | 0) |
| 324 | #define ACTION_KEYMAP_INV_P(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_INV | ON_PRESS) | ||
| 325 | #define ACTION_KEYMAP_INV_R(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_INV | ON_RELEASE) | ||
| 326 | #define ACTION_KEYMAP_INV_B(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_INV | ON_BOTH) | ||
| 327 | /* Keymap On */ | 312 | /* Keymap On */ |
| 328 | #define ACTION_KEYMAP_ON(layer) ACTION_KEYMAP_ON_OFF(layer) | 313 | #define ACTION_KEYMAP_ON(layer, on) ACTION(ACT_KEYMAP, (layer)<<8 | OP_ON | (on)) |
| 329 | #define ACTION_KEYMAP_ON_OFF(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_ON | 0) | 314 | #define ACTION_KEYMAP_ON_OFF(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_ON | 0) |
| 330 | #define ACTION_KEYMAP_ON_P(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_ON | ON_PRESS) | ||
| 331 | #define ACTION_KEYMAP_ON_R(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_ON | ON_RELEASE) | ||
| 332 | #define ACTION_KEYMAP_ON_B(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_ON | ON_BOTH) | ||
| 333 | /* Keymap Off */ | 315 | /* Keymap Off */ |
| 334 | #define ACTION_KEYMAP_OFF(layer) ACTION_KEYMAP_OFF_ON(layer) | 316 | #define ACTION_KEYMAP_OFF(layer, on) ACTION(ACT_KEYMAP, (layer)<<8 | OP_OFF | (on)) |
| 335 | #define ACTION_KEYMAP_OFF_ON(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_OFF | 0) | 317 | #define ACTION_KEYMAP_OFF_ON(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_OFF | 0) |
| 336 | #define ACTION_KEYMAP_OFF_P(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_OFF | ON_PRESS) | ||
| 337 | #define ACTION_KEYMAP_OFF_R(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_OFF | ON_RELEASE) | ||
| 338 | #define ACTION_KEYMAP_OFF_B(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_OFF | ON_BOTH) | ||
| 339 | /* Keymap Set */ | 318 | /* Keymap Set */ |
| 340 | #define ACTION_KEYMAP_SET(layer) ACTION_KEYMAP_SET_CLEAR(layer) | 319 | #define ACTION_KEYMAP_SET(layer, on) ACTION(ACT_KEYMAP, (layer)<<8 | OP_SET | (on)) |
| 341 | #define ACTION_KEYMAP_SET_CLEAR(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_SET | 0) | 320 | #define ACTION_KEYMAP_SET_CLEAR(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_SET | 0) |
| 342 | #define ACTION_KEYMAP_SET_P(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_SET | ON_PRESS) | ||
| 343 | #define ACTION_KEYMAP_SET_R(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_SET | ON_RELEASE) | ||
| 344 | #define ACTION_KEYMAP_SET_B(layer) ACTION(ACT_KEYMAP, (layer)<<8 | OP_SET | ON_BOTH) | ||
| 345 | /* Keymap Invert with tap key */ | 321 | /* Keymap Invert with tap key */ |
| 346 | #define ACTION_KEYMAP_TAP_KEY(layer, key) ACTION(ACT_KEYMAP, (layer)<<8 | (key)) | 322 | #define ACTION_KEYMAP_TAP_KEY(layer, key) ACTION(ACT_KEYMAP, (layer)<<8 | (key)) |
| 347 | 323 | ||
| 348 | /* | 324 | /* |
| 349 | * Overlay Layer | 325 | * Overlay Layer |
| 350 | */ | 326 | */ |
| 351 | #define ACTION_OVERLAY(layer) ACTION_OVERLAY_MOMENTARY(layer) | ||
| 352 | #define ACTION_OVERLAY_MOMENTARY(layer) ACTION_OVERLAY_ON_OFF(layer) | 327 | #define ACTION_OVERLAY_MOMENTARY(layer) ACTION_OVERLAY_ON_OFF(layer) |
| 353 | #define ACTION_OVERLAY_TOGGLE(layer) ACTION_OVERLAY_INV_R(layer) | 328 | #define ACTION_OVERLAY_TOGGLE(layer) ACTION_OVERLAY_INV(layer, ON_RELEASE) |
| 354 | /* Overlay Clear */ | 329 | /* Overlay Clear */ |
| 355 | #define ACTION_OVERLAY_CLEAR ACTION(ACT_OVERLAY, 0<<8 | OP_INV4 | 0) | 330 | #define ACTION_OVERLAY_CLEAR(on) ACTION(ACT_OVERLAY, 0<<8 | OP_INV4 | (on)) |
| 356 | #define ACTION_OVERLAY_CLEAR_P ACTION(ACT_OVERLAY, 0<<8 | OP_INV4 | ON_PRESS) | ||
| 357 | #define ACTION_OVERLAY_CLEAR_R ACTION(ACT_OVERLAY, 0<<8 | OP_INV4 | ON_RELEASE) | ||
| 358 | #define ACTION_OVERLAY_CLEAR_B ACTION(ACT_OVERLAY, 0<<8 | OP_INV4 | ON_BOTH) | ||
| 359 | /* Overlay Invert 4-bit chunk */ | 331 | /* Overlay Invert 4-bit chunk */ |
| 360 | #define ACTION_OVERLAY_INV4(bits, shift) ACTION(ACT_OVERLAY, (bits)<<8 | OP_INV4 | shift) | 332 | #define ACTION_OVERLAY_INV4(bits, shift) ACTION(ACT_OVERLAY, (bits)<<8 | OP_INV4 | shift) |
| 361 | /* Overlay Invert */ | 333 | /* Overlay Invert */ |
| 362 | #define ACTION_OVERLAY_INV(layer) ACTION_OVERLAY_INV_B(layer) | 334 | #define ACTION_OVERLAY_INV(layer, on) ACTION(ACT_OVERLAY, (layer)<<8 | OP_INV | (on)) |
| 363 | #define ACTION_OVERLAY_TAP_TOGGLE(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_INV | 0) | 335 | #define ACTION_OVERLAY_TAP_TOGGLE(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_INV | 0) |
| 364 | #define ACTION_OVERLAY_INV_P(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_INV | ON_PRESS) | ||
| 365 | #define ACTION_OVERLAY_INV_R(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_INV | ON_RELEASE) | ||
| 366 | #define ACTION_OVERLAY_INV_B(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_INV | ON_BOTH) | ||
| 367 | /* Overlay On */ | 336 | /* Overlay On */ |
| 368 | #define ACTION_OVERLAY_ON(layer) ACTION_OVERLAY_ON_OFF(layer) | 337 | #define ACTION_OVERLAY_ON(layer, on) ACTION(ACT_OVERLAY, (layer)<<8 | OP_ON | (on)) |
| 369 | #define ACTION_OVERLAY_ON_OFF(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_ON | 0) | 338 | #define ACTION_OVERLAY_ON_OFF(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_ON | 0) |
| 370 | #define ACTION_OVERLAY_ON_P(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_ON | ON_PRESS) | ||
| 371 | #define ACTION_OVERLAY_ON_R(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_ON | ON_RELEASE) | ||
| 372 | #define ACTION_OVERLAY_ON_B(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_ON | ON_BOTH) | ||
| 373 | /* Overlay Off */ | 339 | /* Overlay Off */ |
| 374 | #define ACTION_OVERLAY_OFF(layer) ACTION_OVERLAY_OFF_ON(layer) | 340 | #define ACTION_OVERLAY_OFF(layer, on) ACTION(ACT_OVERLAY, (layer)<<8 | OP_OFF | (on)) |
| 375 | #define ACTION_OVERLAY_OFF_ON(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_OFF | 0) | 341 | #define ACTION_OVERLAY_OFF_ON(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_OFF | 0) |
| 376 | #define ACTION_OVERLAY_OFF_P(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_OFF | ON_PRESS) | ||
| 377 | #define ACTION_OVERLAY_OFF_R(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_OFF | ON_RELEASE) | ||
| 378 | #define ACTION_OVERLAY_OFF_B(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_OFF | ON_BOTH) | ||
| 379 | /* Overlay Set */ | 342 | /* Overlay Set */ |
| 380 | #define ACTION_OVERLAY_SET(layer) ACTION_OVERLAY_SET_CLEAR(layer) | 343 | #define ACTION_OVERLAY_SET(layer, on) ACTION(ACT_OVERLAY, (layer)<<8 | OP_SET | (on)) |
| 381 | #define ACTION_OVERLAY_SET_CLEAR(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_SET | 0) | 344 | #define ACTION_OVERLAY_SET_CLEAR(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_SET | 0) |
| 382 | #define ACTION_OVERLAY_SET_P(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_SET | ON_PRESS) | ||
| 383 | #define ACTION_OVERLAY_SET_R(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_SET | ON_RELEASE) | ||
| 384 | #define ACTION_OVERLAY_SET_B(layer) ACTION(ACT_OVERLAY, (layer)<<8 | OP_SET | ON_BOTH) | ||
| 385 | /* Overlay Invert with tap key */ | 345 | /* Overlay Invert with tap key */ |
| 386 | #define ACTION_OVERLAY_TAP_KEY(layer, key) ACTION(ACT_OVERLAY, (layer)<<8 | (key)) | 346 | #define ACTION_OVERLAY_TAP_KEY(layer, key) ACTION(ACT_OVERLAY, (layer)<<8 | (key)) |
| 387 | 347 | ||
