55 lines
1.6 KiB
C
55 lines
1.6 KiB
C
|
// 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, \
|
||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
|
||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
|
||
|
N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
|
||
|
) \
|
||
|
LAYOUT( \
|
||
|
KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \
|
||
|
KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \
|
||
|
KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \
|
||
|
K32, K33, K34, K35, K36, K37 \
|
||
|
)
|
||
|
|
||
|
#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
|