aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2024-01-15 16:14:14 +0100
committerBad Diode <bd@badd10de.dev>2024-01-15 16:14:14 +0100
commit22ddbd9d1688aed3220122ac7a513742140ed3b6 (patch)
tree9cc99919e74b09c8f1d42863d08c6fa7a63968c9
parentf6efcdd98b32f1cd0d5a4a52abb333437c04b44f (diff)
downloadstepper-22ddbd9d1688aed3220122ac7a513742140ed3b6.tar.gz
stepper-22ddbd9d1688aed3220122ac7a513742140ed3b6.zip
[WIP] Fix drawing bug on channel params
-rw-r--r--src/assets.c18
-rw-r--r--src/drawing.c18
-rw-r--r--src/globals.c18
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
88enum 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
98typedef u32 Wave[WAVE_SIZE];
99static Wave wave_active = {0};
100// static Wave wave_target = {0};
101// TODO: wave env status: OFF, ATTACK, DECAY
102static int wave_env_ticks = 0;
103static int wave_env_attack = 8;
104static int wave_env_decay = 8;
105
106static const Wave waves[][WAVE_VARS] = { 88static 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 @@
1enum 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
11typedef u32 Wave[WAVE_SIZE];
12
1// 13//
2// Globals. 14// Globals.
3// 15//
@@ -209,3 +221,9 @@ bool redraw_scale = true;
209bool update_bpm = false; 221bool update_bpm = false;
210u8 bar_counter = 0; 222u8 bar_counter = 0;
211 223
224static Wave wave_active = {0};
225// static Wave wave_target = {0};
226// TODO: wave env status: OFF, ATTACK, DECAY
227static int wave_env_ticks = 0;
228static int wave_env_attack = 8;
229static int wave_env_decay = 8;