[Core] Refactor OLED to allow easy addition of other types (#13454)
* add docs * core changes * update keyboards to new OLED * updated users to new OLED * update layouts to new OLED * fixup docs * drashna's suggestion * fix up docs * new keyboards with oled * core split changes * remaining keyboard files * Fix The Helix keyboards oled options * reflect develop Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									6fd20acf4b
								
							
						
					
					
						commit
						4e1c5887c5
					
				
					 500 changed files with 1579 additions and 1387 deletions
				
			
		| 
						 | 
				
			
			@ -42,8 +42,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// #define EE_HANDS
 | 
			
		||||
 | 
			
		||||
// Helix keyboard OLED support
 | 
			
		||||
//      see ./rules.mk: OLED_ENABLE=yes or no
 | 
			
		||||
#ifdef OLED_ENABLE
 | 
			
		||||
//      see ./local_features.mk: OLED_SELECT=local
 | 
			
		||||
#ifdef OLED_LOCAL_ENABLE
 | 
			
		||||
  #define SSD1306OLED
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,9 +36,9 @@ enum layer_number {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
 | 
			
		||||
#if defined(SSD1306OLED) || defined(OLED_DRIVER_ENABLE)
 | 
			
		||||
#if defined(SSD1306OLED) || defined(OLED_ENABLE)
 | 
			
		||||
 | 
			
		||||
#    if defined(OLED_DRIVER_ENABLE)
 | 
			
		||||
#    if defined(OLED_ENABLE)
 | 
			
		||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		||||
    if (is_keyboard_master()) {
 | 
			
		||||
        return OLED_ROTATION_0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
#include <string.h>
 | 
			
		||||
#include "oled.h"
 | 
			
		||||
 | 
			
		||||
#ifdef OLED_DRIVER_ENABLE
 | 
			
		||||
#ifdef OLED_ENABLE
 | 
			
		||||
void render_host_led_state(void) {
 | 
			
		||||
    char    led_state_str[24];
 | 
			
		||||
    uint8_t leds = host_keyboard_leds();
 | 
			
		||||
| 
						 | 
				
			
			@ -65,4 +65,4 @@ void oled_task_user(void) {
 | 
			
		|||
        render_logo();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#endif  // OLED_DRIVER_ENABLE
 | 
			
		||||
#endif  // OLED_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,9 +35,9 @@ void init_helix_oled(void) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
 | 
			
		||||
#if defined(SSD1306OLED) || defined(OLED_DRIVER_ENABLE)
 | 
			
		||||
#if defined(SSD1306OLED) || defined(OLED_ENABLE)
 | 
			
		||||
 | 
			
		||||
#    if defined(OLED_DRIVER_ENABLE)
 | 
			
		||||
#    if defined(OLED_ENABLE)
 | 
			
		||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		||||
    if (is_keyboard_master()) {
 | 
			
		||||
        return OLED_ROTATION_0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,7 +31,6 @@ ifneq ($(strip $(HELIX)),)
 | 
			
		|||
    $(if $(SHOW_PARCE),$(info parse -$1-))  #debug
 | 
			
		||||
    ifeq ($(strip $1),dispoff)
 | 
			
		||||
        OLED_ENABLE = no
 | 
			
		||||
        OLED_DRIVER_ENABLE = no
 | 
			
		||||
        LED_BACK_ENABLE = no
 | 
			
		||||
        LED_UNDERGLOW_ENABLE = no
 | 
			
		||||
    endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,8 @@ OPT_DEFS += -DRGBLIGHT_ANIMATIONS
 | 
			
		|||
# Helix specific define for correct RGBLED_NUM
 | 
			
		||||
OPT_DEFS += -DRGBLED_BACK
 | 
			
		||||
 | 
			
		||||
OLED_DRIVER_ENABLE = yes
 | 
			
		||||
OLED_ENABLE = yes
 | 
			
		||||
OLED_DRIVER = SSD1306
 | 
			
		||||
# Helix specific font file
 | 
			
		||||
OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
 | 
			
		||||
# Xulkal specific oled define
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -156,17 +156,20 @@ endif
 | 
			
		|||
 | 
			
		||||
ifeq ($(strip $(OLED_ENABLE)), yes)
 | 
			
		||||
    ifeq ($(strip $(OLED_SELECT)),core)
 | 
			
		||||
        OLED_DRIVER_ENABLE = yes
 | 
			
		||||
        OLED_ENABLE = yes
 | 
			
		||||
        OLED_DRIVER = SSD1306
 | 
			
		||||
        ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
 | 
			
		||||
           OPT_DEFS += -DOLED_FONT_H=\<helixfont.h\>
 | 
			
		||||
        else
 | 
			
		||||
           OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
 | 
			
		||||
        endif
 | 
			
		||||
    else
 | 
			
		||||
        OLED_ENABLE = no # disable OLED in TOP/common_features.mk
 | 
			
		||||
        OLED_LOCAL_ENABLE = yes
 | 
			
		||||
        SRC += local_drivers/i2c.c
 | 
			
		||||
        SRC += local_drivers/ssd1306.c
 | 
			
		||||
        KEYBOARD_PATHS += $(HELIX_TOP_DIR)/local_drivers
 | 
			
		||||
        OPT_DEFS += -DOLED_ENABLE
 | 
			
		||||
        OPT_DEFS += -DOLED_LOCAL_ENABLE
 | 
			
		||||
        ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
 | 
			
		||||
            OPT_DEFS += -DLOCAL_GLCDFONT
 | 
			
		||||
        endif
 | 
			
		||||
| 
						 | 
				
			
			@ -177,7 +180,8 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
 | 
			
		|||
  $(eval $(call HELIX_CUSTOMISE_MSG))
 | 
			
		||||
  ifneq ($(strip $(SHOW_VERBOSE_INFO)),)
 | 
			
		||||
     $(info -- RGBLIGHT_ENABLE    = $(RGBLIGHT_ENABLE))
 | 
			
		||||
     $(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
 | 
			
		||||
     $(info -- OLED_DRIVER        = $(OLED_DRIVER))
 | 
			
		||||
     $(info -- OLED_LOCAL_ENABLE  = $(OLED_LOCAL_ENABLE))
 | 
			
		||||
     $(info -- CONSOLE_ENABLE     = $(CONSOLE_ENABLE))
 | 
			
		||||
     $(info -- OPT_DEFS           = $(OPT_DEFS))
 | 
			
		||||
     $(info -- SPLIT_KEYBOARD     = $(SPLIT_KEYBOARD))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue