From eb37fe97058f7fe551bc97c8d02067301537a538 Mon Sep 17 00:00:00 2001 From: Tokazio Date: Tue, 17 Jan 2023 19:05:04 +0100 Subject: [PATCH 01/18] Update behavior_macro.c --- app/src/behaviors/behavior_macro.c | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/behaviors/behavior_macro.c b/app/src/behaviors/behavior_macro.c index 46fdde3c..9274e7b5 100644 --- a/app/src/behaviors/behavior_macro.c +++ b/app/src/behaviors/behavior_macro.c @@ -164,6 +164,7 @@ static int on_macro_binding_released(struct zmk_behavior_binding *binding, static const struct behavior_driver_api behavior_macro_driver_api = { .binding_pressed = on_macro_binding_pressed, .binding_released = on_macro_binding_released, + .locality = BEHAVIOR_LOCALITY_GLOBAL, }; #define BINDING_WITH_COMMA(idx, drv_inst) ZMK_KEYMAP_EXTRACT_BINDING(idx, DT_DRV_INST(drv_inst)), From 3ff90c81a73f66cdd01bc0ec4ca0cfe8ea5d3022 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 20:56:14 +0100 Subject: [PATCH 02/18] logging --- app/src/behaviors/behavior_macro.c | 1 - app/src/keymap.c | 7 +++++++ app/src/rgb_underglow.c | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/behaviors/behavior_macro.c b/app/src/behaviors/behavior_macro.c index 9274e7b5..46fdde3c 100644 --- a/app/src/behaviors/behavior_macro.c +++ b/app/src/behaviors/behavior_macro.c @@ -164,7 +164,6 @@ static int on_macro_binding_released(struct zmk_behavior_binding *binding, static const struct behavior_driver_api behavior_macro_driver_api = { .binding_pressed = on_macro_binding_pressed, .binding_released = on_macro_binding_released, - .locality = BEHAVIOR_LOCALITY_GLOBAL, }; #define BINDING_WITH_COMMA(idx, drv_inst) ZMK_KEYMAP_EXTRACT_BINDING(idx, DT_DRV_INST(drv_inst)), diff --git a/app/src/keymap.c b/app/src/keymap.c index e586316f..33222a25 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -202,10 +202,13 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position return err; } + switch (locality) { case BEHAVIOR_LOCALITY_CENTRAL: + LOG_DBG("locality is: BEHAVIOR_LOCALITY_CENTRAL"); return invoke_locally(&binding, event, pressed); case BEHAVIOR_LOCALITY_EVENT_SOURCE: + LOG_DBG("locality is: BEHAVIOR_LOCALITY_EVENT_SOURCE"); #if ZMK_BLE_IS_CENTRAL if (source == ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL) { return invoke_locally(&binding, event, pressed); @@ -216,10 +219,14 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position return invoke_locally(&binding, event, pressed); #endif case BEHAVIOR_LOCALITY_GLOBAL: + LOG_DBG("locality is: BEHAVIOR_LOCALITY_GLOBAL"); #if ZMK_BLE_IS_CENTRAL + LOG_DBG("BEHAVIOR_LOCALITY_GLOBAL is central"); for (int i = 0; i < ZMK_BLE_SPLIT_PERIPHERAL_COUNT; i++) { zmk_split_bt_invoke_behavior(i, &binding, event, pressed); } +#else + LOG_DBG("BEHAVIOR_LOCALITY_GLOBAL is peripheral"); #endif return invoke_locally(&binding, event, pressed); } diff --git a/app/src/rgb_underglow.c b/app/src/rgb_underglow.c index 25d4466e..4f0bee68 100644 --- a/app/src/rgb_underglow.c +++ b/app/src/rgb_underglow.c @@ -475,6 +475,9 @@ static int rgb_underglow_auto_state(bool *prev_state, bool new_state) { static int rgb_underglow_event_listener(const zmk_event_t *eh) { + LOG_DBG("rgb_underglow_event_listener"); + + #if IS_ENABLED(CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE) if (as_zmk_activity_state_changed(eh)) { static bool prev_state = false; From c43c5dbcbc8743a5623cbb6000b979e78cc2edd8 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 21:13:38 +0100 Subject: [PATCH 03/18] global if behavior name starts with 'layer' --- app/src/keymap.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/keymap.c b/app/src/keymap.c index 33222a25..336fc556 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -182,6 +182,8 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position LOG_DBG("layer: %d position: %d, binding name: %s", layer, position, log_strdup(binding.behavior_dev)); + + behavior = device_get_binding(binding.behavior_dev); if (!behavior) { @@ -196,11 +198,21 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position } enum behavior_locality locality = BEHAVIOR_LOCALITY_CENTRAL; + + + err = behavior_get_locality(behavior, &locality); if (err) { LOG_ERR("Failed to get behavior locality %d", err); return err; - } + }else{ + LOG_DBG("got locality: BEHAVIOR_LOCALITY_CENTRAL from behavior"); + } + + if (strncmp(binding.behavior_dev, "layer") == 0) { + behavior_locality locality = BEHAVIOR_LOCALITY_GLOBAL; + LOG_DBG("force locality: BEHAVIOR_LOCALITY_GLOBAL because of a 'layer' behavior"); + } switch (locality) { From 571557ca2886b5b504c8243b02a1c59533a9a311 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 21:16:55 +0100 Subject: [PATCH 04/18] global if behavior name starts with 'layer' --- app/src/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/keymap.c b/app/src/keymap.c index 336fc556..e8e224e0 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -207,9 +207,9 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position return err; }else{ LOG_DBG("got locality: BEHAVIOR_LOCALITY_CENTRAL from behavior"); - } + } - if (strncmp(binding.behavior_dev, "layer") == 0) { + if (strncmp(binding.behavior_dev, "layer", 5) == 0) { behavior_locality locality = BEHAVIOR_LOCALITY_GLOBAL; LOG_DBG("force locality: BEHAVIOR_LOCALITY_GLOBAL because of a 'layer' behavior"); } From cbb1193c32781a607cf03a915b396b6267761f80 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 21:19:22 +0100 Subject: [PATCH 05/18] global if behavior name starts with 'layer' --- app/src/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/keymap.c b/app/src/keymap.c index e8e224e0..7e0ebf9d 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -210,7 +210,7 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position } if (strncmp(binding.behavior_dev, "layer", 5) == 0) { - behavior_locality locality = BEHAVIOR_LOCALITY_GLOBAL; + locality = BEHAVIOR_LOCALITY_GLOBAL; LOG_DBG("force locality: BEHAVIOR_LOCALITY_GLOBAL because of a 'layer' behavior"); } From 5a816247466c2b98267b62d28c588025889b5874 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 21:38:17 +0100 Subject: [PATCH 06/18] global if behavior name starts with 'layer' --- app/src/behaviors/behavior_rgb_underglow.c | 1 + app/src/keymap.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/behaviors/behavior_rgb_underglow.c b/app/src/behaviors/behavior_rgb_underglow.c index 3459cd22..42cc3eb6 100644 --- a/app/src/behaviors/behavior_rgb_underglow.c +++ b/app/src/behaviors/behavior_rgb_underglow.c @@ -128,6 +128,7 @@ static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, case RGB_EFR_CMD: return zmk_rgb_underglow_cycle_effect(-1); case RGB_COLOR_HSB_CMD: + LOG_DBG("RGB_COLOR_HSB_CMD"); return zmk_rgb_underglow_set_hsb((struct zmk_led_hsb){.h = (binding->param2 >> 16) & 0xFFFF, .s = (binding->param2 >> 8) & 0xFF, .b = binding->param2 & 0xFF}); diff --git a/app/src/keymap.c b/app/src/keymap.c index 7e0ebf9d..8ac90ed0 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -231,7 +231,7 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position return invoke_locally(&binding, event, pressed); #endif case BEHAVIOR_LOCALITY_GLOBAL: - LOG_DBG("locality is: BEHAVIOR_LOCALITY_GLOBAL"); + LOG_DBG("locality is: BEHAVIOR_LOCALITY_GLOBAL - Invoking %s", log_strdup(binding.behavior_dev)); #if ZMK_BLE_IS_CENTRAL LOG_DBG("BEHAVIOR_LOCALITY_GLOBAL is central"); for (int i = 0; i < ZMK_BLE_SPLIT_PERIPHERAL_COUNT; i++) { From 03552cd6a89fa4483677cf203c5ca7c21cccac80 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 21:47:57 +0100 Subject: [PATCH 07/18] global if behavior name starts with 'layer' --- app/src/behaviors/behavior_rgb_underglow.c | 7 ++++++- app/src/keymap.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/behaviors/behavior_rgb_underglow.c b/app/src/behaviors/behavior_rgb_underglow.c index 42cc3eb6..8c71a090 100644 --- a/app/src/behaviors/behavior_rgb_underglow.c +++ b/app/src/behaviors/behavior_rgb_underglow.c @@ -128,7 +128,12 @@ static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, case RGB_EFR_CMD: return zmk_rgb_underglow_cycle_effect(-1); case RGB_COLOR_HSB_CMD: - LOG_DBG("RGB_COLOR_HSB_CMD"); + #if ZMK_BLE_IS_CENTRAL + LOG_DBG("central RGB_COLOR_HSB_CMD (sending binding to peripheral)"); + zmk_split_bt_invoke_behavior(0, &binding, event, true); + #else + LOG_DBG("peripheral RGB_COLOR_HSB_CMD (nothing special)"); + #endif return zmk_rgb_underglow_set_hsb((struct zmk_led_hsb){.h = (binding->param2 >> 16) & 0xFFFF, .s = (binding->param2 >> 8) & 0xFF, .b = binding->param2 & 0xFF}); diff --git a/app/src/keymap.c b/app/src/keymap.c index 8ac90ed0..439e5652 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -233,7 +233,7 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position case BEHAVIOR_LOCALITY_GLOBAL: LOG_DBG("locality is: BEHAVIOR_LOCALITY_GLOBAL - Invoking %s", log_strdup(binding.behavior_dev)); #if ZMK_BLE_IS_CENTRAL - LOG_DBG("BEHAVIOR_LOCALITY_GLOBAL is central"); + LOG_DBG("BEHAVIOR_LOCALITY_GLOBAL is central, calling binding on the peripheral..."); for (int i = 0; i < ZMK_BLE_SPLIT_PERIPHERAL_COUNT; i++) { zmk_split_bt_invoke_behavior(i, &binding, event, pressed); } From 7a559d75596aa0b60022c8f86d9b52d98e28c6b1 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 21:55:18 +0100 Subject: [PATCH 08/18] global if behavior name starts with 'layer' --- app/src/behaviors/behavior_rgb_underglow.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/behaviors/behavior_rgb_underglow.c b/app/src/behaviors/behavior_rgb_underglow.c index 8c71a090..48338a48 100644 --- a/app/src/behaviors/behavior_rgb_underglow.c +++ b/app/src/behaviors/behavior_rgb_underglow.c @@ -128,12 +128,8 @@ static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, case RGB_EFR_CMD: return zmk_rgb_underglow_cycle_effect(-1); case RGB_COLOR_HSB_CMD: - #if ZMK_BLE_IS_CENTRAL - LOG_DBG("central RGB_COLOR_HSB_CMD (sending binding to peripheral)"); + LOG_DBG("RGB_COLOR_HSB_CMD sending binding to peripheral"); zmk_split_bt_invoke_behavior(0, &binding, event, true); - #else - LOG_DBG("peripheral RGB_COLOR_HSB_CMD (nothing special)"); - #endif return zmk_rgb_underglow_set_hsb((struct zmk_led_hsb){.h = (binding->param2 >> 16) & 0xFFFF, .s = (binding->param2 >> 8) & 0xFF, .b = binding->param2 & 0xFF}); From ec6a7948a8c559d95b743f1cdbf8b859f203ea72 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 22:02:09 +0100 Subject: [PATCH 09/18] global if behavior name starts with 'layer' --- app/src/behaviors/behavior_rgb_underglow.c | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/behaviors/behavior_rgb_underglow.c b/app/src/behaviors/behavior_rgb_underglow.c index 48338a48..4c9afe63 100644 --- a/app/src/behaviors/behavior_rgb_underglow.c +++ b/app/src/behaviors/behavior_rgb_underglow.c @@ -8,6 +8,7 @@ #include #include +#include #include #include From c2992bf0e51caec5d5f5c1f7ac0ce1beefe1e9ed Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 22:23:02 +0100 Subject: [PATCH 10/18] global if behavior name starts with 'layer' --- app/src/behavior_queue.c | 6 ++++++ app/src/behaviors/behavior_rgb_underglow.c | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/behavior_queue.c b/app/src/behavior_queue.c index 617d5aad..d79e9553 100644 --- a/app/src/behavior_queue.c +++ b/app/src/behavior_queue.c @@ -9,6 +9,8 @@ #include #include #include +#include + LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); @@ -35,6 +37,10 @@ static void behavior_queue_process_next(struct k_work *work) { .timestamp = k_uptime_get()}; if (item.press) { + if(strncmp(item.binding.behavior_dev,"RGB_UG",6)==0){ + LOG_DBG("RGB_COLOR_HSB_CMD sending binding to peripheral"); + zmk_split_bt_invoke_behavior(0, &binding, event, true); + } behavior_keymap_binding_pressed(&item.binding, event); } else { behavior_keymap_binding_released(&item.binding, event); diff --git a/app/src/behaviors/behavior_rgb_underglow.c b/app/src/behaviors/behavior_rgb_underglow.c index 4c9afe63..3459cd22 100644 --- a/app/src/behaviors/behavior_rgb_underglow.c +++ b/app/src/behaviors/behavior_rgb_underglow.c @@ -8,7 +8,6 @@ #include #include -#include #include #include @@ -129,8 +128,6 @@ static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, case RGB_EFR_CMD: return zmk_rgb_underglow_cycle_effect(-1); case RGB_COLOR_HSB_CMD: - LOG_DBG("RGB_COLOR_HSB_CMD sending binding to peripheral"); - zmk_split_bt_invoke_behavior(0, &binding, event, true); return zmk_rgb_underglow_set_hsb((struct zmk_led_hsb){.h = (binding->param2 >> 16) & 0xFFFF, .s = (binding->param2 >> 8) & 0xFF, .b = binding->param2 & 0xFF}); From 69b50b8ce75d656c36f8e19a3063f639387fb215 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 22:25:22 +0100 Subject: [PATCH 11/18] global if behavior name starts with 'layer' --- app/src/behavior_queue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/behavior_queue.c b/app/src/behavior_queue.c index d79e9553..ab6a219b 100644 --- a/app/src/behavior_queue.c +++ b/app/src/behavior_queue.c @@ -39,7 +39,7 @@ static void behavior_queue_process_next(struct k_work *work) { if (item.press) { if(strncmp(item.binding.behavior_dev,"RGB_UG",6)==0){ LOG_DBG("RGB_COLOR_HSB_CMD sending binding to peripheral"); - zmk_split_bt_invoke_behavior(0, &binding, event, true); + zmk_split_bt_invoke_behavior(0, &item.binding, event, true); } behavior_keymap_binding_pressed(&item.binding, event); } else { From 9ea017eef4f6ed896c3946dd9eef2472e00acc68 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 22:44:33 +0100 Subject: [PATCH 12/18] global if behavior name starts with 'layer' --- app/include/zmk/split/bluetooth/central.h | 4 +++- app/src/behavior_queue.c | 10 ++++------ app/src/keymap.c | 20 +++----------------- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/app/include/zmk/split/bluetooth/central.h b/app/include/zmk/split/bluetooth/central.h index 07240860..f5500b05 100644 --- a/app/include/zmk/split/bluetooth/central.h +++ b/app/include/zmk/split/bluetooth/central.h @@ -5,4 +5,6 @@ #include int zmk_split_bt_invoke_behavior(uint8_t source, struct zmk_behavior_binding *binding, - struct zmk_behavior_binding_event event, bool state); \ No newline at end of file + struct zmk_behavior_binding_event event, bool state); + +int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,bool pressed); \ No newline at end of file diff --git a/app/src/behavior_queue.c b/app/src/behavior_queue.c index ab6a219b..5eb5541c 100644 --- a/app/src/behavior_queue.c +++ b/app/src/behavior_queue.c @@ -37,13 +37,11 @@ static void behavior_queue_process_next(struct k_work *work) { .timestamp = k_uptime_get()}; if (item.press) { - if(strncmp(item.binding.behavior_dev,"RGB_UG",6)==0){ - LOG_DBG("RGB_COLOR_HSB_CMD sending binding to peripheral"); - zmk_split_bt_invoke_behavior(0, &item.binding, event, true); - } - behavior_keymap_binding_pressed(&item.binding, event); + zmk_run_behavior(&item.binding, event,true) +// behavior_keymap_binding_pressed(&item.binding, event); } else { - behavior_keymap_binding_released(&item.binding, event); + zmk_run_behavior(&item.binding, event,false) + // behavior_keymap_binding_released(&item.binding, event); } LOG_DBG("Processing next queued behavior in %dms", item.wait); diff --git a/app/src/keymap.c b/app/src/keymap.c index 439e5652..75c88b9c 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -182,7 +182,10 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position LOG_DBG("layer: %d position: %d, binding name: %s", layer, position, log_strdup(binding.behavior_dev)); + return zmk_run_behavior(&binding,event,pressed); +} +int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,bool pressed){ behavior = device_get_binding(binding.behavior_dev); @@ -198,29 +201,16 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position } enum behavior_locality locality = BEHAVIOR_LOCALITY_CENTRAL; - - - err = behavior_get_locality(behavior, &locality); if (err) { LOG_ERR("Failed to get behavior locality %d", err); return err; - }else{ - LOG_DBG("got locality: BEHAVIOR_LOCALITY_CENTRAL from behavior"); } - if (strncmp(binding.behavior_dev, "layer", 5) == 0) { - locality = BEHAVIOR_LOCALITY_GLOBAL; - LOG_DBG("force locality: BEHAVIOR_LOCALITY_GLOBAL because of a 'layer' behavior"); - } - - switch (locality) { case BEHAVIOR_LOCALITY_CENTRAL: - LOG_DBG("locality is: BEHAVIOR_LOCALITY_CENTRAL"); return invoke_locally(&binding, event, pressed); case BEHAVIOR_LOCALITY_EVENT_SOURCE: - LOG_DBG("locality is: BEHAVIOR_LOCALITY_EVENT_SOURCE"); #if ZMK_BLE_IS_CENTRAL if (source == ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL) { return invoke_locally(&binding, event, pressed); @@ -231,14 +221,10 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position return invoke_locally(&binding, event, pressed); #endif case BEHAVIOR_LOCALITY_GLOBAL: - LOG_DBG("locality is: BEHAVIOR_LOCALITY_GLOBAL - Invoking %s", log_strdup(binding.behavior_dev)); #if ZMK_BLE_IS_CENTRAL - LOG_DBG("BEHAVIOR_LOCALITY_GLOBAL is central, calling binding on the peripheral..."); for (int i = 0; i < ZMK_BLE_SPLIT_PERIPHERAL_COUNT; i++) { zmk_split_bt_invoke_behavior(i, &binding, event, pressed); } -#else - LOG_DBG("BEHAVIOR_LOCALITY_GLOBAL is peripheral"); #endif return invoke_locally(&binding, event, pressed); } From 4bfe7394b5021d63f1c4bbb51f868818cc1ee6b6 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 22:47:38 +0100 Subject: [PATCH 13/18] global if behavior name starts with 'layer' --- app/src/behavior_queue.c | 4 ++-- app/src/rgb_underglow.c | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/behavior_queue.c b/app/src/behavior_queue.c index 5eb5541c..02975882 100644 --- a/app/src/behavior_queue.c +++ b/app/src/behavior_queue.c @@ -37,10 +37,10 @@ static void behavior_queue_process_next(struct k_work *work) { .timestamp = k_uptime_get()}; if (item.press) { - zmk_run_behavior(&item.binding, event,true) + zmk_run_behavior(&item.binding, event,true); // behavior_keymap_binding_pressed(&item.binding, event); } else { - zmk_run_behavior(&item.binding, event,false) + zmk_run_behavior(&item.binding, event,false); // behavior_keymap_binding_released(&item.binding, event); } diff --git a/app/src/rgb_underglow.c b/app/src/rgb_underglow.c index 4f0bee68..25d4466e 100644 --- a/app/src/rgb_underglow.c +++ b/app/src/rgb_underglow.c @@ -475,9 +475,6 @@ static int rgb_underglow_auto_state(bool *prev_state, bool new_state) { static int rgb_underglow_event_listener(const zmk_event_t *eh) { - LOG_DBG("rgb_underglow_event_listener"); - - #if IS_ENABLED(CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE) if (as_zmk_activity_state_changed(eh)) { static bool prev_state = false; From 2db06bf083060081611beaa7586a264425efd9c8 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 22:51:22 +0100 Subject: [PATCH 14/18] global if behavior name starts with 'layer' --- app/src/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/keymap.c b/app/src/keymap.c index 75c88b9c..5ae1b97b 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -187,7 +187,7 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,bool pressed){ - behavior = device_get_binding(binding.behavior_dev); + const struct device *behavior = device_get_binding(binding.behavior_dev); if (!behavior) { LOG_WRN("No behavior assigned to %d on layer %d", position, layer); From 8920952e7a8ca1ada5441887a12e4252ba2d0884 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 22:54:33 +0100 Subject: [PATCH 15/18] global if behavior name starts with 'layer' --- app/src/keymap.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/keymap.c b/app/src/keymap.c index 5ae1b97b..b53f0962 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -187,14 +187,14 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,bool pressed){ - const struct device *behavior = device_get_binding(binding.behavior_dev); + const struct device *behavior = device_get_binding(binding->behavior_dev); if (!behavior) { LOG_WRN("No behavior assigned to %d on layer %d", position, layer); return 1; } - int err = behavior_keymap_binding_convert_central_state_dependent_params(&binding, event); + int err = behavior_keymap_binding_convert_central_state_dependent_params(binding, event); if (err) { LOG_ERR("Failed to convert relative to absolute behavior binding (err %d)", err); return err; @@ -209,24 +209,24 @@ int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_b switch (locality) { case BEHAVIOR_LOCALITY_CENTRAL: - return invoke_locally(&binding, event, pressed); + return invoke_locally(binding, event, pressed); case BEHAVIOR_LOCALITY_EVENT_SOURCE: #if ZMK_BLE_IS_CENTRAL if (source == ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL) { - return invoke_locally(&binding, event, pressed); + return invoke_locally(binding, event, pressed); } else { return zmk_split_bt_invoke_behavior(source, &binding, event, pressed); } #else - return invoke_locally(&binding, event, pressed); + return invoke_locally(binding, event, pressed); #endif case BEHAVIOR_LOCALITY_GLOBAL: #if ZMK_BLE_IS_CENTRAL for (int i = 0; i < ZMK_BLE_SPLIT_PERIPHERAL_COUNT; i++) { - zmk_split_bt_invoke_behavior(i, &binding, event, pressed); + zmk_split_bt_invoke_behavior(i, binding, event, pressed); } #endif - return invoke_locally(&binding, event, pressed); + return invoke_locally(binding, event, pressed); } return -ENOTSUP; From f8af52e522c5875a279471b1568fe48d2c287746 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 23:00:46 +0100 Subject: [PATCH 16/18] global if behavior name starts with 'layer' --- app/src/keymap.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/keymap.c b/app/src/keymap.c index b53f0962..2d3babc2 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -179,18 +179,19 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position .timestamp = timestamp, }; - LOG_DBG("layer: %d position: %d, binding name: %s", layer, position, - log_strdup(binding.behavior_dev)); - return zmk_run_behavior(&binding,event,pressed); } int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,bool pressed){ + LOG_DBG("layer: %d position: %d, binding name: %s", event.layer, event.position, + log_strdup(binding->behavior_dev)); + + const struct device *behavior = device_get_binding(binding->behavior_dev); if (!behavior) { - LOG_WRN("No behavior assigned to %d on layer %d", position, layer); + LOG_WRN("No behavior assigned to %d on layer %d", event.position, event.layer); return 1; } From 6a7c4e8855318ae0e4395e5f2a0a3b0bd89c07cf Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 23:05:23 +0100 Subject: [PATCH 17/18] global if behavior name starts with 'layer' --- app/src/behavior_queue.c | 4 ++-- app/src/keymap.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/behavior_queue.c b/app/src/behavior_queue.c index 02975882..7e350e7c 100644 --- a/app/src/behavior_queue.c +++ b/app/src/behavior_queue.c @@ -37,10 +37,10 @@ static void behavior_queue_process_next(struct k_work *work) { .timestamp = k_uptime_get()}; if (item.press) { - zmk_run_behavior(&item.binding, event,true); + zmk_run_behavior(&item.binding, event,0,true); // behavior_keymap_binding_pressed(&item.binding, event); } else { - zmk_run_behavior(&item.binding, event,false); + zmk_run_behavior(&item.binding, event,0,false); // behavior_keymap_binding_released(&item.binding, event); } diff --git a/app/src/keymap.c b/app/src/keymap.c index 2d3babc2..6431052b 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -179,10 +179,10 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position .timestamp = timestamp, }; - return zmk_run_behavior(&binding,event,pressed); + return zmk_run_behavior(&binding,event,source,pressed); } -int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,bool pressed){ +int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,uint8_t source,bool pressed){ LOG_DBG("layer: %d position: %d, binding name: %s", event.layer, event.position, log_strdup(binding->behavior_dev)); From e2b6e68195048d5cd3edde2f86e1d3638823a902 Mon Sep 17 00:00:00 2001 From: tokazio Date: Tue, 17 Jan 2023 23:08:29 +0100 Subject: [PATCH 18/18] global if behavior name starts with 'layer' --- app/include/zmk/split/bluetooth/central.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/include/zmk/split/bluetooth/central.h b/app/include/zmk/split/bluetooth/central.h index f5500b05..e08427e0 100644 --- a/app/include/zmk/split/bluetooth/central.h +++ b/app/include/zmk/split/bluetooth/central.h @@ -7,4 +7,4 @@ int zmk_split_bt_invoke_behavior(uint8_t source, struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event, bool state); -int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,bool pressed); \ No newline at end of file +int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,uint8_t source,bool pressed); \ No newline at end of file