diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h index 538859bc3c5..cd76af4fafb 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/config.h +++ b/keyboards/helix/rev2/keymaps/five_rows/config.h @@ -3,6 +3,7 @@ This is the c configuration file for the keymap Copyright 2012 Jun Wako Copyright 2015 Jack Humbert +Copyright 2020 mtei 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 @@ -27,12 +28,27 @@ along with this program. If not, see . /* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD. see tmk_core/common/action_tapping.c */ +#undef OLED_UPDATE_INTERVAL +#define OLED_UPDATE_INTERVAL 50 + // place overrides here // If you need more program area, try select and reduce rgblight modes to use. // Selection of RGBLIGHT MODE to use. +#undef RGBLIGHT_ANIMATIONS +#undef RGBLIGHT_EFFECT_BREATHING +#undef RGBLIGHT_EFFECT_RAINBOW_MOOD +#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL +#undef RGBLIGHT_EFFECT_SNAKE +#undef RGBLIGHT_EFFECT_KNIGHT +#undef RGBLIGHT_EFFECT_CHRISTMAS +#undef RGBLIGHT_EFFECT_STATIC_GRADIENT +#undef RGBLIGHT_EFFECT_RGB_TEST +#undef RGBLIGHT_EFFECT_ALTERNATING + #if defined(LED_ANIMATIONS) +# if LED_ANIMATIONS_LEVEL > 1 #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -42,6 +58,21 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_STATIC_GRADIENT //#define RGBLIGHT_EFFECT_RGB_TEST //#define RGBLIGHT_EFFECT_ALTERNATING +# else + #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 +# endif #endif #endif /* CONFIG_USER_H */ + +#ifdef DEBUG_CONFIG +# include "debug_config.h" +#endif diff --git a/keyboards/helix/rev2/keymaps/five_rows/oled_display.c b/keyboards/helix/rev2/keymaps/five_rows/oled_display.c index 127d80cc7da..689efe4c88f 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/oled_display.c +++ b/keyboards/helix/rev2/keymaps/five_rows/oled_display.c @@ -163,6 +163,10 @@ void render_status(void) { } # ifdef SSD1306OLED +# if OLED_UPDATE_INTERVAL > 0 +uint16_t oled_update_timeout; +# endif + void iota_gfx_task_user(void) { struct CharacterMatrix matrix; @@ -172,6 +176,12 @@ void iota_gfx_task_user(void) { } # endif +#if OLED_UPDATE_INTERVAL > 0 + if (timer_elapsed(oled_update_timeout) < OLED_UPDATE_INTERVAL) { + return; + } + oled_update_timeout = timer_read(); +#endif matrix_clear(&matrix); if (is_keyboard_master()) { render_status(&matrix); diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk index 83cdb30d0cd..fbde2fe6a65 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk @@ -12,6 +12,7 @@ # yes, yes +3200 # no, yes +400 LTO_ENABLE = no # if firmware size over limit, try this option +LED_ANIMATIONS = yes # Helix Spacific Build Options # you can uncomment and edit follows 7 Variables @@ -26,8 +27,8 @@ HELIX_ROWS = 5 # Helix Rows is 4 or 5 ifneq ($(strip $(HELIX)),) define KEYMAP_OPTION_PARSE - # $xinfo .$1.x #debug - # parse 'dispoff', 'consle', 'stdole', 'oled', 'sc' + # parse 'dispoff', 'consloe', 'na', 'ani', 'mini-ani' + $(if $(SHOW_PARCE),$(info parse -$1-)) #debug ifeq ($(strip $1),dispoff) OLED_ENABLE = no OLED_DRIVER_ENABLE = no @@ -37,19 +38,26 @@ ifneq ($(strip $(HELIX)),) ifeq ($(strip $1),console) CONSOLE_ENABLE = yes endif - ifeq ($(strip $1),stdole) - ## make HELIX=stdole helix:five_rows -- use TOP/drivers/oled/oled_driver.c - OLED_ENABLE = new + ifeq ($(strip $1),debug) + DEBUG_CONFIG = yes endif - ifeq ($(strip $1),oled) - ## make HELIX=oled helix:five_rows -- use helix/local_drivers/ssd1306.c - OLED_ENABLE = yes + ifneq ($(filter nodebug no-debug no_debug,$(strip $1)),) + DEBUG_CONFIG = no endif - ifeq ($(strip $1),back) - LED_BACK_ENABLE = yes + ifneq ($(filter na no_ani no-ani,$(strip $1)),) + LED_ANIMATIONS = no endif - ifeq ($(strip $1),sc) - SPLIT_KEYBOARD = yes + ifneq ($(filter mini-ani mini_ani,$(strip $1)),) + LED_ANIMATIONS = mini + endif + ifneq ($(filter ani animation,$(strip $1)),) + LED_ANIMATIONS = yes + endif + ifeq ($(strip $1),lto) + LTO_ENABLE = yes + endif + ifneq ($(filter nolto no-lto no_lto,$(strip $1)),) + LTO_ENABLE = no endif endef # end of KEYMAP_OPTION_PARSE @@ -58,20 +66,23 @@ ifneq ($(strip $(HELIX)),) $(call KEYMAP_OPTION_PARSE,$(A_OPTION_NAME)))) endif -ifeq ($(strip $(OLED_ENABLE)), new) - OLED_DRIVER_ENABLE = yes - OLED_ENABLE = no - SRC += oled_display.c - ifeq ($(strip $(LOCAL_GLCDFONT)), yes) - OPT_DEFS += -DOLED_FONT_H=\ - else - OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\" - endif +ifeq ($(strip $(LED_ANIMATIONS)), yes) + OPT_DEFS += -DLED_ANIMATIONS_LEVEL=2 endif -ifeq ($(strip $(OLED_ENABLE)), yes) - SRC += oled_display.c + +ifeq ($(strip $(LED_ANIMATIONS)), mini) + OPT_DEFS += -DLED_ANIMATIONS_LEVEL=1 + LED_ANIMATIONS = yes +endif + +ifeq ($(strip $(DEBUG_CONFIG)), yes) + OPT_DEFS += -DDEBUG_CONFIG endif # convert Helix-specific options (that represent combinations of standard options) # into QMK standard options. include $(strip $(KEYBOARD_LOCAL_FEATURES_MK)) + +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC += oled_display.c +endif