]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - layouts/community/ortho_4x12/drashna/keymap.c
Update to drashna keymaps (#4365)
[qmk_firmware.git] / layouts / community / ortho_4x12 / drashna / keymap.c
index 108df693157db6d312eb46f4f2fac186bd251dec..2a9e32cc886fed122401187b543ac5e6513187fc 100644 (file)
 #include QMK_KEYBOARD_H
 #include "drashna.h"
 
+#ifdef RGB_MATRIX_ENABLE
+extern bool g_suspend_state;
+#endif
+
 #ifdef BACKLIGHT_ENABLE
 enum planck_keycodes {
   BACKLIT = NEW_SAFE_RANGE,
@@ -135,6 +139,15 @@ bool music_mask_user(uint16_t keycode) {
 
 #ifdef RGB_MATRIX_ENABLE
 
+void suspend_power_down_keymap(void)
+{
+    rgb_matrix_set_suspend_state(true);
+}
+
+void suspend_wakeup_init_keymap(void)
+{
+    rgb_matrix_set_suspend_state(false);
+}
 
 void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
   rgb_led led;
@@ -152,25 +165,26 @@ void rgb_matrix_indicators_user(void) {
   uint8_t this_mod = get_mods();
   uint8_t this_led = host_keyboard_leds();
   uint8_t this_osm = get_oneshot_mods();
-
-  switch (biton32(layer_state)) {
-    case _RAISE:
-      rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
-    case _LOWER:
-      rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
-    case _ADJUST:
-      rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
-    default:
-      switch (biton32(default_layer_state)) {
-        case _QWERTY:
-          rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, true); break;
-        case _COLEMAK:
-          rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, true); break;
-        case _DVORAK:
-          rgb_matrix_layer_helper(0x00, 0xFF, 0x00, true); break;
-        case _WORKMAN:
-          rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, true); break;
-      }
+  if (!g_suspend_state) {
+    switch (biton32(layer_state)) {
+      case _RAISE:
+        rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
+      case _LOWER:
+        rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
+      case _ADJUST:
+        rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
+      default:
+        switch (biton32(default_layer_state)) {
+          case _QWERTY:
+            rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, true); break;
+          case _COLEMAK:
+            rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, true); break;
+          case _DVORAK:
+            rgb_matrix_layer_helper(0x00, 0xFF, 0x00, true); break;
+          case _WORKMAN:
+            rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, true); break;
+        }
+    }
   }
 
   switch (biton32(default_layer_state)) {