summary refs log tree commit diff
path: root/data
diff options
context:
space:
mode:
authorprecondition <57645186+precondition@users.noreply.github.com>2022-06-23 20:43:24 +0200
committerGitHub <noreply@github.com>2022-06-23 20:43:24 +0200
commit7060cb7b267e78ba693a77a3346c77c2d4209b01 (patch)
treea76e0c4fb9b8422f8e8cc35acc28783389da4cd5 /data
parent2239527871deef1253ebe885df167726a100f971 (diff)
Refactor steno and add `STENO_PROTOCOL = [all|txbolt|geminipr]` (#17065)
* Refactor steno into STENO_ENABLE_[ALL|GEMINI|BOLT]

* Update stenography documentation

* STENO_ENABLE_TXBOLT → STENO_ENABLE_BOLT

TXBOLT is a better name but BOLT is more consistent with the
pre-existing TX Bolt related constants, which all drop the "TX " prefix

* Comments

* STENO_ENABLE_[GEMINI|BOLT|ALL] → STENO_PROTOCOL = [geminipr|txbolt|all]

* Add note on lacking V-USB support

* Clear chord at the end of the switch(mode){send_steno_chord} block

* Return true if NOEVENT

* update_chord_xxx → add_xxx_key_to_chord

* Enable the defines for all the protocols if STENO_PROTOCOL = all

* Mention how to use `steno_set_mode`

* Set the default steno protocol to "all"

This is done so that existing keymaps invoking `steno_set_mode` don't
all suddenly break

* Add data driver equivalents for stenography feature

* Document format of serial steno packets

(Thanks dnaq)

* Add missing comma
Diffstat (limited to 'data')
-rw-r--r--data/mappings/info_rules.json2
-rw-r--r--data/schemas/keyboard.jsonschema11
2 files changed, 13 insertions, 0 deletions
diff --git a/data/mappings/info_rules.json b/data/mappings/info_rules.json
index 5cdae962a5..279b5ac213 100644
--- a/data/mappings/info_rules.json
+++ b/data/mappings/info_rules.json
@@ -28,6 +28,8 @@
     "SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"},
     "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false},
     "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
+    "STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
+    "STENO_PROTOCOL": {"info_key": "stenography.protocol"},
 
     # Items we want flagged in lint
     "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true},
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 8d9fc4754d..ec5377b3b3 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -361,6 +361,17 @@
                 }
             }
         },
+        "stenography": {
+            "type": "object",
+            "additionalProperties": false,
+            "properties": {
+                "enabled": {"type": "boolean"},
+                "protocol": {
+                    "type": "string",
+                    "enum": ["all", "geminipr", "txbolt"]
+                }
+            }
+        },
         "split": {
             "type": "object",
             "additionalProperties": false,