- #include "seq.h"
-
- static char buffer[32];
- static uint8_t buffer_size = 0;
-
- void seq_start(void) {
- buffer_size = 0;
- SEND_STRING(":");
- }
-
- bool seq_feed(uint16_t keycode) {
- if (keycode == KC_ENTER) {
- for (int i = 0; i < buffer_size + 1; i++) {
- tap_code(KC_BSPACE);
- }
- for (int i = 0; i < seq_config_size; i++) {
- seq_t item = seq_config[i];
- if (strncmp(item.sequence, buffer, buffer_size) == 0) {
- send_unicode_string(item.result);
- }
- }
- buffer_size = 0;
- return false;
- } else if (keycode == KC_BSPACE) {
- if (buffer_size) {
- buffer_size--;
- tap_code(keycode);
- }
- return true;
- } else {
- if (keycode >= KC_A && keycode <= KC_Z) {
- buffer[buffer_size++] = keycode - KC_A + 'a';
- tap_code(keycode);
- }
- return true;
- }
- }
-
|