forked from kofal.net/zmk
refactor: Move to LISTIFY/DT_FOREACH_PROP_ELEM macros.
This commit is contained in:
committed by
Pete Johanson
parent
69a4c3200d
commit
243a227ff9
@@ -168,7 +168,7 @@ static int behavior_caps_word_init(const struct device *dev) {
|
||||
#define PARSE_BREAK(i) \
|
||||
{.page = ZMK_HID_USAGE_PAGE(i), \
|
||||
.id = ZMK_HID_USAGE_ID(i), \
|
||||
.implicit_modifiers = SELECT_MODS(i)},
|
||||
.implicit_modifiers = SELECT_MODS(i)}
|
||||
|
||||
#define BREAK_ITEM(i, n) PARSE_BREAK(DT_INST_PROP_BY_IDX(n, continue_list, i))
|
||||
|
||||
@@ -177,7 +177,7 @@ static int behavior_caps_word_init(const struct device *dev) {
|
||||
static struct behavior_caps_word_config behavior_caps_word_config_##n = { \
|
||||
.index = n, \
|
||||
.mods = DT_INST_PROP_OR(n, mods, MOD_LSFT), \
|
||||
.continuations = {UTIL_LISTIFY(DT_INST_PROP_LEN(n, continue_list), BREAK_ITEM, n)}, \
|
||||
.continuations = {LISTIFY(DT_INST_PROP_LEN(n, continue_list), BREAK_ITEM, (,), n)}, \
|
||||
.continuations_count = DT_INST_PROP_LEN(n, continue_list), \
|
||||
}; \
|
||||
DEVICE_DT_INST_DEFINE(n, behavior_caps_word_init, NULL, &behavior_caps_word_data_##n, \
|
||||
|
||||
@@ -166,10 +166,10 @@ static const struct behavior_driver_api behavior_macro_driver_api = {
|
||||
.binding_released = on_macro_binding_released,
|
||||
};
|
||||
|
||||
#define BINDING_WITH_COMMA(idx, drv_inst) ZMK_KEYMAP_EXTRACT_BINDING(idx, DT_DRV_INST(drv_inst)),
|
||||
#define BINDING_WITH_COMMA(idx, drv_inst) ZMK_KEYMAP_EXTRACT_BINDING(idx, DT_DRV_INST(drv_inst))
|
||||
|
||||
#define TRANSFORMED_BEHAVIORS(n) \
|
||||
{UTIL_LISTIFY(DT_PROP_LEN(DT_DRV_INST(n), bindings), BINDING_WITH_COMMA, n)},
|
||||
{LISTIFY(DT_PROP_LEN(DT_DRV_INST(n), bindings), BINDING_WITH_COMMA, (,), n)},
|
||||
|
||||
#define MACRO_INST(n) \
|
||||
static struct behavior_macro_state behavior_macro_state_##n = {}; \
|
||||
|
||||
@@ -237,10 +237,10 @@ static int behavior_tap_dance_init(const struct device *dev) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define _TRANSFORM_ENTRY(idx, node) ZMK_KEYMAP_EXTRACT_BINDING(idx, node),
|
||||
#define _TRANSFORM_ENTRY(idx, node) ZMK_KEYMAP_EXTRACT_BINDING(idx, node)
|
||||
|
||||
#define TRANSFORMED_BINDINGS(node) \
|
||||
{ UTIL_LISTIFY(DT_INST_PROP_LEN(node, bindings), _TRANSFORM_ENTRY, DT_DRV_INST(node)) }
|
||||
{ LISTIFY(DT_INST_PROP_LEN(node, bindings), _TRANSFORM_ENTRY, (,), DT_DRV_INST(node)) }
|
||||
|
||||
#define KP_INST(n) \
|
||||
static struct zmk_behavior_binding \
|
||||
|
||||
@@ -33,13 +33,12 @@ struct conditional_layer_cfg {
|
||||
int8_t then_layer;
|
||||
};
|
||||
|
||||
#define IF_LAYER_BIT(i, n) BIT(DT_PROP_BY_IDX(n, if_layers, i)) |
|
||||
#define IF_LAYER_BIT(node_id, prop, idx) BIT(DT_PROP_BY_IDX(node_id, prop, idx)) |
|
||||
|
||||
// Evaluates to conditional_layer_cfg struct initializer.
|
||||
#define CONDITIONAL_LAYER_DECL(n) \
|
||||
{ \
|
||||
/* TODO: Replace UTIL_LISTIFY with DT_FOREACH_PROP_ELEM after Zepyhr 2.6.0 upgrade. */ \
|
||||
.if_layers_state_mask = UTIL_LISTIFY(DT_PROP_LEN(n, if_layers), IF_LAYER_BIT, n) 0, \
|
||||
.if_layers_state_mask = DT_FOREACH_PROP_ELEM(n, if_layers, IF_LAYER_BIT) 0, \
|
||||
.then_layer = DT_PROP(n, then_layer), \
|
||||
},
|
||||
|
||||
|
||||
@@ -34,10 +34,10 @@ static uint8_t _zmk_keymap_layer_default = 0;
|
||||
#define ZMK_KEYMAP_NODE DT_DRV_INST(0)
|
||||
#define ZMK_KEYMAP_LAYERS_LEN (DT_INST_FOREACH_CHILD(0, LAYER_CHILD_LEN) 0)
|
||||
|
||||
#define BINDING_WITH_COMMA(idx, drv_inst) ZMK_KEYMAP_EXTRACT_BINDING(idx, drv_inst),
|
||||
#define BINDING_WITH_COMMA(idx, drv_inst) ZMK_KEYMAP_EXTRACT_BINDING(idx, drv_inst)
|
||||
|
||||
#define TRANSFORMED_LAYER(node) \
|
||||
{UTIL_LISTIFY(DT_PROP_LEN(node, bindings), BINDING_WITH_COMMA, node)},
|
||||
{LISTIFY(DT_PROP_LEN(node, bindings), BINDING_WITH_COMMA, (,), node)},
|
||||
|
||||
#if ZMK_KEYMAP_HAS_SENSORS
|
||||
#define _TRANSFORM_SENSOR_ENTRY(idx, layer) \
|
||||
@@ -47,12 +47,12 @@ static uint8_t _zmk_keymap_layer_default = 0;
|
||||
(DT_PHA_BY_IDX(layer, sensor_bindings, idx, param1))), \
|
||||
.param2 = COND_CODE_0(DT_PHA_HAS_CELL_AT_IDX(layer, sensor_bindings, idx, param2), (0), \
|
||||
(DT_PHA_BY_IDX(layer, sensor_bindings, idx, param2))), \
|
||||
},
|
||||
}
|
||||
|
||||
#define SENSOR_LAYER(node) \
|
||||
COND_CODE_1( \
|
||||
DT_NODE_HAS_PROP(node, sensor_bindings), \
|
||||
({UTIL_LISTIFY(DT_PROP_LEN(node, sensor_bindings), _TRANSFORM_SENSOR_ENTRY, node)}), \
|
||||
({LISTIFY(DT_PROP_LEN(node, sensor_bindings), _TRANSFORM_SENSOR_ENTRY, (,), node)}), \
|
||||
({})),
|
||||
|
||||
#endif /* ZMK_KEYMAP_HAS_SENSORS */
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
|
||||
#define _TRANSFORM_ENTRY(i, _) \
|
||||
[(KT_ROW(DT_PROP_BY_IDX(ZMK_KEYMAP_TRANSFORM_NODE, map, i)) * ZMK_MATRIX_COLS) + \
|
||||
KT_COL(DT_PROP_BY_IDX(ZMK_KEYMAP_TRANSFORM_NODE, map, i))] = i,
|
||||
KT_COL(DT_PROP_BY_IDX(ZMK_KEYMAP_TRANSFORM_NODE, map, i))] = i
|
||||
|
||||
static uint32_t transform[] = {UTIL_LISTIFY(ZMK_KEYMAP_LEN, _TRANSFORM_ENTRY, 0)};
|
||||
static uint32_t transform[] = {LISTIFY(ZMK_KEYMAP_LEN, _TRANSFORM_ENTRY, (,), 0)};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -25,12 +25,15 @@ struct sensors_data_item {
|
||||
};
|
||||
|
||||
#define _SENSOR_ITEM(node) \
|
||||
{.dev = NULL, .trigger = {.type = SENSOR_TRIG_DELTA, .chan = SENSOR_CHAN_ROTATION}},
|
||||
#define SENSOR_ITEM(idx, _) \
|
||||
COND_CODE_1(DT_NODE_HAS_STATUS(ZMK_KEYMAP_SENSORS_BY_IDX(idx), okay), \
|
||||
(_SENSOR_ITEM(ZMK_KEYMAP_SENSORS_BY_IDX(idx))), ())
|
||||
{ \
|
||||
.dev = NULL, .trigger = {.type = SENSOR_TRIG_DELTA, .chan = SENSOR_CHAN_ROTATION } \
|
||||
}
|
||||
|
||||
static struct sensors_data_item sensors[] = {UTIL_LISTIFY(ZMK_KEYMAP_SENSORS_LEN, SENSOR_ITEM, 0)};
|
||||
#define SENSOR_ITEM(idx, _node) \
|
||||
COND_CODE_1(DT_NODE_HAS_STATUS(ZMK_KEYMAP_SENSORS_BY_IDX(idx), okay), \
|
||||
(_SENSOR_ITEM(ZMK_KEYMAP_SENSORS_BY_IDX(idx))), ({}))
|
||||
|
||||
static struct sensors_data_item sensors[] = {LISTIFY(ZMK_KEYMAP_SENSORS_LEN, SENSOR_ITEM, (, ), 0)};
|
||||
|
||||
static void zmk_sensors_trigger_handler(const struct device *dev, struct sensor_trigger *trigger) {
|
||||
int err;
|
||||
@@ -71,10 +74,10 @@ static int zmk_sensors_init(const struct device *_arg) {
|
||||
int local_index = 0;
|
||||
int absolute_index = 0;
|
||||
|
||||
UTIL_LISTIFY(ZMK_KEYMAP_SENSORS_LEN, SENSOR_INIT, 0)
|
||||
LISTIFY(ZMK_KEYMAP_SENSORS_LEN, SENSOR_INIT, (), 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_INIT(zmk_sensors_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY);
|
||||
|
||||
#endif /* ZMK_KEYMAP_HAS_SENSORS */
|
||||
#endif /* ZMK_KEYMAP_HAS_SENSORS */
|
||||
|
||||
Reference in New Issue
Block a user