diff --git a/keyboards/evolv/config.h b/keyboards/evolv/config.h index 2b91033c98f0..59223cd2c9dd 100644 --- a/keyboards/evolv/config.h +++ b/keyboards/evolv/config.h @@ -59,6 +59,8 @@ along with this program. If not, see . #define ENCODERS_PAD_A { B3 } #define ENCODERS_PAD_B { A15 } +#define ENCODER_RESOLUTION 2 +#define TAPPING_TERM 200 /* * Feature disable options diff --git a/keyboards/evolv/evolv.c b/keyboards/evolv/evolv.c index 90df449ee204..54f92c9dbc4d 100644 --- a/keyboards/evolv/evolv.c +++ b/keyboards/evolv/evolv.c @@ -16,15 +16,3 @@ along with this program. If not, see . */ #include "evolv.h" - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) return false; - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} diff --git a/keyboards/evolv/keymaps/default/keymap.c b/keyboards/evolv/keymaps/default/keymap.c index 5e5e5e7abb63..ed76030ae089 100755 --- a/keyboards/evolv/keymaps/default/keymap.c +++ b/keyboards/evolv/keymaps/default/keymap.c @@ -17,6 +17,8 @@ along with this program. If not, see . #include QMK_KEYBOARD_H +#define MEDIA_KEY_DELAY 100 + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_evolv_ansi( KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS , @@ -47,3 +49,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; + +uint32_t held_keycode_timer = 0; +uint16_t mapped_code = 0; +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) mapped_code = KC_VOLU; + else mapped_code = KC_VOLD; + register_code(mapped_code); + held_keycode_timer = timer_read32(); + while (timer_elapsed32(held_keycode_timer) < MEDIA_KEY_DELAY) ; + unregister_code(mapped_code); + return true; +} diff --git a/keyboards/evolv/keymaps/iso/keymap.c b/keyboards/evolv/keymaps/iso/keymap.c index 4efe8268d350..305ff805ff91 100755 --- a/keyboards/evolv/keymaps/iso/keymap.c +++ b/keyboards/evolv/keymaps/iso/keymap.c @@ -17,6 +17,8 @@ along with this program. If not, see . #include QMK_KEYBOARD_H +#define MEDIA_KEY_DELAY 100 + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_evolv_iso( KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS , @@ -47,3 +49,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; + +uint32_t held_keycode_timer = 0; +uint16_t mapped_code = 0; +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) mapped_code = KC_VOLU; + else mapped_code = KC_VOLD; + register_code(mapped_code); + held_keycode_timer = timer_read32(); + while (timer_elapsed32(held_keycode_timer) < MEDIA_KEY_DELAY) ; + unregister_code(mapped_code); + return true; +} diff --git a/keyboards/evolv/keymaps/via/keymap.c b/keyboards/evolv/keymaps/via/keymap.c index 4efe8268d350..305ff805ff91 100755 --- a/keyboards/evolv/keymaps/via/keymap.c +++ b/keyboards/evolv/keymaps/via/keymap.c @@ -17,6 +17,8 @@ along with this program. If not, see . #include QMK_KEYBOARD_H +#define MEDIA_KEY_DELAY 100 + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_evolv_iso( KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS , @@ -47,3 +49,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; + +uint32_t held_keycode_timer = 0; +uint16_t mapped_code = 0; +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) mapped_code = KC_VOLU; + else mapped_code = KC_VOLD; + register_code(mapped_code); + held_keycode_timer = timer_read32(); + while (timer_elapsed32(held_keycode_timer) < MEDIA_KEY_DELAY) ; + unregister_code(mapped_code); + return true; +} diff --git a/keyboards/evolv/mcuconf.h b/keyboards/evolv/mcuconf.h index 2836e4b01a76..84d14114ff36 100644 --- a/keyboards/evolv/mcuconf.h +++ b/keyboards/evolv/mcuconf.h @@ -23,9 +23,5 @@ #include_next -#undef STM32_I2C_USE_DMA -#define STM32_I2C_USE_DMA FALSE - #undef STM32_SPI_USE_SPI2 #define STM32_SPI_USE_SPI2 TRUE - diff --git a/keyboards/evolv/rules.mk b/keyboards/evolv/rules.mk index 380010c7756f..246ec10d90ea 100644 --- a/keyboards/evolv/rules.mk +++ b/keyboards/evolv/rules.mk @@ -1,17 +1,14 @@ # MCU name MCU = STM32F072 -# Bootloader selection -BOOTLOADER = stm32-dfu - # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work