From fc9654a1d05439aea3396954b9f482e680a6775b Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Tue, 26 Jul 2022 16:25:23 -0400 Subject: [PATCH] feat: encoder map, OLED & encoder kb-level config (#17767) --- keyboards/mechwild/mercutio/config.h | 5 ++- .../mercutio/keymaps/bongocat/keymap.c | 20 ++++----- .../mercutio/keymaps/bongocat/rules.mk | 3 +- .../mercutio/keymaps/default/config.h | 3 -- .../mercutio/keymaps/default/keymap.c | 41 ++++--------------- .../mercutio/keymaps/default/rules.mk | 1 + .../mechwild/mercutio/keymaps/fancy/config.h | 3 -- .../mechwild/mercutio/keymaps/fancy/keymap.c | 2 +- .../mercutio/keymaps/fearless_spiff/keymap.c | 4 +- .../mercutio/keymaps/jonavin/config.h | 3 -- .../mercutio/keymaps/jonavin/keymap.c | 2 +- .../mechwild/mercutio/keymaps/via/config.h | 3 -- .../mechwild/mercutio/keymaps/via/keymap.c | 41 ++++--------------- .../mechwild/mercutio/keymaps/via/rules.mk | 2 +- keyboards/mechwild/mercutio/mercutio.c | 41 +++++++++++++++++++ 15 files changed, 74 insertions(+), 100 deletions(-) create mode 100644 keyboards/mechwild/mercutio/keymaps/default/rules.mk diff --git a/keyboards/mechwild/mercutio/config.h b/keyboards/mechwild/mercutio/config.h index 2c318848c5d58fdc7ee10d1f9f480d9947697924..c6aa1e90254f0c3a951e903bd1a4cf884fd68652 100755 --- a/keyboards/mechwild/mercutio/config.h +++ b/keyboards/mechwild/mercutio/config.h @@ -46,6 +46,9 @@ /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW +/* Define custom font */ +#define OLED_FONT_H "lib/mercutiofont.c" + /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 @@ -53,4 +56,4 @@ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE \ No newline at end of file +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c b/keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c index 6062b8c73d4126338767e1cd0c1226162f9465e4..8ed7f60dd71d81b5a3a14a8b941c18f5418d22cc 100644 --- a/keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c @@ -65,19 +65,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - } - return true; -} +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + }; #endif #ifdef OLED_ENABLE diff --git a/keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk b/keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk index a475e2b6cdad12da2db4b96b147c6a2fc5aa86a7..74290f3abedad1b45f06bdc05bb3ae9b45e5728c 100644 --- a/keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk +++ b/keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk @@ -1,3 +1,4 @@ WPM_ENABLE = yes VIA_ENABLE = yes -MOUSEKEY_ENABLE = no \ No newline at end of file +MOUSEKEY_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechwild/mercutio/keymaps/default/config.h b/keyboards/mechwild/mercutio/keymaps/default/config.h index 235effacd7f47dac6dd47adad83a1d1a74647ca5..b428d6e2606a3af2e326c87d140e5486e18a3321 100644 --- a/keyboards/mechwild/mercutio/keymaps/default/config.h +++ b/keyboards/mechwild/mercutio/keymaps/default/config.h @@ -15,6 +15,3 @@ */ #pragma once - -/* Define custom font */ -#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c" \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/default/keymap.c b/keyboards/mechwild/mercutio/keymaps/default/keymap.c index 8f433292b5ba105d837cc199600d628c944ed914..f5066996c0672a6a61b554a9fa6435ecdabc209c 100644 --- a/keyboards/mechwild/mercutio/keymaps/default/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/default/keymap.c @@ -46,38 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - } - return true; -} -#endif - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand -} - -static void render_name(void) { - static const char PROGMEM mercutio_name[] = { - 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 - }; - oled_write_P(mercutio_name, false); -} - -bool oled_task_user(void) { - render_name(); - return false; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; #endif diff --git a/keyboards/mechwild/mercutio/keymaps/default/rules.mk b/keyboards/mechwild/mercutio/keymaps/default/rules.mk new file mode 100644 index 0000000000000000000000000000000000000000..ee325681483fbd804de1e14be33c47719c65bc71 --- /dev/null +++ b/keyboards/mechwild/mercutio/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechwild/mercutio/keymaps/fancy/config.h b/keyboards/mechwild/mercutio/keymaps/fancy/config.h index 235effacd7f47dac6dd47adad83a1d1a74647ca5..b428d6e2606a3af2e326c87d140e5486e18a3321 100644 --- a/keyboards/mechwild/mercutio/keymaps/fancy/config.h +++ b/keyboards/mechwild/mercutio/keymaps/fancy/config.h @@ -15,6 +15,3 @@ */ #pragma once - -/* Define custom font */ -#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c" \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/fancy/keymap.c b/keyboards/mechwild/mercutio/keymaps/fancy/keymap.c index 96457be6d22c3bec1ec69a328cbe420126d66806..ca1ac03d2b628bc467a0b5bf704f716083382f93 100755 --- a/keyboards/mechwild/mercutio/keymaps/fancy/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/fancy/keymap.c @@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } } } - return true; + return false; } #endif diff --git a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c index 36dcd4816fa5c52c309bfaf9308bcd66cb6b5fee..50b1b6471c76ac9460cee4d519fee15bdd82c511 100644 --- a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c @@ -160,7 +160,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { tap_code(KC_VOLD); } } - return true; + return false; } #endif @@ -292,7 +292,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { oled_write(get_u8_str(get_current_wpm(), ' '), false); */ - return true; + return false; } void suspend_power_down_user(void) { diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/config.h b/keyboards/mechwild/mercutio/keymaps/jonavin/config.h index 09909e28c9a9102bd923b9b1304e5331dd193961..1722a2c25cd562612e573410f2b19f9bb867e96e 100644 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/config.h +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/config.h @@ -17,9 +17,6 @@ #pragma once -/* Define custom font */ -#define OLED_FONT_H "lib/mercutiofont.c" - #define TAPPING_TOGGLE 2 // TT set to two taps diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c index e4d0ab49efd4e08e492075fae03533f8c9bc13fd..5447279e565b9b9ce00a4955261a579ea4521297 100755 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c @@ -152,7 +152,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } break; } - return true; + return false; } #endif diff --git a/keyboards/mechwild/mercutio/keymaps/via/config.h b/keyboards/mechwild/mercutio/keymaps/via/config.h index 235effacd7f47dac6dd47adad83a1d1a74647ca5..b428d6e2606a3af2e326c87d140e5486e18a3321 100644 --- a/keyboards/mechwild/mercutio/keymaps/via/config.h +++ b/keyboards/mechwild/mercutio/keymaps/via/config.h @@ -15,6 +15,3 @@ */ #pragma once - -/* Define custom font */ -#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c" \ No newline at end of file diff --git a/keyboards/mechwild/mercutio/keymaps/via/keymap.c b/keyboards/mechwild/mercutio/keymaps/via/keymap.c index 8f433292b5ba105d837cc199600d628c944ed914..f5066996c0672a6a61b554a9fa6435ecdabc209c 100755 --- a/keyboards/mechwild/mercutio/keymaps/via/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/via/keymap.c @@ -46,38 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - switch (index) { - case 0: - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - } - return true; -} -#endif - -#ifdef OLED_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand -} - -static void render_name(void) { - static const char PROGMEM mercutio_name[] = { - 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 - }; - oled_write_P(mercutio_name, false); -} - -bool oled_task_user(void) { - render_name(); - return false; -} +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; #endif diff --git a/keyboards/mechwild/mercutio/keymaps/via/rules.mk b/keyboards/mechwild/mercutio/keymaps/via/rules.mk index 16d33cd89fe4c5b97392f1824814ac00198e252d..f1adcab005e805a6e95f33b3d46bb01778ccaa7d 100644 --- a/keyboards/mechwild/mercutio/keymaps/via/rules.mk +++ b/keyboards/mechwild/mercutio/keymaps/via/rules.mk @@ -1,2 +1,2 @@ VIA_ENABLE = yes - +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechwild/mercutio/mercutio.c b/keyboards/mechwild/mercutio/mercutio.c index e4f4377f32e7ea25f80b215c5d4a46b537716f6b..890bf869dede6a3a44c8ec5fb06baaf6ceefb2d9 100755 --- a/keyboards/mechwild/mercutio/mercutio.c +++ b/keyboards/mechwild/mercutio/mercutio.c @@ -16,3 +16,44 @@ #include "mercutio.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if(!encoder_update_user(index, clockwise)) { + return false; + } + + switch (index) { + case 0: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } + return true; +} +#endif + +#ifdef OLED_ENABLE +static const char PROGMEM mercutio_name[] = { + 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 +}; + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand +} + +bool oled_task_kb(void) { + if(!oled_task_user()) { + return false; + } + + oled_write_P(mercutio_name, false); + return true; +} +#endif