]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - users/xulkal/process_records.c
Adding rgb matrix speed into eeprom storage. (#5965)
[qmk_firmware.git] / users / xulkal / process_records.c
index 531f99eb065c166b9aef7814c1bf1f5ed7451781..2c5d2a4e751d58e344ef45848af5295e4b21ffb0 100644 (file)
@@ -1,93 +1,54 @@
 #include "process_records.h"
+#include "custom_keycodes.h"
+#include "timer_utils.h"
 
-#ifdef TAP_DANCE_ENABLE
-//Tap Dance Definitions
-qk_tap_dance_action_t tap_dance_actions[] = {
-  [COMM_QUOT]  = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_QUOT),
-  [BACKSPACE] = ACTION_TAP_DANCE_DOUBLE (KC_BSPACE, LCTL(KC_BSPACE)),
-  [TAP_TAB] = ACTION_TAP_DANCE_DOUBLE (KC_TAB, LSFT(KC_TAB)),
-  [CTRL_MINUS] = ACTION_TAP_DANCE_DOUBLE (KC_LCTL, KC_MINS),
-  [CTRL_PLUS] = ACTION_TAP_DANCE_DOUBLE (KC_RCTL, KC_EQL)
-};
+#ifdef TRILAYER_ENABLED
+uint32_t layer_state_set_user(uint32_t state)
+{
+    return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
 #endif
 
-#if defined(RGB_MATRIX_ENABLE)
-extern void eeconfig_update_rgb_matrix_default(void);
-#endif
+bool process_record_user(uint16_t keycode, keyrecord_t *record)
+{
+    static uint16_t reset_timer;
 
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-  switch (keycode) {
-    case QWERTY:
-      if (record->event.pressed) {
-        set_single_persistent_default_layer(_QWERTY);
-      }
-      return false;
-      break;
-    case GAME:
-#ifndef GAMELAYER_DISABLE
-      if (record->event.pressed) {
-        set_single_persistent_default_layer(_GAME);
-      }
-#endif
-      return false;
-      break;
-    case LOWER:
-      if (record->event.pressed) {
-        layer_on(_LOWER);
-#ifdef TRILAYER_ENABLED
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-#endif
-      } else {
-        layer_off(_LOWER);
-#ifdef TRILAYER_ENABLED
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-#endif
-      }
-      return false;
-      break;
-    case RAISE:
-      if (record->event.pressed) {
-        layer_on(_RAISE);
-#ifdef TRILAYER_ENABLED
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+#ifndef TAP_DANCE_ENABLE
+    if (!process_tap_dance_double(keycode, record))
+        return false;
 #endif
-      } else {
-        layer_off(_RAISE);
-#ifdef TRILAYER_ENABLED
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-#endif
-      }
-      return false;
-      break;
-    case RGBRST:
+
+    switch (keycode)
+    {
+        case RGBRST:
+            {
 #if defined(RGBLIGHT_ENABLE)
-        if (record->event.pressed) {
-          eeconfig_update_rgblight_default();
-          rgblight_enable();
-        }
+                if (record->event.pressed)
+                {
+                    eeconfig_update_rgblight_default();
+                    rgblight_enable();
+                }
 #elif defined(RGB_MATRIX_ENABLE)
-        if (record->event.pressed) {
-          eeconfig_update_rgb_matrix_default();
-        }
-#endif
-      return false;
-      break;
+                if (record->event.pressed)
+                    eeconfig_update_rgb_matrix_default();
+#endif
+            }
+            return false;
+        case RESET:
+            {
+                if (record->event.pressed)
+                    reset_timer = timer_read() + 500;
+                else if (timer_expired(reset_timer))
+                    reset_keyboard();
+            }
+            return false;
   }
 
-  return process_record_keymap(keycode, record) &&
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
-    process_record_rgb(keycode, record) &&
-#endif // RGBLIGHT_ENABLE;
-    true;
+  return process_record_keymap(keycode, record);
 }
 
 __attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
-  return true;
-}
-
-
-__attribute__ ((weak))
-bool process_record_rgb(uint16_t keycode, keyrecord_t *record) {
-  return true;
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record)
+{
+    return true;
 }