diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index cc38244a4c7..d63407cc815 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -73,6 +73,7 @@ if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL) target_sources(app PRIVATE src/conditional_layer.c) target_sources(app PRIVATE src/endpoints.c) target_sources(app PRIVATE src/events/endpoint_changed.c) + target_sources(app PRIVATE src/events/preferred_transport_changed.c) target_sources(app PRIVATE src/hid_listener.c) target_sources(app PRIVATE src/keymap.c) target_sources(app PRIVATE src/events/layer_state_changed.c) diff --git a/app/include/zmk/events/preferred_transport_changed.h b/app/include/zmk/events/preferred_transport_changed.h new file mode 100644 index 00000000000..f65294d41e9 --- /dev/null +++ b/app/include/zmk/events/preferred_transport_changed.h @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#pragma once + +#include + +#include +#include + +struct zmk_preferred_transport_changed { + enum zmk_transport transport; +}; + +ZMK_EVENT_DECLARE(zmk_preferred_transport_changed); \ No newline at end of file diff --git a/app/src/endpoints.c b/app/src/endpoints.c index 17cdc5d7fb8..31e2cad6b6a 100644 --- a/app/src/endpoints.c +++ b/app/src/endpoints.c @@ -20,6 +20,7 @@ #include #include #include +#include #include @@ -135,7 +136,8 @@ int zmk_endpoint_set_preferred_transport(enum zmk_transport transport) { endpoints_save_preferred(); - update_current_endpoint(); + raise_zmk_preferred_transport_changed( + (struct zmk_preferred_transport_changed){.transport = preferred_transport}); return 0; } @@ -502,6 +504,7 @@ static int endpoint_listener(const zmk_event_t *eh) { } ZMK_LISTENER(endpoint_listener, endpoint_listener); +ZMK_SUBSCRIPTION(endpoint_listener, zmk_preferred_transport_changed); #if IS_ENABLED(CONFIG_ZMK_USB) ZMK_SUBSCRIPTION(endpoint_listener, zmk_usb_conn_state_changed); #endif diff --git a/app/src/events/preferred_transport_changed.c b/app/src/events/preferred_transport_changed.c new file mode 100644 index 00000000000..8c6bb2d985f --- /dev/null +++ b/app/src/events/preferred_transport_changed.c @@ -0,0 +1,10 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include + +ZMK_EVENT_IMPL(zmk_preferred_transport_changed);