[Keymap] Display logo for caps lock indication on crkbd using old OLED driver (#7535)
* Display logo for caps lock indication on crkbd using old OLED driver * Add emacs read-only mode file variable to generated files * use LTO_ENABLE instead of EXTRAFLAGS This enables the same option, and disables action_macros, and action_functions, both of which seem to break when LTO is enabled. And this is a lot simpler to use. Co-Authored-By: Drashna Jaelre <drashna@live.com>
This commit is contained in:
committed by
Drashna Jaelre
parent
e676278474
commit
3d78e6078e
@@ -1,5 +1,4 @@
|
||||
|
||||
// generated from users/manna-harbour_miryoku/miryoku.org
|
||||
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||
|
||||
#pragma once
|
||||
|
||||
@@ -15,3 +14,5 @@
|
||||
#define RGB_MATRIX_VAL_STEP 8
|
||||
#define RGB_MATRIX_SPD_STEP 10
|
||||
#endif
|
||||
|
||||
#define SSD1306OLED // old oled driver
|
||||
|
@@ -1,5 +1,4 @@
|
||||
|
||||
// generated from users/manna-harbour_miryoku/miryoku.org
|
||||
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||
|
||||
#define LAYOUT_miryoku( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
|
||||
@@ -15,3 +14,41 @@ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_
|
||||
)
|
||||
|
||||
#include "manna-harbour_miryoku.c"
|
||||
|
||||
|
||||
#ifdef SSD1306OLED
|
||||
|
||||
#include "ssd1306.h"
|
||||
|
||||
void matrix_init_user(void) {
|
||||
iota_gfx_init(!has_usb()); // turns on the display
|
||||
}
|
||||
|
||||
// When add source files to SRC in rules.mk, you can use functions.
|
||||
const char *read_logo(void);
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
iota_gfx_task();
|
||||
}
|
||||
|
||||
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
|
||||
matrix_write(matrix, read_logo());
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
|
||||
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
|
||||
memcpy(dest->display, source->display, sizeof(dest->display));
|
||||
dest->dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
void iota_gfx_task_user(void) {
|
||||
struct CharacterMatrix matrix;
|
||||
matrix_clear(&matrix);
|
||||
matrix_render_user(&matrix);
|
||||
matrix_update(&display, &matrix);
|
||||
}
|
||||
|
||||
#endif //SSD1306OLED
|
||||
|
@@ -1,4 +1,7 @@
|
||||
|
||||
# generated from users/manna-harbour_miryoku/miryoku.org
|
||||
# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||
|
||||
RGB_MATRIX_ENABLE = WS2812
|
||||
|
||||
# old oled driver
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/logo_reader.c
|
||||
|
Reference in New Issue
Block a user