summaryrefslogtreecommitdiffstats
path: root/keyboards/viterbi/keymaps/drashna/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/viterbi/keymaps/drashna/keymap.c')
-rw-r--r--keyboards/viterbi/keymaps/drashna/keymap.c128
1 files changed, 9 insertions, 119 deletions
diff --git a/keyboards/viterbi/keymaps/drashna/keymap.c b/keyboards/viterbi/keymaps/drashna/keymap.c
index 48a146958e..89621fa200 100644
--- a/keyboards/viterbi/keymaps/drashna/keymap.c
+++ b/keyboards/viterbi/keymaps/drashna/keymap.c
@@ -21,73 +21,9 @@ extern keymap_config_t keymap_config;
#define MEDIA TG(_MEDIA)
#define COVECUBE TG(_COVECUBE)
-
-
-
-#ifdef TAP_DANCE_ENABLE
-//define diablo macro timer variables
-static uint16_t diablo_timer[4];
-static uint8_t diablo_times[] = { 0, 1, 3, 5, 10, 30 };
-static uint8_t diablo_key_time[4];
-
-
-bool check_dtimer(uint8_t dtimer) {
- // has the correct number of seconds elapsed (as defined by diablo_times)
- return (timer_elapsed(diablo_timer[dtimer]) < (diablo_key_time[dtimer] * 1000)) ? false : true;
-};
-
-
-enum {
- TD_D3_1 = 0,
- TD_D3_2,
- TD_D3_3,
- TD_D3_4
-};
-
-
-// Cycle through the times for the macro, starting at 0, for disabled.
-// Max of six values, so don't exceed
-void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data, uint8_t diablo_key) {
- if (state->count >= 7) {
- diablo_key_time[diablo_key] = diablo_times[0];
- reset_tap_dance(state);
- }
- else {
- diablo_key_time[diablo_key] = diablo_times[state->count - 1];
- }
-}
-
-
-// Would rather have one function for all of this, but no idea how to do that...
-void diablo_tapdance1(qk_tap_dance_state_t *state, void *user_data) {
- diablo_tapdance_master(state, user_data, 0);
-}
-
-void diablo_tapdance2(qk_tap_dance_state_t *state, void *user_data) {
- diablo_tapdance_master(state, user_data, 1);
-}
-
-void diablo_tapdance3(qk_tap_dance_state_t *state, void *user_data) {
- diablo_tapdance_master(state, user_data, 2);
-}
-
-void diablo_tapdance4(qk_tap_dance_state_t *state, void *user_data) {
- diablo_tapdance_master(state, user_data, 3);
-}
-
-
-
-//Tap Dance Definitions
-qk_tap_dance_action_t tap_dance_actions[] = {
- // tap once to disable, and more to enable timed micros
- [TD_D3_1] = ACTION_TAP_DANCE_FN(diablo_tapdance1),
- [TD_D3_2] = ACTION_TAP_DANCE_FN(diablo_tapdance2),
- [TD_D3_3] = ACTION_TAP_DANCE_FN(diablo_tapdance3),
- [TD_D3_4] = ACTION_TAP_DANCE_FN(diablo_tapdance4),
-
+enum more_custom_keycodes {
+ KC_KP_00 = NEW_SAFE_RANGE
};
-#endif
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -95,8 +31,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
MEDIA, KC_CALC, COVECUBE, KC_P7, KC_P8, KC_P9, KC_PAST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- KC_LEFT, KC_DOWN, K C_RGHT, KC_P0, KC_KP_00,KC_PDOT, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
+ KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_KP_00,KC_PDOT, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
[_DIABLO] = KEYMAP(
@@ -143,68 +79,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
-#ifdef TAP_DANCE_ENABLE
- case KC_DIABLO_CLEAR: // reset all Diable timers, disabling them
+ case KC_KP_00:
if (record->event.pressed) {
- uint8_t dtime;
-
- for (dtime = 0; dtime < 4; dtime++) {
- diablo_key_time[dtime] = diablo_times[0];
- }
+ register_code(KC_KP_0);
+ unregister_code(KC_KP_0);
+ register_code(KC_KP_0);
+ unregister_code(KC_KP_0);
}
return false;
break;
-#endif
}
return true;
}
-#ifdef TAP_DANCE_ENABLE
-
-// Sends the key press to system, but only if on the Diablo layer
-void send_diablo_keystroke(uint8_t diablo_key) {
- if (biton32(layer_state) == _DIABLO) {
- switch (diablo_key) {
- case 0:
- SEND_STRING("1");
- break;
- case 1:
- SEND_STRING("2");
- break;
- case 2:
- SEND_STRING("3");
- break;
- case 3:
- SEND_STRING("4");
- break;
- }
- }
-}
-
-// Checks each of the 4 timers/keys to see if enough time has elapsed
-// Runs the "send string" command if enough time has passed, and resets the timer.
-void run_diablo_macro_check(void) {
- uint8_t dtime;
-
- for (dtime = 0; dtime < 4; dtime++) {
- if (check_dtimer(dtime) && diablo_key_time[dtime]) {
- diablo_timer[dtime] = timer_read();
- send_diablo_keystroke(dtime);
- }
- }
-}
-#endif
-void matrix_scan_keymap(void) { // runs frequently to update info
-#ifdef TAP_DANCE_ENABLE
- // Run Diablo 3 macro checking code.
- run_diablo_macro_check();
-#endif
-};
-