fine40.c (7368B)
1 // Copyright 2022 Aidan Smith (@Aidan-OS) 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 #include "quantum.h" 4 5 enum keyboard_layers { 6 _MAIN, 7 _RIGHT, 8 _LEFT, 9 _TAB, 10 }; 11 12 #ifdef OLED_ENABLE 13 //static void render_logo(void) { 14 // static const char PROGMEM raw_logo[] = { 15 // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,224,224,240,240,248,248,248,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,248,248,248,240,240,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,224,224,224,192, 0, 0, 0, 0, 96,240,240, 96, 0, 0, 0, 0, 0, 0,240,240,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 // 0, 0, 0, 0, 0, 0, 0,128,192,224,240,248,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 15, 7, 7, 7, 15,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,252,248,240,224,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,240,254,255,127,115,127,127,255,252,224, 0,255,255,255,254, 48,254,254,255,199,135,255,255,255, 0,224,247,255,191,191,255,255,254, 0,254,255,255,255, 7,255,255,254,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 // 0, 0, 0, 0,192,248,254,255,255,255,255,255,255,255,255,255,127, 31, 15, 7, 3, 1,192,224,240,251,255,255,255,255,255, 0, 0, 0, 0, 0,255,255,255,255,255,255,241,225,192, 1, 3, 7, 15, 31,127,255,255,255,255,255,255,255,255,255,254,248,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3,128,128,128,128, 0, 1, 3, 3, 1, 1, 3, 3, 1, 0, 0, 1, 1, 3, 3, 3, 3,129,192,128, 1, 3, 3, 3, 3, 1, 1, 0,129,195,195,193, 0, 1, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18 // 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255, 7, 0, 0, 0,240,252,255,255,255,255,255,255,255,255,255,255,255,254,252,254,255,255,255,255,255,255,255,255,255,255,255,252,240, 0, 0, 0, 7,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 63, 63,127,123,243,247,231,193, 0,252,252,252, 28, 60,252,252,252, 28,252,252,248,224, 0,255,255,255, 0,255,255,255,255, 28, 28, 0,255,255,255,255, 28,252,252,248,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19 // 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,240, 0, 0, 0, 7, 31,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127, 31, 7, 0, 0, 0,240,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 15, 15, 14, 15, 7, 7, 3, 0, 15, 15, 15, 0, 0, 15, 15, 15, 0, 7, 15, 15, 7, 0, 15, 15, 15, 0, 1, 7, 7, 15, 14, 14, 6, 7, 7, 7, 7, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20 // 0, 0, 0, 0, 1, 15, 63,255,255,255,255,255,255,255,255,255,255,254,248,240,224,192,128,129, 3, 7, 15, 15, 31, 31, 31, 63, 63, 63, 63, 63, 31, 31, 31, 15, 15, 7, 3,129,128,192,224,240,248,254,255,255,255,255,255,255,255,255,255,255, 63, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,224,224,224,252,254,254, 0, 0,128,192,224,224,224,224,192,128, 96,224,224,224, 0, 0,224,224,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21 // 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 15, 31, 63,127,255,255,255,255,255,255,255,255,255,255,254,254,254,254,254,252,252,252,252,252,252,252,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,127, 63, 31, 15, 7, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,120,120, 48, 31, 63, 63,120,112,127,127, 63, 0, 6, 31, 63, 63,127,119,119, 63, 55, 0, 3, 15, 63,127,127, 63, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22 // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 7, 7, 15, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 15, 15, 15, 7, 7, 3, 3, 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, 0, 0, 0, 0, 0, 0, 23 // }; 24 // oled_write_raw_P(raw_logo, sizeof(raw_logo)); 25 //} 26 27 static void render_mochi(void) 28 { 29 static const char PROGMEM mochi_logo[] = { 30 0, 0, 0, 0, 0,224,240,240,240,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,224,240,240,240,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,252,252,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,248,248,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,224,240,240,240,224, 0, 0, 0, 0, 0, 0,128,192,224,240,240,240,240,240,240,224,224,192, 0, 0, 0, 0, 0, 31 0, 0, 0, 0,224,255,255,255, 15, 63,255,254,248,224, 0, 0, 0, 0,224,248,254,255, 31, 31,255,255,255,128, 0, 0, 0,128,224,240,248,252, 60, 28, 28, 30, 28, 60,124,248,248,240,192, 0, 0, 0,128,224,240,248,252, 60, 60, 28, 30, 28, 28, 60, 28, 0, 0, 0,255,255,255,255, 28, 28, 28, 28, 60,124,252,248,240,192, 0, 0, 0, 0,252,252,252,252, 0, 0, 0, 0, 0,192,224,248,252, 63, 31, 7, 3,255,255,255,255, 0, 0, 0, 0,224,254,255,255, 15, 1, 0, 0, 0, 0, 1, 15,255,255,255,248, 0, 0, 0, 32 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 3, 15, 63,255,252,252,255, 63, 15, 3, 0, 0, 0,255,255,255,255, 0, 0, 0, 63,255,255,255,224,128, 0, 0, 0, 0,128,192,255,255,255,127, 4, 0, 0, 63,255,255,255,224,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 60, 63, 63, 63, 61, 60, 60, 60, 60, 60,255,255,255,255, 60, 60, 0, 0, 7,127,255,255,248,128, 0, 0, 0, 0,128,240,255,255,127, 31, 0, 0, 0, 33 0, 0, 0, 0, 15, 15, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 15, 15, 15, 0, 0, 0, 0, 0, 1, 3, 7, 7, 15, 15, 15, 15, 15, 7, 7, 3, 1, 0, 0, 0, 0, 0, 0, 3, 3, 7, 7, 15, 15, 15, 15, 15, 15, 7, 0, 0, 0, 15, 15, 15, 7, 0, 0, 0, 0, 0, 0, 7, 15, 15, 15, 0, 0, 0, 0, 15, 15, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 7, 0, 0, 0, 0, 0, 0, 1, 3, 7, 7, 15, 15, 15, 15, 7, 7, 3, 1, 0, 0, 0, 0, 0, 34 }; 35 36 oled_write_raw_P(mochi_logo, sizeof(mochi_logo)); 37 } 38 39 40 oled_rotation_t oled_init_kb(oled_rotation_t rotation) { 41 return OLED_ROTATION_180; // flips the display 180 degrees 42 } 43 bool oled_task_kb(void) { 44 if (!oled_task_user()) { 45 return false; 46 } 47 render_mochi(); 48 oled_set_cursor(0, 4); 49 oled_write_P(PSTR("Layer: "), false); 50 51 switch(get_highest_layer(layer_state)) 52 { 53 case _MAIN: 54 oled_write_ln_P(PSTR("Main"), false); 55 break; 56 case _LEFT: 57 oled_write_ln_P(PSTR("Left"), false); 58 break; 59 case _RIGHT: 60 oled_write_ln_P(PSTR("Right"), false); 61 break; 62 case _TAB: 63 oled_write_ln_P(PSTR("Tab"), false); 64 break; 65 } 66 67 //render_logo(); 68 return(true); 69 } 70 #endif