summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/display.c56
-rw-r--r--app/src/endpoints.c1
-rw-r--r--app/src/main.c10
-rw-r--r--app/src/sensors.c3
4 files changed, 67 insertions, 3 deletions
diff --git a/app/src/display.c b/app/src/display.c
new file mode 100644
index 0000000..9021914
--- /dev/null
+++ b/app/src/display.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2020 Peter Johanson
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <init.h>
+#include <device.h>
+#include <devicetree.h>
+
+#include <logging/log.h>
+LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
+
+#include <drivers/display.h>
+#include <lvgl.h>
+
+#define ZMK_DISPLAY_NAME CONFIG_LVGL_DISPLAY_DEV_NAME
+
+static struct device *display;
+
+static lv_obj_t *screen;
+
+int zmk_display_init()
+{
+ lv_obj_t *hello_world_label;
+ lv_obj_t *count_label;
+
+ LOG_DBG("");
+
+ display = device_get_binding(ZMK_DISPLAY_NAME);
+ if (display == NULL) {
+ LOG_ERR("Failed to find display device");
+ return -EINVAL;
+ }
+
+ screen = lv_obj_create(NULL, NULL);
+ lv_scr_load(screen);
+
+ hello_world_label = lv_label_create(lv_scr_act(), NULL);
+ lv_label_set_text(hello_world_label, "ZMK v0.1.0");
+ lv_obj_align(hello_world_label, NULL, LV_ALIGN_CENTER, 0, 0);
+ count_label = lv_label_create(lv_scr_act(), NULL);
+ lv_label_set_text(count_label, CONFIG_ZMK_KEYBOARD_NAME);
+ lv_obj_align(count_label, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
+ lv_task_handler();
+ display_blanking_off(display);
+
+ return 0;
+}
+
+void zmk_display_task_handler()
+{
+ lv_tick_inc(10);
+ lv_task_handler();
+ k_sleep(K_MSEC(10));
+}
diff --git a/app/src/endpoints.c b/app/src/endpoints.c
index 48dc2ec..c9ba716 100644
--- a/app/src/endpoints.c
+++ b/app/src/endpoints.c
@@ -3,7 +3,6 @@
#include <zmk/hid.h>
#include <zmk/usb_hid.h>
#include <zmk/hog.h>
-#
#include <logging/log.h>
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
diff --git a/app/src/main.c b/app/src/main.c
index 5f28158..5a678ee 100644
--- a/app/src/main.c
+++ b/app/src/main.c
@@ -14,7 +14,7 @@ LOG_MODULE_REGISTER(zmk, CONFIG_ZMK_LOG_LEVEL);
#include <zmk/matrix.h>
#include <zmk/kscan.h>
-#include <zmk/endpoints.h>
+#include <zmk/display.h>
#define ZMK_KSCAN_DEV DT_LABEL(ZMK_MATRIX_NODE_ID)
@@ -26,4 +26,12 @@ void main(void)
{
return;
}
+
+#ifdef CONFIG_ZMK_DISPLAY
+ zmk_display_init();
+
+ while (1) {
+ zmk_display_task_handler();
+ }
+#endif /* CONFIG_ZMK_DISPLAY */
}
diff --git a/app/src/sensors.c b/app/src/sensors.c
index 0a86109..501ce15 100644
--- a/app/src/sensors.c
+++ b/app/src/sensors.c
@@ -60,7 +60,8 @@ static void zmk_sensors_init_item(const char *node, u8_t i, u8_t abs_i)
sensors[i].sensor_number = abs_i;
if (!sensors[i].dev) {
- LOG_ERR("Failed to find device for %s", node);
+ LOG_WRN("Failed to find device for %s", node);
+ return;
}
sensor_trigger_set(sensors[i].dev, &sensors[i].trigger, zmk_sensors_trigger_handler);