diff options
Diffstat (limited to 'src/drawing.c')
-rw-r--r-- | src/drawing.c | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/src/drawing.c b/src/drawing.c index a48a1ea..3ed294e 100644 --- a/src/drawing.c +++ b/src/drawing.c | |||
@@ -515,6 +515,11 @@ draw_params_cursor_wave(size_t i, u8 clr) { | |||
515 | y += PARAMS_BOX_H - 7 + PARAMS_BOX_OFFSET_Y; | 515 | y += PARAMS_BOX_H - 7 + PARAMS_BOX_OFFSET_Y; |
516 | txt_drawf_small("vol", x, y, COL_BG); | 516 | txt_drawf_small("vol", x, y, COL_BG); |
517 | } break; | 517 | } break; |
518 | case 9: { | ||
519 | x += 8 + PARAMS_BOX_OFFSET_X * 4; | ||
520 | y += PARAMS_BOX_H - 7 + PARAMS_BOX_OFFSET_Y; | ||
521 | txt_drawf_small("pan", x, y, COL_BG); | ||
522 | } break; | ||
518 | default: break; | 523 | default: break; |
519 | } | 524 | } |
520 | } | 525 | } |
@@ -563,6 +568,11 @@ draw_params_cursor_noise(size_t i, u8 clr) { | |||
563 | y += PARAMS_BOX_H - 7; | 568 | y += PARAMS_BOX_H - 7; |
564 | txt_drawf_small("prob", x, y, COL_BG); | 569 | txt_drawf_small("prob", x, y, COL_BG); |
565 | } break; | 570 | } break; |
571 | case 9: { | ||
572 | x += 8 + PARAMS_BOX_OFFSET_X * 4; | ||
573 | y += PARAMS_BOX_H - 7 + PARAMS_BOX_OFFSET_Y; | ||
574 | txt_drawf_small("pan", x, y, COL_BG); | ||
575 | } break; | ||
566 | default: break; | 576 | default: break; |
567 | } | 577 | } |
568 | } | 578 | } |
@@ -626,6 +636,11 @@ draw_params_cursor_square(size_t i, u8 clr) { | |||
626 | y += PARAMS_BOX_H - 7 + PARAMS_BOX_OFFSET_Y; | 636 | y += PARAMS_BOX_H - 7 + PARAMS_BOX_OFFSET_Y; |
627 | txt_drawf_small("dir", x, y, COL_BG); | 637 | txt_drawf_small("dir", x, y, COL_BG); |
628 | } break; | 638 | } break; |
639 | case 9: { | ||
640 | x += 8 + PARAMS_BOX_OFFSET_X * 4; | ||
641 | y += PARAMS_BOX_H - 7 + PARAMS_BOX_OFFSET_Y; | ||
642 | txt_drawf_small("pan", x, y, COL_BG); | ||
643 | } break; | ||
629 | default: break; | 644 | default: break; |
630 | } | 645 | } |
631 | } | 646 | } |
@@ -710,6 +725,33 @@ draw_prob(u8 prob, u8 clr) { | |||
710 | } | 725 | } |
711 | } | 726 | } |
712 | 727 | ||
728 | void | ||
729 | draw_panning(s8 pan, u8 clr) { | ||
730 | switch (settings.sync) { | ||
731 | case SYNC_OUT_LINK_AUDIO_4: | ||
732 | case SYNC_OUT_LINK_AUDIO_8: | ||
733 | case SYNC_OUT_LINK_AUDIO_16: | ||
734 | case SYNC_OUT_AUDIO_4: | ||
735 | case SYNC_OUT_AUDIO_8: | ||
736 | case SYNC_OUT_AUDIO_16: { clr = COL_OFF; } break; | ||
737 | default: break; | ||
738 | } | ||
739 | size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 4 + 3; | ||
740 | size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5; | ||
741 | switch (pan) { | ||
742 | case -1: { | ||
743 | txt_drawf("L", x + 9, y, clr); | ||
744 | } break; | ||
745 | case 0: { | ||
746 | txt_drawf("MID", x + 3, y, clr); | ||
747 | } break; | ||
748 | case 1: { | ||
749 | txt_drawf("R", x + 9, y, clr); | ||
750 | } break; | ||
751 | default: break; | ||
752 | } | ||
753 | } | ||
754 | |||
713 | IWRAM_CODE | 755 | IWRAM_CODE |
714 | void | 756 | void |
715 | draw_parameters_wave(ChannelWaveParams *params, bool global) { | 757 | draw_parameters_wave(ChannelWaveParams *params, bool global) { |
@@ -731,6 +773,9 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
731 | // Trig probability. | 773 | // Trig probability. |
732 | draw_prob(params->prob, col_fg); | 774 | draw_prob(params->prob, col_fg); |
733 | 775 | ||
776 | // Trig pannning. | ||
777 | draw_panning(params->pan, col_fg); | ||
778 | |||
734 | // Mode selection. | 779 | // Mode selection. |
735 | { | 780 | { |
736 | size_t x = PARAMS_START_X; | 781 | size_t x = PARAMS_START_X; |
@@ -782,13 +827,13 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
782 | y += PARAMS_BOX_OFFSET_Y; | 827 | y += PARAMS_BOX_OFFSET_Y; |
783 | txt_drawf_small("mode", x + 6 + PARAMS_BOX_OFFSET_X * 0, y + PARAMS_BOX_H - 7, col_fg); | 828 | txt_drawf_small("mode", x + 6 + PARAMS_BOX_OFFSET_X * 0, y + PARAMS_BOX_H - 7, col_fg); |
784 | txt_drawf_small("vol", x + 8 + PARAMS_BOX_OFFSET_X * 1, y + PARAMS_BOX_H - 7, col_fg); | 829 | txt_drawf_small("vol", x + 8 + PARAMS_BOX_OFFSET_X * 1, y + PARAMS_BOX_H - 7, col_fg); |
830 | txt_drawf_small("pan", x + 8 + PARAMS_BOX_OFFSET_X * 4, y + PARAMS_BOX_H - 7, col_fg); | ||
785 | } | 831 | } |
786 | 832 | ||
787 | // Empty spacers. | 833 | // Empty spacers. |
788 | { | 834 | { |
789 | draw_param_stub(7, COL_OFF); | 835 | draw_param_stub(7, COL_OFF); |
790 | draw_param_stub(8, COL_OFF); | 836 | draw_param_stub(8, COL_OFF); |
791 | draw_param_stub(9, COL_OFF); | ||
792 | } | 837 | } |
793 | } | 838 | } |
794 | 839 | ||
@@ -877,6 +922,9 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep, bool global) { | |||
877 | // Trig probability. | 922 | // Trig probability. |
878 | draw_prob(params->prob, col_fg); | 923 | draw_prob(params->prob, col_fg); |
879 | 924 | ||
925 | // Trig pannning. | ||
926 | draw_panning(params->pan, col_fg); | ||
927 | |||
880 | // Sweep. | 928 | // Sweep. |
881 | if (sweep) { | 929 | if (sweep) { |
882 | size_t x = PARAMS_START_X; | 930 | size_t x = PARAMS_START_X; |
@@ -942,6 +990,7 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep, bool global) { | |||
942 | txt_drawf_small("time", x + 6 + PARAMS_BOX_OFFSET_X * 1, y + PARAMS_BOX_H - 7, col_fg); | 990 | txt_drawf_small("time", x + 6 + PARAMS_BOX_OFFSET_X * 1, y + PARAMS_BOX_H - 7, col_fg); |
943 | txt_drawf_small("dir", x + 8 + PARAMS_BOX_OFFSET_X * 2, y + PARAMS_BOX_H - 7, col_fg); | 991 | txt_drawf_small("dir", x + 8 + PARAMS_BOX_OFFSET_X * 2, y + PARAMS_BOX_H - 7, col_fg); |
944 | } | 992 | } |
993 | txt_drawf_small("pan", x + 8 + PARAMS_BOX_OFFSET_X * 4, y + PARAMS_BOX_H - 7, col_fg); | ||
945 | } | 994 | } |
946 | 995 | ||
947 | // Empty spacers. | 996 | // Empty spacers. |
@@ -952,7 +1001,6 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep, bool global) { | |||
952 | draw_param_stub(7, COL_OFF); | 1001 | draw_param_stub(7, COL_OFF); |
953 | } | 1002 | } |
954 | draw_param_stub(8, COL_OFF); | 1003 | draw_param_stub(8, COL_OFF); |
955 | draw_param_stub(9, COL_OFF); | ||
956 | } | 1004 | } |
957 | } | 1005 | } |
958 | 1006 | ||
@@ -996,6 +1044,9 @@ draw_parameters_noise(ChannelNoiseParams* params, bool global) { | |||
996 | // Trig probability. | 1044 | // Trig probability. |
997 | draw_prob(params->prob, col_fg); | 1045 | draw_prob(params->prob, col_fg); |
998 | 1046 | ||
1047 | // Trig pannning. | ||
1048 | draw_panning(params->pan, col_fg); | ||
1049 | |||
999 | // Labels. | 1050 | // Labels. |
1000 | { | 1051 | { |
1001 | size_t x = PARAMS_START_X; | 1052 | size_t x = PARAMS_START_X; |
@@ -1005,6 +1056,8 @@ draw_parameters_noise(ChannelNoiseParams* params, bool global) { | |||
1005 | txt_drawf_small("time", x + 6 + PARAMS_BOX_OFFSET_X * 2, y + PARAMS_BOX_H - 7, col_fg); | 1056 | txt_drawf_small("time", x + 6 + PARAMS_BOX_OFFSET_X * 2, y + PARAMS_BOX_H - 7, col_fg); |
1006 | txt_drawf_small("dir", x + 8 + PARAMS_BOX_OFFSET_X * 3, y + PARAMS_BOX_H - 7, col_fg); | 1057 | txt_drawf_small("dir", x + 8 + PARAMS_BOX_OFFSET_X * 3, y + PARAMS_BOX_H - 7, col_fg); |
1007 | txt_drawf_small("prob", x + 6 + PARAMS_BOX_OFFSET_X * 4, y + PARAMS_BOX_H - 7, col_fg); | 1058 | txt_drawf_small("prob", x + 6 + PARAMS_BOX_OFFSET_X * 4, y + PARAMS_BOX_H - 7, col_fg); |
1059 | y += PARAMS_BOX_OFFSET_Y; | ||
1060 | txt_drawf_small("pan", x + 8 + PARAMS_BOX_OFFSET_X * 4, y + PARAMS_BOX_H - 7, col_fg); | ||
1008 | } | 1061 | } |
1009 | 1062 | ||
1010 | // Empty spacers. | 1063 | // Empty spacers. |
@@ -1013,7 +1066,6 @@ draw_parameters_noise(ChannelNoiseParams* params, bool global) { | |||
1013 | draw_param_stub(6, COL_OFF); | 1066 | draw_param_stub(6, COL_OFF); |
1014 | draw_param_stub(7, COL_OFF); | 1067 | draw_param_stub(7, COL_OFF); |
1015 | draw_param_stub(8, COL_OFF); | 1068 | draw_param_stub(8, COL_OFF); |
1016 | draw_param_stub(9, COL_OFF); | ||
1017 | } | 1069 | } |
1018 | } | 1070 | } |
1019 | 1071 | ||
@@ -1199,6 +1251,16 @@ draw_notif_param_edit_prob(u8 prob, u8 x, u8 y, u8 color) { | |||
1199 | } | 1251 | } |
1200 | 1252 | ||
1201 | void | 1253 | void |
1254 | draw_notif_param_edit_pan(s8 pan, u8 x, u8 y, u8 color) { | ||
1255 | txt_drawf_small("panning: ", x + 2, y + 1, color); | ||
1256 | switch (pan) { | ||
1257 | case -1: { txt_drawf_small("left", x + 2 + 9 * 4, y + 1, color); } break; | ||
1258 | case 0: { txt_drawf_small("middle", x + 2 + 9 * 4, y + 1, color); } break; | ||
1259 | case 1: { txt_drawf_small("right", x + 2 + 9 * 4, y + 1, color); } break; | ||
1260 | } | ||
1261 | } | ||
1262 | |||
1263 | void | ||
1202 | draw_notif_param_env_vol(u8 vol, u8 x, u8 y, u8 color) { | 1264 | draw_notif_param_env_vol(u8 vol, u8 x, u8 y, u8 color) { |
1203 | txt_drawf_small("VOL: ", x + 2, y + 1, color); | 1265 | txt_drawf_small("VOL: ", x + 2, y + 1, color); |
1204 | switch (vol) { | 1266 | switch (vol) { |
@@ -1324,6 +1386,7 @@ draw_notif_bar() { | |||
1324 | case 1: { txt_drawf_small("down", x0 + 2 + 17 * 4, y0 + 1, color); } break; | 1386 | case 1: { txt_drawf_small("down", x0 + 2 + 17 * 4, y0 + 1, color); } break; |
1325 | } | 1387 | } |
1326 | } break; | 1388 | } break; |
1389 | case 9: { draw_notif_param_edit_pan(params->pan, x0, y0, color); } break; | ||
1327 | } | 1390 | } |
1328 | return; | 1391 | return; |
1329 | } | 1392 | } |
@@ -1351,6 +1414,7 @@ draw_notif_bar() { | |||
1351 | case 2: { draw_notif_param_env_time(params->env_time, x0, y0, color); } break; | 1414 | case 2: { draw_notif_param_env_time(params->env_time, x0, y0, color); } break; |
1352 | case 3: { draw_notif_param_env_dir(params->env_direction, x0, y0, color); } break; | 1415 | case 3: { draw_notif_param_env_dir(params->env_direction, x0, y0, color); } break; |
1353 | case 4: { draw_notif_param_edit_prob(params->prob, x0, y0, color); } break; | 1416 | case 4: { draw_notif_param_edit_prob(params->prob, x0, y0, color); } break; |
1417 | case 9: { draw_notif_param_edit_pan(params->pan, x0, y0, color); } break; | ||
1354 | } | 1418 | } |
1355 | return; | 1419 | return; |
1356 | } | 1420 | } |
@@ -1425,6 +1489,7 @@ draw_notif_bar() { | |||
1425 | case 4: { txt_drawf_small("100", x0 + 2 + 8 * 4, y0 + 1, color); txt_drawc_small('%', x0 + 2 + 11 * 4, y0 + 1, color); } break; | 1489 | case 4: { txt_drawf_small("100", x0 + 2 + 8 * 4, y0 + 1, color); txt_drawc_small('%', x0 + 2 + 11 * 4, y0 + 1, color); } break; |
1426 | } | 1490 | } |
1427 | } break; | 1491 | } break; |
1492 | case 9: { draw_notif_param_edit_pan(params->pan, x0, y0, color); } break; | ||
1428 | } | 1493 | } |
1429 | return; | 1494 | return; |
1430 | } | 1495 | } |
@@ -1449,6 +1514,7 @@ draw_notif_bar() { | |||
1449 | case 2: { draw_notif_param_env_time(params->env_time, x0, y0, color); } break; | 1514 | case 2: { draw_notif_param_env_time(params->env_time, x0, y0, color); } break; |
1450 | case 3: { draw_notif_param_env_dir(params->env_direction, x0, y0, color); } break; | 1515 | case 3: { draw_notif_param_env_dir(params->env_direction, x0, y0, color); } break; |
1451 | case 4: { draw_notif_param_edit_prob(params->prob, x0, y0, color); } break; | 1516 | case 4: { draw_notif_param_edit_prob(params->prob, x0, y0, color); } break; |
1517 | case 9: { draw_notif_param_edit_pan(params->pan, x0, y0, color); } break; | ||
1452 | } | 1518 | } |
1453 | return; | 1519 | return; |
1454 | } | 1520 | } |