Browse Source

feat(endpoints): rename behavior to outputs

"Outputs" is probably easier for most people to understand than "endpoints".
xmkb
Joel Spadin 4 years ago
parent
commit
2fe1fbb526
  1. 2
      app/CMakeLists.txt
  2. 2
      app/dts/behaviors.dtsi
  3. 9
      app/dts/behaviors/endpoints.dtsi
  4. 9
      app/dts/behaviors/outputs.dtsi
  5. 4
      app/dts/bindings/behaviors/zmk,behavior-outputs.yaml
  6. 13
      app/include/dt-bindings/zmk/endpoints.h
  7. 13
      app/include/dt-bindings/zmk/outputs.h
  8. 20
      app/src/behaviors/behavior_outputs.c
  9. 59
      docs/docs/behavior/endpoints.md
  10. 59
      docs/docs/behavior/outputs.md
  11. 2
      docs/sidebars.js

2
app/CMakeLists.txt

@ -39,11 +39,11 @@ target_sources(app PRIVATE src/events/sensor_event.c)
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c) target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c)
target_sources_ifdef(CONFIG_USB app PRIVATE src/events/usb_conn_state_changed.c) target_sources_ifdef(CONFIG_USB app PRIVATE src/events/usb_conn_state_changed.c)
if (NOT CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL) if (NOT CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL)
target_sources(app PRIVATE src/behaviors/behavior_endpoints.c)
target_sources(app PRIVATE src/behaviors/behavior_key_press.c) target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
target_sources(app PRIVATE src/behaviors/behavior_reset.c) target_sources(app PRIVATE src/behaviors/behavior_reset.c)
target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c) target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c)
target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c) target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c)
target_sources(app PRIVATE src/behaviors/behavior_outputs.c)
target_sources(app PRIVATE src/behaviors/behavior_toggle_layer.c) target_sources(app PRIVATE src/behaviors/behavior_toggle_layer.c)
target_sources(app PRIVATE src/behaviors/behavior_transparent.c) target_sources(app PRIVATE src/behaviors/behavior_transparent.c)
target_sources(app PRIVATE src/behaviors/behavior_none.c) target_sources(app PRIVATE src/behaviors/behavior_none.c)

2
app/dts/behaviors.dtsi

@ -10,4 +10,4 @@
#include <behaviors/rgb_underglow.dtsi> #include <behaviors/rgb_underglow.dtsi>
#include <behaviors/bluetooth.dtsi> #include <behaviors/bluetooth.dtsi>
#include <behaviors/ext_power.dtsi> #include <behaviors/ext_power.dtsi>
#include <behaviors/endpoints.dtsi> #include <behaviors/outputs.dtsi>

9
app/dts/behaviors/endpoints.dtsi

@ -1,9 +0,0 @@
/ {
behaviors {
end: behavior_endpoints {
compatible = "zmk,behavior-endpoints";
label = "ENDPOINTS";
#binding-cells = <1>;
};
};
};

9
app/dts/behaviors/outputs.dtsi

@ -0,0 +1,9 @@
/ {
behaviors {
out: behavior_outputs {
compatible = "zmk,behavior-outputs";
label = "OUTPUTS";
#binding-cells = <1>;
};
};
};

4
app/dts/bindings/behaviors/zmk,behavior-endpoints.yaml → app/dts/bindings/behaviors/zmk,behavior-outputs.yaml

@ -3,8 +3,8 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# #
description: Endpoints Behavior description: Output Selection Behavior
compatible: "zmk,behavior-endpoints" compatible: "zmk,behavior-outputs"
include: one_param.yaml include: one_param.yaml

13
app/include/dt-bindings/zmk/endpoints.h

@ -1,13 +0,0 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#define ENDPOINT_TOGGLE_CMD 0
#define ENDPOINT_USB_CMD 1
#define ENDPOINT_BLE_CMD 2
#define END_TOG ENDPOINT_TOGGLE_CMD
#define END_USB ENDPOINT_USB_CMD
#define END_BLE ENDPOINT_BLE_CMD

13
app/include/dt-bindings/zmk/outputs.h

@ -0,0 +1,13 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#define OUTPUT_TOGGLE_CMD 0
#define OUTPUT_USB_CMD 1
#define OUTPUT_BLE_CMD 2
#define OUT_TOG OUTPUT_TOGGLE_CMD
#define OUT_USB OUTPUT_USB_CMD
#define OUT_BLE OUTPUT_BLE_CMD

20
app/src/behaviors/behavior_endpoints.c → app/src/behaviors/behavior_outputs.c

