|
|
@ -18,61 +18,59 @@ |
|
|
|
|
|
|
|
// Defines names for use in layer keycodes and the keymap |
|
|
|
enum layer_names { |
|
|
|
_QWERTY = 0, |
|
|
|
_LOWER, |
|
|
|
_RAISE, |
|
|
|
_ADJUST |
|
|
|
_QWERTY, |
|
|
|
_LOWER, |
|
|
|
_RAISE, |
|
|
|
_ADJUST |
|
|
|
}; |
|
|
|
|
|
|
|
#ifdef OLED_ENABLE |
|
|
|
|
|
|
|
void render_status(void) { |
|
|
|
// Render to mode icon |
|
|
|
static const char os_logo[][2][3] PROGMEM = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}}; |
|
|
|
if (is_mac_mode()) { |
|
|
|
oled_write_P(os_logo[0][0], false); |
|
|
|
oled_write_P(PSTR("\n"), false); |
|
|
|
oled_write_P(os_logo[0][1], false); |
|
|
|
} else { |
|
|
|
oled_write_P(os_logo[1][0], false); |
|
|
|
oled_write_P(PSTR("\n"), false); |
|
|
|
oled_write_P(os_logo[1][1], false); |
|
|
|
} |
|
|
|
|
|
|
|
// Render to mode icon |
|
|
|
static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; |
|
|
|
if (is_mac_mode()) { |
|
|
|
oled_write_P(os_logo[0][0], false); |
|
|
|
oled_write_P(PSTR("\n"), false); |
|
|
|
oled_write_P(os_logo[0][1], false); |
|
|
|
}else{ |
|
|
|
oled_write_P(os_logo[1][0], false); |
|
|
|
oled_write_P(PSTR("\n"), false); |
|
|
|
oled_write_P(os_logo[1][1], false); |
|
|
|
} |
|
|
|
|
|
|
|
oled_write_P(PSTR(" "), false); |
|
|
|
oled_write_P(PSTR(" "), false); |
|
|
|
|
|
|
|
// Host Keyboard Layer Status |
|
|
|
oled_write_P(PSTR("Layer: "), false); |
|
|
|
// Host Keyboard Layer Status |
|
|
|
oled_write_P(PSTR("Layer: "), false); |
|
|
|
|
|
|
|
switch (get_highest_layer(layer_state)) { |
|
|
|
case _QWERTY: |
|
|
|
oled_write_P(PSTR("Default\n"), false); |
|
|
|
break; |
|
|
|
case _RAISE: |
|
|
|
oled_write_P(PSTR("Raise\n"), false); |
|
|
|
break; |
|
|
|
case _LOWER: |
|
|
|
oled_write_P(PSTR("Lower\n"), false); |
|
|
|
break; |
|
|
|
case _ADJUST: |
|
|
|
oled_write_P(PSTR("Adjust\n"), false); |
|
|
|
break; |
|
|
|
default: |
|
|
|
// Or use the write_ln shortcut over adding '\n' to the end of your string |
|
|
|
oled_write_ln_P(PSTR("Undefined"), false); |
|
|
|
} |
|
|
|
switch (get_highest_layer(layer_state)) { |
|
|
|
case _QWERTY: |
|
|
|
oled_write_P(PSTR("Default\n"), false); |
|
|
|
break; |
|
|
|
case _RAISE: |
|
|
|
oled_write_P(PSTR("Raise\n"), false); |
|
|
|
break; |
|
|
|
case _LOWER: |
|
|
|
oled_write_P(PSTR("Lower\n"), false); |
|
|
|
break; |
|
|
|
case _ADJUST: |
|
|
|
oled_write_P(PSTR("Adjust\n"), false); |
|
|
|
break; |
|
|
|
default: |
|
|
|
// Or use the write_ln shortcut over adding '\n' to the end of your string |
|
|
|
oled_write_ln_P(PSTR("Undefined"), false); |
|
|
|
} |
|
|
|
|
|
|
|
oled_write_P(PSTR("\n"), false); |
|
|
|
oled_write_P(PSTR("\n"), false); |
|
|
|
|
|
|
|
// Host Keyboard LED Status |
|
|
|
led_t led_state = host_keyboard_led_state(); |
|
|
|
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); |
|
|
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); |
|
|
|
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); |
|
|
|
// Host Keyboard LED Status |
|
|
|
led_t led_state = host_keyboard_led_state(); |
|
|
|
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); |
|
|
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); |
|
|
|
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void render_logo(void) { |
|
|
|
static const char PROGMEM qmk_logo[] = { |
|
|
|
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, |
|
|
@ -84,35 +82,38 @@ static void render_logo(void) { |
|
|
|
} |
|
|
|
|
|
|
|
static void render_rgbled_status(bool full) { |
|
|
|
#ifdef RGBLIGHT_ENABLE |
|
|
|
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { |
|
|
|
if (full) { |
|
|
|
// " LED %d:%d,%d,%d" |
|
|
|
oled_write_P(PSTR(" LED"), false); |
|
|
|
oled_write(get_u8_str(rgblight_get_mode(), ' '), false); |
|
|
|
oled_write_char(':', false); |
|
|
|
oled_write(get_u8_str(rgblight_get_hue()/RGBLIGHT_HUE_STEP, ' '), false); |
|
|
|
oled_write_char(',', false); |
|
|
|
oled_write(get_u8_str(rgblight_get_sat()/RGBLIGHT_SAT_STEP, ' '), false); |
|
|
|
oled_write_char(',', false); |
|
|
|
oled_write(get_u8_str(rgblight_get_val()/RGBLIGHT_VAL_STEP, ' '), false); |
|
|
|
} else { |
|
|
|
// "[%2d] " |
|
|
|
oled_write_char('[', false); |
|
|
|
oled_write(get_u8_str(rgblight_get_mode(), ' '), false); |
|
|
|
oled_write_char(']', false); |
|
|
|
# ifdef RGBLIGHT_ENABLE |
|
|
|
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { |
|
|
|
if (full) { |
|
|
|
// " LED %d:%d,%d,%d" |
|
|
|
oled_write_P(PSTR(" LED"), false); |
|
|
|
oled_write(get_u8_str(rgblight_get_mode(), ' '), false); |
|
|
|
oled_write_char(':', false); |
|
|
|
oled_write(get_u8_str(rgblight_get_hue() / RGBLIGHT_HUE_STEP, ' '), false); |
|
|
|
oled_write_char(',', false); |
|
|
|
oled_write(get_u8_str(rgblight_get_sat() / RGBLIGHT_SAT_STEP, ' '), false); |
|
|
|
oled_write_char(',', false); |
|
|
|
oled_write(get_u8_str(rgblight_get_val() / RGBLIGHT_VAL_STEP, ' '), false); |
|
|
|
} else { |
|
|
|
// "[%2d] " |
|
|
|
oled_write_char('[', false); |
|
|
|
oled_write(get_u8_str(rgblight_get_mode(), ' '), false); |
|
|
|
oled_write_char(']', false); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endif |
|
|
|
# endif |
|
|
|
} |
|
|
|
|
|
|
|
bool oled_task_user(void) { |
|
|
|
if(is_keyboard_master()){ |
|
|
|
render_status(); |
|
|
|
}else{ |
|
|
|
render_logo(); |
|
|
|
render_rgbled_status(true); |
|
|
|
} |
|
|
|
return false; |
|
|
|
bool oled_task_kb(void) { |
|
|
|
if (!oled_task_user()) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
if (is_keyboard_master()) { |
|
|
|
render_status(); |
|
|
|
} else { |
|
|
|
render_logo(); |
|
|
|
render_rgbled_status(true); |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
#endif |