zmk/app
Joel Spadin 36eda571b7 refactor(behaviors): Create a list to lookup behaviors
Added BEHAVIOR_DT_DEFINE() and BEHAVIOR_DT_INST_DEFINE(), which work
exactly like the DEVICE_*_DEFINE() macros, except they also register the
device as a behavior by adding a pointer to it to a memory section.

Added zmk_behavior_get_binding(), which works like device_get_binding()
except that it only searches the devices that have been registered as
behaviors. This ensures that behaviors cannot have name collisions with
other devices defined by the SoC, which will be important when we remove
the label property from behaviors so they are given their node names.

As an added benefit, this is faster since it searches a smaller list.
Some basic benchmark code I wrote indicates it takes 30-70% as long,
depending on where the behavior is in the list and whether the name
string is an exact pointer match.

From now on, behaviors should use BEHAVIOR_*_DEFINe() instead of
DEVICE_*_DEFINE(), and any code that looks up a behavior by name should
use zmk_behavior_get_binding() instead of device_get_binding().
2023-12-04 20:06:54 -06:00
..
boards refactor(keymaps): Rename layer label to "display-name" 2023-12-04 20:06:54 -06:00
cmake refactor: Replace tabs with spaces 2023-04-24 16:07:04 -07:00
dts refactor(keymaps): Rename layer label to "display-name" 2023-12-04 20:06:54 -06:00
include refactor(behaviors): Create a list to lookup behaviors 2023-12-04 20:06:54 -06:00
module refactor(drivers): Make label property optional 2023-12-04 20:06:54 -06:00
scripts chore: make west scripts more pythonic and apply Black 2022-01-04 23:59:25 -05:00
src refactor(behaviors): Create a list to lookup behaviors 2023-12-04 20:06:54 -06:00
tests refactor: Remove unimportant labels 2023-12-04 20:06:54 -06:00
.gitignore feat(metadata): Add YAML check/format npm scripts. 2021-09-11 00:50:36 -04:00
.prettierrc.js refactor: Add more checks to pre-commit 2023-04-24 16:07:04 -07:00
CMakeLists.txt refactor(behaviors): Create a list to lookup behaviors 2023-12-04 20:06:54 -06:00
core-coverage.yml refactor: Add more checks to pre-commit 2023-04-24 16:07:04 -07:00
Kconfig feat(hid): Add KConfig option for higher NKRO usages 2023-12-04 18:24:05 -05:00
Kconfig.behaviors feat(mouse): Initial mouse keys support. 2023-11-15 11:16:59 -08:00
package-lock.json chore: Update Prettier 2023-04-24 16:07:04 -07:00
package.json chore: Update Prettier 2023-04-24 16:07:04 -07:00
prj.conf Removed development files 2020-08-29 11:53:53 -07:00
run-ble-test.sh feat(tests): Add ability to auto-accept test diff. 2023-12-02 17:11:45 -08:00
run-test.sh feat(tests): Add ability to auto-accept test diff. 2023-12-02 17:11:45 -08:00
west.yml feat(bluetooth): Initial nRF52 BSIM based test support. 2023-12-02 17:11:45 -08:00