Backing up OLED32/64 work
This commit is contained in:
		
							parent
							
								
									2036b62a89
								
							
						
					
					
						commit
						3fa49a03d1
					
				
					 12 changed files with 401 additions and 206 deletions
				
			
		| 
						 | 
				
			
			@ -5,4 +5,5 @@
 | 
			
		|||
#	keyboards\barbellboards\rollow\info.json
 | 
			
		||||
#	keyboards\barbellboards\rollow\rules.mk
 | 
			
		||||
 | 
			
		||||
LTO_ENABLE = no
 | 
			
		||||
CONVERT_TO = promicro_rp2040
 | 
			
		||||
| 
						 | 
				
			
			@ -32,16 +32,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
#if defined(ENCODER_MAP_ENABLE)
 | 
			
		||||
 | 
			
		||||
/* These are horizontal encoders. Found I have to make it opposite the rotary encoders for it to feel intuitive*/
 | 
			
		||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
 | 
			
		||||
 | 
			
		||||
  [_QWERTY]     = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)  },
 | 
			
		||||
  [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)  },
 | 
			
		||||
  [_GAME]       = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)  },
 | 
			
		||||
  [_NAVIGATION] = { ENCODER_CCW_CW(ZOOMIN,  ZOOMOUT), ENCODER_CCW_CW(___x___, ___x___)  },
 | 
			
		||||
  [_NUMBER]     = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT)  },
 | 
			
		||||
  [_QWERTY]     = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)  },
 | 
			
		||||
  [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)  },
 | 
			
		||||
  [_GAME]       = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)  },
 | 
			
		||||
  [_NAVIGATION] = { ENCODER_CCW_CW(ZOOMOUT, ZOOMIN),  ENCODER_CCW_CW(___x___, ___x___)  },
 | 
			
		||||
  [_NUMBER]     = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_LEFT, KC_RGHT)  },
 | 
			
		||||
  [_SYMBOL]     = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___)  },
 | 
			
		||||
  [_CONFIG]     = { ENCODER_CCW_CW(BASELYR, RBSELYR), ENCODER_CCW_CW(TR_RMOD, TR_RRMD)  }
 | 
			
		||||
  [_CONFIG]     = { ENCODER_CCW_CW(RBSELYR, BASELYR), ENCODER_CCW_CW(TR_RRMD, TR_RMOD)  }
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
# override userspace defaults
 | 
			
		||||
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
# override keyboard defaults
 | 
			
		||||
#	keyboards\klor\info.json
 | 
			
		||||
#	keyboards\klor\rules.mk
 | 
			
		||||
| 
						 | 
				
			
			@ -7,6 +9,7 @@
 | 
			
		|||
AUDIO_ENABLE = yes
 | 
			
		||||
HAPTIC_ENABLE = yes
 | 
			
		||||
RGB_MATRIX_ENABLE = yes
 | 
			
		||||
SWAP_HANDS_ENABLE = no 
 | 
			
		||||
 | 
			
		||||
# Choose your layout
 | 
			
		||||
