]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/m10a/keymaps/gam3cat/keymap.c
[Keymap] Fixing keymap DYNAMIC_MACRO_RANGE keycode enumeration (#6248)
[qmk_firmware.git] / keyboards / m10a / keymaps / gam3cat / keymap.c
1 #include QMK_KEYBOARD_H
2 #include "version.h"
3
4 extern keymap_config_t keymap_config;
5
6 enum layers {
7     _L0 = 0,
8     _L1,
9     _L2,
10     _L3,
11     _L4,
12     _L5,
13     _L6,
14     _L7,
15     _L8,
16     _L9
17 };
18
19 enum custom_keycodes {
20     QMK_REV = SAFE_RANGE,
21     KC_WEB,
22     KC_WCLS,
23     DYNAMIC_MACRO_RANGE
24 };
25
26 extern backlight_config_t backlight_config;
27
28 #include "dynamic_macro.h"
29 #define FN_ZERO LT(_L9, KC_KP_0)
30 #define KC_DMR1 DYN_REC_START1
31 #define KC_DMR2 DYN_REC_START2
32 #define KC_DMP1 DYN_MACRO_PLAY1
33 #define KC_DMP2 DYN_MACRO_PLAY2
34 #define KC_DMRS DYN_REC_STOP
35
36 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37     /*## Layout Config:
38     *     .-----------.  .-----------.  .-----------.  .-----------.  .-----------.
39     *     |7  |8  |9  |  |+  |-  |*  |  |^  |&  |!  |  |VLU|Ver|WFD|  |VLU|NXT|FFD|
40     *     |-----------|  |-----------|  |-----------|  |-----------|  |-----------|
41     *     |4  |5  |6  |  |/  |%  |,  |  |D  |E  |F  |  |MUT|C-W|CHR|  |MUT|STP|PLY|
42     *     |-----------|  |-----------|  |-----------|  |-----------|  |-----------|
43     *     |1  |2  |3  |  |.  |=  |Ent|  |A  |B  |C  |  |VLD|CMP|WBK|  |VLD|PRV|RWD|
44     *     |-----------|  |-----------|  |-----------|  |-----------|  |-----------|
45     *     |#L0|_L9/0  |  |#L1|_L9    |  |#L2|_L9    |  |#L3|_L9    |  |#L4|_L9    |
46     *     *-----------*  *-----------*  *-----------*  *-----------*  *-----------*
47     *     .-----------.  .-----------.  .-----------.  .-----------.  .-----------.
48     *     |   |   |   |  |   |   |   |  |MP1|   |MP2|  |   |   |RST|  |_L6|_L7|_L8|
49     *     |-----------|  |-----------|  |-----------|  |-----------|  |-----------|
50     *     |   |   |   |  |   |   |   |  |   |MRS|   |  |   |   |   |  |_L3|_L4|_L5|
51     *     |-----------|  |-----------|  |-----------|  |-----------|  |-----------|
52     *     |   |   |   |  |   |   |   |  |MR1|   |MR2|  |   |   |   |  |_L0|_L1|_L2|
53     *     |-----------|  |-----------|  |-----------|  |-----------|  |-----------|
54     *     |#L5|_L9    |  |#L6|_L9    |  |#L7|_L9    |  |#L8|_L9    |  |#L9|       |
55     *     *-----------*  *-----------*  *-----------*  *-----------*  *-----------*
56     */
57     [_L0] = {{KC_KP_7, KC_KP_8, KC_KP_9}, {KC_KP_4, KC_KP_5, KC_KP_6}, {KC_KP_1, KC_KP_2, KC_KP_3}, {XXXXXXX, XXXXXXX, FN_ZERO}},
58     [_L1] = {{KC_PPLS, KC_PMNS, KC_PAST}, {KC_PSLS, KC_PERC, KC_COMM}, {KC_PDOT, KC_EQL,  KC_PENT}, {XXXXXXX, XXXXXXX, MO(_L9)}},
59     [_L2] = {{KC_CIRC, KC_AMPR, KC_EXLM}, {S(KC_D), S(KC_E), S(KC_F)}, {S(KC_A), S(KC_B), S(KC_C)}, {XXXXXXX, XXXXXXX, MO(_L9)}},
60     [_L3] = {{KC_VOLU, QMK_REV, KC_WFWD}, {KC_MUTE, KC_WCLS, KC_WEB }, {KC_VOLD, KC_MYCM, KC_WBAK}, {XXXXXXX, XXXXXXX, MO(_L9)}},
61     [_L4] = {{KC_VOLU, KC_MNXT, KC_MFFD}, {KC_MUTE, KC_MSTP, KC_MPLY}, {KC_VOLD, KC_MPRV, KC_MRWD}, {XXXXXXX, XXXXXXX, MO(_L9)}},
62     [_L5] = {{_______, _______, _______}, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}},
63     [_L6] = {{_______, _______, _______}, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}},
64     [_L7] = {{KC_DMP1, _______, KC_DMP2}, {_______, KC_DMRS, _______}, {KC_DMR1, _______, KC_DMR2}, {XXXXXXX, XXXXXXX, MO(_L9)}},
65     [_L8] = {{_______, _______, RESET  }, {_______, _______, _______}, {_______, _______, _______}, {XXXXXXX, XXXXXXX, MO(_L9)}},
66     [_L9] = {{DF(_L6), DF(_L7), DF(_L8)}, {DF(_L3), DF(_L4), DF(_L5)}, {DF(_L0), DF(_L1), DF(_L2)}, {XXXXXXX, XXXXXXX, _______}},
67 };
68
69 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
70     switch (keycode) {
71         case QMK_REV:
72             if (record->event.pressed) {
73                 SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP "@" QMK_VERSION ":" QMK_BUILDDATE);
74             }
75             return false;
76             break;
77         case KC_WEB:
78             if (record->event.pressed) {
79                 SEND_STRING(SS_LGUI("r"));
80                 wait_ms(100);
81                 SEND_STRING("chrome.exe\n");
82             }
83             return false;
84             break;
85         case KC_WCLS:
86             if (record->event.pressed) {
87                 SEND_STRING (SS_LCTRL("w"));
88             }
89             return false;
90             break;
91     }
92     // Dynamic Macros.
93     if (!process_record_dynamic_macro(keycode, record)) {
94         return false;
95     }
96     return true;
97 }
98
99 void custom_backlight_level(uint8_t level) {
100     if (level > BACKLIGHT_LEVELS)
101         level = BACKLIGHT_LEVELS;
102     backlight_config.level = level;
103     backlight_config.enable = !!backlight_config.level;
104     backlight_set(backlight_config.level);
105 }
106
107 void matrix_init_user(void) {
108   #ifdef BACKLIGHT_ENABLE
109     custom_backlight_level(0);
110   #endif
111 }
112
113 void matrix_scan_user(void) {
114
115 }
116
117 uint32_t layer_state_set_user(uint32_t state) {
118     switch (biton32(state)) {
119         case _L0:
120             custom_backlight_level(0);
121             break;
122         case _L1:
123             custom_backlight_level(1);
124             break;
125         case _L2:
126             custom_backlight_level(2);
127             break;
128         case _L3:
129             custom_backlight_level(3);
130             break;
131         case _L4:
132             custom_backlight_level(4);
133             break;
134         case _L5:
135             custom_backlight_level(5);
136             break;
137         case _L6:
138             custom_backlight_level(6);
139             break;
140         case _L7:
141             custom_backlight_level(6);
142             break;
143         case _L8:
144             custom_backlight_level(6);
145             break;
146         case _L9:
147             custom_backlight_level(0);
148             break;
149         default:
150             custom_backlight_level(0);
151             break;
152     }
153     return state;
154 }
155
156 void led_set_user(uint8_t usb_led) {
157
158 }