summary refs log tree commit diff
path: root/users
diff options
context:
space:
mode:
authorJoshua Diamond <josh@windowoffire.com>2022-08-31 19:39:16 -0400
committerGitHub <noreply@github.com>2022-08-31 16:39:16 -0700
commite4bf8323688b56cd5fc0f4f27c531f3406d40f6d (patch)
tree7a94a4e85177d12b4f5561969214094943da111b /users
parentb9effc94db6011e226a7a1f410214eca9666734f (diff)
Add unicode mode change callbacks (#18235)
Diffstat (limited to 'users')
-rw-r--r--users/spidey3/layer_rgb.c31
-rw-r--r--users/spidey3/spidey3.c18
-rw-r--r--users/spidey3/spidey3.h11
3 files changed, 32 insertions, 28 deletions
diff --git a/users/spidey3/layer_rgb.c b/users/spidey3/layer_rgb.c
index b34b91679d..bdf4584ef1 100644
--- a/users/spidey3/layer_rgb.c
+++ b/users/spidey3/layer_rgb.c
@@ -112,8 +112,7 @@ void do_rgb_layers(layer_state_t state, uint8_t start, uint8_t end) {
     }
 }
 
-void do_rgb_unicode(void) {
-    uint8_t uc_mode = get_unicode_input_mode();
+void do_rgb_unicode(uint8_t uc_mode) {
     for (uint8_t i = 0; i < UC__COUNT; i++) {
         bool is_on = i == uc_mode;
         rgblight_set_layer_state(UNICODE_OFFSET + i, is_on);
@@ -123,7 +122,7 @@ void do_rgb_unicode(void) {
 void do_rgb_all(void) {
     do_rgb_layers(default_layer_state, LAYER_BASE_DEFAULT, LAYER_BASE_REGULAR);
     do_rgb_layers(layer_state, LAYER_BASE_REGULAR, LAYER_BASE_END);
-    do_rgb_unicode();
+    do_rgb_unicode(get_unicode_input_mode());
     rgblight_set_layer_state(MISC_OFFSET + 0, spi_gflock);
     rgblight_set_layer_state(MISC_OFFSET + 1, spi_replace_mode != SPI_NORMAL);
 }
@@ -148,7 +147,7 @@ extern rgblight_status_t rgblight_status;
 #    define STARTUP_ANIMATION_CYCLE_STEP 2
 #    define STARTUP_ANIMATION_RAMP_TO_STEPS 70
 #    define STARTUP_ANIMATION_STEP_TIME 10
-#    define STARTUP_ANIMATION_INITIAL_DELAY 0  // milliseconds, must be < 255 * STEP_TIME
+#    define STARTUP_ANIMATION_INITIAL_DELAY 0 // milliseconds, must be < 255 * STEP_TIME
 
 // clang-format off
 typedef enum {
@@ -382,6 +381,13 @@ bool led_update_user_rgb(led_t led_state) {
     return true;
 }
 
+#if defined(UNICODE_COMMON_ENABLE)
+void unicode_input_mode_set_user_rgb(uint8_t input_mode) {
+    rgb_layer_ack(ACK_MEH);
+    do_rgb_unicode(input_mode);
+}
+#endif
+
 void rgb_layer_ack_yn(bool yn) { rgb_layer_ack(yn ? ACK_YES : ACK_NO); }
 
 void rgb_layer_ack(layer_ack_t n) {
@@ -458,7 +464,7 @@ void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
             break;
 
         case RGB_TOG:
-            // Hack - we only get called on the press for RGB_TOG, 
+            // Hack - we only get called on the press for RGB_TOG,
             // but the flag is only flipped on the release...
             rgb_layer_ack_yn(!rgblight_config.enable);
             break;
@@ -476,20 +482,5 @@ void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
             rgb_layer_ack_yn(keymap_config.nkro);
             break;
 #endif
-
-#if defined(UNICODE_COMMON_ENABLE)
-        case UC_M_MA:
-        case UC_M_LN:
-        case UC_M_WI:
-        case UC_M_BS:
-        case UC_M_WC:
-        case UC_M_EM:
-
-        case UC_MOD:
-        case UC_RMOD:
-            rgb_layer_ack(ACK_MEH);
-            do_rgb_unicode();
-            break;
-#endif
     }
 }
diff --git a/users/spidey3/spidey3.c b/users/spidey3/spidey3.c
index 842bb465f7..d9b893814a 100644
--- a/users/spidey3/spidey3.c
+++ b/users/spidey3/spidey3.c
@@ -98,14 +98,14 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin
                     clear_oneshot_mods();
 #endif
 
-                    bool caps = host_keyboard_led_state().caps_lock;
+                    bool     caps = host_keyboard_led_state().caps_lock;
                     uint32_t base = ((shifted == caps) ? baseAlphaLower : baseAlphaUpper);
                     _register(base + (keycode - KC_A));
                     set_mods(temp_mod);
                 }
                 return false;
             case KC_0:
-                if (shifted) {  // skip shifted numbers, so that we can still use symbols etc.
+                if (shifted) { // skip shifted numbers, so that we can still use symbols etc.
                     return true;
                 }
                 if (record->event.pressed) {
@@ -113,7 +113,7 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin
                 }
                 return false;
             case KC_1 ... KC_9:
-                if (shifted) {  // skip shifted numbers, so that we can still use symbols etc.
+                if (shifted) { // skip shifted numbers, so that we can still use symbols etc.
                     return true;
                 }
                 if (record->event.pressed) {
@@ -122,7 +122,7 @@ bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uin
                 return false;
             case KC_SPACE:
                 if (record->event.pressed) {
-                    _register(spaceGlyph);  // em space
+                    _register(spaceGlyph); // em space
                 }
                 return false;
         }
@@ -338,7 +338,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
                     set_mods(mods);
                     return false;
                 }
-            } else {  // on release of KC_BSPC
+            } else { // on release of KC_BSPC
                 // In case KC_DEL is still being sent even after the release of KC_BSPC
                 if (delkey_registered) {
                     unregister_code(KC_DEL);
@@ -387,3 +387,11 @@ bool led_update_user(led_t led_state) {
     return true;
 #endif
 }
+
+#if defined(UNICODE_COMMON_ENABLE)
+void unicode_input_mode_set_user(uint8_t input_mode) {
+#    ifdef RGBLIGHT_ENABLE
+    unicode_input_mode_set_user_rgb(input_mode);
+#    endif
+}
+#endif
diff --git a/users/spidey3/spidey3.h b/users/spidey3/spidey3.h
index e91b299e55..7a9407969e 100644
--- a/users/spidey3/spidey3.h
+++ b/users/spidey3/spidey3.h
@@ -17,9 +17,9 @@ enum userspace_layers {
 };
 
 enum custom_keycodes {
-    CH_CPNL = SAFE_RANGE,  // AL Control Panel
-    CH_ASST,               // AL Context-aware Desktop Assistant
-    CH_SUSP,               // Suspend
+    CH_CPNL = SAFE_RANGE, // AL Control Panel
+    CH_ASST,              // AL Context-aware Desktop Assistant
+    CH_SUSP,              // Suspend
 
     SPI_NORMAL,
     SPI_WIDE,
@@ -65,6 +65,11 @@ void          rgb_layer_ack(layer_ack_t n);
 void          rgb_layer_ack_yn(bool yn);
 void          clear_rgb_layers(void);
 void          shutdown_user_rgb(void);
+
+#    if defined(UNICODE_COMMON_ENABLE)
+void unicode_input_mode_set_user_rgb(uint8_t input_mode);
+#    endif
+
 #endif
 
 #ifdef UNICODEMAP_ENABLE