aboutsummaryrefslogtreecommitdiff
path: root/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c')
-rw-r--r--keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c118
1 files changed, 118 insertions, 0 deletions
diff --git a/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c b/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c
new file mode 100644
index 000000000..a475421a3
--- /dev/null
+++ b/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c
@@ -0,0 +1,118 @@
1/* Copyright 2020 zFrontier
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17#include <print.h>
18
19
20enum {
21 TD_ENTER = 0,
22};
23
24
25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 LAYOUT( TD(TD_ENTER) ),
28};
29
30
31
32void keyboard_post_init_user(void) {
33 print("zFrontier S01.6 boot...\n");
34 rgblight_enable_noeeprom();
35 rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
36 rgblight_sethsv_noeeprom(0,0,128);
37}
38
39
40void zf_switch_rgb_mode(void) {
41 switch (rgblight_get_mode() ) {
42 case RGBLIGHT_MODE_BREATHING:
43 rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD);
44 break;
45 case RGBLIGHT_MODE_RAINBOW_MOOD:
46 rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL);
47 break;
48 case RGBLIGHT_MODE_RAINBOW_SWIRL:
49 rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE);
50 break;
51 case RGBLIGHT_MODE_SNAKE:
52 rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT);
53 break;
54 case RGBLIGHT_MODE_KNIGHT:
55 rgblight_mode_noeeprom(RGBLIGHT_MODE_CHRISTMAS);
56 break;
57 case RGBLIGHT_MODE_CHRISTMAS:
58 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT);
59 break;
60 case RGBLIGHT_MODE_STATIC_GRADIENT:
61 rgblight_mode_noeeprom(RGBLIGHT_MODE_RGB_TEST);
62 break;
63 case RGBLIGHT_MODE_RGB_TEST:
64 default:
65 rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
66 break;
67 }
68}
69
70void zf_send_random_string(void) {
71 uint8_t tmpu8 = (timer_read() & 0x7);
72 switch (tmpu8) {
73 case 0:
74 case 1:
75 SEND_STRING("Sazabi, launching!");
76 break;
77 case 2:
78 case 3:
79 SEND_STRING("I, Char Aznable, will purge them, Amuro!");
80 break;
81 case 4:
82 case 5:
83 SEND_STRING("Their souls are weighted down by gravity!");
84 break;
85 case 6:
86 SEND_STRING("Go, Axis! With my unpleasant memories!");
87 break;
88 case 7:
89 SEND_STRING("Hello from zFrontier!");
90 break;
91 }
92
93 tap_code(KC_ENT);
94}
95
96void dance_finished(qk_tap_dance_state_t *state, void *user_data) {
97 switch (state->count) {
98 case 1:
99 register_code(KC_ENTER);
100 break;
101 case 2:
102 zf_switch_rgb_mode();
103 break;
104 default:
105 zf_send_random_string();
106 break;
107 }
108}
109
110void dance_reset(qk_tap_dance_state_t *state, void *user_data) {
111 if (state->count == 1) {
112 unregister_code(KC_ENTER);
113 }
114}
115
116qk_tap_dance_action_t tap_dance_actions[] = {
117 [TD_ENTER] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_finished, dance_reset)
118};