@ -14,6 +14,13 @@
*/
# include QMK_KEYBOARD_H
# define IDLE_FRAMES 5
# define IDLE_SPEED 30
# define TAP_FRAMES 2
# define TAP_SPEED 40
# define ANIM_FRAME_DURATION 200
# define ANIM_SIZE 512
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
[ 0 ] = LAYOUT_all (
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_BSPC ,
@ -29,21 +36,106 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
) ,
)
} ;
[ 2 ] = LAYOUT_all (
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
) ,
# ifdef OLED_ENABLE
static uint32_t anim_timer = 0 ;
static uint32_t anim_sleep = 0 ;
static uint8_t current_idle_frame = 0 ;
static uint8_t current_tap_frame = 0 ;
[ 3 ] = LAYOUT_all (
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
) ,
static const char PROGMEM idle [ IDLE_FRAMES ] [ ANIM_SIZE ] = {
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 4 , 4 , 4 , 8 , 48 , 64 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 24 , 100 , 130 , 2 , 2 , 2 , 2 , 2 , 1 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 0 , 48 , 48 , 0 , 192 , 193 , 193 , 194 , 4 , 8 , 16 , 32 , 64 , 128 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 64 , 64 ,
64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 192 , 56 , 4 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 12 , 12 , 12 , 13 , 1 , 0 , 64 , 160 , 33 , 34 , 18 , 17 , 17 , 17 , 9 , 8 , 8 , 8 , 8 , 4 , 4 , 8 , 8 , 16 , 16 , 16 , 16 , 16 , 17 , 15 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 3 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 4 , 4 , 8 , 8 , 8 , 8 , 8 , 7 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
} ,
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 4 , 4 , 4 , 8 , 48 , 64 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 24 , 100 , 130 , 2 , 2 , 2 , 2 , 2 , 1 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 0 , 48 , 48 , 0 , 192 , 193 , 193 , 194 , 4 , 8 , 16 , 32 , 64 , 128 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 64 , 64 ,
64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 192 , 56 , 4 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 12 , 12 , 12 , 13 , 1 , 0 , 64 , 160 , 33 , 34 , 18 , 17 , 17 , 17 , 9 , 8 , 8 , 8 , 8 , 4 , 4 , 8 , 8 , 16 , 16 , 16 , 16 , 16 , 17 , 15 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 3 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 4 , 4 , 8 , 8 , 8 , 8 , 8 ,
7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
} ,
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 16 , 8 , 4 , 2 , 2 , 4 , 24 , 96 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 60 , 194 , 1 , 1 , 2 , 2 , 4 , 4 , 2 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 96 , 96 , 0 , 129 , 130 , 130 , 132 , 8 , 16 , 32 , 64 , 128 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 32 ,
32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 112 , 25 , 6 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 24 , 24 , 24 , 27 , 3 , 0 , 64 , 160 , 34 , 36 , 20 , 18 , 18 , 18 , 11 , 8 , 8 , 8 , 8 , 5 , 5 , 9 , 9 , 16 , 16 , 16 , 16 , 16 , 17 , 15 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 3 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 4 , 4 , 8 , 8 , 8 , 8 , 8 , 7 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
} ,
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 128 , 64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 4 , 2 , 1 , 1 , 2 , 12 , 48 , 64 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 30 , 225 , 0 , 0 , 1 , 1 , 2 , 2 , 1 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 0 , 48 , 48 , 0 , 192 , 193 , 193 , 194 , 4 , 8 , 16 , 32 , 64 , 128 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 64 , 64 ,
64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 112 , 12 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 12 , 12 , 12 , 13 , 1 , 0 , 64 , 160 , 33 , 34 , 18 , 17 , 17 , 17 , 9 , 8 , 8 , 8 , 8 , 4 , 4 , 8 , 8 , 16 , 16 , 16 , 16 , 16 , 17 , 15 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 3 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 4 , 4 , 8 , 8 , 8 , 8 , 8 ,
7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
} ,
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 4 , 2 , 2 , 2 , 4 , 56 , 64 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 28 , 226 , 1 , 1 , 2 , 2 , 2 , 2 , 1 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 0 , 48 , 48 , 0 , 192 , 193 , 193 , 194 , 4 , 8 , 16 , 32 , 64 , 128 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 ,
32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 112 , 12 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 12 , 12 , 12 , 13 , 1 , 0 , 64 , 160 , 33 , 34 , 18 , 17 , 17 , 17 , 9 , 8 , 8 , 8 , 8 , 4 , 4 , 8 , 8 , 16 , 16 , 16 , 16 , 16 , 17 , 15 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 3 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 4 , 4 , 8 , 8 , 8 , 8 , 8 , 7 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
}
} ;
static const char PROGMEM prep [ ] [ ANIM_SIZE ] = {
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 128 , 64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 4 , 2 , 1 , 1 , 2 , 12 , 48 , 64 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 30 , 225 , 0 , 0 , 1 , 1 , 2 , 2 , 129 , 128 , 128 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 0 , 48 , 48 , 0 , 0 , 1 , 225 , 26 , 6 , 9 , 49 , 53 , 1 , 138 , 124 , 0 , 0 , 128 , 128 , 128 , 128 , 64 , 64 ,
64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 112 , 12 , 3 , 0 , 0 , 24 , 6 , 5 , 152 , 153 , 132 , 195 , 124 , 65 , 65 , 64 , 64 , 32 , 33 , 34 , 18 , 17 , 17 , 17 , 9 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 3 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
}
} ;
static const char PROGMEM tap [ TAP_FRAMES ] [ ANIM_SIZE ] = {
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 128 , 64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 4 , 2 , 1 , 1 , 2 , 12 , 48 , 64 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 248 , 248 , 248 , 248 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 30 , 225 , 0 , 0 , 1 , 1 , 2 , 2 , 129 , 128 , 128 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 0 , 48 , 48 , 0 , 0 , 1 , 1 , 2 , 4 , 8 , 16 , 32 , 67 , 135 , 7 , 1 , 0 , 184 , 188 , 190 , 159 ,
95 , 95 , 79 , 76 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 112 , 12 , 3 , 0 , 0 , 24 , 6 , 5 , 152 , 153 , 132 , 67 , 124 , 65 , 65 , 64 , 64 , 32 , 33 , 34 , 18 , 17 , 17 , 17 , 9 , 8 , 8 , 8 , 8 , 4 , 4 , 8 , 8 , 16 , 16 , 16 , 16 , 16 , 17 , 15 , 1 , 61 , 124 , 252 , 252 , 252 , 252 , 252 , 60 , 12 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 3 , 2 , 2 , 1 , 1 , 1 ,
1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 3 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
} ,
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 128 , 64 , 64 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 4 , 2 , 1 , 1 , 2 , 12 , 48 , 64 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 30 , 225 , 0 , 0 , 1 , 1 , 2 , 2 , 1 , 0 , 0 , 0 , 0 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 0 , 48 , 48 , 0 , 0 , 1 , 225 , 26 , 6 , 9 , 49 , 53 , 1 , 138 , 124 , 0 , 0 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 32 ,
32 , 32 , 32 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 112 , 12 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 64 , 160 , 33 , 34 , 18 , 17 , 17 , 17 , 9 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 4 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 128 , 128 , 128 , 64 , 64 , 64 , 64 , 64 , 32 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 16 , 16 , 8 , 8 , 8 , 8 , 8 , 4 , 4 , 4 , 4 , 4 , 2 , 3 , 122 , 122 , 121 , 121 , 121 , 121 , 57 , 49 , 2 , 2 , 4 , 4 , 8 , 8 , 8 , 136 , 136 , 135 , 128 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
}
} ;
void animation_phase ( void ) {
if ( get_current_wpm ( ) < = IDLE_SPEED ) {
current_idle_frame = ( current_idle_frame + 1 ) % IDLE_FRAMES ;
oled_write_raw_P ( idle [ abs ( ( IDLE_FRAMES - 1 ) - current_idle_frame ) ] , ANIM_SIZE ) ;
}
if ( get_current_wpm ( ) > IDLE_SPEED & & get_current_wpm ( ) < TAP_SPEED ) {
oled_write_raw_P ( prep [ 0 ] , ANIM_SIZE ) ;
}
if ( get_current_wpm ( ) > = TAP_SPEED ) {
current_tap_frame = ( current_tap_frame + 1 ) % TAP_FRAMES ;
oled_write_raw_P ( tap [ abs ( ( TAP_FRAMES - 1 ) - current_tap_frame ) ] , ANIM_SIZE ) ;
}
}
oled_rotation_t oled_init_user ( oled_rotation_t rotation ) {
return OLED_ROTATION_180 ;
}
bool oled_task_user ( void ) {
if ( get_current_wpm ( ) > 0 ) {
oled_on ( ) ;
if ( timer_elapsed32 ( anim_timer ) > ANIM_FRAME_DURATION ) {
anim_timer = timer_read32 ( ) ;
animation_phase ( ) ;
}
anim_sleep = timer_read32 ( ) ;
} else {
if ( timer_elapsed32 ( anim_sleep ) > OLED_TIMEOUT ) {
oled_off ( ) ;
} else {
if ( timer_elapsed32 ( anim_timer ) > ANIM_FRAME_DURATION ) {
anim_timer = timer_read32 ( ) ;
animation_phase ( ) ;
}
}
}
return false ;
}
# endif