diff options
Diffstat (limited to 'keyboards/satt/comet46/lib/keylogger.c')
| -rw-r--r-- | keyboards/satt/comet46/lib/keylogger.c | 288 | 
1 files changed, 288 insertions, 0 deletions
| diff --git a/keyboards/satt/comet46/lib/keylogger.c b/keyboards/satt/comet46/lib/keylogger.c new file mode 100644 index 0000000000..a0abdd79ab --- /dev/null +++ b/keyboards/satt/comet46/lib/keylogger.c @@ -0,0 +1,288 @@ +#include <stdio.h> +#include "progmem.h" + +#define NUM_USB_HID_KEYCODES 255 +#define LEN_KEYCODE_STR 4 + +char keylog[22] = {"KC:       ID: "}; + +// Quick and dirty way to display USB HID keycodes used in QMK +// USB HID keycodes from 0x0000 to 0x00FF are stored in a 4x256+1 length char +const char code_to_name[] PROGMEM = { +  "NO  " //0x00 +  "TRNS" +  "?   " +  "?   " +  "A   " +  "B   " +  "C   " +  "D   " +  "E   " +  "F   " +  "G   " +  "H   " +  "I   " +  "J   " +  "K   " +  "L   " +  "M   " //0x10 +  "N   " +  "O   " +  "P   " +  "Q   " +  "R   " +  "S   " +  "T   " +  "U   " +  "V   " +  "W   " +  "X   " +  "Y   " +  "Z   " +  "1   " +  "2   " +  "3   "  //0x20 +  "4   " +  "5   " +  "6   " +  "7   " +  "8   " +  "9   " +  "0   " +  "ENT " +  "ESC " +  "BSPC" +  "TAB " +  "SPC " +  "MINS" +  "EQL " +  "LBRC" +  "RBRC" //0x30 +  "BSLS" +  "NUHS" +  "SCLN" +  "QUOT" +  "GRV " +  "COMM" +  "DOT " +  "SLSH" +  "CAPS" +  "F1  " +  "F2  " +  "F3  " +  "F4  " +  "F5  " +  "F6  " +  "F7  " //0x40 +  "F8  " +  "F9  " +  "F10 " +  "F11 " +  "F12 " +  "PSCR" +  "SLCK" +  "PAUS" +  "INS " +  "HOME" +  "PGUP" +  "DEL " +  "END " +  "PGDN" +  "RGHT" +  "LEFT" //0x50 +  "DOWN" +  "UP  " +  "NLCK" +  "PSLS" +  "PAST" +  "PMNS" +  "PPLS" +  "PENT" +  "P1  " +  "P2  " +  "P3  " +  "P4  " +  "P5  " +  "P6  " +  "P7  " +  "P8  " //0x60 +  "P9  " +  "P0  " +  "PDOT" +  "NUBS" +  "APP " +  "POW " +  "PEQL" +  "F13 " +  "F14 " +  "F15 " +  "F16 " +  "F17 " +  "F18 " +  "F19 " +  "F20 " +  "F21 " //0x70 +  "F22 " +  "F23 " +  "F24 " +  "EXEC" +  "HELP" +  "MENU" +  "SLCT" +  "STOP" +  "AGIN" +  "UNDO" +  "CUT " +  "COPY" +  "PSTE" +  "FIND" +  "_MUT" +  "_VUP" //0x80 +  "_VDN" +  "LCAP" +  "LNUM" +  "LSCR" +  "PCMM" +  "PEQA" +  "INT1" +  "INT2" +  "INT3" +  "INT4" +  "INT5" +  "INT6" +  "INT7" +  "INT8" +  "INT9" +  "LAN1" //0x90 +  "LAN2" +  "LAN3" +  "LAN4" +  "LAN5" +  "LAN6" +  "LAN7" +  "LAN8" +  "LAN9" +  "ERAS" +  "SYSR" +  "CNCL" +  "CLR " +  "PRIR" +  "RTRN" +  "SEP " +  "OUT " //0xA0 +  "OPER" +  "CLRA" +  "CSEL" +  "ESEL" +  "PWR " //0xA5 +  "SLEP" +  "WAKE" +  "MUTE" +  "VOLU" +  "VOLD" +  "MNXT" +  "MPRV" +  "MSTP" +  "MPLY" +  "MSEL" +  "EJCT" //0xB0 +  "MAIL" +  "CALC" +  "MYCM" +  "WSCH" +  "WHOM" +  "WBAK" +  "WFWD" +  "WSTP" +  "WREF" +  "WFAV" +  "MFFD" +  "MRWD" +  "BRIU" +  "BRID" +  "?   " +  "FN0 " //0xC0 +  "FN1 " +  "FN2 " +  "FN3 " +  "FN4 " +  "FN5 " +  "FN6 " +  "FN7 " +  "FN8 " +  "FN9 " +  "FN10" +  "FN11" +  "FN12" +  "FN13" +  "FN14" +  "FN15" +  "FN16" //0xD0 +  "FN17" +  "FN18" +  "FN19" +  "FN20" +  "FN21" +  "FN22" +  "FN23" +  "FN24" +  "FN25" +  "FN26" +  "FN27" +  "FN28" +  "FN29" +  "FN30" +  "FN31" +  "LCTL" //0xE0 +  "LSFT" +  "LALT" +  "LGUI" +  "RCTL" +  "RSFT" +  "RALT" +  "RGUI" +  "?   " +  "?   " +  "?   " +  "?   " +  "?   " +  "?   " +  "?   " +  "?   " +  "MS_U" //0xF0 +  "MS_D" +  "MS_L" +  "MS_R" +  "BTN1" +  "BTN2" +  "BTN3" +  "BTN4" +  "BTN5" +  "WH_U" +  "WH_D" +  "WH_L" +  "WH_R" +  "ACL0" +  "ACL1" +  "ACL2" +}; + +void set_keylog(uint16_t keycode) +{ +  char name[LEN_KEYCODE_STR+1] = "?   "; + +  if (keycode <= NUM_USB_HID_KEYCODES) { +    for (uint8_t k = 0; k < LEN_KEYCODE_STR; k++) { +      name[k] =  pgm_read_byte_near(code_to_name + keycode * LEN_KEYCODE_STR + k); +    } +  } else if (keycode > NUM_USB_HID_KEYCODES) { +    snprintf(name, sizeof(name), "QMK "); +  } + +  // update keylog +  snprintf(keylog, sizeof(keylog), "KC: %s  ID: %d", name, keycode); +} + +const char *read_keylog(void) { +  return keylog; +} | 
