aboutsummaryrefslogtreecommitdiffstats
path: root/src/drawing.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-08-08 18:50:46 +0200
committerBad Diode <bd@badd10de.dev>2023-08-08 18:50:46 +0200
commitbb4af22481a27d9324f5377b7024e3592d4227ff (patch)
tree7b6704fc1f8f719eb6a9abe4e5c7c220e142dbb0 /src/drawing.c
parent8aa5155ecfbaaa2e67f82561352a5857bc86d39e (diff)
downloadstepper-bb4af22481a27d9324f5377b7024e3592d4227ff.tar.gz
stepper-bb4af22481a27d9324f5377b7024e3592d4227ff.zip
Update main UI with new 1.7 design
Diffstat (limited to 'src/drawing.c')
-rw-r--r--src/drawing.c77
1 files changed, 49 insertions, 28 deletions
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) {
126 126
127void 127void
128draw_right_col_cursor(int i, u8 clr) { 128draw_right_col_cursor(int i, u8 clr) {
129 // TODO:...
130 return;
129 size_t x0 = 0; 131 size_t x0 = 0;
130 size_t x1 = 0; 132 size_t x1 = 0;
131 size_t y = 0; 133 size_t y = 0;
@@ -192,21 +194,29 @@ draw_current_step(u8 step, u8 clr) {
192 194
193void 195void
194draw_bank_buttons() { 196draw_bank_buttons() {
195 size_t x = BANK_START_X; 197 size_t x = BANK_START_X + 1;
196 size_t y = BANK_START_Y; 198 size_t y = BANK_START_Y;
197 txt_drawf_small("BANK", x - 2, y - 10, COL_FG); 199 txt_drawf_small("BANK", x - 3, y - 10, COL_FG);
198 char bank_names[] = { 200 char bank_names[] = {
199 'A', 'B', 'C', 'D', 201 'A', 'B', 'C', 'D', 'E', 'F'
202 };
203 s16 x_offset[] = {
204 -8, 8, -8, 8, -8, 8,
205 };
206 size_t y_offset[] = {
207 0, 0, 18, 18, 36, 36,
200 }; 208 };
201 for (int i = 0; i < 4; i++) { 209 for (int i = 0; i < 6; i++) {
202 int color = COL_OFF; 210 int color = COL_OFF;
203 if (i == current_bank) { 211 if (i == current_bank) {
204 color = COL_FG; 212 color = COL_FG;
205 } 213 }
206 draw_filled_rect(x, y, x + PAT_W, y + PAT_H, COL_BG); 214 u8 x0 = x + x_offset[i];
207 draw_rect(x, y, x + PAT_W, y + PAT_H, color); 215 u8 x1 = x + x_offset[i] + BANK_W;
208 txt_drawc(bank_names[i], x + 4, y + 1, color); 216 u8 y0 = y + y_offset[i];
209 y += PAT_OFFSET_Y; 217 u8 y1 = y + y_offset[i] + BANK_H;
218 draw_rect(x0, y0, x1, y1, color);
219 txt_drawc(bank_names[i], x0 + 3, y0 + 1, color);
210 } 220 }
211} 221}
212 222
@@ -264,15 +274,14 @@ draw_play() {
264 size_t x_btn = x + PLAY_STOP_W / 2 - 1; 274 size_t x_btn = x + PLAY_STOP_W / 2 - 1;
265 if (play_status == 1) { 275 if (play_status == 1) {
266 // Pause button 276 // Pause button
267 draw_filled_rect(x_btn - 1, y + 3, x_btn, y + 7, COL_ACC_2); 277 draw_filled_rect(x_btn - 1, y + 2, x_btn, y + 6, COL_ACC_2);
268 draw_filled_rect(x_btn + 2, y + 3, x_btn + 3, y + 7, COL_ACC_2); 278 draw_filled_rect(x_btn + 2, y + 2, x_btn + 3, y + 6, COL_ACC_2);
269 } else { 279 } else {
270 // Play button 280 // Play button
271 x += 1; 281 x += 1;
272 draw_line(x_btn + 0, y + 2, x_btn + 0, y + 8, COL_ACC_2); 282 draw_line(x_btn + 0, y + 2, x_btn + 0, y + 6, COL_ACC_2);
273 draw_line(x_btn + 1, y + 3, x_btn + 1, y + 7, COL_ACC_2); 283 draw_line(x_btn + 1, y + 3, x_btn + 1, y + 5, COL_ACC_2);
274 draw_line(x_btn + 2, y + 4, x_btn + 2, y + 6, COL_ACC_2); 284 draw_line(x_btn + 2, y + 4, x_btn + 2, y + 4, COL_ACC_2);
275 draw_line(x_btn + 3, y + 5, x_btn + 3, y + 5, COL_ACC_2);
276 } 285 }
277} 286}
278 287
@@ -280,12 +289,12 @@ void
280draw_settings() { 289draw_settings() {
281 size_t x = SETTINGS_START_X; 290 size_t x = SETTINGS_START_X;
282 size_t y = SETTINGS_START_Y; 291 size_t y = SETTINGS_START_Y;
283 draw_rect(x + 2, y, x + R_COL_W - 2, y + PLAY_STOP_H, COL_OFF); 292 draw_rect(x + 2, y, x + R_COL_W, y + PLAY_STOP_H, COL_OFF);
284 draw_line(x + 6, y + 4, x + 9, y + 4, COL_OFF); 293 draw_line(x + 10, y + 3, x + 13, y + 3, COL_OFF);
285 draw_line(x + 6, y + 6, x + 9, y + 6, COL_OFF); 294 draw_line(x + 10, y + 5, x + 13, y + 5, COL_OFF);
286 draw_line(x + 15, y + 4, x + 18, y + 4, COL_OFF); 295 draw_line(x + 19, y + 3, x + 22, y + 3, COL_OFF);
287 draw_line(x + 15, y + 6, x + 18, y + 6, COL_OFF); 296 draw_line(x + 19, y + 5, x + 22, y + 5, COL_OFF);
288 draw_line(x + 9, y + 5, x + 15, y + 5, COL_OFF); 297 draw_line(x + 13, y + 4, x + 19, y + 4, COL_OFF);
289} 298}
290 299
291void 300void
@@ -294,8 +303,7 @@ draw_stop() {
294 size_t y = STOP_START_Y; 303 size_t y = STOP_START_Y;
295 size_t x_btn = x + PLAY_STOP_W / 2 - 2; 304 size_t x_btn = x + PLAY_STOP_W / 2 - 2;
296 draw_rect(x, y, x + PLAY_STOP_W, y + PLAY_STOP_H, COL_ACC_1); 305 draw_rect(x, y, x + PLAY_STOP_W, y + PLAY_STOP_H, COL_ACC_1);
297 draw_filled_rect(x_btn, y + 3, x_btn + 4, y + 7, COL_ACC_1); 306 draw_filled_rect(x_btn, y + 2, x_btn + 4, y + 6, COL_ACC_1);
298 draw_settings();
299} 307}
300 308
301void 309void
@@ -304,21 +312,34 @@ draw_bpm() {
304 size_t y = BPM_START_Y + 2; 312 size_t y = BPM_START_Y + 2;
305 313
306 // Draw bounding box. 314 // Draw bounding box.
307 draw_filled_rect(x, y, x + R_COL_W, y + BPM_H - 4, COL_BG); 315 draw_filled_rect(x, y, x + R_COL_W - 2, y + BPM_H - 3, COL_BG);
308 draw_rect(x, y, x + R_COL_W, y + BPM_H - 4, COL_FG); 316 draw_rect(x, y, x + R_COL_W - 2, y + BPM_H - 3, COL_FG);
309 draw_line(x + 5, y, x + 19, y, COL_BG); 317 txt_drawf_small("BPM", x + 7, y - 10, COL_FG);
310 txt_drawf_small("BPM", x + 5, y - 4, COL_FG);
311 318
312 // Make sure its horizontally centered if only 2 digits 319 // Make sure its horizontally centered if only 2 digits
313 int bpm = patterns[pattern_selection_loc].bpm; 320 int bpm = patterns[pattern_selection_loc].bpm;
314 if (bpm >= 100) { 321 if (bpm >= 100) {
315 txt_drawf("%d", x + 3, y + 5, COL_FG, bpm); 322 txt_drawf("%d", x + 5, y + 2, COL_FG, bpm);
316 } else { 323 } else {
317 txt_drawf("%d", x + 6, y + 5, COL_FG, bpm); 324 txt_drawf("%d", x + 8, y + 2, COL_FG, bpm);
318 } 325 }
319} 326}
320 327
321void 328void
329draw_scale() {
330 size_t x = SCALE_START_X;
331 size_t y = SCALE_START_Y;
332
333 // Draw bounding box.
334 draw_filled_rect(x, y, x + R_COL_W - 2, y + SCALE_H - 3, COL_BG);
335 draw_rect(x, y, x + R_COL_W - 2, y + SCALE_H - 3, COL_FG);
336 txt_drawf_small("SCALE", x + 3, y - 10, COL_FG);
337
338 // TODO: Switch for different scales here
339 txt_drawf("CHRM", x + 2, y + 2, COL_FG);
340}
341
342void
322draw_triggers(void) { 343draw_triggers(void) {
323 for (size_t i = 0; i < 16; i++) { 344 for (size_t i = 0; i < 16; i++) {
324 size_t offset_x = TRIG_OFFSET_X * (i % 8); 345 size_t offset_x = TRIG_OFFSET_X * (i % 8);