From 40383089d035f69101851831f756508271fff103 Mon Sep 17 00:00:00 2001
From: Drashna Jaelre <drashna@live.com>
Date: Mon, 31 Dec 2018 14:29:56 -0800
Subject: Keymap: Update for Drashna code - Proton C Prep Edition (#4708)

* Make CRKBD keylogger output actually show tap keys

* check MT/LT for twinkling

* Add ortho 5x12 support for fractal keyboard

* Use newer interface for setting pins/ports

* Remove custom unicode methods

* Reomve unicode input info

* Odd rules issue

* Redefine REST note to be more pleasing

* Properly disable PM LEDs with GPIO commands

* Update gitlab CI yaml file

* Remove extra mod tap check

* Remove initial state on ergodox glow

* Rev6 Cleanup

* Fix KC_MAKE macro

* Update GitLab CI yaml file

* More GitLab CI changes

* One final GitLab CI change

* Remove unneeded unicode support

* Optimize KC_MAKE
---
 users/drashna/.gitlab-ci.yml    |  70 +++++++++++++++++++++----
 users/drashna/config.h          |   8 ++-
 users/drashna/process_records.c |  41 ++++++++-------
 users/drashna/rgb_stuff.c       |   5 +-
 users/drashna/rules.mk          |  13 -----
 users/drashna/send_unicode.c    | 112 ----------------------------------------
 users/drashna/wrappers.h        |   1 +
 7 files changed, 94 insertions(+), 156 deletions(-)
 delete mode 100644 users/drashna/send_unicode.c

(limited to 'users')

diff --git a/users/drashna/.gitlab-ci.yml b/users/drashna/.gitlab-ci.yml
index bd693babc..9b18d44fb 100644
--- a/users/drashna/.gitlab-ci.yml
+++ b/users/drashna/.gitlab-ci.yml
@@ -1,26 +1,78 @@
 stages:
+  - test
   - build
+  - deploy
 
-qmk_firmware:
+Tests:
+  stage: test
+  variables:
+    GIT_SUBMODULE_STRATEGY: recursive
+  tags:
+    - linux
+  image: ubuntu:18.10
+  before_script:
+    - apt-get update -qy
+    - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
+    - avr-gcc --version
+    - uname -a
+  script:
+    - make test:all
+    - make planck/rev6:default
+
+QMK Firmware Defaults:
+  stage: deploy
+  variables:
+    GIT_SUBMODULE_STRATEGY: recursive
+  tags:
+    - linux
+  image: ubuntu:18.10
+  before_script:
+    - apt-get update -qy
+    - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
+    - avr-gcc --version
+    - uname -a
+  script:
+    - make test:all
+    - make all:default -j16
+
+Drashna Firmware:
   stage: build
   variables:
     GIT_SUBMODULE_STRATEGY: recursive
   tags:
     - linux
-  image: ubuntu
+  image: ubuntu:18.10
+  before_script:
+    - apt-get update -qy
+    - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
+    - avr-gcc --version
+  script:
+    - make iris/rev2:drashna iris/rev2:drashna_old ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna orthodox/rev1:drashna orthodox/rev3:drashna crkbd:drashna planck/light:drashna planck/rev6:drashna fractal:drashna
+  artifacts:
+    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
+    paths:
+      - ./*.hex
+      - ./*.bin
+    expire_in: 1 month
+
+Firmware Deploy:
+  stage: deploy
+  dependencies:
+    - Drashna Firmware
+  variables:
+    GIT_SUBMODULE_STRATEGY: recursive
+  tags:
+    - linux
+  image: ubuntu:18.10
   before_script:
     - apt-get update -qy
-    - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util diffutils gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
+    - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
     - avr-gcc --version
   script:
-    - make iris/rev2:drashna:production iris/rev2:drashna_old:production ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna:production orthodox/rev1:drashna:production orthodox/rev3:drashna:production crkbd:drashna:production planck/light:drashna:production
+    - make iris/rev2:drashna:production iris/rev2:drashna_old:production ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna:production orthodox/rev1:drashna:production orthodox/rev3:drashna:production crkbd:drashna:production planck/light:drashna planck/rev6:drashna fractal:drashna:production
   artifacts:
     name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
     paths:
       - ./*.hex
       - ./*.bin
-  only:
-    - master
-    - drashna_keymaps
-    - merge-requests
-    - branches
+    expire_in: 1 month
diff --git a/users/drashna/config.h b/users/drashna/config.h
index a33851230..827b1b8ac 100644
--- a/users/drashna/config.h
+++ b/users/drashna/config.h
@@ -14,8 +14,12 @@
 #define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
 // #ifdef RGBLIGHT_ENABLE
 // #define NO_MUSIC_MODE
-// #endif //RGBLIGHT_ENABLE
-#endif
+// #endif //RGBLIGHT_ENABLE/
+#ifndef __arm__
+#undef  NOTE_REST
+#define NOTE_REST         1.00f
+#endif // !__arm__
+#endif // !AUDIO_ENABLE
 
 #ifdef RGBLIGHT_ENABLE
 #define RGBLIGHT_SLEEP
diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c
index 5e311e60e..17d7dc01c 100644
--- a/users/drashna/process_records.c
+++ b/users/drashna/process_records.c
@@ -51,27 +51,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
   case KC_MAKE:  // Compiles the firmware, and adds the flash command based on keyboard bootloader
     if (!record->event.pressed) {
-      uint8_t temp_mod = get_mods();
-      uint8_t temp_osm = get_oneshot_mods();
-      clear_mods(); clear_oneshot_mods();
-      send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), 10);
-      if (temp_mod & MODS_SHIFT_MASK || temp_osm & MODS_SHIFT_MASK) {
-        #if defined(__ARM__)
-          send_string_with_delay_P(PSTR(":dfu-util"), 10);
-        #elif defined(BOOTLOADER_DFU)
-          send_string_with_delay_P(PSTR(":dfu"), 10);
-        #elif defined(BOOTLOADER_HALFKAY)
-          send_string_with_delay_P(PSTR(":teensy"), 10);
-        #elif defined(BOOTLOADER_CATERINA)
-          send_string_with_delay_P(PSTR(":avrdude"), 10);
-        #endif // bootloader options
-      }
+      #if !defined(KEYBOARD_viterbi)
+        uint8_t temp_mod = get_mods();
+        uint8_t temp_osm = get_oneshot_mods();
+        clear_mods(); clear_oneshot_mods();
+      #endif
+      send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), MACRO_TIMER);
       #if defined(KEYBOARD_viterbi)
-        send_string_with_delay_P(PSTR(":dfu"), 10);
+        send_string_with_delay_P(PSTR(":dfu" SS_TAP(X_ENTER)), MACRO_TIMER);
+      #else
+        if (temp_mod & MODS_SHIFT_MASK || temp_osm & MODS_SHIFT_MASK) {
+          #if defined(__arm__)
+            send_string_with_delay_P(PSTR(":dfu-util"), MACRO_TIMER);
+          #elif defined(BOOTLOADER_DFU)
+            send_string_with_delay_P(PSTR(":dfu"), MACRO_TIMER);
+          #elif defined(BOOTLOADER_HALFKAY)
+            send_string_with_delay_P(PSTR(":teensy"), MACRO_TIMER);
+          #elif defined(BOOTLOADER_CATERINA)
+            send_string_with_delay_P(PSTR(":avrdude"), MACRO_TIMER);
+          #endif // bootloader options
+        }
+        if (temp_mod & MODS_CTRL_MASK || temp_osm & MODS_CTRL_MASK) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), MACRO_TIMER); }
+        send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), MACRO_TIMER);
+        set_mods(temp_mod);
       #endif
-      if (temp_mod & MODS_CTRL_MASK || temp_osm & MODS_CTRL_MASK) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), 10); }
-      send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), 10);
-      set_mods(temp_mod);
     }
     break;
 
diff --git a/users/drashna/rgb_stuff.c b/users/drashna/rgb_stuff.c
index d238c2065..7d00604b4 100644
--- a/users/drashna/rgb_stuff.c
+++ b/users/drashna/rgb_stuff.c
@@ -200,7 +200,10 @@ void start_rgb_light(void) {
 
 
 bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
-    switch (keycode) {
+  if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
+    keycode = keycode & 0xFF;
+  }
+  switch (keycode) {
 #ifdef RGBLIGHT_TWINKLE
     case KC_A ... KC_SLASH:
     case KC_F1 ... KC_F12:
diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk
index 5f243b007..6d8612e71 100644
--- a/users/drashna/rules.mk
+++ b/users/drashna/rules.mk
@@ -42,16 +42,3 @@ ifdef CONSOLE_ENABLE
     OPT_DEFS += -DKEYLOGGER_ENABLE
   endif
 endif
-
-
-ifeq ($(strip $(UCIS_ENABLE)), yes)
-  SRC += send_unicode.c
-endif
-
-ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
-  SRC += send_unicode.c
-endif
-
-ifeq ($(strip $(UNICODE_ENABLE)), yes)
-  SRC += send_unicode.c
-endif
diff --git a/users/drashna/send_unicode.c b/users/drashna/send_unicode.c
deleted file mode 100644
index ff35368da..000000000
--- a/users/drashna/send_unicode.c
+++ /dev/null
@@ -1,112 +0,0 @@
-// Written by konstantin: vomindoraan
-#include "send_unicode.h"
-#include <ctype.h>
-#include <string.h>
-
-__attribute__((weak))
-void send_unicode_hex_string(const char* str) {
-  if (!str) { return; } // Safety net
-
-  while (*str) {
-    // Find the next code point (token) in the string
-    for (; *str == ' '; str++);
-    size_t n = strcspn(str, " "); // Length of the current token
-    char code_point[n+1];
-    strncpy(code_point, str, n);
-    code_point[n] = '\0'; // Make sure it's null-terminated
-
-    // Normalize the code point: make all hex digits lowercase
-    for (char *p = code_point; *p; p++) {
-      *p = tolower((unsigned char)*p);
-    }
-
-    // Send the code point as a Unicode input string
-    unicode_input_start();
-    send_string(code_point);
-    unicode_input_finish();
-
-    str += n; // Move to the first ' ' (or '\0') after the current token
-  }
-}
-
-// (ノಠ痊ಠ)ノ彡┻━┻
-//   send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B");
-
-//Old code
-// (╯°□°)╯ ︵ ┻━┻
-      #if 0
-      register_code(KC_RSFT);
-      tap(KC_9);
-      unregister_code(KC_RSFT);
-      process_unicode((0x256F | QK_UNICODE), record); // Arm
-      process_unicode((0x00B0 | QK_UNICODE), record); // Eye
-      process_unicode((0x25A1 | QK_UNICODE), record); // Mouth
-      process_unicode((0x00B0 | QK_UNICODE), record); // Eye
-      register_code(KC_RSFT);
-      tap(KC_0);
-      unregister_code(KC_RSFT);
-      process_unicode((0x256F | QK_UNICODE), record); // Arm
-      tap(KC_SPC);
-      process_unicode((0x0361 | QK_UNICODE), record); // Flippy
-      tap(KC_SPC);
-      process_unicode((0x253B | QK_UNICODE), record); // Table
-      process_unicode((0x2501 | QK_UNICODE), record); // Table
-      process_unicode((0x253B | QK_UNICODE), record); // Table
-      #endif
-
-
-// If you need a good converter: https://r12a.github.io/app-conversion/
-uint8_t saved_mods;
-
-void unicode_input_start (void) {
-  // save current mods
-  saved_mods = get_mods(); // Save current mods
-  clear_mods(); // Unregister mods to start from a clean state
-
-  switch(get_unicode_input_mode()) {
-  case UC_OSX:
-    register_code(KC_LALT);
-    break;
-  case UC_OSX_RALT:
-    register_code(KC_RALT);
-    break;
-  case UC_LNX:
-    register_code(KC_LCTL);
-    register_code(KC_LSFT);
-    register_code(KC_U);
-    unregister_code(KC_U);
-    unregister_code(KC_LSFT);
-    unregister_code(KC_LCTL);
-    break;
-  case UC_WIN:
-    register_code(KC_LALT);
-    register_code(KC_PPLS);
-    unregister_code(KC_PPLS);
-    break;
-  case UC_WINC:
-    register_code(KC_RALT);
-    unregister_code(KC_RALT);
-    register_code(KC_U);
-    unregister_code(KC_U);
-    break;
-  }
-  wait_ms(UNICODE_TYPE_DELAY);
-}
-
-void unicode_input_finish (void) {
-  switch(get_unicode_input_mode()) {
-    case UC_OSX:
-    case UC_WIN:
-      unregister_code(KC_LALT);
-      break;
-    case UC_OSX_RALT:
-      unregister_code(KC_RALT);
-      break;
-    case UC_LNX:
-      register_code(KC_SPC);
-      unregister_code(KC_SPC);
-      break;
-  }
-
-  set_mods(saved_mods); // Reregister previously set mods
-}
diff --git a/users/drashna/wrappers.h b/users/drashna/wrappers.h
index b45359f67..070a5a0a4 100644
--- a/users/drashna/wrappers.h
+++ b/users/drashna/wrappers.h
@@ -14,6 +14,7 @@ expanded before being used as arguments to the LAYOUT_xxx macro.
 #define KEYMAP_wrapper(...)                  LAYOUT(__VA_ARGS__)
 #define LAYOUT_wrapper(...)                  LAYOUT(__VA_ARGS__)
 #define LAYOUT_ortho_4x12_wrapper(...)       LAYOUT_ortho_4x12(__VA_ARGS__)
+#define LAYOUT_ortho_5x12_wrapper(...)       LAYOUT_ortho_5x12(__VA_ARGS__)
 
 /*
 Blocks for each of the four major keyboard layouts
-- 
cgit v1.2.3