|
|
|
@ -22,6 +22,7 @@ |
|
|
|
|
|
|
|
|
|
static uint8_t layer; |
|
|
|
|
static bool queue_for_send = false; |
|
|
|
|
static uint8_t encoder_value = 32; |
|
|
|
|
|
|
|
|
|
void draw_ui(void) { |
|
|
|
|
clear_buffer(); |
|
|
|
@ -29,39 +30,51 @@ void draw_ui(void) { |
|
|
|
|
draw_rect_filled_soft(32, 0, 11, 11, PIXEL_ON, NORM); |
|
|
|
|
draw_char(35, 2, layer + 0x30, PIXEL_ON, XOR, 0); |
|
|
|
|
|
|
|
|
|
// for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
|
|
|
|
// for (uint8_t y = 0; y < MATRIX_COLS; y++) {
|
|
|
|
|
// if (x < 4)
|
|
|
|
|
// draw_pixel(0 + y, 11 + x, (matrix_get_row(x) & (1 << y)) > 0, NORM);
|
|
|
|
|
// else
|
|
|
|
|
// draw_pixel(6 + y, 7 + x, (matrix_get_row(x) & (1 << y)) > 0, NORM);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
#define MATRIX_DISPLAY_X 46 |
|
|
|
|
#define MATRIX_DISPLAY_Y 1 |
|
|
|
|
|
|
|
|
|
for (uint8_t x = 0; x < MATRIX_ROWS; x++) { |
|
|
|
|
for (uint8_t y = 0; y < MATRIX_COLS; y++) { |
|
|
|
|
if (x < 4) |
|
|
|
|
draw_pixel(MATRIX_DISPLAY_X + 2 + y, MATRIX_DISPLAY_Y + 2 + x, (matrix_get_row(x) & (1 << y)) > 0, NORM); |
|
|
|
|
else |
|
|
|
|
draw_pixel(MATRIX_DISPLAY_X + 8 + y, MATRIX_DISPLAY_Y - 2 + x, (matrix_get_row(x) & (1 << y)) > 0, NORM); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
draw_rect_soft(MATRIX_DISPLAY_X, MATRIX_DISPLAY_Y, 16, 8, PIXEL_ON, NORM); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
draw_rect_soft(0, 13, 64, 6, PIXEL_ON, NORM); |
|
|
|
|
draw_line_vert(encoder_value, 13, 6, PIXEL_ON, NORM); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define MOD_DISPLAY_X 0 |
|
|
|
|
#define MOD_DISPLAY_Y 22 |
|
|
|
|
|
|
|
|
|
uint8_t mods = get_mods(); |
|
|
|
|
if (mods & MOD_LSFT) { |
|
|
|
|
draw_rect_filled_soft(0, 12, 5 + (1 * 6), 11, PIXEL_ON, NORM); |
|
|
|
|
draw_string(3, 14, "S", PIXEL_OFF, NORM, 0); |
|
|
|
|
draw_rect_filled_soft(MOD_DISPLAY_X + 0, MOD_DISPLAY_Y, 5 + (1 * 6), 11, PIXEL_ON, NORM); |
|
|
|
|
draw_string(MOD_DISPLAY_X + 3, MOD_DISPLAY_Y + 2, "S", PIXEL_OFF, NORM, 0); |
|
|
|
|
} else { |
|
|
|
|
draw_string(3, 14, "S", PIXEL_ON, NORM, 0); |
|
|
|
|
draw_string(MOD_DISPLAY_X + 3, MOD_DISPLAY_Y + 2, "S", PIXEL_ON, NORM, 0); |
|
|
|
|
} |
|
|
|
|
if (mods & MOD_LCTL) { |
|
|
|
|
draw_rect_filled_soft(10, 12, 5 + (1 * 6), 11, PIXEL_ON, NORM); |
|
|
|
|
draw_string(13, 14, "C", PIXEL_OFF, NORM, 0); |
|
|
|
|
draw_rect_filled_soft(MOD_DISPLAY_X + 10, MOD_DISPLAY_Y, 5 + (1 * 6), 11, PIXEL_ON, NORM); |
|
|
|
|
draw_string(MOD_DISPLAY_X + 13, MOD_DISPLAY_Y + 2, "C", PIXEL_OFF, NORM, 0); |
|
|
|
|
} else { |
|
|
|
|
draw_string(13, 14, "C", PIXEL_ON, NORM, 0); |
|
|
|
|
draw_string(MOD_DISPLAY_X + 13, MOD_DISPLAY_Y + 2, "C", PIXEL_ON, NORM, 0); |
|
|
|
|
} |
|
|
|
|
if (mods & MOD_LALT) { |
|
|
|
|
draw_rect_filled_soft(20, 12, 5 + (1 * 6), 11, PIXEL_ON, NORM); |
|
|
|
|
draw_string(23, 14, "A", PIXEL_OFF, NORM, 0); |
|
|
|
|
draw_rect_filled_soft(MOD_DISPLAY_X + 20, MOD_DISPLAY_Y, 5 + (1 * 6), 11, PIXEL_ON, NORM); |
|
|
|
|
draw_string(MOD_DISPLAY_X + 23, MOD_DISPLAY_Y + 2, "A", PIXEL_OFF, NORM, 0); |
|
|
|
|
} else { |
|
|
|
|
draw_string(23, 14, "A", PIXEL_ON, NORM, 0); |
|
|
|
|
draw_string(MOD_DISPLAY_X + 23, MOD_DISPLAY_Y + 2, "A", PIXEL_ON, NORM, 0); |
|
|
|
|
} |
|
|
|
|
if (mods & MOD_LGUI) { |
|
|
|
|
draw_rect_filled_soft(30, 12, 5 + (1 * 6), 11, PIXEL_ON, NORM); |
|
|
|
|
draw_string(33, 14, "G", PIXEL_OFF, NORM, 0); |
|
|
|
|
draw_rect_filled_soft(MOD_DISPLAY_X + 30, MOD_DISPLAY_Y, 5 + (1 * 6), 11, PIXEL_ON, NORM); |
|
|
|
|
draw_string(MOD_DISPLAY_X + 33, MOD_DISPLAY_Y + 2, "G", PIXEL_OFF, NORM, 0); |
|
|
|
|
} else { |
|
|
|
|
draw_string(33, 14, "G", PIXEL_ON, NORM, 0); |
|
|
|
|
draw_string(MOD_DISPLAY_X + 33, MOD_DISPLAY_Y + 2, "G", PIXEL_ON, NORM, 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
send_buffer(); |
|
|
|
@ -79,6 +92,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { |
|
|
|
|
return process_record_user(keycode, record); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void encoder_update_kb(uint8_t index, bool clockwise) { |
|
|
|
|
encoder_value = (encoder_value + (clockwise ? 1 : -1)) % 64; |
|
|
|
|
queue_for_send = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
void matrix_init_kb(void) { |
|
|
|
|