summaryrefslogtreecommitdiff
path: root/keyboards/boardsource/equals/equals.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/boardsource/equals/equals.c')
-rw-r--r--keyboards/boardsource/equals/equals.c46
1 files changed, 41 insertions, 5 deletions
diff --git a/keyboards/boardsource/equals/equals.c b/keyboards/boardsource/equals/equals.c
index 8eb933e70d..074fa3df3e 100644
--- a/keyboards/boardsource/equals/equals.c
+++ b/keyboards/boardsource/equals/equals.c
@@ -1,18 +1,54 @@
// Copyright 2023 @boardsource
// SPDX-License-Identifier: GPL-2.0-or-later
+
#include "quantum.h"
-__attribute__((weak)) void ui_init(void) {};
-__attribute__((weak)) void ui_task(void) {};
#ifdef QUANTUM_PAINTER_ENABLE
+#include "qp.h"
+#include "qp_st7735.h"
+#include "graphics/thintel15.qff.c"
+
+static painter_device_t oled;
+static painter_font_handle_t font;
+
+__attribute__((weak)) void ui_init(void) {
+ oled = qp_st7735_make_spi_device(128, 160, OLED_CS_PIN, OLED_DC_PIN, OLED_RST_PIN, 8, 0);
+ font = qp_load_font_mem(font_thintel15);
+ qp_init(oled, QP_ROTATION_0);
+ qp_rect(oled, 0, 0, 130, 162, 0, 0, 0, true);
+ qp_rect(oled, 20, 20, 108, 60, 55, 55, 55, true);
+ qp_rect(oled, 20, 80, 108, 120, 55, 55, 55, true);
+ qp_flush(oled);
+}
+
+__attribute__((weak)) void ui_task(void) {
+ static const char *text = "Layer:";
+ int16_t width = qp_textwidth(font, text);
+ qp_drawtext(oled, 20, 140, font, text);
+
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ qp_drawtext(oled, (20 + width), 140, font, "QWERTY");
+ break;
+ case 1:
+ qp_drawtext(oled, (20 + width), 140, font, "SYMBOL");
+ break;
+ case 2:
+ qp_drawtext(oled, (20 + width), 140, font, "NUMBER");
+ break;
+ default:
+ qp_drawtext(oled, (20 + width), 140, font, "_PANIC_");
+ break;
+ }
+}
+
void keyboard_post_init_kb(void) {
- // Init the display
ui_init();
keyboard_post_init_user();
}
void housekeeping_task_kb(void) {
- // Draw the display
ui_task();
+ housekeeping_task_user();
}
-#endif //QUANTUM_PAINTER_ENABLE
+#endif // QUANTUM_PAINTER_ENABLE