summaryrefslogtreecommitdiffstats
path: root/keyboards/mlego/m48/m48.h
diff options
context:
space:
mode:
authorAlin Marin Elena <alin@elena.space>2022-01-10 20:15:28 +0000
committerGitHub <noreply@github.com>2022-01-10 12:15:28 -0800
commitf423837ed25b7a2c48d59aefaf95a0cf6f2c90b9 (patch)
treea89cd4c1c2effe3353f110e822804324d6f6afe9 /keyboards/mlego/m48/m48.h
parent23ba884fa08e0a7cb16486ba1d31ea2c74cf33c9 (diff)
[Keyboard] M48 12x4 lego ortholinear keyboard (#15536)
Diffstat (limited to 'keyboards/mlego/m48/m48.h')
-rw-r--r--keyboards/mlego/m48/m48.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/keyboards/mlego/m48/m48.h b/keyboards/mlego/m48/m48.h
new file mode 100644
index 0000000000..766f38124c
--- /dev/null
+++ b/keyboards/mlego/m48/m48.h
@@ -0,0 +1,80 @@
+/*
+Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
+
+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/>.
+*/
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_ortho_4x12( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
+ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \
+ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \
+}
+
+enum layer_names { _QW = 0, _LWR, _RSE, _ADJ };
+static inline void led_lwr(const bool on) {
+#ifdef LED_NUM_LOCK_PIN
+ writePin(LED_NUM_LOCK_PIN, on);
+#endif
+}
+
+static inline void led_rse(const bool on) {
+#ifdef LED_SCROLL_LOCK_PIN
+ writePin(LED_SCROLL_LOCK_PIN, on);
+#endif
+}
+static inline void led_caps(const bool on) {
+#ifdef LED_CAPS_LOCK_PIN
+ writePin(LED_CAPS_LOCK_PIN, !on);
+#endif
+}
+
+#ifdef ENCODER_ENABLE
+
+# define MEDIA_KEY_DELAY 10
+
+static inline void my_encoders(const uint8_t index, const bool clockwise) {
+ if (index == 0) { /* First encoder */
+ if (IS_LAYER_ON(_LWR)) {
+ if (clockwise) {
+ rgblight_decrease_val_noeeprom();
+ } else {
+ rgblight_increase_val_noeeprom();
+ }
+ } else if (IS_LAYER_ON(_RSE)) {
+ if (clockwise) {
+ rgblight_decrease_hue_noeeprom();
+ } else {
+ rgblight_increase_hue_noeeprom();
+ }
+
+ } else {
+ if (clockwise) {
+ tap_code_delay(KC_VOLD, MEDIA_KEY_DELAY);
+ } else {
+ tap_code_delay(KC_VOLU, MEDIA_KEY_DELAY);
+ }
+ }
+ }
+}
+#endif