Backing up OLED32/64 work

This commit is contained in:
Victor 2024-06-05 18:15:17 -05:00
parent 2036b62a89
commit 3fa49a03d1
Failed to generate hash of commit
12 changed files with 401 additions and 206 deletions

View file

@ -5,4 +5,5 @@
# keyboards\barbellboards\rollow\info.json
# keyboards\barbellboards\rollow\rules.mk
LTO_ENABLE = no
CONVERT_TO = promicro_rp2040

View file

@ -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) }
};

View file

@ -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

View file

@ -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"],

View file

@ -1,2 +1,3 @@
#pragma once
#include "t4corun.h"

View 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);
}
}

View file

@ -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

View file

@ -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;
}

View 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
};

View 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;
}

View 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

View file

@ -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)