diff options
Diffstat (limited to 'quantum/unicode/unicode.c')
-rw-r--r-- | quantum/unicode/unicode.c | 26 |
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) { |