Comet46 add support for OLED (#4745)
* Add OLED support for Comet46 * fix length of char "name" of keylogger.c * update ssd1306 * fix rules.mk * update led-receiver keymap * Update OLED related code * add mod_state_reader & modify led_state_reader * Update OLED related files * Update kemaps * Update readme * change default-oled-display to default * Add OSM compatibility to mod_state_reader * Code formatting * Use PROGMEM to store code_to_name * Clean up satt keymap * Rename default-led keymap to defult-rgbled
This commit is contained in:
parent
c2390bf321
commit
46b4b4407f
24 changed files with 1918 additions and 342 deletions
294
keyboards/comet46/lib/keylogger.c
Normal file
294
keyboards/comet46/lib/keylogger.c
Normal file
|
@ -0,0 +1,294 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#ifdef __AVR__
|
||||
#include <avr/io.h>
|
||||
#include <avr/pgmspace.h>
|
||||
#else
|
||||
#define PROGMEM
|
||||
#endif
|
||||
|
||||
#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;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue