From 41fdf32afb34e09946822c2aebcf26915e9c6d2a Mon Sep 17 00:00:00 2001
From: Danny <nooges@users.noreply.github.com>
Date: Mon, 19 Sep 2022 15:26:29 -0400
Subject: [PATCH] Add encoder map to Quefrency VIA keymap (#18380)

* Add encoder map to Quefrency VIA keymap

* Explicitly define which RGB animations are enabled

* Set different PID to prep for different VIA .json usage

* Add ifdefs to handle if ENCODER_ENABLE is set to NO
---
 keyboards/keebio/quefrency/keymaps/via/keymap.c |  9 +++++++++
 keyboards/keebio/quefrency/keymaps/via/rules.mk |  1 +
 keyboards/keebio/quefrency/rev2/config.h        | 11 ++++++++++-
 keyboards/keebio/quefrency/rev2/rev2.c          |  2 ++
 keyboards/keebio/quefrency/rev3/config.h        | 11 ++++++++++-
 keyboards/keebio/quefrency/rev3/info.json       |  4 ++--
 keyboards/keebio/quefrency/rev3/rev3.c          |  2 ++
 keyboards/keebio/quefrency/rev4/config.h        | 11 ++++++++++-
 keyboards/keebio/quefrency/rev4/info.json       |  4 ++--
 keyboards/keebio/quefrency/rev4/rev4.c          |  2 ++
 keyboards/keebio/quefrency/rev5/info.json       |  4 ++--
 keyboards/keebio/quefrency/rev5/rev5.c          |  2 ++
 12 files changed, 54 insertions(+), 9 deletions(-)

diff --git a/keyboards/keebio/quefrency/keymaps/via/keymap.c b/keyboards/keebio/quefrency/keymaps/via/keymap.c
index 5ac83ef57c..ad6cfd84eb 100644
--- a/keyboards/keebio/quefrency/keymaps/via/keymap.c
+++ b/keyboards/keebio/quefrency/keymaps/via/keymap.c
@@ -33,3 +33,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
   )
 };
+
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+    [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+    [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
+    [2] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
+    [3] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
+};
+#endif
diff --git a/keyboards/keebio/quefrency/keymaps/via/rules.mk b/keyboards/keebio/quefrency/keymaps/via/rules.mk
index 36b7ba9cbc..1189f4ad19 100644
--- a/keyboards/keebio/quefrency/keymaps/via/rules.mk
+++ b/keyboards/keebio/quefrency/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
 VIA_ENABLE = yes
 LTO_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h
index e92be73444..30044f174f 100644
--- a/keyboards/keebio/quefrency/rev2/config.h
+++ b/keyboards/keebio/quefrency/rev2/config.h
@@ -46,10 +46,19 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 /* ws2812 RGB LED */
 #define RGB_DI_PIN E6
-#define RGBLIGHT_ANIMATIONS
 #define RGBLED_NUM 16    // Number of LEDs
 #define RGBLED_SPLIT { 8, 8 }
 #define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
+#define RGBLIGHT_EFFECT_BREATHING
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_SNAKE
+#define RGBLIGHT_EFFECT_KNIGHT
+#define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_RGB_TEST
+#define RGBLIGHT_EFFECT_ALTERNATING
+#define RGBLIGHT_EFFECT_TWINKLE
 
 // Set 65% column (option 3) and Macro (option 4) on by default
 #define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE
diff --git a/keyboards/keebio/quefrency/rev2/rev2.c b/keyboards/keebio/quefrency/rev2/rev2.c
index 590c9850c2..d2badbeb25 100644
--- a/keyboards/keebio/quefrency/rev2/rev2.c
+++ b/keyboards/keebio/quefrency/rev2/rev2.c
@@ -31,6 +31,7 @@ void eeconfig_init_kb(void) {
     eeconfig_init_user();
 }
 
+#ifdef ENCODER_ENABLE
 bool encoder_update_kb(uint8_t index, bool clockwise) {
     if (!encoder_update_user(index, clockwise)) { return false; }
     if (index == 0) {
@@ -48,3 +49,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
     }
     return false;
 }
+#endif
diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h
index e92be73444..30044f174f 100644
--- a/keyboards/keebio/quefrency/rev3/config.h
+++ b/keyboards/keebio/quefrency/rev3/config.h
@@ -46,10 +46,19 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 /* ws2812 RGB LED */
 #define RGB_DI_PIN E6
-#define RGBLIGHT_ANIMATIONS
 #define RGBLED_NUM 16    // Number of LEDs
 #define RGBLED_SPLIT { 8, 8 }
 #define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
+#define RGBLIGHT_EFFECT_BREATHING
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_SNAKE
+#define RGBLIGHT_EFFECT_KNIGHT
+#define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_RGB_TEST
+#define RGBLIGHT_EFFECT_ALTERNATING
+#define RGBLIGHT_EFFECT_TWINKLE
 
 // Set 65% column (option 3) and Macro (option 4) on by default
 #define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE
diff --git a/keyboards/keebio/quefrency/rev3/info.json b/keyboards/keebio/quefrency/rev3/info.json
index 8bea44183f..5baacbb4de 100644
--- a/keyboards/keebio/quefrency/rev3/info.json
+++ b/keyboards/keebio/quefrency/rev3/info.json
@@ -5,8 +5,8 @@
     "maintainer": "nooges",
     "usb": {
         "vid": "0xCB10",
-        "pid": "0x3257",
-        "device_version": "3.0.0"
+        "pid": "0x3357",
+        "device_version": "3.1.0"
     },
     "layout_aliases": {
         "LAYOUT": "LAYOUT_60"
diff --git a/keyboards/keebio/quefrency/rev3/rev3.c b/keyboards/keebio/quefrency/rev3/rev3.c
index 0f8f964d92..8911dbd018 100644
--- a/keyboards/keebio/quefrency/rev3/rev3.c
+++ b/keyboards/keebio/quefrency/rev3/rev3.c
@@ -47,6 +47,7 @@ void eeconfig_init_kb(void) {
     eeconfig_init_user();
 }
 
+#ifdef ENCODER_ENABLE
 bool encoder_update_kb(uint8_t index, bool clockwise) {
     if (!encoder_update_user(index, clockwise)) { return false; }
     if (index == 0) {
@@ -64,3 +65,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
     }
     return false;
 }
+#endif
diff --git a/keyboards/keebio/quefrency/rev4/config.h b/keyboards/keebio/quefrency/rev4/config.h
index d92a81de93..f047ffbdf0 100644
--- a/keyboards/keebio/quefrency/rev4/config.h
+++ b/keyboards/keebio/quefrency/rev4/config.h
@@ -46,8 +46,17 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 /* ws2812 RGB LED */
 #define RGB_DI_PIN E6
-#define RGBLIGHT_ANIMATIONS
 #define RGBLED_NUM 16    // Number of LEDs
 #define RGBLED_SPLIT { 8, 8 }
 #define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
 #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
+#define RGBLIGHT_EFFECT_BREATHING
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_SNAKE
+#define RGBLIGHT_EFFECT_KNIGHT
+#define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_RGB_TEST
+#define RGBLIGHT_EFFECT_ALTERNATING
+#define RGBLIGHT_EFFECT_TWINKLE
diff --git a/keyboards/keebio/quefrency/rev4/info.json b/keyboards/keebio/quefrency/rev4/info.json
index 198e84a592..8cc78205ea 100644
--- a/keyboards/keebio/quefrency/rev4/info.json
+++ b/keyboards/keebio/quefrency/rev4/info.json
@@ -5,8 +5,8 @@
     "maintainer": "nooges",
     "usb": {
         "vid": "0xCB10",
-        "pid": "0x4257",
-        "device_version": "4.0.0"
+        "pid": "0x4357",
+        "device_version": "4.1.0"
     },
     "layout_aliases": {
         "LAYOUT": "LAYOUT_60"
diff --git a/keyboards/keebio/quefrency/rev4/rev4.c b/keyboards/keebio/quefrency/rev4/rev4.c
index 190135420f..66d73a934a 100644
--- a/keyboards/keebio/quefrency/rev4/rev4.c
+++ b/keyboards/keebio/quefrency/rev4/rev4.c
@@ -16,6 +16,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "quefrency.h"
 
+#ifdef ENCODER_ENABLE
 bool encoder_update_kb(uint8_t index, bool clockwise) {
     if (!encoder_update_user(index, clockwise)) { return false; }
     if (index == 0) {
@@ -33,3 +34,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
     }
     return false;
 }
+#endif
diff --git a/keyboards/keebio/quefrency/rev5/info.json b/keyboards/keebio/quefrency/rev5/info.json
index 053551e30f..c7cc7b4bd2 100644
--- a/keyboards/keebio/quefrency/rev5/info.json
+++ b/keyboards/keebio/quefrency/rev5/info.json
@@ -5,8 +5,8 @@
     "maintainer": "nooges",
     "usb": {
         "vid": "0xCB10",
-        "pid": "0x5257",
-        "device_version": "5.0.0"
+        "pid": "0x5357",
+        "device_version": "5.1.0"
     },
     "layout_aliases": {
         "LAYOUT": "LAYOUT_60"
diff --git a/keyboards/keebio/quefrency/rev5/rev5.c b/keyboards/keebio/quefrency/rev5/rev5.c
index 190135420f..66d73a934a 100644
--- a/keyboards/keebio/quefrency/rev5/rev5.c
+++ b/keyboards/keebio/quefrency/rev5/rev5.c
@@ -16,6 +16,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "quefrency.h"
 
+#ifdef ENCODER_ENABLE
 bool encoder_update_kb(uint8_t index, bool clockwise) {
     if (!encoder_update_user(index, clockwise)) { return false; }
     if (index == 0) {
@@ -33,3 +34,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
     }
     return false;
 }
+#endif