Skip to content

Commit b002b25

Browse files
tokazioRomain Petit
authored and
Romain Petit
committed
led color to right side
1 parent a82a0ec commit b002b25

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

app/include/zmk/split/bluetooth/central.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@
55
#include <zmk/behavior.h>
66

77
int zmk_split_bt_invoke_behavior(uint8_t source, struct zmk_behavior_binding *binding,
8-
struct zmk_behavior_binding_event event, bool state);
8+
struct zmk_behavior_binding_event event, bool state);
9+
10+
int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,uint8_t source,bool pressed);

app/src/behavior_queue.c

+6-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
#include <kernel.h>
1010
#include <logging/log.h>
1111
#include <drivers/behavior.h>
12+
#include <zmk/split/bluetooth/central.h>
13+
1214

1315
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
1416

@@ -35,9 +37,11 @@ static void behavior_queue_process_next(struct k_work *work) {
3537
.timestamp = k_uptime_get()};
3638

3739
if (item.press) {
38-
behavior_keymap_binding_pressed(&item.binding, event);
40+
zmk_run_behavior(&item.binding, event,0,true);
41+
// behavior_keymap_binding_pressed(&item.binding, event);
3942
} else {
40-
behavior_keymap_binding_released(&item.binding, event);
43+
zmk_run_behavior(&item.binding, event,0,false);
44+
// behavior_keymap_binding_released(&item.binding, event);
4145
}
4246

4347
LOG_DBG("Processing next queued behavior in %dms", item.wait);

app/src/keymap.c

+16-10
Original file line numberDiff line numberDiff line change
@@ -179,17 +179,23 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position
179179
.timestamp = timestamp,
180180
};
181181

182-
LOG_DBG("layer: %d position: %d, binding name: %s", layer, position,
183-
log_strdup(binding.behavior_dev));
182+
return zmk_run_behavior(&binding,event,source,pressed);
183+
}
184+
185+
int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event,uint8_t source,bool pressed){
186+
187+
LOG_DBG("layer: %d position: %d, binding name: %s", event.layer, event.position,
188+
log_strdup(binding->behavior_dev));
189+
184190

185-
behavior = device_get_binding(binding.behavior_dev);
191+
const struct device *behavior = device_get_binding(binding->behavior_dev);
186192

187193
if (!behavior) {
188-
LOG_WRN("No behavior assigned to %d on layer %d", position, layer);
194+
LOG_WRN("No behavior assigned to %d on layer %d", event.position, event.layer);
189195
return 1;
190196
}
191197

192-
int err = behavior_keymap_binding_convert_central_state_dependent_params(&binding, event);
198+
int err = behavior_keymap_binding_convert_central_state_dependent_params(binding, event);
193199
if (err) {
194200
LOG_ERR("Failed to convert relative to absolute behavior binding (err %d)", err);
195201
return err;
@@ -204,24 +210,24 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position
204210

205211
switch (locality) {
206212
case BEHAVIOR_LOCALITY_CENTRAL:
207-
return invoke_locally(&binding, event, pressed);
213+
return invoke_locally(binding, event, pressed);
208214
case BEHAVIOR_LOCALITY_EVENT_SOURCE:
209215
#if ZMK_BLE_IS_CENTRAL
210216
if (source == ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL) {
211-
return invoke_locally(&binding, event, pressed);
217+
return invoke_locally(binding, event, pressed);
212218
} else {
213219
return zmk_split_bt_invoke_behavior(source, &binding, event, pressed);
214220
}
215221
#else
216-
return invoke_locally(&binding, event, pressed);
222+
return invoke_locally(binding, event, pressed);
217223
#endif
218224
case BEHAVIOR_LOCALITY_GLOBAL:
219225
#if ZMK_BLE_IS_CENTRAL
220226
for (int i = 0; i < ZMK_BLE_SPLIT_PERIPHERAL_COUNT; i++) {
221-
zmk_split_bt_invoke_behavior(i, &binding, event, pressed);
227+
zmk_split_bt_invoke_behavior(i, binding, event, pressed);
222228
}
223229
#endif
224-
return invoke_locally(&binding, event, pressed);
230+
return invoke_locally(binding, event, pressed);
225231
}
226232

227233
return -ENOTSUP;

0 commit comments

Comments
 (0)