KLOR_CONFIG = saegewerk
 | 
			
		||||
							
								
								
									
										1
									
								
								qmk.json
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								qmk.json
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -2,7 +2,6 @@
 | 
			
		|||
    "userspace_version": "1.0",
 | 
			
		||||
    "build_targets": [
 | 
			
		||||
 | 
			
		||||
		["ploopyco/trackball_nano", "lkbm"],
 | 
			
		||||
		["crkbd/rev1", "t4corun"],
 | 
			
		||||
		["bastardkb/charybdis/3x5/v2/splinky_3", "t4corun"],
 | 
			
		||||
		["planck/rev6", "t4corun"],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +1,3 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "t4corun.h"
 | 
			
		||||
							
								
								
									
										71
									
								
								users/t4corun/features/luna.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								users/t4corun/features/luna.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,71 @@
 | 
			
		|||
#include "luna.h"
 | 
			
		||||
 | 
			
		||||
static uint32_t luna_anim_timer = 0;
 | 
			
		||||
static uint8_t luna_current_frame = 0;
 | 
			
		||||
 | 
			
		||||
void render_luna(void) {
 | 
			
		||||
 | 
			
		||||
#if OLED_TIMEOUT > 0
 | 
			
		||||
  // the animation prevents the normal timeout from occuring
 | 
			
		||||
  if (last_input_activity_elapsed() > OLED_TIMEOUT && last_led_activity_elapsed() > OLED_TIMEOUT) {
 | 
			
		||||
    oled_off();
 | 
			
		||||
    return;
 | 
			
		||||
  } else {
 | 
			
		||||
    oled_on();
 | 
			
		||||
  }
 | 
			
		||||
#endif //OLED_TIMEOUT
 | 
			
		||||
 | 
			
		||||
  if (timer_elapsed32(luna_anim_timer) > OLED_LUNA_ANIM_FRAME_DURATION) {
 | 
			
		||||
    luna_anim_timer = timer_read32();
 | 
			
		||||
    animate_luna(OLED_LUNA_X, OLED_LUNA_Y);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void animate_luna(int LUNA_X, int LUNA_Y) {
 | 
			
		||||
 | 
			
		||||
  uint8_t current_mod = get_mods();
 | 
			
		||||
  uint8_t current_osm = get_oneshot_mods();
 | 
			
		||||
 | 
			
		||||
  // Make Luna Jump when spacebar is pressed
 | 
			
		||||
  // Only works when Luna is rendered on Master Slide
 | 
			
		||||
  if (isLunaJumping() || !isJumpShown()) {
 | 
			
		||||
    /* clear */
 | 
			
		||||
    oled_set_cursor(LUNA_X, LUNA_Y + 2);
 | 
			
		||||
    oled_write("     ", false);
 | 
			
		||||
    oled_set_cursor(LUNA_X, LUNA_Y - 1);
 | 
			
		||||
 | 
			
		||||
    setLunaJumped();
 | 
			
		||||
  } else {
 | 
			
		||||
    /* clear */
 | 
			
		||||
    oled_set_cursor(LUNA_X, LUNA_Y - 1);
 | 
			
		||||
    oled_write("     ", false);
 | 
			
		||||
    oled_set_cursor(LUNA_X, LUNA_Y);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  luna_current_frame = (luna_current_frame + 1) % 2;
 | 
			
		||||
 | 
			
		||||
  // Animate based on status
 | 
			
		||||
  if (host_keyboard_led_state().caps_lock || is_caps_word_on()) {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(bark[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  } else if ((current_mod | current_osm) & MOD_MASK_CTRL) {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(sneak[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  } else if (get_current_wpm() <= OLED_LUNA_MIN_WALK_SPEED) {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(sit[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  } else if (get_current_wpm() <= OLED_LUNA_MIN_RUN_SPEED) {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(walk[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  } else {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(run[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}  
 | 
			
		||||
| 
						 | 
				
			
			@ -2,123 +2,9 @@
 | 
			
		|||
 | 
			
		||||
#include "t4corun.h"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_KEYLOCK_NAME      "Lock"
 | 
			
		||||
#define OLED_RENDER_MODS_NAME         "Mods"
 | 
			
		||||
#define OLED_RENDER_FEATURE_NAME      "Feat"
 | 
			
		||||
#define OLED_RENDER_WPM_NAME          "Wpm"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_LAYOUT_QWERTY     "QWRTY"
 | 
			
		||||
#define OLED_RENDER_LAYOUT_COLEMAK_DH "CLMAK"
 | 
			
		||||
#define OLED_RENDER_LAYOUT_GAME       "GAME"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_LAYER_BASE        " Def"
 | 
			
		||||
#define OLED_RENDER_LAYER_NAVIGATION  " Nav"
 | 
			
		||||
#define OLED_RENDER_LAYER_NUMBER      " Num"
 | 
			
		||||
#define OLED_RENDER_LAYER_SYMBOL      " Sym"
 | 
			
		||||
#define OLED_RENDER_LAYER_CONFIG      " Cfg"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// LUNA PET Variables
 | 
			
		||||
#if defined(WPM_ENABLE)
 | 
			
		||||
#   define OLED_LUNA_X                   0
 | 
			
		||||
#   define OLED_LUNA_Y                   13
 | 
			
		||||
#   define OLED_LUNA_MIN_WALK_SPEED      10
 | 
			
		||||
#   define OLED_LUNA_MIN_RUN_SPEED       40
 | 
			
		||||
#   define OLED_LUNA_ANIM_FRAME_DURATION 200  // how long each frame lasts in ms
 | 
			
		||||
#   define OLED_LUNA_ANIM_SIZE           96   // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
 | 
			
		||||
 | 
			
		||||
void              render_luna(void);
 | 
			
		||||
void              animate_luna(int LUNA_X, int LUNA_Y);
 | 
			
		||||
#endif //WPM_ENABLE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void              render_default_layer_state(void);
 | 
			
		||||
void              render_layer_state(void);
 | 
			
		||||
void              render_keylock_status(void);
 | 
			
		||||
void              render_mod_status(void);
 | 
			
		||||
void              render_feature_status(void);
 | 
			
		||||
bool              oled_task_user(void);
 | 
			
		||||
oled_rotation_t   oled_init_user(oled_rotation_t rotation);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM scroll_off[]  = {0x8D, 0};
 | 
			
		||||
static const char PROGMEM scroll_on[]   = {0x8E, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM num_off[]     = {0xAD, 0};
 | 
			
		||||
static const char PROGMEM num_on[]      = {0xAE, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM caps_off[]    = {0xCD, 0};
 | 
			
		||||
static const char PROGMEM caps_on[]     = {0xCE, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM shift_off[]   = {0x85, 0x86, 0};
 | 
			
		||||
static const char PROGMEM shift_on[]    = {0x87, 0x88, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM ctrl_off[]    = {0xA9, 0xAA, 0};
 | 
			
		||||
static const char PROGMEM ctrl_on[]     = {0xAB, 0xAC, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM alt_off[]     = {0xA5, 0xA6, 0};
 | 
			
		||||
static const char PROGMEM alt_on[]      = {0xA7, 0xA8, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM gui_off[]     = {0x89, 0x8A, 0};
 | 
			
		||||
static const char PROGMEM gui_on[]      = {0x8B, 0x8C, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM rgb_off[]     = {0xC5, 0xC6, 0};
 | 
			
		||||
static const char PROGMEM rgb_on[]      = {0xC7, 0xC8, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM dragscr_off[] = {0xC9, 0xCA, 0};
 | 
			
		||||
static const char PROGMEM dragscr_on[]  = {0xCB, 0xCC, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM sound_off[]   = {0x8F, 0x90, 0};
 | 
			
		||||
static const char PROGMEM sound_on[]    = {0xAF, 0xB0, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM haptic_off[]  = {0x91, 0x92, 0};
 | 
			
		||||
static const char PROGMEM haptic_on[]   = {0xB1, 0xB2, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_cfg[] = {
 | 
			
		||||
  0xE1, 0xD1, 0xD2, 0xD3, 0xE1,
 | 
			
		||||
  0xE1, 0xBA, 0xBB, 0xBC, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_sym[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xDA, 0xDB, 0xDC, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_num[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0x9A, 0x9B, 0x9C, 0xE1,
 | 
			
		||||
  0xE1, 0xBA, 0xBB, 0xBC, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_nav[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xDA, 0xDB, 0xDC, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_def[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0x9A, 0x9B, 0x9C, 0xE1,
 | 
			
		||||
  0xE1, 0xD4, 0xD5, 0xD6, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM qmk_logo_small[] = {
 | 
			
		||||
  0xE1, 0x9D, 0x9E, 0x9F, 0xE1,
 | 
			
		||||
  0xE1, 0xBD, 0xBE, 0xBF, 0xE1,
 | 
			
		||||
  0xE1, 0xDD, 0xDE, 0xDF, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(WPM_ENABLE)
 | 
			
		||||
void render_luna(void);
 | 
			
		||||
void animate_luna(int LUNA_X, int LUNA_Y);
 | 
			
		||||
 | 
			
		||||
// Luna Sit
 | 
			
		||||
static const char PROGMEM sit[2][OLED_LUNA_ANIM_SIZE] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -164,5 +50,3 @@ static const char PROGMEM sneak[2][OLED_LUNA_ANIM_SIZE] = {
 | 
			
		|||
  /* 'sneak2', 32x22px */
 | 
			
		||||
  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif //WPM_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -1,84 +1,8 @@
 | 
			
		|||
#include "oled.h"
 | 
			
		||||
 | 
			
		||||
/* LUNA PET START */
 | 
			
		||||
#include "oled32.h"
 | 
			
		||||
 | 
			
		||||
#if defined(WPM_ENABLE)
 | 
			
		||||
 | 
			
		||||
static uint32_t luna_anim_timer = 0;
 | 
			
		||||
static uint8_t luna_current_frame = 0;
 | 
			
		||||
 | 
			
		||||
void render_luna(void) {
 | 
			
		||||
 | 
			
		||||
#if OLED_TIMEOUT > 0
 | 
			
		||||
  // the animation prevents the normal timeout from occuring
 | 
			
		||||
  if (last_input_activity_elapsed() > OLED_TIMEOUT && last_led_activity_elapsed() > OLED_TIMEOUT) {
 | 
			
		||||
    oled_off();
 | 
			
		||||
    return;
 | 
			
		||||
  } else {
 | 
			
		||||
    oled_on();
 | 
			
		||||
  }
 | 
			
		||||
#endif //OLED_TIMEOUT
 | 
			
		||||
 | 
			
		||||
  if (timer_elapsed32(luna_anim_timer) > OLED_LUNA_ANIM_FRAME_DURATION) {
 | 
			
		||||
    luna_anim_timer = timer_read32();
 | 
			
		||||
    animate_luna(OLED_LUNA_X, OLED_LUNA_Y);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void animate_luna(int LUNA_X, int LUNA_Y) {
 | 
			
		||||
 | 
			
		||||
  uint8_t current_mod = get_mods();
 | 
			
		||||
  uint8_t current_osm = get_oneshot_mods();
 | 
			
		||||
 | 
			
		||||
  // Make Luna Jump when spacebar is pressed
 | 
			
		||||
  // Only works when Luna is rendered on Master Slide
 | 
			
		||||
  if (isLunaJumping() || !isJumpShown()) {
 | 
			
		||||
    /* clear */
 | 
			
		||||
    oled_set_cursor(LUNA_X, LUNA_Y + 2);
 | 
			
		||||
    oled_write("     ", false);
 | 
			
		||||
    oled_set_cursor(LUNA_X, LUNA_Y - 1);
 | 
			
		||||
 | 
			
		||||
    setLunaJumped();
 | 
			
		||||
  } else {
 | 
			
		||||
    /* clear */
 | 
			
		||||
    oled_set_cursor(LUNA_X, LUNA_Y - 1);
 | 
			
		||||
    oled_write("     ", false);
 | 
			
		||||
    oled_set_cursor(LUNA_X, LUNA_Y);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  luna_current_frame = (luna_current_frame + 1) % 2;
 | 
			
		||||
 | 
			
		||||
  // Animate based on status
 | 
			
		||||
  if (host_keyboard_led_state().caps_lock || is_caps_word_on()) {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(bark[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  } else if ((current_mod | current_osm) & MOD_MASK_CTRL) {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(sneak[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  } else if (get_current_wpm() <= OLED_LUNA_MIN_WALK_SPEED) {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(sit[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  } else if (get_current_wpm() <= OLED_LUNA_MIN_RUN_SPEED) {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(walk[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  } else {
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(run[luna_current_frame], OLED_LUNA_ANIM_SIZE);
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif //WPM_ENABLE
 | 
			
		||||
 | 
			
		||||
/* KEYBOARD PET END */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  #include "luna.c"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Prints the current base layer
 | 
			
		||||
| 
						 | 
				
			
			@ -246,5 +170,10 @@ bool oled_task_user(void) {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		||||
  
 | 
			
		||||
  //OLED_ROTATION_270 for Rollow/Corne/Swoop
 | 
			
		||||
  //OLED_ROTATION_0 for KLOR
 | 
			
		||||
 | 
			
		||||
  return OLED_ROTATION_270;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										111
									
								
								users/t4corun/features/oled32.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								users/t4corun/features/oled32.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,111 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "t4corun.h"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_KEYLOCK_NAME      "Lock"
 | 
			
		||||
#define OLED_RENDER_MODS_NAME         "Mods"
 | 
			
		||||
#define OLED_RENDER_FEATURE_NAME      "Feat"
 | 
			
		||||
#define OLED_RENDER_WPM_NAME          "Wpm"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_LAYOUT_QWERTY     "QWRTY"
 | 
			
		||||
#define OLED_RENDER_LAYOUT_COLEMAK_DH "CLMAK"
 | 
			
		||||
#define OLED_RENDER_LAYOUT_GAME       "GAME"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_LAYER_BASE        " Def"
 | 
			
		||||
#define OLED_RENDER_LAYER_NAVIGATION  " Nav"
 | 
			
		||||
#define OLED_RENDER_LAYER_NUMBER      " Num"
 | 
			
		||||
#define OLED_RENDER_LAYER_SYMBOL      " Sym"
 | 
			
		||||
#define OLED_RENDER_LAYER_CONFIG      " Cfg"
 | 
			
		||||
 | 
			
		||||
// LUNA PET Variables
 | 
			
		||||
#if defined(WPM_ENABLE)
 | 
			
		||||
#   define OLED_LUNA_X                   0
 | 
			
		||||
#   define OLED_LUNA_Y                   13
 | 
			
		||||
#   define OLED_LUNA_MIN_WALK_SPEED      10
 | 
			
		||||
#   define OLED_LUNA_MIN_RUN_SPEED       40
 | 
			
		||||
#   define OLED_LUNA_ANIM_FRAME_DURATION 200  // how long each frame lasts in ms
 | 
			
		||||
#   define OLED_LUNA_ANIM_SIZE           96   // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
 | 
			
		||||
#endif //WPM_ENABLE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void render_default_layer_state(void);
 | 
			
		||||
void render_layer_state(void);
 | 
			
		||||
void render_keylock_status(void);
 | 
			
		||||
void render_mod_status(void);
 | 
			
		||||
void render_feature_status(void);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM scroll_off[]  = {0x8D, 0};
 | 
			
		||||
static const char PROGMEM scroll_on[]   = {0x8E, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM num_off[]     = {0xAD, 0};
 | 
			
		||||
static const char PROGMEM num_on[]      = {0xAE, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM caps_off[]    = {0xCD, 0};
 | 
			
		||||
static const char PROGMEM caps_on[]     = {0xCE, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM shift_off[]   = {0x85, 0x86, 0};
 | 
			
		||||
static const char PROGMEM shift_on[]    = {0x87, 0x88, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM ctrl_off[]    = {0xA9, 0xAA, 0};
 | 
			
		||||
static const char PROGMEM ctrl_on[]     = {0xAB, 0xAC, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM alt_off[]     = {0xA5, 0xA6, 0};
 | 
			
		||||
static const char PROGMEM alt_on[]      = {0xA7, 0xA8, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM gui_off[]     = {0x89, 0x8A, 0};
 | 
			
		||||
static const char PROGMEM gui_on[]      = {0x8B, 0x8C, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM rgb_off[]     = {0xC5, 0xC6, 0};
 | 
			
		||||
static const char PROGMEM rgb_on[]      = {0xC7, 0xC8, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM dragscr_off[] = {0xC9, 0xCA, 0};
 | 
			
		||||
static const char PROGMEM dragscr_on[]  = {0xCB, 0xCC, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM sound_off[]   = {0x8F, 0x90, 0};
 | 
			
		||||
static const char PROGMEM sound_on[]    = {0xAF, 0xB0, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM haptic_off[]  = {0x91, 0x92, 0};
 | 
			
		||||
static const char PROGMEM haptic_on[]   = {0xB1, 0xB2, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_cfg[] = {
 | 
			
		||||
  0xE1, 0xD1, 0xD2, 0xD3, 0xE1,
 | 
			
		||||
  0xE1, 0xBA, 0xBB, 0xBC, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_sym[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xDA, 0xDB, 0xDC, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_num[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0x9A, 0x9B, 0x9C, 0xE1,
 | 
			
		||||
  0xE1, 0xBA, 0xBB, 0xBC, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_nav[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xDA, 0xDB, 0xDC, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_def[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0x9A, 0x9B, 0x9C, 0xE1,
 | 
			
		||||
  0xE1, 0xD4, 0xD5, 0xD6, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM qmk_logo_small[] = {
 | 
			
		||||
  0xE1, 0x9D, 0x9E, 0x9F, 0xE1,
 | 
			
		||||
  0xE1, 0xBD, 0xBE, 0xBF, 0xE1,
 | 
			
		||||
  0xE1, 0xDD, 0xDE, 0xDF, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										44
									
								
								users/t4corun/features/oled64.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								users/t4corun/features/oled64.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,44 @@
 | 
			
		|||
#include "oled64.h"
 | 
			
		||||
 | 
			
		||||
#if defined(WPM_ENABLE)
 | 
			
		||||
  #include "luna.c"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Coordinate the OLED rendering
 | 
			
		||||
bool oled_task_user(void) {
 | 
			
		||||
 | 
			
		||||
  if (is_keyboard_master()) {
 | 
			
		||||
    /*
 | 
			
		||||
    oled_write_P(PSTR("123456789012345678901"), true);
 | 
			
		||||
    oled_write_ln_P(PSTR("2"), false);
 | 
			
		||||
    oled_write_ln_P(PSTR("3"), false);
 | 
			
		||||
    oled_write_ln_P(PSTR("4"), false);
 | 
			
		||||
    oled_write_ln_P(PSTR("5"), false);
 | 
			
		||||
    oled_write_ln_P(PSTR("6"), false);
 | 
			
		||||
    oled_write_ln_P(PSTR("7"), false);
 | 
			
		||||
    oled_write_ln_P(PSTR("8"), false);
 | 
			
		||||
    //oled_write_ln_P(PSTR("9"), false);
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#if defined(WPM_ENABLE)
 | 
			
		||||
    render_luna();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  } else {
 | 
			
		||||
    oled_write_raw_P(klor_face, sizeof(klor_face));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return false;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		||||
  
 | 
			
		||||
  //OLED_ROTATION_270 for Rollow/Corne/Swoop
 | 
			
		||||
  //OLED_ROTATION_180 for KLOR
 | 
			
		||||
 | 
			
		||||
  return OLED_ROTATION_270;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										149
									
								
								users/t4corun/features/oled64.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								users/t4corun/features/oled64.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,149 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "t4corun.h"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_KEYLOCK_NAME      "Lock"
 | 
			
		||||
#define OLED_RENDER_MODS_NAME         "Mods"
 | 
			
		||||
#define OLED_RENDER_FEATURE_NAME      "Feat"
 | 
			
		||||
#define OLED_RENDER_WPM_NAME          "Wpm"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_LAYOUT_QWERTY     "QWRTY"
 | 
			
		||||
#define OLED_RENDER_LAYOUT_COLEMAK_DH "CLMAK"
 | 
			
		||||
#define OLED_RENDER_LAYOUT_GAME       "GAME"
 | 
			
		||||
 | 
			
		||||
#define OLED_RENDER_LAYER_BASE        " Def"
 | 
			
		||||
#define OLED_RENDER_LAYER_NAVIGATION  " Nav"
 | 
			
		||||
#define OLED_RENDER_LAYER_NUMBER      " Num"
 | 
			
		||||
#define OLED_RENDER_LAYER_SYMBOL      " Sym"
 | 
			
		||||
#define OLED_RENDER_LAYER_CONFIG      " Cfg"
 | 
			
		||||
 | 
			
		||||
// LUNA PET Variables
 | 
			
		||||
#if defined(WPM_ENABLE)
 | 
			
		||||
#   define OLED_LUNA_X                   0
 | 
			
		||||
#   define OLED_LUNA_Y                   5
 | 
			
		||||
#   define OLED_LUNA_MIN_WALK_SPEED      10
 | 
			
		||||
#   define OLED_LUNA_MIN_RUN_SPEED       40
 | 
			
		||||
#   define OLED_LUNA_ANIM_FRAME_DURATION 200  // how long each frame lasts in ms
 | 
			
		||||
#   define OLED_LUNA_ANIM_SIZE           96   // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
 | 
			
		||||
#endif //WPM_ENABLE
 | 
			
		||||
 | 
			
		||||
void render_default_layer_state(void);
 | 
			
		||||
void render_layer_state(void);
 | 
			
		||||
void render_keylock_status(void);
 | 
			
		||||
void render_mod_status(void);
 | 
			
		||||
void render_feature_status(void);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM scroll_off[]  = {0x8D, 0};
 | 
			
		||||
static const char PROGMEM scroll_on[]   = {0x8E, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM num_off[]     = {0xAD, 0};
 | 
			
		||||
static const char PROGMEM num_on[]      = {0xAE, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM caps_off[]    = {0xCD, 0};
 | 
			
		||||
static const char PROGMEM caps_on[]     = {0xCE, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM shift_off[]   = {0x85, 0x86, 0};
 | 
			
		||||
static const char PROGMEM shift_on[]    = {0x87, 0x88, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM ctrl_off[]    = {0xA9, 0xAA, 0};
 | 
			
		||||
static const char PROGMEM ctrl_on[]     = {0xAB, 0xAC, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM alt_off[]     = {0xA5, 0xA6, 0};
 | 
			
		||||
static const char PROGMEM alt_on[]      = {0xA7, 0xA8, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM gui_off[]     = {0x89, 0x8A, 0};
 | 
			
		||||
static const char PROGMEM gui_on[]      = {0x8B, 0x8C, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM rgb_off[]     = {0xC5, 0xC6, 0};
 | 
			
		||||
static const char PROGMEM rgb_on[]      = {0xC7, 0xC8, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM dragscr_off[] = {0xC9, 0xCA, 0};
 | 
			
		||||
static const char PROGMEM dragscr_on[]  = {0xCB, 0xCC, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM sound_off[]   = {0x8F, 0x90, 0};
 | 
			
		||||
static const char PROGMEM sound_on[]    = {0xAF, 0xB0, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM haptic_off[]  = {0x91, 0x92, 0};
 | 
			
		||||
static const char PROGMEM haptic_on[]   = {0xB1, 0xB2, 0};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_cfg[] = {
 | 
			
		||||
  0xE1, 0xD1, 0xD2, 0xD3, 0xE1,
 | 
			
		||||
  0xE1, 0xBA, 0xBB, 0xBC, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_sym[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xDA, 0xDB, 0xDC, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_num[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0x9A, 0x9B, 0x9C, 0xE1,
 | 
			
		||||
  0xE1, 0xBA, 0xBB, 0xBC, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_nav[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0xDA, 0xDB, 0xDC, 0xE1,
 | 
			
		||||
  0xE1, 0xD7, 0xD8, 0xD9, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM lyr_def[] = {
 | 
			
		||||
  0xE1, 0x97, 0x98, 0x99, 0xE1,
 | 
			
		||||
  0xE1, 0xB7, 0xB8, 0xB9, 0xE1,
 | 
			
		||||
  0xE1, 0x9A, 0x9B, 0x9C, 0xE1,
 | 
			
		||||
  0xE1, 0xD4, 0xD5, 0xD6, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM qmk_logo_small[] = {
 | 
			
		||||
  0xE1, 0x9D, 0x9E, 0x9F, 0xE1,
 | 
			
		||||
  0xE1, 0xBD, 0xBE, 0xBF, 0xE1,
 | 
			
		||||
  0xE1, 0xDD, 0xDE, 0xDF, 0xE1, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(KEYBOARD_klor)
 | 
			
		||||
 | 
			
		||||
static const char PROGMEM klor_face[] = {
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 
 | 
			
		||||
    0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 
 | 
			
		||||
    0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // KEYBOARD_klor
 | 
			
		||||
| 
						 | 
				
			
			@ -53,7 +53,11 @@ INTROSPECTION_KEYMAP_C += features/combo.c
 | 
			
		|||
# include optional code for enabled features for each keyboard
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(OLED_ENABLE)), yes)
 | 
			
		||||
  SRC += features/oled.c
 | 
			
		||||
  ifeq ($(filter $(KEYBOARD), klor klor/2040),)
 | 
			
		||||
    SRC += features/oled32.c
 | 
			
		||||
  else
 | 
			
		||||
    SRC += features/oled64.c
 | 
			
		||||
  endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(AUDIO_ENABLE)), yes)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue