summaryrefslogtreecommitdiff
path: root/keyboards/crkbd/keymaps/mcrown/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/crkbd/keymaps/mcrown/keymap.c')
-rw-r--r--keyboards/crkbd/keymaps/mcrown/keymap.c141
1 files changed, 141 insertions, 0 deletions
diff --git a/keyboards/crkbd/keymaps/mcrown/keymap.c b/keyboards/crkbd/keymaps/mcrown/keymap.c
new file mode 100644
index 0000000000..907e1347bb
--- /dev/null
+++ b/keyboards/crkbd/keymaps/mcrown/keymap.c
@@ -0,0 +1,141 @@
+/** @file keymap.c
+ * @brief keymao.c that includes key layout and keylogs functions
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @author Mario Corona (mariocc@comunidad.unam.mx) 2021
+ *
+ */
+
+#include "mcrown.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_wrapper(
+ /*,-------------------------------------------------|-----|--------------------------------------------------------|.*/
+ _____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________________QWERTY_L3______________________, _____________________QWERTY_R3______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________MOD_LEFT_____________, _____________MOD_RIGHT____________
+ /*|-----------------------------------| |----------------------------------|*/
+ ),
+
+ [_LOWER] = LAYOUT_wrapper(
+ /*,-------------------------------------------------|-----|--------------------------------------------------------|.*/
+ _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________________LOWER_L3_______________________, _____________________LOWER_R3_______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________MOD_LEFT_____________, _____________MOD_RIGHT____________
+ /*|-----------------------------------| |----------------------------------|*/
+ ),
+
+ [_RAISE] = LAYOUT_wrapper(
+ /*,-------------------------------------------------|-----|--------------------------------------------------------|.*/
+ _____________________RAISE_L1_______________________, _____________________RAISE_R1_______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________________RAISE_L2_______________________, _____________________RAISE_R2_______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________________RAISE_L3_______________________, _____________________RAISE_R3_______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________MOD_LEFT_____________, _____________MOD_RIGHT____________
+ /*|-----------------------------------| |----------------------------------|*/
+ ),
+
+ [_ADJUST] = LAYOUT_wrapper(
+ /*,-------------------------------------------------|-----|--------------------------------------------------------|.*/
+ _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________________ADJUST_L3______________________, _____________________ADJUST_R3______________________,
+ /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/
+ _____________MOD_LEFT_____________, _____________MOD_RIGHT____________
+ /*|-----------------------------------| |----------------------------------|*/
+ ),
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record){
+ bool user_records_press=true;
+
+ if (record->event.pressed){
+ add_keylog(keycode);
+ }
+
+ switch (keycode){
+ case QWERTY:
+ if (record->event.pressed){
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ break;
+
+ case LOWER:
+ if(record->event.pressed){
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }else{
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+
+ case RAISE:
+ if (record->event.pressed){
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }else{
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+
+ case ADJUST:
+ if (record->event.pressed){
+ layer_on(_ADJUST);
+ }else{
+ layer_off(_ADJUST);
+ }
+ break;
+
+ case RGB_MOD:
+ #ifdef RGBLIGHT_ENABLE
+ if(record->event.pressed){
+ rgblight_mode(RGB_current_mode);
+ rgblight_step();
+ RGB_current_mode = rgblight_get_mode();
+ }
+ #endif
+ break;
+
+ case RGBRST:
+ #ifdef RGBLIGHT_ENABLE
+ if(record->event.pressed){
+ eeconfig_update_rgblight_default();
+ rgblight_enable();
+ RGB_current_mode = rgblight_get_mode();
+ }
+ #endif
+ break;
+
+ default:
+ user_records_press=false;
+ break;
+ }
+
+ return false==user_records_press;
+}