diff options
Diffstat (limited to 'keyboards/handwired/woodpad/keymaps/drashna/keymap.c')
-rw-r--r-- | keyboards/handwired/woodpad/keymaps/drashna/keymap.c | 168 |
1 files changed, 23 insertions, 145 deletions
diff --git a/keyboards/handwired/woodpad/keymaps/drashna/keymap.c b/keyboards/handwired/woodpad/keymaps/drashna/keymap.c index e53c65f10..d0c748c43 100644 --- a/keyboards/handwired/woodpad/keymaps/drashna/keymap.c +++ b/keyboards/handwired/woodpad/keymaps/drashna/keymap.c @@ -24,78 +24,23 @@ // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO - - -//define layer change stuff for underglow indicator -bool skip_leds = false; - - #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; -}; +#define KC_D3_1 TD(TD_D3_1) +#define KC_D3_2 TD(TD_D3_2) +#define KC_D3_3 TD(TD_D3_3) +#define KC_D3_4 TD(TD_D3_4) +#else +#define KC_D3_1 KC_1 +#define KC_D3_2 KC_2 +#define KC_D3_3 KC_3 +#define KC_D3_4 KC_4 #endif +//define layer change stuff for underglow indicator +bool skip_leds = false; -#ifdef TAP_DANCE_ENABLE -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), -}; -#endif const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NUMLOCK] = KEYMAP( /* Base */ @@ -112,38 +57,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_END, KC_DOWN, KC_PGDN, _______, \ KC_INS, KC_DEL, _______, _______ \ ), -#ifdef TAP_DANCE_ENABLE -[_DIABLO] = KEYMAP( /* Base */ - KC_ESC, _______, _______, _______,\ - KC_S, KC_F, KC_I, KC_M, \ - KC_1, KC_2, KC_3, KC_4, \ - TD(TD_D3_1), TD(TD_D3_2), TD(TD_D3_3), TD(TD_D3_4), \ - _______, KC_DIABLO_CLEAR, KC_Q, SFT_T(KC_SPACE) \ -), -#else [_DIABLO] = KEYMAP( /* Base */ - KC_ESC, _______, _______, _______,\ - KC_S, KC_F, KC_I, KC_M, \ + KC_ESC, _______, XXXXXXX, _______,\ + KC_S, KC_I, KC_F, KC_M, \ KC_1, KC_2, KC_3, KC_4, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - _______, KC_DIABLO_CLEAR, KC_Q, SFT_T(KC_SPACE) \ + KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, \ + XXXXXXX, KC_DIABLO_CLEAR, KC_Q, SFT_T(KC_SPACE) \ ), -#endif - [_MACROS] = KEYMAP( /* Base */ - KC_OVERWATCH, _______, _______, XXXXXXX,\ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, KC_JUSTGAME, \ - KC_SYMM, KC_TORB, XXXXXXX, KC_GOODGAME, \ - KC_SALT, KC_MORESALT, KC_SALTHARD, KC_GLHF \ + KC_OVERWATCH, XXXXXXX, _______, XXXXXXX,\ + KC_JUSTGAME, XXXXXXX, XXXXXXX, KC_C9, \ + XXXXXXX, XXXXXXX, KC_AIM, KC_GGEZ, \ + KC_SYMM, KC_TORB, XXXXXXX, KC_GOODGAME, \ + KC_SALT, KC_MORESALT, KC_SALTHARD, KC_GLHF \ ), [_MEDIA] = KEYMAP( /* Base */ KC_RESET, KC_MUTE, KC_VOLD, KC_VOLU,\ KC_MAKE, _______, RGB_HUI, RGB_HUD, \ KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, \ - RGB_TOG, RGB_MOD, RGB_SAI, RGB_VAI, \ - _______, _______, RGB_SAD, RGB_VAD \ + RGB_TOG, RGB_SMOD, RGB_SAI, RGB_VAI, \ + _______, KC_RGB_T, RGB_SAD, RGB_VAD \ ), }; @@ -158,60 +92,7 @@ void numlock_led_off(void) { } -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 - if (record->event.pressed) { - uint8_t dtime; - - for (dtime = 0; dtime < 4; dtime++) { - diablo_key_time[dtime] = diablo_times[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_init_keymap(void) { // set Numlock LED to output and low DDRF |= (1 << 7); @@ -226,13 +107,10 @@ void matrix_init_keymap(void) { void matrix_scan_keymap(void) { numlock_led_off(); - if ((is_overwatch && biton32(layer_state) == _MACROS) || (biton32(layer_state) == _NAV)) { + if ((is_overwatch && biton32(layer_state) == _MACROS) || (biton32(layer_state) == _NUMLOCK)) { numlock_led_on(); } // Run Diablo 3 macro checking code. -#ifdef TAP_DANCE_ENABLE - run_diablo_macro_check(); -#endif } |