diff options
| author | Shayne Holmes <shayneh@qualtrics.com> | 2017-06-30 12:08:09 -0700 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2017-07-05 10:55:47 -0400 |
| commit | 48ff93582ba9efbe5b8a2f7392eee822e6f25526 (patch) | |
| tree | edab94f2c0d1701895da110bda1352f5dd3fb3a3 /quantum/quantum.c | |
| parent | fdc2e8058b46f569a7a68ab21ef9cb3d20a9bdc2 (diff) | |
| download | qmk_firmware-48ff93582ba9efbe5b8a2f7392eee822e6f25526.tar.gz qmk_firmware-48ff93582ba9efbe5b8a2f7392eee822e6f25526.zip | |
Pull out sendstring variations to their own files.
Instead of having all sendstring keycode mappings in the main quantum.c
file, give each one its own file in keymap_extras that can be #included
in a user's keymap. If one is included, it will define the appropriate
lookup tables and overwrite the weak definitions in quantum.c.
(Including more than one sendstring definition will fail at compile
time.)
Update @rai-suta's test keymap to match, as well as the documentation.
Diffstat (limited to 'quantum/quantum.c')
| -rw-r--r-- | quantum/quantum.c | 90 |
1 files changed, 2 insertions, 88 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c index b5acc75c3..36e586d31 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c | |||
| @@ -455,28 +455,7 @@ bool process_record_quantum(keyrecord_t *record) { | |||
| 455 | return process_action_kb(record); | 455 | return process_action_kb(record); |
| 456 | } | 456 | } |
| 457 | 457 | ||
| 458 | #if defined SENDSTRING_JIS_KEYCODE | 458 | __attribute__ ((weak)) |
| 459 | /* for users with JIS keyboards */ | ||
| 460 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | ||
| 461 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 462 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 463 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 464 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 465 | 0, 1, 1, 1, 1, 1, 1, 1, | ||
| 466 | 1, 1, 1, 1, 0, 0, 0, 0, | ||
| 467 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 468 | 0, 0, 0, 0, 1, 1, 1, 1, | ||
| 469 | 0, 1, 1, 1, 1, 1, 1, 1, | ||
| 470 | 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 471 | 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 472 | 1, 1, 1, 0, 0, 0, 0, 1, | ||
| 473 | 1, 0, 0, 0, 0, 0, 0, 0, | ||
| 474 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 475 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 476 | 0, 0, 0, 1, 1, 1, 1, 0 | ||
| 477 | }; | ||
| 478 | #else | ||
| 479 | /* for standard keycodes */ | ||
| 480 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | 459 | const bool ascii_to_shift_lut[0x80] PROGMEM = { |
| 481 | 0, 0, 0, 0, 0, 0, 0, 0, | 460 | 0, 0, 0, 0, 0, 0, 0, 0, |
| 482 | 0, 0, 0, 0, 0, 0, 0, 0, | 461 | 0, 0, 0, 0, 0, 0, 0, 0, |
| @@ -495,72 +474,8 @@ const bool ascii_to_shift_lut[0x80] PROGMEM = { | |||
| 495 | 0, 0, 0, 0, 0, 0, 0, 0, | 474 | 0, 0, 0, 0, 0, 0, 0, 0, |
| 496 | 0, 0, 0, 1, 1, 1, 1, 0 | 475 | 0, 0, 0, 1, 1, 1, 1, 0 |
| 497 | }; | 476 | }; |
| 498 | #endif | ||
| 499 | 477 | ||
| 500 | #if defined SENDSTRING_JIS_KEYCODE | 478 | __attribute__ ((weak)) |
| 501 | /* for users with JIS keyboards */ | ||
| 502 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
| 503 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 504 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
| 505 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 506 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
| 507 | KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
| 508 | KC_8, KC_9, KC_QUOT, KC_SCLN, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
| 509 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
| 510 | KC_8, KC_9, KC_QUOT, KC_SCLN, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
| 511 | KC_LBRC, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
| 512 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
| 513 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
| 514 | KC_X, KC_Y, KC_Z, KC_RBRC, KC_JYEN, KC_BSLS, KC_EQL, KC_RO, | ||
| 515 | KC_LBRC, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
| 516 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
| 517 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
| 518 | KC_X, KC_Y, KC_Z, KC_RBRC, KC_JYEN, KC_BSLS, KC_EQL, KC_DEL, | ||
| 519 | }; | ||
| 520 | #elif defined SENDSTRING_COLEMAK_KEYCODE | ||
| 521 | /* for users whose OSes are set to Colemak */ | ||
| 522 | #include "keymap_colemak.h" | ||
| 523 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
| 524 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 525 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
| 526 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 527 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
| 528 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | ||
| 529 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
| 530 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
| 531 | KC_8, KC_9, CM_SCLN, CM_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | ||
| 532 | KC_2, CM_A, CM_B, CM_C, CM_D, CM_E, CM_F, CM_G, | ||
| 533 | CM_H, CM_I, CM_J, CM_K, CM_L, CM_M, CM_N, CM_O, | ||
| 534 | CM_P, CM_Q, CM_R, CM_S, CM_T, CM_U, CM_V, CM_W, | ||
| 535 | CM_X, CM_Y, CM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
| 536 | KC_GRV, CM_A, CM_B, CM_C, CM_D, CM_E, CM_F, CM_G, | ||
| 537 | CM_H, CM_I, CM_J, CM_K, CM_L, CM_M, CM_N, CM_O, | ||
| 538 | CM_P, CM_Q, CM_R, CM_S, CM_T, CM_U, CM_V, CM_W, | ||
| 539 | CM_X, CM_Y, CM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
| 540 | }; | ||
| 541 | #elif defined SENDSTRING_DVORAK_KEYCODE | ||
| 542 | /* for users whose OSes are set to Dvorak */ | ||
| 543 | #include "keymap_dvorak.h" | ||
| 544 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
| 545 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 546 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
| 547 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 548 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
| 549 | KC_SPC, DV_1, DV_QUOT, DV_3, DV_4, DV_5, DV_7, DV_QUOT, | ||
| 550 | DV_9, DV_0, DV_8, DV_EQL, DV_COMM, DV_MINS, DV_DOT, DV_SLSH, | ||
| 551 | DV_0, DV_1, DV_2, DV_3, DV_4, DV_5, DV_6, DV_7, | ||
| 552 | DV_8, DV_9, DV_SCLN, DV_SCLN, DV_COMM, DV_EQL, DV_DOT, DV_SLSH, | ||
| 553 | DV_2, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
| 554 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
| 555 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
| 556 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_6, DV_MINS, | ||
| 557 | DV_GRV, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
| 558 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
| 559 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
| 560 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_GRV, KC_DEL | ||
| 561 | }; | ||
| 562 | #else | ||
| 563 | /* For users with default keyboard layout in OS */ | ||
| 564 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 479 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { |
| 565 | 0, 0, 0, 0, 0, 0, 0, 0, | 480 | 0, 0, 0, 0, 0, 0, 0, 0, |
| 566 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 481 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, |
| @@ -579,7 +494,6 @@ const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | |||
| 579 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | 494 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, |
| 580 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | 495 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL |
| 581 | }; | 496 | }; |
| 582 | #endif | ||
| 583 | 497 | ||
| 584 | void send_string(const char *str) { | 498 | void send_string(const char *str) { |
| 585 | send_string_with_delay(str, 0); | 499 | send_string_with_delay(str, 0); |
