]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - users/jarred/jarred.c
[Keyboard] Refactor handwired/splittest to support multiple boards (#6373)
[qmk_firmware.git] / users / jarred / jarred.c
index f8413ca3b3b600da827dcccafb20fe227cca129b..b37c4cfbb7591bade677e8152d970860229a4353 100644 (file)
  */
 
 #include "jarred.h"
+#include "version.h"
+
+__attribute__ ((weak))
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
+  return true;
+}
+
+bool lowerPressed, raisePressed;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+  switch (keycode) {
+    case LOWER:
+    case RAISE:
+      // Both lower and raise activate the same layer
+      if (record->event.pressed) {
+        layer_on(_LW);
+      } else {
+        layer_off(_LW);
+      }
+      
+      // But keep track of each to active adjust layer
+      if (keycode == LOWER) {
+        lowerPressed = record->event.pressed;
+      } else {
+        raisePressed = record->event.pressed;
+      }
+      
+      // When both are pressed, activate adjust
+      if (lowerPressed && raisePressed) {
+        layer_on(_NP);
+      } else {
+        layer_off(_NP);
+      }
+      
+      break;
+    
+    case NUMPAD:
+        if (record->event.pressed) {
+          layer_on(_NP);
+        } else {
+          layer_off(_NP);
+        }
+        break;
+    
+    case NAVI:
+      if (record->event.pressed) {
+        layer_on(_NV);
+      } else {
+        layer_off(_NV);
+        
+        // Release mods set by ALT_TAB and CTL_TAB
+        unregister_code(KC_LALT);
+        unregister_code(KC_LCTL);
+      }
+      break;
+    
+    case VRSN: // Prints firmware version
+      if (record->event.pressed) {
+        send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), MACRO_TIMER);
+      }
+      break;
+      
+    case ALT_TAB:
+      if (record->event.pressed) {
+        register_code(KC_LALT);
+        tap_code(KC_TAB);
+      }
+      break;
+      
+    case CTL_TAB:
+      if (record->event.pressed) {
+        register_code(KC_LCTL);
+        tap_code(KC_TAB);
+      }
+      break;
+  }
+
+  return process_record_keymap(keycode, record);
+}