diff options
Diffstat (limited to 'keyboards/helix/rev2/keymaps/yshrsmz/keymap.c')
-rw-r--r-- | keyboards/helix/rev2/keymaps/yshrsmz/keymap.c | 146 |
1 files changed, 4 insertions, 142 deletions
diff --git a/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c b/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c index b3ae8a3d25..20fa181d77 100644 --- a/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c +++ b/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c @@ -1,9 +1,6 @@ #include QMK_KEYBOARD_H #include <stdio.h> #include <string.h> -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -331,10 +328,6 @@ void matrix_init_user(void) { #ifdef RGBLIGHT_ENABLE RGB_current_mode = rgblight_get_mode(); #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif } @@ -363,135 +356,6 @@ void music_scale_user(void) #endif - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -void matrix_scan_user(void) { - iota_gfx_task(); // this is what updates the display continuously -} - -void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -//assign the right code to your layers for OLED display -#define L_BASE 0 -#define L_LOWER (1<<_LOWER) -#define L_RAISE (1<<_RAISE) -#define L_ADJUST (1<<_ADJUST) -#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) - -static void render_logo(struct CharacterMatrix *matrix) { - - static const char helix_logo[] PROGMEM ={ - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, - 0}; - matrix_write_P(matrix, helix_logo); - //matrix_write_P(&matrix, PSTR(" Split keyboard kit")); -} - -static void render_rgbled_status(bool full, struct CharacterMatrix *matrix) { -#ifdef RGBLIGHT_ENABLE - char buf[30]; - if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) { - if (full) { - snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ", - rgblight_get_mode(), - rgblight_get_hue()/RGBLIGHT_HUE_STEP, - rgblight_get_sat()/RGBLIGHT_SAT_STEP, - rgblight_get_val()/RGBLIGHT_VAL_STEP); - } else { - snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode()); - } - matrix_write(matrix, buf); - } -#endif -} - -static void render_layer_status(struct CharacterMatrix *matrix) { - // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - char buf[10]; - matrix_write_P(matrix, PSTR("Layer: ")); - switch (layer_state) { - case L_BASE: - matrix_write_P(matrix, PSTR("Default")); - break; - case L_RAISE: - matrix_write_P(matrix, PSTR("Raise")); - break; - case L_LOWER: - matrix_write_P(matrix, PSTR("Lower")); - break; - case L_ADJUST: - case L_ADJUST_TRI: - matrix_write_P(matrix, PSTR("Adjust")); - break; - default: - matrix_write_P(matrix, PSTR("Undef-")); - snprintf(buf,sizeof(buf), "%ld", layer_state); - matrix_write(matrix, buf); - } -} - -void render_status(struct CharacterMatrix *matrix) { - - // 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(keymap_config.swap_lalt_lgui==false){ - matrix_write_P(matrix, os_logo[0][0]); - matrix_write_P(matrix, PSTR("\n")); - matrix_write_P(matrix, os_logo[0][1]); - }else{ - matrix_write_P(matrix, os_logo[1][0]); - matrix_write_P(matrix, PSTR("\n")); - matrix_write_P(matrix, os_logo[1][1]); - } - - matrix_write_P(matrix, PSTR(" ")); - render_layer_status(matrix); - matrix_write_P(matrix, PSTR("\n")); - - // Host Keyboard LED Status - matrix_write_P(matrix, (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? - PSTR("NUMLOCK") : PSTR(" ")); - matrix_write_P(matrix, (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? - PSTR("CAPS") : PSTR(" ")); - matrix_write_P(matrix, (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? - PSTR("SCLK") : PSTR(" ")); - matrix_write_P(matrix, PSTR("\n")); - render_rgbled_status(true, matrix); -} - - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - -#if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } -#endif - - matrix_clear(&matrix); - if (is_keyboard_master()) { - render_status(&matrix); - } else { - render_logo(&matrix); - render_rgbled_status(false, &matrix); - render_layer_status(&matrix); - } - matrix_update(&display, &matrix); -} - -#endif // end of SSD1306OLED - #ifdef OLED_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { if (is_keyboard_master()) { @@ -580,12 +444,10 @@ void render_status(void) { render_layer_status(); // Host Keyboard LED Status - oled_write_P((host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? - PSTR("NUMLOCK") : PSTR(" "), false); - oled_write_P((host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? - PSTR("CAPS") : PSTR(" "), false); - oled_write_P((host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? - PSTR("SCLK") : PSTR(" "), false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUMLOCK") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCLK") : PSTR(" "), false); oled_write_P(PSTR("\n"), false); render_rgbled_status(true); oled_write_P(PSTR("\n"), false); |