]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - users/drashna/drashna.c
Cu24 keyboard addition (#2330)
[qmk_firmware.git] / users / drashna / drashna.c
index 31f58a430ceafc12fcdeb87df330453584131c67..a07d744077c811e9f3047e68fb7ba767e8fdf349 100644 (file)
@@ -16,10 +16,29 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "drashna.h"
-#include "quantum.h"
-#include "action.h"
 #include "version.h"
 
+#if (__has_include("secrets.h"))
+#include "secrets.h"
+#else
+PROGMEM const char secret[][64] = {
+  "test1",
+  "test2",
+  "test3",
+  "test4",
+  "test5"
+};
+#endif
+
+#ifdef FAUXCLICKY_ENABLE
+float fauxclicky_pressed_note[2]  = MUSICAL_NOTE(_A6, 2);  // (_D4, 0.25);
+float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125);
+#else
+float fauxclicky_pressed[][2]             = SONG(E__NOTE(_A6)); // change to your tastes
+float fauxclicky_released[][2]             = SONG(E__NOTE(_A6)); // change to your tastes
+#endif 
+bool faux_click_enabled = true;
+
 #ifdef TAP_DANCE_ENABLE
 //define diablo macro timer variables
 static uint16_t diablo_timer[4];
@@ -78,6 +97,14 @@ qk_tap_dance_action_t tap_dance_actions[] = {
 };
 #endif
 
+#ifdef AUDIO_ENABLE
+float tone_qwerty[][2]       = SONG(QWERTY_SOUND);
+float tone_dvorak[][2]       = SONG(DVORAK_SOUND);
+float tone_colemak[][2]      = SONG(COLEMAK_SOUND);
+float tone_workman[][2]      = SONG(PLOVER_SOUND);
+float tone_hackstartup[][2]  = SONG(ONE_UP_SOUND);
+#endif
+
 
 // Add reconfigurable functions here, for keymap customization
 // This allows for a global, userspace functions, and continued
@@ -137,6 +164,11 @@ void matrix_init_user(void) {
     rgblight_set_red;
     rgblight_mode(5);
   }
+#endif
+#ifdef AUDIO_ENABLE
+//  _delay_ms(21); // gets rid of tick
+//  stop_all_notes();
+//  PLAY_SONG(tone_hackstartup);
 #endif
   matrix_init_keymap();
 }
@@ -190,13 +222,6 @@ void led_set_user(uint8_t usb_led) {
 }
 
 
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
-float tone_dvorak[][2]     = SONG(DVORAK_SOUND);
-float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
-float tone_workman[][2]    = SONG(PLOVER_SOUND);
-#endif
-
 
 void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
@@ -206,11 +231,22 @@ void persistent_default_layer_set(uint16_t default_layer) {
 // Defines actions tor my global custom keycodes. Defined in drashna.h file
 // Then runs the _keymap's recod handier if not processed here
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-  
+
 #ifdef CONSOLE_ENABLE
   xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed);
 #endif
 
+#ifdef AUDIO_ENABLE
+  if (faux_click_enabled) {
+    if (record->event.pressed) {
+      PLAY_SONG(fauxclicky_pressed);
+    } else {
+      stop_note(NOTE_A6);
+      PLAY_SONG(fauxclicky_released);
+    }
+  }
+#endif
+
   switch (keycode) {
   case KC_QWERTY:
     if (record->event.pressed) {
@@ -279,7 +315,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     }
     return false;
     break;
-#if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_ergodox_ez))
+#if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez))
   case KC_OVERWATCH:
     if (record->event.pressed) {
       is_overwatch = !is_overwatch;
@@ -427,28 +463,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 #endif
   case KC_MAKE:
     if (!record->event.pressed) {
-      SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
-#ifndef CATERINA_BOOTLOADER
-      SEND_STRING(":teensy ");
-#else
-      SEND_STRING(" ");
+      SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
+#if  (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
+       ":dfu"
+#elif defined(BOOTLOADER_HALFKAY)
+      ":teensy"
+//#elif defined(BOOTLOADER_CATERINA)
+//       ":avrdude"
 #endif
 #ifdef RGBLIGHT_ENABLE
-      SEND_STRING("RGBLIGHT_ENABLE=yes ");
+        " RGBLIGHT_ENABLE=yes"
 #else
-      SEND_STRING("RGBLIGHT_ENABLE=no ");
+        " RGBLIGHT_ENABLE=no"
 #endif
 #ifdef AUDIO_ENABLE
-      SEND_STRING("AUDIO_ENABLE=yes ");
-#else
-      SEND_STRING("AUDIO_ENABLE=no ");
-#endif
-#ifdef FAUXCLICKY_ENABLE
-      SEND_STRING("FAUXCLICKY_ENABLE=yes ");
+        " AUDIO_ENABLE=yes"
 #else
-      SEND_STRING("FAUXCLICKY_ENABLE=no ");
+        " AUDIO_ENABLE=no"
 #endif
-      SEND_STRING(SS_TAP(X_ENTER));
+        SS_TAP(X_ENTER));
     }
     return false;
     break;
@@ -475,33 +508,34 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     }
     return false;
     break;
+  case KC_SECRET_1 ... KC_SECRET_5:
+    if (!record->event.pressed) {
+      send_string_P(secret[keycode - KC_SECRET_1]);
+    }
+    return false;
+    break;
+  case KC_FXCL:
+    if (!record->event.pressed) {
+      faux_click_enabled = !faux_click_enabled;
+    }
+    return false;
+    break;
   case KC_RGB_T:  // Because I want the option to go back to normal RGB mode rather than always layer indication
+#ifdef RGBLIGHT_ENABLE
     if (record->event.pressed) {
       rgb_layer_change = !rgb_layer_change;
     }
+#endif
     return false;
     break;
-  case RGB_MOD:
-  case RGB_SMOD:
-  case RGB_HUI:
-  case RGB_HUD:
-  case RGB_SAI:
-  case RGB_SAD:
-  case RGB_VAI:
-  case RGB_VAD:
-  case RGB_MODE_PLAIN:
-  case RGB_MODE_BREATHE:
-  case RGB_MODE_RAINBOW:
-  case RGB_MODE_SWIRL:
-  case RGB_MODE_SNAKE:
-  case RGB_MODE_KNIGHT:
-  case RGB_MODE_XMAS:
-  case RGB_MODE_GRADIENT:
-    if (record->event.pressed) {
+#ifdef RGBLIGHT_ENABLE
+  case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
+    if (record->event.pressed) { //This disrables layer indication, as it's assumed that if you're changing this ... you want that disabled
       rgb_layer_change = false;
     }
     return true;
     break;
+#endif
   }
   return process_record_keymap(keycode, record);
 }
@@ -534,7 +568,7 @@ uint32_t layer_state_set_user(uint32_t state) {
       rgblight_set_green;
       rgblight_mode(22);
       break;
-    case _OVERWATCH:
+    case _GAMEPAD:
       rgblight_set_orange;
       rgblight_mode(17);
       break;
@@ -557,6 +591,7 @@ uint32_t layer_state_set_user(uint32_t state) {
     case _COVECUBE:
       rgblight_set_green;
       rgblight_mode(2);
+      break;
     default:
       if (default_layer & (1UL << _COLEMAK)) {
         rgblight_set_magenta;