aboutsummaryrefslogtreecommitdiff
path: root/keyboards/marksard/rhymestone/common/oled_helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/marksard/rhymestone/common/oled_helper.c')
-rw-r--r--keyboards/marksard/rhymestone/common/oled_helper.c87
1 files changed, 87 insertions, 0 deletions
diff --git a/keyboards/marksard/rhymestone/common/oled_helper.c b/keyboards/marksard/rhymestone/common/oled_helper.c
new file mode 100644
index 000000000..537650025
--- /dev/null
+++ b/keyboards/marksard/rhymestone/common/oled_helper.c
@@ -0,0 +1,87 @@
1#ifdef OLED_DRIVER_ENABLE
2#include QMK_KEYBOARD_H
3#include <stdio.h>
4#include <string.h>
5
6void render_logo(void) {
7
8 static const char PROGMEM logo_buf[]={
9 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
10 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
11 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
12 0};
13
14 oled_write_P(logo_buf, false);
15}
16
17void render_lock_status(void) {
18
19 // Host Keyboard LED Status
20 led_t led_state = host_keyboard_led_state();
21
22 oled_write_P(PSTR("Lock:"), false);
23 if (led_state.num_lock) {
24 oled_write_P(PSTR("Num "), false);
25 }
26 if (led_state.caps_lock) {
27 oled_write_P(PSTR("Caps "), false);
28 }
29 if (led_state.scroll_lock) {
30 oled_write_P(PSTR("Scrl"), false);
31 }
32
33 oled_write_P(PSTR("\n"), false);
34}
35
36static char keylog_buf[24] = "Key state ready.\n";
37const char code_to_name[60] = {
38 ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
39 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
40 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
41 '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
42 'R', 'E', 'B', 'T', ' ', '-', ' ', '@', ' ', ' ',
43 ' ', ';', ':', ' ', ',', '.', '/', ' ', ' ', ' '};
44
45void update_key_status(uint16_t keycode, keyrecord_t *record) {
46
47 if (!record->event.pressed) return;
48
49 char name = (keycode < 60) ? code_to_name[keycode] : ' ';
50 snprintf(keylog_buf, sizeof(keylog_buf) - 1, "Key:%dx%d %2x %c\n",
51 record->event.key.row, record->event.key.col,
52 (uint16_t)keycode, name);
53}
54
55void render_key_status(void) {
56
57 oled_write(keylog_buf, false);
58}
59
60#ifdef RGBLIGHT_ENABLE
61extern rgblight_config_t rgblight_config;
62
63static char led_buf[24] = "LED state ready.\n";
64rgblight_config_t rgblight_config_bak;
65void update_led_status(void) {
66
67 if (rgblight_config_bak.enable != rgblight_config.enable ||
68 rgblight_config_bak.mode != rgblight_config.mode ||
69 rgblight_config_bak.hue != rgblight_config.hue ||
70 rgblight_config_bak.sat != rgblight_config.sat ||
71 rgblight_config_bak.val != rgblight_config.val
72 ) {
73 snprintf(led_buf, sizeof(led_buf) - 1, "LED%c:%2d hsv:%2d %2d %2d\n",
74 rgblight_config.enable ? '*' : '.', (uint8_t)rgblight_config.mode,
75 (uint8_t)(rgblight_config.hue / RGBLIGHT_HUE_STEP),
76 (uint8_t)(rgblight_config.sat / RGBLIGHT_SAT_STEP),
77 (uint8_t)(rgblight_config.val / RGBLIGHT_VAL_STEP));
78 rgblight_config_bak = rgblight_config;
79 }
80}
81
82void render_led_status(void) {
83
84 oled_write(led_buf, false);
85}
86#endif
87#endif