summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormartinakcsilla <martinakcsilla@users.noreply.github.com>2018-10-03 23:38:02 +0200
committerDrashna Jaelre <drashna@live.com>2018-10-03 23:38:02 +0200
commit0d61e612f063b91568bf8098878051c4ea405ab3 (patch)
treeea4730ff36225d7c731c5b329310d253f0f660d4
parentac27b62fa17859b61a5b5f6c26b1e3113f219b39 (diff)
downloadqmk_firmware-0d61e612f063b91568bf8098878051c4ea405ab3.tar.gz
qmk_firmware-0d61e612f063b91568bf8098878051c4ea405ab3.tar.xz
process_ucis: Add a callback for success (#4067)
There is `qk_ucis_symbol_fallback` for the case where symbol lookup fails, but there wasn't one for the success case. This adds `qk_ucis_success`, called after successfully finishing the UCIS symbol input. Thanks to @drashna for the idea! Signed-off-by: Csilla Nagyné Martinák <csilla@csillger.hu>
-rw-r--r--quantum/process_keycode/process_ucis.c8
-rw-r--r--quantum/process_keycode/process_ucis.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/quantum/process_keycode/process_ucis.c b/quantum/process_keycode/process_ucis.c
index 86c0937f5..5de2e41fc 100644
--- a/quantum/process_keycode/process_ucis.c
+++ b/quantum/process_keycode/process_ucis.c
@@ -32,6 +32,10 @@ void qk_ucis_start_user(void) {
unicode_input_finish();
}
+__attribute__((weak))
+void qk_ucis_success(uint8_t symbol_index) {
+}
+
static bool is_uni_seq(char *seq) {
uint8_t i;
@@ -142,6 +146,10 @@ bool process_ucis (uint16_t keycode, keyrecord_t *record) {
}
unicode_input_finish();
+ if (symbol_found) {
+ qk_ucis_success(i);
+ }
+
qk_ucis_state.in_progress = false;
return false;
}
diff --git a/quantum/process_keycode/process_ucis.h b/quantum/process_keycode/process_ucis.h
index 3f736a709..d4aa34cde 100644
--- a/quantum/process_keycode/process_ucis.h
+++ b/quantum/process_keycode/process_ucis.h
@@ -45,6 +45,7 @@ extern const qk_ucis_symbol_t ucis_symbol_table[];
void qk_ucis_start(void);
void qk_ucis_start_user(void);
void qk_ucis_symbol_fallback (void);
+void qk_ucis_success(uint8_t symbol_index);
void register_ucis(const char *hex);
bool process_ucis (uint16_t keycode, keyrecord_t *record);