mirror of
https://github.com/qmk/qmk_userspace.git
synced 2025-05-03 06:04:19 -04:00
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