@ -4,13 +4,13 @@
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
*/ */
#define DT_DRV_COMPAT zmk_behavior_endpoints #define DT_DRV_COMPAT zmk_behavior_outputs
#include <device.h> #include <device.h>
#include <devicetree.h> #include <devicetree.h>
#include <drivers/behavior.h> #include <drivers/behavior.h>
#include <dt-bindings/zmk/endpoints.h> #include <dt-bindings/zmk/outputs.h>
#include <zmk/behavior.h> #include <zmk/behavior.h>
#include <zmk/endpoints.h> #include <zmk/endpoints.h>
@ -21,24 +21,24 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding,
struct zmk_behavior_binding_event event) { struct zmk_behavior_binding_event event) {
switch (binding->param1) { switch (binding->param1) {
case ENDPOINT_TOGGLE_CMD: case OUTPUT_TOGGLE_CMD:
return zmk_endpoints_toggle(); return zmk_endpoints_toggle();
case ENDPOINT_USB_CMD: case OUTPUT_USB_CMD:
return zmk_endpoints_select(ZMK_ENDPOINT_USB); return zmk_endpoints_select(ZMK_ENDPOINT_USB);
case ENDPOINT_BLE_CMD: case OUTPUT_BLE_CMD:
return zmk_endpoints_select(ZMK_ENDPOINT_BLE); return zmk_endpoints_select(ZMK_ENDPOINT_BLE);
default: default:
LOG_ERR("Unknown endpoints command: %d", binding->param1); LOG_ERR("Unknown output command: %d", binding->param1);
} }
return -ENOTSUP; return -ENOTSUP;
} }
static int behavior_ep_init(struct device *dev) { return 0; } static int behavior_out_init(struct device *dev) { return 0; }
static const struct behavior_driver_api behavior_endpoints_driver_api = { static const struct behavior_driver_api behavior_outputs_driver_api = {
.binding_pressed = on_keymap_binding_pressed, .binding_pressed = on_keymap_binding_pressed,
}; };
DEVICE_AND_API_INIT(behavior_end, DT_INST_LABEL(0), behavior_ep_init, NULL, NULL, APPLICATION, DEVICE_AND_API_INIT(behavior_out, DT_INST_LABEL(0), behavior_out_init, NULL, NULL, APPLICATION,
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_endpoints_driver_api); CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_outputs_driver_api);

59
docs/docs/behavior/endpoints.md

@ -1,59 +0,0 @@
---
title: Endpoint Behavior
sidebar_label: Endpoints
---
## Summary
The endpoint behavior allows selecting whether keyboard input is sent to the
USB or bluetooth connection when both are connected. This allows connecting a
keyboard to USB for power but sending input to a different device over bluetooth.
By default, keyboard input is sent to USB when both endpoints are connected.
Once you select a different endpoint, it will be remembered until you change it again.
## Endpoints Command Defines
Endpoints command defines are provided through the [`dt-bindings/zmk/endpoints.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/endpoints.h)
header, which is added at the top of the keymap file:
```
#include <dt-bindings/zmk/endpoints.h>
```
This allows you to reference the actions defined in this header:
| Define | Action | Alias |
| --------------------- | ---------------------------------------------------- | --------- |
| `ENDPOINT_USB_CMD` | Send keyboard input to USB | `END_USB` |
| `ENDPOINT_BLE_CMD` | Send keyboard input to the current bluetooth profile | `END_BLE` |
| `ENDPOINT_TOGGLE_CMD` | Toggle between USB and BLE | `END_TOG` |
## Endpoints Behavior
The endpoints behavior changes the preferred endpoint on press.
### Behavior Binding
- Reference: `&end`
- Parameter #1: Command, e.g. `END_BLE`
### Example:
1. Behavior binding to prefer sending keyboard input to USB
```
&end END_USB
```
1. Behavior binding to prefer sending keyboard input to the current bluetooth profile
```
&end END_BLE
```
1. Behavior binding to toggle between preferring USB and BLE
```
&end END_TOG
```

59
docs/docs/behavior/outputs.md

@ -0,0 +1,59 @@
---
title: Output Selection Behavior
sidebar_label: Output Selection
---
## Summary
The output behavior allows selecting whether keyboard output is sent to the
USB or bluetooth connection when both are connected. This allows connecting a
keyboard to USB for power but outputting to a different device over bluetooth.
By default, output is sent to USB when both USB and BLE are connected.
Once you select a different output, it will be remembered until you change it again.
## Output Command Defines
Output command defines are provided through the [`dt-bindings/zmk/outputs.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/outputs.h)
header, which is added at the top of the keymap file:
```
#include <dt-bindings/zmk/outputs.h>
```
This allows you to reference the actions defined in this header:
| Define | Action | Alias |
| ------------------- | ----------------------------------------------- | --------- |
| `OUTPUT_USB_CMD` | Prefer sending to USB | `OUT_USB` |
| `OUTPUT_BLE_CMD` | Prefer sending to the current bluetooth profile | `OUT_BLE` |
| `OUTPUT_TOGGLE_CMD` | Toggle between USB and BLE | `OUT_TOG` |
## Output Selection Behavior
The output selection behavior changes the preferred output on press.
### Behavior Binding
- Reference: `&out`
- Parameter #1: Command, e.g. `OUT_BLE`
### Example:
1. Behavior binding to prefer sending keyboard output to USB
```
&out OUT_USB
```
1. Behavior binding to prefer sending keyboard output to the current bluetooth profile
```
&out OUT_BLE
```
1. Behavior binding to toggle between preferring USB and BLE
```
&out OUT_TOG
```

2
docs/sidebars.js

@ -22,7 +22,7 @@ module.exports = {
"behavior/mod-tap", "behavior/mod-tap",
"behavior/reset", "behavior/reset",
"behavior/bluetooth", "behavior/bluetooth",
"behavior/endpoints", "behavior/outputs",
"behavior/lighting", "behavior/lighting",
"behavior/power", "behavior/power",
], ],

Loading…
Cancel
Save