summary refs log tree commit diff
path: root/quantum/unicode/unicode.c
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2023-08-27 13:30:19 +1000
committerGitHub <noreply@github.com>2023-08-27 13:30:19 +1000
commit70e34e491c297231a3f987fd69760d38e79dbfa4 (patch)
treea3fe26ea27c9d020142f4c248fa0bab5d32c1f9c /quantum/unicode/unicode.c
parent95681b8ff4a92aacd0249e124d34cf16e510175e (diff)
Unicode, Unicodemap and UCIS refactor (#21659)
Diffstat (limited to 'quantum/unicode/unicode.c')
-rw-r--r--quantum/unicode/unicode.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/quantum/unicode/unicode.c b/quantum/unicode/unicode.c
index f92ba51984..78a4cad585 100644
--- a/quantum/unicode/unicode.c
+++ b/quantum/unicode/unicode.c
@@ -73,16 +73,8 @@ static int8_t  selected_count = ARRAY_SIZE(selected);
 static int8_t  selected_index;
 #endif
 
-/** \brief unicode input mode set at user level
- *
- * Run user code on unicode input mode change
- */
 __attribute__((weak)) void unicode_input_mode_set_user(uint8_t input_mode) {}
 
-/** \brief unicode input mode set at keyboard level
- *
- *  Run keyboard code on unicode input mode change
- */
 __attribute__((weak)) void unicode_input_mode_set_kb(uint8_t input_mode) {
     unicode_input_mode_set_user(input_mode);
 }
@@ -172,6 +164,10 @@ uint8_t get_unicode_input_mode(void) {
     return unicode_config.input_mode;
 }
 
+static void persist_unicode_input_mode(void) {
+    eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config.input_mode);
+}
+
 void set_unicode_input_mode(uint8_t mode) {
     unicode_config.input_mode = mode;
     persist_unicode_input_mode();
@@ -182,26 +178,34 @@ void set_unicode_input_mode(uint8_t mode) {
     dprintf("Unicode input mode set to: %u\n", unicode_config.input_mode);
 }
 
-void cycle_unicode_input_mode(int8_t offset) {
+static void cycle_unicode_input_mode(int8_t offset) {
 #if UNICODE_SELECTED_MODES != -1
     selected_index = (selected_index + offset) % selected_count;
     if (selected_index < 0) {
         selected_index += selected_count;
     }
+
     unicode_config.input_mode = selected[selected_index];
+
 #    if UNICODE_CYCLE_PERSIST
     persist_unicode_input_mode();
 #    endif
+
 #    ifdef AUDIO_ENABLE
     unicode_play_song(unicode_config.input_mode);
 #    endif
+
     unicode_input_mode_set_kb(unicode_config.input_mode);
     dprintf("Unicode input mode cycle to: %u\n", unicode_config.input_mode);
 #endif
 }
 
-void persist_unicode_input_mode(void) {
-    eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config.input_mode);
+void unicode_input_mode_step(void) {
+    cycle_unicode_input_mode(1);
+}
+
+void unicode_input_mode_step_reverse(void) {
+    cycle_unicode_input_mode(-1);
 }
 
 __attribute__((weak)) void unicode_input_start(void) {