summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorPeter Johanson <peter@peterjohanson.com>2021-08-02 21:44:01 -0400
committerPete Johanson <peter@peterjohanson.com>2021-08-03 00:19:05 -0400
commitd05d7ec2d2b40ca40339b4d7cceb31974bac0e94 (patch)
tree37e3f90b46e3e5c01146f1d9c505b7e05d1d5e95 /app
parent9d34cf561e11682840e10283f0a6947547a649b5 (diff)
feat(endpoints): Add endpoint select changed event.
Diffstat (limited to 'app')
-rw-r--r--app/CMakeLists.txt1
-rw-r--r--app/include/zmk/endpoints.h8
-rw-r--r--app/include/zmk/endpoints_types.h12
-rw-r--r--app/include/zmk/events/endpoint_selection_changed.h18
-rw-r--r--app/src/endpoints.c4
-rw-r--r--app/src/events/endpoint_selection_changed.c10
6 files changed, 46 insertions, 7 deletions
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index e283487..5092def 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -36,6 +36,7 @@ target_sources(app PRIVATE src/events/position_state_changed.c)
target_sources(app PRIVATE src/events/layer_state_changed.c)
target_sources(app PRIVATE src/events/keycode_state_changed.c)
target_sources(app PRIVATE src/events/modifiers_state_changed.c)
+target_sources(app PRIVATE src/events/endpoint_selection_changed.c)
target_sources(app PRIVATE src/events/sensor_event.c)
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/events/wpm_state_changed.c)
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c)
diff --git a/app/include/zmk/endpoints.h b/app/include/zmk/endpoints.h
index 0d2bbce..c886053 100644
--- a/app/include/zmk/endpoints.h
+++ b/app/include/zmk/endpoints.h
@@ -6,13 +6,7 @@
#pragma once
-#include <zmk/keys.h>
-#include <zmk/hid.h>
-
-enum zmk_endpoint {
- ZMK_ENDPOINT_USB,
- ZMK_ENDPOINT_BLE,
-};
+#include <zmk/endpoints_types.h>
int zmk_endpoints_select(enum zmk_endpoint endpoint);
int zmk_endpoints_toggle();
diff --git a/app/include/zmk/endpoints_types.h b/app/include/zmk/endpoints_types.h
new file mode 100644
index 0000000..70804a6
--- /dev/null
+++ b/app/include/zmk/endpoints_types.h
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2021 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#pragma once
+
+enum zmk_endpoint {
+ ZMK_ENDPOINT_USB,
+ ZMK_ENDPOINT_BLE,
+};
diff --git a/app/include/zmk/events/endpoint_selection_changed.h b/app/include/zmk/events/endpoint_selection_changed.h
new file mode 100644
index 0000000..38a6a8e
--- /dev/null
+++ b/app/include/zmk/events/endpoint_selection_changed.h
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2021 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#pragma once
+
+#include <zephyr.h>
+
+#include <zmk/endpoints_types.h>
+#include <zmk/event_manager.h>
+
+struct zmk_endpoint_selection_changed {
+ enum zmk_endpoint endpoint;
+};
+
+ZMK_EVENT_DECLARE(zmk_endpoint_selection_changed);
diff --git a/app/src/endpoints.c b/app/src/endpoints.c
index 93dfb81..c15aad8 100644
--- a/app/src/endpoints.c
+++ b/app/src/endpoints.c
@@ -16,6 +16,7 @@
#include <zmk/event_manager.h>
#include <zmk/events/ble_active_profile_changed.h>
#include <zmk/events/usb_conn_state_changed.h>
+#include <zmk/events/endpoint_selection_changed.h>
#include <logging/log.h>
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
@@ -242,6 +243,9 @@ static void update_current_endpoint() {
current_endpoint = new_endpoint;
LOG_INF("Endpoint changed: %d", current_endpoint);
+
+ ZMK_EVENT_RAISE(new_zmk_endpoint_selection_changed(
+ (struct zmk_endpoint_selection_changed){.endpoint = current_endpoint}));
}
}
diff --git a/app/src/events/endpoint_selection_changed.c b/app/src/events/endpoint_selection_changed.c
new file mode 100644
index 0000000..7f9014d
--- /dev/null
+++ b/app/src/events/endpoint_selection_changed.c
@@ -0,0 +1,10 @@
+/*
+ * Copyright (c) 2021 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <kernel.h>
+#include <zmk/events/endpoint_selection_changed.h>
+
+ZMK_EVENT_IMPL(zmk_endpoint_selection_changed);