summaryrefslogtreecommitdiff
path: root/keyboards/mlego/m48/keymaps/via/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mlego/m48/keymaps/via/keymap.c')
-rw-r--r--keyboards/mlego/m48/keymaps/via/keymap.c50
1 files changed, 42 insertions, 8 deletions
diff --git a/keyboards/mlego/m48/keymaps/via/keymap.c b/keyboards/mlego/m48/keymaps/via/keymap.c
index 54ef03cd5a..af625ef207 100644
--- a/keyboards/mlego/m48/keymaps/via/keymap.c
+++ b/keyboards/mlego/m48/keymaps/via/keymap.c
@@ -17,6 +17,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include QMK_KEYBOARD_H
+enum layer_names {
+ _QW = 0,
+ _LWR,
+ _RSE,
+ _ADJ
+};
+
#ifdef RGBLIGHT_ENABLE
const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_PURPLE});
@@ -103,14 +110,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
}
}
-#ifdef ENCODER_ENABLE
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- my_encoders(index, clockwise);
- return true;
-}
-#endif
-
layer_state_t layer_state_set_user(layer_state_t state) {
#ifdef RGBLIGHT_ENABLE
@@ -135,3 +134,38 @@ void keyboard_post_init_user(void) {
rgblight_layers = my_rgb_layers;
}
#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);
+ }
+ }
+ }
+}
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ my_encoders(index, clockwise);
+ return true;
+}
+#endif