aboutsummaryrefslogtreecommitdiff
path: root/quantum/quantum.c
diff options
context:
space:
mode:
authorShayne Holmes <shayneh@qualtrics.com>2017-06-30 12:08:09 -0700
committerJack Humbert <jack.humb@gmail.com>2017-07-05 10:55:47 -0400
commit48ff93582ba9efbe5b8a2f7392eee822e6f25526 (patch)
treeedab94f2c0d1701895da110bda1352f5dd3fb3a3 /quantum/quantum.c
parentfdc2e8058b46f569a7a68ab21ef9cb3d20a9bdc2 (diff)
downloadqmk_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.c90
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 */
460const 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 */
480const bool ascii_to_shift_lut[0x80] PROGMEM = { 459const 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 */
502const 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"
523const 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"
544const 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 */
564const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { 479const 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
584void send_string(const char *str) { 498void send_string(const char *str) {
585 send_string_with_delay(str, 0); 499 send_string_with_delay(str, 0);