aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2024-02-02 10:13:47 +0100
committerBad Diode <bd@badd10de.dev>2024-02-02 10:13:47 +0100
commit74b874af0ea646ef6915f15114ed3065b5b88a20 (patch)
treef55a226de2ff6c419fd53a3d8e82220201491b4b
parent490dd6a54ded91f78c3b7b33af774ef43283ad2d (diff)
downloadstepper-74b874af0ea646ef6915f15114ed3065b5b88a20.tar.gz
stepper-74b874af0ea646ef6915f15114ed3065b5b88a20.zip
Add envelope drawing instead of numbers
-rw-r--r--src/drawing.c51
-rw-r--r--src/main.c1
2 files changed, 28 insertions, 24 deletions
diff --git a/src/drawing.c b/src/drawing.c
index cfe0321..fa20467 100644
--- a/src/drawing.c
+++ b/src/drawing.c
@@ -980,8 +980,15 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) {
980 size_t y = PARAMS_START_Y; 980 size_t y = PARAMS_START_Y;
981 981
982 // Wave Patterns. 982 // Wave Patterns.
983 u8 col_wave_a = cols[0] != COL_OFF && cols[1] != COL_OFF && (params->wave_mode == 0 || params->wave_mode == 2) ? COL_ACC_1 : COL_OFF; 983 u8 col_wave_a = COL_OFF;
984 u8 col_wave_b = cols[2] != COL_OFF && cols[3] != COL_OFF && (params->wave_mode == 1 || params->wave_mode == 2) ? COL_ACC_2 : COL_OFF; 984 u8 col_wave_b = COL_OFF;
985 if (params->wave_mode == 2) {
986 col_wave_a = cols[0] != COL_OFF && cols[1] != COL_OFF ? COL_ACC_1 : COL_OFF;
987 col_wave_b = cols[2] != COL_OFF && cols[3] != COL_OFF ? COL_ACC_2 : COL_OFF;
988 } else {
989 col_wave_a = cols[0] != COL_OFF && cols[1] != COL_OFF && (params->wave_mode == 0) ? COL_ACC_1 : COL_OFF;
990 col_wave_b = cols[2] != COL_OFF && cols[3] != COL_OFF && (params->wave_mode == 1) ? COL_ACC_1 : COL_OFF;
991 }
985 draw_wave_pattern(waves[params->shape_a][params->type_a], x, y, col_wave_a); 992 draw_wave_pattern(waves[params->shape_a][params->type_a], x, y, col_wave_a);
986 draw_wave_pattern(waves[params->shape_b][params->type_b], x + PARAMS_BOX_OFFSET_X * 2, y, col_wave_b); 993 draw_wave_pattern(waves[params->shape_b][params->type_b], x + PARAMS_BOX_OFFSET_X * 2, y, col_wave_b);
987 } 994 }
@@ -1031,35 +1038,31 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) {
1031 } 1038 }
1032 } 1039 }
1033 1040
1034 // Attack. 1041 // Envelope.
1035 { 1042 {
1036 if (params->wave_mode == 2) { 1043 if (params->wave_mode == 2) {
1037 cols[7] = COL_OFF; 1044 cols[7] = COL_OFF;
1038 }
1039 size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 2 + 3;
1040 size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5;
1041 if (params->wave_attack == 0) {
1042 txt_drawf("OFF", x + 3, y, cols[7]);
1043 } else if (params->wave_attack < 10) {
1044 txt_drawf("%d", x + 8, y, cols[7], params->wave_attack);
1045 } else {
1046 txt_drawf("%d", x + 6, y, cols[7], params->wave_attack);
1047 }
1048 }
1049
1050 // Decay.
1051 {
1052 if (params->wave_mode == 2) {
1053 cols[8] = COL_OFF; 1045 cols[8] = COL_OFF;
1054 } 1046 }
1055 size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 3 + 3; 1047 size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 2;
1056 size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5; 1048 size_t y = PARAMS_START_Y + 1 + PARAMS_BOX_OFFSET_Y;
1049 size_t x0 = x;
1050 size_t y0 = y + 15;
1051 size_t x1 = x + params->wave_attack * 2;
1052 size_t y1 = y;
1053 size_t x2 = x + params->wave_attack * 2 + params->wave_decay * 2;
1054 size_t y2 = y + 15;
1055 u8 col_env = cols[7] != COL_OFF && cols[8] != COL_OFF ? COL_ACC_2 : COL_OFF;
1056 if (params->wave_attack != 0) {
1057 draw_line(x0, y0, x1, y1, col_env);
1058 }
1057 if (params->wave_decay == 0) { 1059 if (params->wave_decay == 0) {
1058 txt_drawf("OFF", x + 3, y, cols[8]); 1060 x2 = x + PARAMS_BOX_OFFSET_X * 2 - 4;
1059 } else if (params->wave_decay < 10) { 1061 y2 = y;
1060 txt_drawf("%d", x + 8, y, cols[8], params->wave_decay); 1062 draw_line(x1, y1, x2, y2, col_env);
1061 } else { 1063 } else {
1062 txt_drawf("%d", x + 6, y, cols[8], params->wave_decay); 1064 draw_line(x1, y1, x2, y2, col_env);
1065 draw_line(x2, y2, x + PARAMS_BOX_OFFSET_X * 2 - 4, y2, col_env);
1063 } 1066 }
1064 } 1067 }
1065 1068
diff --git a/src/main.c b/src/main.c
index 8760b2a..834127d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -37,6 +37,7 @@ WITH REGARD TO THIS SOFTWARE.
37// + Make sure the chain is always shown on the notification bar if playing 37// + Make sure the chain is always shown on the notification bar if playing
38// + Add more sync in/out options 38// + Add more sync in/out options
39// + Add more help hints when holding SEL 39// + Add more help hints when holding SEL
40// + Add AD envelope drawing instead of numbers.
40// - Fix any bugs we currently have 41// - Fix any bugs we currently have
41// - Add clipboard sharing between banks. 42// - Add clipboard sharing between banks.
42// - Study saving overhauls for bootleg cartridges. 43// - Study saving overhauls for bootleg cartridges.