diff options
-rw-r--r-- | src/drawing.c | 108 |
1 files changed, 81 insertions, 27 deletions
diff --git a/src/drawing.c b/src/drawing.c index 622b468..a867b12 100644 --- a/src/drawing.c +++ b/src/drawing.c | |||
@@ -36,7 +36,15 @@ draw_channel_cursor(size_t i, u8 clr) { | |||
36 | size_t x0 = CHAN_START_X + offset_x; | 36 | size_t x0 = CHAN_START_X + offset_x; |
37 | size_t x1 = CHAN_START_X + offset_x + CHAN_W; | 37 | size_t x1 = CHAN_START_X + offset_x + CHAN_W; |
38 | size_t y = CHAN_START_Y + offset_y; | 38 | size_t y = CHAN_START_Y + offset_y; |
39 | draw_line(x0, y, x1, y, clr); | 39 | switch (settings.cursor) { |
40 | case CURSOR_THICK_LINE: { | ||
41 | draw_line(x0, y, x1, y, clr); | ||
42 | draw_line(x0, y + 1, x1, y + 1, clr); | ||
43 | } break; | ||
44 | default: { | ||
45 | draw_line(x0, y, x1, y, clr); | ||
46 | } break; | ||
47 | } | ||
40 | } | 48 | } |
41 | 49 | ||
42 | // | 50 | // |
@@ -83,7 +91,15 @@ draw_trig_cursor(size_t i, u8 clr) { | |||
83 | size_t x0 = TRIG_START_X + offset_x; | 91 | size_t x0 = TRIG_START_X + offset_x; |
84 | size_t x1 = TRIG_START_X + TRIG_W + offset_x; | 92 | size_t x1 = TRIG_START_X + TRIG_W + offset_x; |
85 | size_t y = TRIG_START_Y + TRIG_H + offset_y; | 93 | size_t y = TRIG_START_Y + TRIG_H + offset_y; |
86 | draw_line(x0, y, x1, y, clr); | 94 | switch (settings.cursor) { |
95 | case CURSOR_THICK_LINE: { | ||
96 | draw_line(x0, y, x1, y, clr); | ||
97 | draw_line(x0, y + 1, x1, y + 1, clr); | ||
98 | } break; | ||
99 | default: { | ||
100 | draw_line(x0, y, x1, y, clr); | ||
101 | } break; | ||
102 | } | ||
87 | } | 103 | } |
88 | 104 | ||
89 | void | 105 | void |
@@ -128,17 +144,23 @@ draw_right_col_cursor(int i, u8 clr) { | |||
128 | y = BANK_START_Y + PAT_H + 2 + 3 * PAT_OFFSET_Y; | 144 | y = BANK_START_Y + PAT_H + 2 + 3 * PAT_OFFSET_Y; |
129 | } break; | 145 | } break; |
130 | } | 146 | } |
131 | draw_line(x0, y, x1, y, clr); | 147 | switch (settings.cursor) { |
148 | case CURSOR_THICK_LINE: { | ||
149 | draw_line(x0, y, x1, y, clr); | ||
150 | draw_line(x0, y + 1, x1, y + 1, clr); | ||
151 | } break; | ||
152 | default: { draw_line(x0, y, x1, y, clr); } break; | ||
153 | } | ||
132 | } | 154 | } |
133 | 155 | ||
134 | void | 156 | void |
135 | draw_current_step(u8 step, u8 col) { | 157 | draw_current_step(u8 step, u8 clr) { |
136 | size_t offset_x = TRIG_OFFSET_X * (step % 8); | 158 | size_t offset_x = TRIG_OFFSET_X * (step % 8); |
137 | size_t offset_y = step < 8 ? 2 : 2 + TRIG_OFFSET_Y; | 159 | size_t offset_y = step < 8 ? 2 : 2 + TRIG_OFFSET_Y; |
138 | size_t x0 = TRIG_START_X + 3 + offset_x; | 160 | size_t x0 = TRIG_START_X + 3 + offset_x; |
139 | size_t x1 = TRIG_START_X - 3 + TRIG_W + offset_x; | 161 | size_t x1 = TRIG_START_X - 3 + TRIG_W + offset_x; |
140 | size_t y = TRIG_START_Y - 4 + TRIG_H + offset_y; | 162 | size_t y = TRIG_START_Y - 5 + TRIG_H + offset_y; |
141 | draw_line(x0, y, x1, y, col); | 163 | draw_line(x0, y, x1, y, clr); |
142 | } | 164 | } |
143 | 165 | ||
144 | void | 166 | void |
@@ -195,7 +217,15 @@ draw_pattern_cursor(size_t i, u8 clr) { | |||
195 | size_t x0 = PAT_START_X + offset_x; | 217 | size_t x0 = PAT_START_X + offset_x; |
196 | size_t x1 = PAT_START_X + offset_x + PAT_W; | 218 | size_t x1 = PAT_START_X + offset_x + PAT_W; |
197 | size_t y = PAT_START_Y + offset_y; | 219 | size_t y = PAT_START_Y + offset_y; |
198 | draw_line(x0, y, x1, y, clr); | 220 | switch (settings.cursor) { |
221 | case CURSOR_THICK_LINE: { | ||
222 | draw_line(x0, y, x1, y, clr); | ||
223 | draw_line(x0, y + 1, x1, y + 1, clr); | ||
224 | } break; | ||
225 | default: { | ||
226 | draw_line(x0, y, x1, y, clr); | ||
227 | } break; | ||
228 | } | ||
199 | } | 229 | } |
200 | 230 | ||
201 | void | 231 | void |
@@ -411,21 +441,21 @@ draw_params_cursor_wave(size_t i, u8 clr) { | |||
411 | // 32 half bytes (Wave A) | 441 | // 32 half bytes (Wave A) |
412 | 0, 0, 0, 0, 0, 0, 0, 0, | 442 | 0, 0, 0, 0, 0, 0, 0, 0, |
413 | 0, 0, 0, 0, 0, 0, 0, 0, | 443 | 0, 0, 0, 0, 0, 0, 0, 0, |
414 | 8, 8, 8, 8, 8, 8, 8, 8, | 444 | 9, 9, 9, 9, 9, 9, 9, 9, |
415 | 8, 8, 8, 8, 8, 8, 8, 8, | 445 | 9, 9, 9, 9, 9, 9, 9, 9, |
416 | // 32 half bytes (Wave B) | 446 | // 32 half bytes (Wave B) |
417 | 0, 0, 0, 0, 0, 0, 0, 0, | 447 | 0, 0, 0, 0, 0, 0, 0, 0, |
418 | 0, 0, 0, 0, 0, 0, 0, 0, | 448 | 0, 0, 0, 0, 0, 0, 0, 0, |
419 | 8, 8, 8, 8, 8, 8, 8, 8, | 449 | 9, 9, 9, 9, 9, 9, 9, 9, |
420 | 8, 8, 8, 8, 8, 8, 8, 8, | 450 | 9, 9, 9, 9, 9, 9, 9, 9, |
421 | // Default wave A. | 451 | // Default wave A. |
422 | 20, 20, 20, 20, | 452 | 21, 21, 21, 21, |
423 | // Default wave B. | 453 | // Default wave B. |
424 | 20, 20, 20, 20, | 454 | 21, 21, 21, 21, |
425 | // Mode selection. | 455 | // Mode selection. |
426 | 20, | 456 | 21, |
427 | // Volume selection. | 457 | // Volume selection. |
428 | 0, | 458 | 1, |
429 | }; | 459 | }; |
430 | size_t cursor_length = 0; | 460 | size_t cursor_length = 0; |
431 | if (i < 64) { | 461 | if (i < 64) { |
@@ -436,8 +466,16 @@ draw_params_cursor_wave(size_t i, u8 clr) { | |||
436 | cursor_length = 30; | 466 | cursor_length = 30; |
437 | } | 467 | } |
438 | size_t x = PARAMS_START_X + x_positions[i] - 1; | 468 | size_t x = PARAMS_START_X + x_positions[i] - 1; |
439 | size_t y = PARAMS_START_Y + PARAMS_H - 23 + y_positions[i]; | 469 | size_t y = PARAMS_START_Y + PARAMS_H - 25 + y_positions[i]; |
440 | draw_line(x, y, x + cursor_length, y, clr); | 470 | switch (settings.cursor) { |
471 | case CURSOR_THICK_LINE: { | ||
472 | draw_line(x, y, x + cursor_length, y, clr); | ||
473 | draw_line(x, y + 1, x + cursor_length, y + 1, clr); | ||
474 | } break; | ||
475 | default: { | ||
476 | draw_line(x, y, x + cursor_length, y, clr); | ||
477 | } break; | ||
478 | } | ||
441 | } | 479 | } |
442 | 480 | ||
443 | void | 481 | void |
@@ -457,7 +495,15 @@ draw_params_cursor_noise(size_t i, u8 clr) { | |||
457 | size_t cursor_length = 24; | 495 | size_t cursor_length = 24; |
458 | size_t x = PARAMS_START_X + x_positions[i] + 30; | 496 | size_t x = PARAMS_START_X + x_positions[i] + 30; |
459 | size_t y = PARAMS_START_Y + PARAMS_H - 23 + y_positions[i]; | 497 | size_t y = PARAMS_START_Y + PARAMS_H - 23 + y_positions[i]; |
460 | draw_line(x, y, x + cursor_length, y, clr); | 498 | switch (settings.cursor) { |
499 | case CURSOR_THICK_LINE: { | ||
500 | draw_line(x, y, x + cursor_length, y, clr); | ||
501 | draw_line(x, y + 1, x + cursor_length, y + 1, clr); | ||
502 | } break; | ||
503 | default: { | ||
504 | draw_line(x, y, x + cursor_length, y, clr); | ||
505 | } break; | ||
506 | } | ||
461 | } | 507 | } |
462 | 508 | ||
463 | void | 509 | void |
@@ -484,7 +530,15 @@ draw_params_cursor_square(size_t i, u8 clr, bool sweep) { | |||
484 | size_t cursor_length = 24; | 530 | size_t cursor_length = 24; |
485 | size_t x = PARAMS_START_X + x_positions[i] + x_offset; | 531 | size_t x = PARAMS_START_X + x_positions[i] + x_offset; |
486 | size_t y = PARAMS_START_Y + PARAMS_H - 23 + y_positions[i]; | 532 | size_t y = PARAMS_START_Y + PARAMS_H - 23 + y_positions[i]; |
487 | draw_line(x, y, x + cursor_length, y, clr); | 533 | switch (settings.cursor) { |
534 | case CURSOR_THICK_LINE: { | ||
535 | draw_line(x, y, x + cursor_length, y, clr); | ||
536 | draw_line(x, y + 1, x + cursor_length, y + 1, clr); | ||
537 | } break; | ||
538 | default: { | ||
539 | draw_line(x, y, x + cursor_length, y, clr); | ||
540 | } break; | ||
541 | } | ||
488 | } | 542 | } |
489 | 543 | ||
490 | void | 544 | void |
@@ -537,7 +591,7 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
537 | u8 *wave_b = params->wave_b; | 591 | u8 *wave_b = params->wave_b; |
538 | 592 | ||
539 | size_t x = PARAMS_START_X; | 593 | size_t x = PARAMS_START_X; |
540 | size_t y = PARAMS_START_Y + 13; | 594 | size_t y = PARAMS_START_Y + 12; |
541 | 595 | ||
542 | // Wave Patterns. | 596 | // Wave Patterns. |
543 | draw_wave_pattern(wave_a, x, y, COL_ACC_1); | 597 | draw_wave_pattern(wave_a, x, y, COL_ACC_1); |
@@ -545,9 +599,9 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
545 | 599 | ||
546 | // Wave text. | 600 | // Wave text. |
547 | x -= 2; | 601 | x -= 2; |
548 | txt_drawf_small("%02x%02x%02x%02x", x, y + 20, col_fg, | 602 | txt_drawf_small("%02x%02x%02x%02x", x, y + 19, col_fg, |
549 | wave_a[0], wave_a[1], wave_a[2], wave_a[3]); | 603 | wave_a[0], wave_a[1], wave_a[2], wave_a[3]); |
550 | txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 20, col_fg, | 604 | txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 19, col_fg, |
551 | wave_a[4], wave_a[5], wave_a[6], wave_a[7]); | 605 | wave_a[4], wave_a[5], wave_a[6], wave_a[7]); |
552 | txt_drawf_small("%02x%02x%02x%02x", x, y + 28, col_fg, | 606 | txt_drawf_small("%02x%02x%02x%02x", x, y + 28, col_fg, |
553 | wave_a[8], wave_a[9], wave_a[10], wave_a[11]); | 607 | wave_a[8], wave_a[9], wave_a[10], wave_a[11]); |
@@ -555,9 +609,9 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
555 | wave_a[12], wave_a[13], wave_a[14], wave_a[15]); | 609 | wave_a[12], wave_a[13], wave_a[14], wave_a[15]); |
556 | 610 | ||
557 | x += 70; | 611 | x += 70; |
558 | txt_drawf_small("%02x%02x%02x%02x", x, y + 20, col_fg, | 612 | txt_drawf_small("%02x%02x%02x%02x", x, y + 19, col_fg, |
559 | wave_b[0], wave_b[1], wave_b[2], wave_b[3]); | 613 | wave_b[0], wave_b[1], wave_b[2], wave_b[3]); |
560 | txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 20, col_fg, | 614 | txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 19, col_fg, |
561 | wave_b[4], wave_b[5], wave_b[6], wave_b[7]); | 615 | wave_b[4], wave_b[5], wave_b[6], wave_b[7]); |
562 | txt_drawf_small("%02x%02x%02x%02x", x, y + 28, col_fg, | 616 | txt_drawf_small("%02x%02x%02x%02x", x, y + 28, col_fg, |
563 | wave_b[8], wave_b[9], wave_b[10], wave_b[11]); | 617 | wave_b[8], wave_b[9], wave_b[10], wave_b[11]); |
@@ -569,7 +623,7 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
569 | { | 623 | { |
570 | const u32 *tile = default_wave_buttons; | 624 | const u32 *tile = default_wave_buttons; |
571 | size_t x = PARAMS_START_X; | 625 | size_t x = PARAMS_START_X; |
572 | size_t y = PARAMS_START_Y + PARAMS_H - 12; | 626 | size_t y = PARAMS_START_Y + PARAMS_H - 13; |
573 | for (size_t i = 0, k = 0; i < 4 * 2; i += 2, k++) { | 627 | for (size_t i = 0, k = 0; i < 4 * 2; i += 2, k++) { |
574 | draw_icn(x + 17 * k , y, &tile[i * 2 + 0], col_fg, 1, 0); | 628 | draw_icn(x + 17 * k , y, &tile[i * 2 + 0], col_fg, 1, 0); |
575 | draw_icn(x + 17 * k + 8, y, &tile[i * 2 + 2], col_fg, 1, 0); | 629 | draw_icn(x + 17 * k + 8, y, &tile[i * 2 + 2], col_fg, 1, 0); |
@@ -583,7 +637,7 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
583 | // Mode selection. | 637 | // Mode selection. |
584 | { | 638 | { |
585 | size_t x = PARAMS_START_X + 140; | 639 | size_t x = PARAMS_START_X + 140; |
586 | size_t y = PARAMS_START_Y + PARAMS_H - 22; | 640 | size_t y = PARAMS_START_Y + PARAMS_H - 23; |
587 | draw_line(x, y + 4, x + 5, y + 4, col_fg); | 641 | draw_line(x, y + 4, x + 5, y + 4, col_fg); |
588 | draw_line(x + 25, y + 4, x + 30, y + 4, col_fg); | 642 | draw_line(x + 25, y + 4, x + 30, y + 4, col_fg); |
589 | draw_line(x, y + 5, x, y + 16, col_fg); | 643 | draw_line(x, y + 5, x, y + 16, col_fg); |
@@ -601,7 +655,7 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
601 | // Wave volume. | 655 | // Wave volume. |
602 | { | 656 | { |
603 | size_t x = PARAMS_START_X + 140; | 657 | size_t x = PARAMS_START_X + 140; |
604 | size_t y = PARAMS_START_Y + PARAMS_H - 45; | 658 | size_t y = PARAMS_START_Y + PARAMS_H - 46; |
605 | draw_line(x, y + 7, x + 7, y + 7, col_fg); | 659 | draw_line(x, y + 7, x + 7, y + 7, col_fg); |
606 | draw_line(x + 23, y + 7, x + 30, y + 7, col_fg); | 660 | draw_line(x + 23, y + 7, x + 30, y + 7, col_fg); |
607 | draw_line(x, y + 8, x, y + 19, col_fg); | 661 | draw_line(x, y + 8, x, y + 19, col_fg); |