diff options
author | Bad Diode <bd@badd10de.dev> | 2024-01-15 16:14:14 +0100 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-01-15 16:14:14 +0100 |
commit | 22ddbd9d1688aed3220122ac7a513742140ed3b6 (patch) | |
tree | 9cc99919e74b09c8f1d42863d08c6fa7a63968c9 | |
parent | f6efcdd98b32f1cd0d5a4a52abb333437c04b44f (diff) | |
download | stepper-22ddbd9d1688aed3220122ac7a513742140ed3b6.tar.gz stepper-22ddbd9d1688aed3220122ac7a513742140ed3b6.zip |
[WIP] Fix drawing bug on channel params
-rw-r--r-- | src/assets.c | 18 | ||||
-rw-r--r-- | src/drawing.c | 18 | ||||
-rw-r--r-- | src/globals.c | 18 |
3 files changed, 30 insertions, 24 deletions
diff --git a/src/assets.c b/src/assets.c index be4b87c..2569c9e 100644 --- a/src/assets.c +++ b/src/assets.c | |||
@@ -85,24 +85,6 @@ static const u32 note_name_sprites[] = { | |||
85 | // Wave data. | 85 | // Wave data. |
86 | // | 86 | // |
87 | 87 | ||
88 | enum WAVES { | ||
89 | WAVE_SIN, | ||
90 | WAVE_SAW, | ||
91 | WAVE_SQUARE, | ||
92 | WAVE_MAX, | ||
93 | }; | ||
94 | |||
95 | #define WAVE_SIZE 4 | ||
96 | #define WAVE_VARS 4 | ||
97 | |||
98 | typedef u32 Wave[WAVE_SIZE]; | ||
99 | static Wave wave_active = {0}; | ||
100 | // static Wave wave_target = {0}; | ||
101 | // TODO: wave env status: OFF, ATTACK, DECAY | ||
102 | static int wave_env_ticks = 0; | ||
103 | static int wave_env_attack = 8; | ||
104 | static int wave_env_decay = 8; | ||
105 | |||
106 | static const Wave waves[][WAVE_VARS] = { | 88 | static const Wave waves[][WAVE_VARS] = { |
107 | { | 89 | { |
108 | {0xefdebc89, 0x98cbedfe, 0x10214376, 0x67341201}, | 90 | {0xefdebc89, 0x98cbedfe, 0x10214376, 0x67341201}, |
diff --git a/src/drawing.c b/src/drawing.c index f18f094..1458a3b 100644 --- a/src/drawing.c +++ b/src/drawing.c | |||
@@ -959,6 +959,12 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
959 | if (params->wave_volume != trig_params->wave_volume) { | 959 | if (params->wave_volume != trig_params->wave_volume) { |
960 | cols[6] = COL_OFF; | 960 | cols[6] = COL_OFF; |
961 | } | 961 | } |
962 | if (params->wave_attack != trig_params->wave_attack) { | ||
963 | cols[7] = COL_OFF; | ||
964 | } | ||
965 | if (params->wave_decay != trig_params->wave_decay) { | ||
966 | cols[8] = COL_OFF; | ||
967 | } | ||
962 | if (params->pan != trig_params->pan) { | 968 | if (params->pan != trig_params->pan) { |
963 | cols[9] = COL_OFF; | 969 | cols[9] = COL_OFF; |
964 | } | 970 | } |
@@ -1027,11 +1033,11 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
1027 | size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 2 + 3; | 1033 | size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 2 + 3; |
1028 | size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5; | 1034 | size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5; |
1029 | if (params->wave_attack == 0) { | 1035 | if (params->wave_attack == 0) { |
1030 | txt_drawf("OFF", x + 3, y, cols[6]); | 1036 | txt_drawf("OFF", x + 3, y, cols[7]); |
1031 | } else if (params->wave_attack < 10) { | 1037 | } else if (params->wave_attack < 10) { |
1032 | txt_drawf("%d", x + 8, y, cols[6], params->wave_attack); | 1038 | txt_drawf("%d", x + 8, y, cols[7], params->wave_attack); |
1033 | } else { | 1039 | } else { |
1034 | txt_drawf("%d", x + 6, y, cols[6], params->wave_attack); | 1040 | txt_drawf("%d", x + 6, y, cols[7], params->wave_attack); |
1035 | } | 1041 | } |
1036 | } | 1042 | } |
1037 | 1043 | ||
@@ -1040,11 +1046,11 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
1040 | size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 3 + 3; | 1046 | size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 3 + 3; |
1041 | size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5; | 1047 | size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5; |
1042 | if (params->wave_decay == 0) { | 1048 | if (params->wave_decay == 0) { |
1043 | txt_drawf("OFF", x + 3, y, cols[6]); | 1049 | txt_drawf("OFF", x + 3, y, cols[8]); |
1044 | } else if (params->wave_decay < 10) { | 1050 | } else if (params->wave_decay < 10) { |
1045 | txt_drawf("%d", x + 8, y, cols[6], params->wave_decay); | 1051 | txt_drawf("%d", x + 8, y, cols[8], params->wave_decay); |
1046 | } else { | 1052 | } else { |
1047 | txt_drawf("%d", x + 6, y, cols[6], params->wave_decay); | 1053 | txt_drawf("%d", x + 6, y, cols[8], params->wave_decay); |
1048 | } | 1054 | } |
1049 | } | 1055 | } |
1050 | 1056 | ||
diff --git a/src/globals.c b/src/globals.c index 05c964a..5063d69 100644 --- a/src/globals.c +++ b/src/globals.c | |||
@@ -1,3 +1,15 @@ | |||
1 | enum WAVES { | ||
2 | WAVE_SIN, | ||
3 | WAVE_SAW, | ||
4 | WAVE_SQUARE, | ||
5 | WAVE_MAX, | ||
6 | }; | ||
7 | |||
8 | #define WAVE_SIZE 4 | ||
9 | #define WAVE_VARS 4 | ||
10 | |||
11 | typedef u32 Wave[WAVE_SIZE]; | ||
12 | |||
1 | // | 13 | // |
2 | // Globals. | 14 | // Globals. |
3 | // | 15 | // |
@@ -209,3 +221,9 @@ bool redraw_scale = true; | |||
209 | bool update_bpm = false; | 221 | bool update_bpm = false; |
210 | u8 bar_counter = 0; | 222 | u8 bar_counter = 0; |
211 | 223 | ||
224 | static Wave wave_active = {0}; | ||
225 | // static Wave wave_target = {0}; | ||
226 | // TODO: wave env status: OFF, ATTACK, DECAY | ||
227 | static int wave_env_ticks = 0; | ||
228 | static int wave_env_attack = 8; | ||
229 | static int wave_env_decay = 8; | ||