From bb4af22481a27d9324f5377b7024e3592d4227ff Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Tue, 8 Aug 2023 18:50:46 +0200 Subject: Update main UI with new 1.7 design --- src/drawing.c | 77 +++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 28 deletions(-) (limited to 'src/drawing.c') diff --git a/src/drawing.c b/src/drawing.c index a203f1c..c07b46d 100644 --- a/src/drawing.c +++ b/src/drawing.c @@ -126,6 +126,8 @@ draw_trig_cursor(size_t i, u8 clr) { void draw_right_col_cursor(int i, u8 clr) { + // TODO:... + return; size_t x0 = 0; size_t x1 = 0; size_t y = 0; @@ -192,21 +194,29 @@ draw_current_step(u8 step, u8 clr) { void draw_bank_buttons() { - size_t x = BANK_START_X; + size_t x = BANK_START_X + 1; size_t y = BANK_START_Y; - txt_drawf_small("BANK", x - 2, y - 10, COL_FG); + txt_drawf_small("BANK", x - 3, y - 10, COL_FG); char bank_names[] = { - 'A', 'B', 'C', 'D', + 'A', 'B', 'C', 'D', 'E', 'F' + }; + s16 x_offset[] = { + -8, 8, -8, 8, -8, 8, + }; + size_t y_offset[] = { + 0, 0, 18, 18, 36, 36, }; - for (int i = 0; i < 4; i++) { + for (int i = 0; i < 6; i++) { int color = COL_OFF; if (i == current_bank) { color = COL_FG; } - draw_filled_rect(x, y, x + PAT_W, y + PAT_H, COL_BG); - draw_rect(x, y, x + PAT_W, y + PAT_H, color); - txt_drawc(bank_names[i], x + 4, y + 1, color); - y += PAT_OFFSET_Y; + u8 x0 = x + x_offset[i]; + u8 x1 = x + x_offset[i] + BANK_W; + u8 y0 = y + y_offset[i]; + u8 y1 = y + y_offset[i] + BANK_H; + draw_rect(x0, y0, x1, y1, color); + txt_drawc(bank_names[i], x0 + 3, y0 + 1, color); } } @@ -264,15 +274,14 @@ draw_play() { size_t x_btn = x + PLAY_STOP_W / 2 - 1; if (play_status == 1) { // Pause button - draw_filled_rect(x_btn - 1, y + 3, x_btn, y + 7, COL_ACC_2); - draw_filled_rect(x_btn + 2, y + 3, x_btn + 3, y + 7, COL_ACC_2); + draw_filled_rect(x_btn - 1, y + 2, x_btn, y + 6, COL_ACC_2); + draw_filled_rect(x_btn + 2, y + 2, x_btn + 3, y + 6, COL_ACC_2); } else { // Play button x += 1; - draw_line(x_btn + 0, y + 2, x_btn + 0, y + 8, COL_ACC_2); - draw_line(x_btn + 1, y + 3, x_btn + 1, y + 7, COL_ACC_2); - draw_line(x_btn + 2, y + 4, x_btn + 2, y + 6, COL_ACC_2); - draw_line(x_btn + 3, y + 5, x_btn + 3, y + 5, COL_ACC_2); + draw_line(x_btn + 0, y + 2, x_btn + 0, y + 6, COL_ACC_2); + draw_line(x_btn + 1, y + 3, x_btn + 1, y + 5, COL_ACC_2); + draw_line(x_btn + 2, y + 4, x_btn + 2, y + 4, COL_ACC_2); } } @@ -280,12 +289,12 @@ void draw_settings() { size_t x = SETTINGS_START_X; size_t y = SETTINGS_START_Y; - draw_rect(x + 2, y, x + R_COL_W - 2, y + PLAY_STOP_H, COL_OFF); - draw_line(x + 6, y + 4, x + 9, y + 4, COL_OFF); - draw_line(x + 6, y + 6, x + 9, y + 6, COL_OFF); - draw_line(x + 15, y + 4, x + 18, y + 4, COL_OFF); - draw_line(x + 15, y + 6, x + 18, y + 6, COL_OFF); - draw_line(x + 9, y + 5, x + 15, y + 5, COL_OFF); + draw_rect(x + 2, y, x + R_COL_W, y + PLAY_STOP_H, COL_OFF); + draw_line(x + 10, y + 3, x + 13, y + 3, COL_OFF); + draw_line(x + 10, y + 5, x + 13, y + 5, COL_OFF); + draw_line(x + 19, y + 3, x + 22, y + 3, COL_OFF); + draw_line(x + 19, y + 5, x + 22, y + 5, COL_OFF); + draw_line(x + 13, y + 4, x + 19, y + 4, COL_OFF); } void @@ -294,8 +303,7 @@ draw_stop() { size_t y = STOP_START_Y; size_t x_btn = x + PLAY_STOP_W / 2 - 2; draw_rect(x, y, x + PLAY_STOP_W, y + PLAY_STOP_H, COL_ACC_1); - draw_filled_rect(x_btn, y + 3, x_btn + 4, y + 7, COL_ACC_1); - draw_settings(); + draw_filled_rect(x_btn, y + 2, x_btn + 4, y + 6, COL_ACC_1); } void @@ -304,20 +312,33 @@ draw_bpm() { size_t y = BPM_START_Y + 2; // Draw bounding box. - draw_filled_rect(x, y, x + R_COL_W, y + BPM_H - 4, COL_BG); - draw_rect(x, y, x + R_COL_W, y + BPM_H - 4, COL_FG); - draw_line(x + 5, y, x + 19, y, COL_BG); - txt_drawf_small("BPM", x + 5, y - 4, COL_FG); + draw_filled_rect(x, y, x + R_COL_W - 2, y + BPM_H - 3, COL_BG); + draw_rect(x, y, x + R_COL_W - 2, y + BPM_H - 3, COL_FG); + txt_drawf_small("BPM", x + 7, y - 10, COL_FG); // Make sure its horizontally centered if only 2 digits int bpm = patterns[pattern_selection_loc].bpm; if (bpm >= 100) { - txt_drawf("%d", x + 3, y + 5, COL_FG, bpm); + txt_drawf("%d", x + 5, y + 2, COL_FG, bpm); } else { - txt_drawf("%d", x + 6, y + 5, COL_FG, bpm); + txt_drawf("%d", x + 8, y + 2, COL_FG, bpm); } } +void +draw_scale() { + size_t x = SCALE_START_X; + size_t y = SCALE_START_Y; + + // Draw bounding box. + draw_filled_rect(x, y, x + R_COL_W - 2, y + SCALE_H - 3, COL_BG); + draw_rect(x, y, x + R_COL_W - 2, y + SCALE_H - 3, COL_FG); + txt_drawf_small("SCALE", x + 3, y - 10, COL_FG); + + // TODO: Switch for different scales here + txt_drawf("CHRM", x + 2, y + 2, COL_FG); +} + void draw_triggers(void) { for (size_t i = 0; i < 16; i++) { -- cgit v1.2.1