global if behavior name starts with 'layer'

This commit is contained in:
tokazio 2023-01-17 22:54:33 +01:00
parent 2db06bf083
commit 8920952e7a

View file

@ -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){ 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) { if (!behavior) {
LOG_WRN("No behavior assigned to %d on layer %d", position, layer); LOG_WRN("No behavior assigned to %d on layer %d", position, layer);
return 1; 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) { if (err) {
LOG_ERR("Failed to convert relative to absolute behavior binding (err %d)", err); LOG_ERR("Failed to convert relative to absolute behavior binding (err %d)", err);
return err; return err;
@ -209,24 +209,24 @@ int zmk_run_behavior(struct zmk_behavior_binding *binding, struct zmk_behavior_b
switch (locality) { switch (locality) {
case BEHAVIOR_LOCALITY_CENTRAL: case BEHAVIOR_LOCALITY_CENTRAL:
return invoke_locally(&binding, event, pressed); return invoke_locally(binding, event, pressed);
case BEHAVIOR_LOCALITY_EVENT_SOURCE: case BEHAVIOR_LOCALITY_EVENT_SOURCE:
#if ZMK_BLE_IS_CENTRAL #if ZMK_BLE_IS_CENTRAL
if (source == ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL) { if (source == ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL) {
return invoke_locally(&binding, event, pressed); return invoke_locally(binding, event, pressed);
} else { } else {
return zmk_split_bt_invoke_behavior(source, &binding, event, pressed); return zmk_split_bt_invoke_behavior(source, &binding, event, pressed);
} }
#else #else
return invoke_locally(&binding, event, pressed); return invoke_locally(binding, event, pressed);
#endif #endif
case BEHAVIOR_LOCALITY_GLOBAL: case BEHAVIOR_LOCALITY_GLOBAL:
#if ZMK_BLE_IS_CENTRAL #if ZMK_BLE_IS_CENTRAL
for (int i = 0; i < ZMK_BLE_SPLIT_PERIPHERAL_COUNT; i++) { 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 #endif
return invoke_locally(&binding, event, pressed); return invoke_locally(binding, event, pressed);
} }
return -ENOTSUP; return -ENOTSUP;