]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/crkbd/keymaps/lib/keylogger.c
Merge branch 'master' of github.com:qmk/qmk_firmware into hf/shinydox
[qmk_firmware.git] / keyboards / crkbd / keymaps / lib / keylogger.c
1 #include "crkbd.h"
2
3 char keylog[40] = {};
4 char keylogs[21] = {};
5 int keylogs_idx = 0;
6
7 char code_to_name[60] = {
8     ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
9     'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
10     'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
11     '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
12     'R', 'E', 'B', 'T', ' ', ' ', ' ', ' ', ' ', ' ',
13     ' ', ';', '\'', ' ', ',', '.', '/', ' ', ' ', ' '};
14
15 void set_keylog(uint16_t keycode, keyrecord_t *record)
16 {
17   char name = ' ';
18   if (keycode < 60)
19   {
20     name = code_to_name[keycode];
21   }
22
23   // update keylog
24   snprintf(keylog, sizeof(keylog), "%dx%d, k%2d : %c",
25            record->event.key.row,
26            record->event.key.col,
27            keycode,
28            name);
29
30   // update keylogs
31   if (keylogs_idx == sizeof(keylogs) - 1)
32   {
33     keylogs_idx = 0;
34     for (int i = 0; i < sizeof(keylogs) - 1; i++)
35     {
36       keylogs[i] = ' ';
37     }
38   }
39   keylogs[keylogs_idx] = name;
40   keylogs_idx++;
41 }
42
43 char *read_keylog(void) {
44   return keylog;
45 }
46
47 char *read_keylogs(void) {
48   return keylogs;
49 }