Browse Source

adds random base64 character generator

Jack Humbert 9 years ago
parent
commit
197f152dee

+ 13 - 2
keyboards/planck/keymaps/experimental/keymap.c

@@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
   {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
   {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
-  {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+  {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
 },
 
 /* Colemak
@@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   {KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
   {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH},
   {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT },
-  {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
+  {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
 },
 
 /* Lower
@@ -326,6 +326,17 @@ void matrix_scan_user(void) {
     leading = false;
     leader_end(); 
 
+    SEQ_ONE_KEY (KC_R) {
+      tap_random_base64();
+      tap_random_base64();
+      tap_random_base64();
+      tap_random_base64();
+      tap_random_base64();
+      tap_random_base64();
+      tap_random_base64();
+      tap_random_base64();
+      tap_random_base64();
+    }
     SEQ_ONE_KEY (KC_V) {
       SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
     }

+ 1 - 1
keyboards/planck/rev3/Makefile

@@ -1,4 +1,4 @@
-AUDIO_ENABLE = no           # Audio output on port C6
+AUDIO_ENABLE ?= no           # Audio output on port C6
 
 ifndef QUANTUM_DIR
 	include ../../../Makefile

+ 1 - 1
keyboards/planck/rev4/Makefile

@@ -1,4 +1,4 @@
-AUDIO_ENABLE = yes           # Audio output on port C6
+AUDIO_ENABLE ?= yes           # Audio output on port C6
 
 ifndef QUANTUM_DIR
 	include ../../../Makefile

+ 35 - 0
quantum/quantum.c

@@ -307,6 +307,41 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
   }
 }
 
+void tap_random_base64(void) {
+  uint8_t key = (TCNT0 + TCNT1 + TCNT3 + TCNT4) % 64;
+  // uint8_t key = rand() % 64;
+  switch (key) {
+    case 0 ... 25:
+      register_code(KC_LSFT);
+      register_code(key + KC_A);
+      unregister_code(key + KC_A);
+      unregister_code(KC_LSFT);
+      break;
+    case 26 ... 51:
+      register_code(key - 26 + KC_A);
+      unregister_code(key - 26 + KC_A);
+      break;
+    case 52:
+      register_code(KC_0);
+      unregister_code(KC_0);
+      break;
+    case 53 ... 61:
+      register_code(key - 53 + KC_1);
+      unregister_code(key - 53 + KC_1);
+      break;
+    case 62:
+      register_code(KC_LSFT);
+      register_code(KC_EQL);
+      unregister_code(KC_EQL);
+      unregister_code(KC_LSFT);
+      break;
+    case 63:
+      register_code(KC_SLSH);
+      unregister_code(KC_SLSH);
+      break;
+  }
+}
+
 void matrix_init_quantum() {
   #ifdef BACKLIGHT_ENABLE
     backlight_init_ports();

+ 3 - 0
quantum/quantum.h

@@ -60,6 +60,9 @@ void send_string(const char *str);
 
 // For tri-layer
 void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3);
+
+void tap_random_base64(void);
+
 #define IS_LAYER_ON(layer)  (layer_state & (1UL << (layer)))
 #define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer)))