From ffdbbc90f042ba18697c78dfa3ab74640085a429 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Mon, 24 Apr 2023 18:09:44 +0200 Subject: Add grey foreground for global parameter select This only happens if we are not changing parameters, makes for a better separation of the trigs and global params, since those are destructive. --- src/drawing.c | 391 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 202 insertions(+), 189 deletions(-) (limited to 'src/drawing.c') diff --git a/src/drawing.c b/src/drawing.c index acf1e63..149aa19 100644 --- a/src/drawing.c +++ b/src/drawing.c @@ -521,7 +521,12 @@ clear_parameters(void) { IWRAM_CODE void -draw_parameters_wave(ChannelWaveParams *params) { +draw_parameters_wave(ChannelWaveParams *params, bool global) { + u8 col_fg = COL_FG; + if (global && input_handler == handle_channel_selection) { + col_fg = COL_GREY; + } + // Draw current wave data. { u8 *wave_a = params->wave_a; @@ -536,23 +541,23 @@ draw_parameters_wave(ChannelWaveParams *params) { // Wave text. x -= 2; - txt_drawf_small("%02x%02x%02x%02x", x, y + 20, COL_FG, + txt_drawf_small("%02x%02x%02x%02x", x, y + 20, col_fg, wave_a[0], wave_a[1], wave_a[2], wave_a[3]); - txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 20, COL_FG, + txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 20, col_fg, wave_a[4], wave_a[5], wave_a[6], wave_a[7]); - txt_drawf_small("%02x%02x%02x%02x", x, y + 28, COL_FG, + txt_drawf_small("%02x%02x%02x%02x", x, y + 28, col_fg, wave_a[8], wave_a[9], wave_a[10], wave_a[11]); - txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 28, COL_FG, + txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 28, col_fg, wave_a[12], wave_a[13], wave_a[14], wave_a[15]); x += 70; - txt_drawf_small("%02x%02x%02x%02x", x, y + 20, COL_FG, + txt_drawf_small("%02x%02x%02x%02x", x, y + 20, col_fg, wave_b[0], wave_b[1], wave_b[2], wave_b[3]); - txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 20, COL_FG, + txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 20, col_fg, wave_b[4], wave_b[5], wave_b[6], wave_b[7]); - txt_drawf_small("%02x%02x%02x%02x", x, y + 28, COL_FG, + txt_drawf_small("%02x%02x%02x%02x", x, y + 28, col_fg, wave_b[8], wave_b[9], wave_b[10], wave_b[11]); - txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 28, COL_FG, + txt_drawf_small("%02x%02x%02x%02x", x + 34, y + 28, col_fg, wave_b[12], wave_b[13], wave_b[14], wave_b[15]); } @@ -562,12 +567,12 @@ draw_parameters_wave(ChannelWaveParams *params) { size_t x = PARAMS_START_X; size_t y = PARAMS_START_Y + PARAMS_H - 12; for (size_t i = 0, k = 0; i < 4 * 2; i += 2, k++) { - draw_icn(x + 17 * k , y, &tile[i * 2 + 0], COL_FG, 1, 0); - draw_icn(x + 17 * k + 8, y, &tile[i * 2 + 2], COL_FG, 1, 0); + draw_icn(x + 17 * k , y, &tile[i * 2 + 0], col_fg, 1, 0); + draw_icn(x + 17 * k + 8, y, &tile[i * 2 + 2], col_fg, 1, 0); } for (size_t i = 0, k = 0; i < 4 * 2; i += 2, k++) { - draw_icn(x + 70 + 17 * k , y, &tile[i * 2 + 0], COL_FG, 1, 0); - draw_icn(x + 70 + 17 * k + 8, y, &tile[i * 2 + 2], COL_FG, 1, 0); + draw_icn(x + 70 + 17 * k , y, &tile[i * 2 + 0], col_fg, 1, 0); + draw_icn(x + 70 + 17 * k + 8, y, &tile[i * 2 + 2], col_fg, 1, 0); } } @@ -575,17 +580,17 @@ draw_parameters_wave(ChannelWaveParams *params) { { size_t x = PARAMS_START_X + 140; size_t y = PARAMS_START_Y + PARAMS_H - 22; - draw_line(x, y + 4, x + 5, y + 4, COL_FG); - draw_line(x + 25, y + 4, x + 30, y + 4, COL_FG); - draw_line(x, y + 5, x, y + 16, COL_FG); - draw_line(x + 30, y + 5, x + 30, y + 17, COL_FG); - draw_line(x, y + 17, x + 30, y + 17, COL_FG); - txt_drawf_small("mode", x + 6, y, COL_FG); + draw_line(x, y + 4, x + 5, y + 4, col_fg); + draw_line(x + 25, y + 4, x + 30, y + 4, col_fg); + draw_line(x, y + 5, x, y + 16, col_fg); + draw_line(x + 30, y + 5, x + 30, y + 17, col_fg); + draw_line(x, y + 17, x + 30, y + 17, col_fg); + txt_drawf_small("mode", x + 6, y, col_fg); switch (params->wave_mode) { - case 0: { txt_drawf("A", x + 12, y + 7, COL_FG); } break; - case 1: { txt_drawf("B", x + 12, y + 7, COL_FG); } break; - case 2: { txt_drawf("A+B", x + 6, y + 7, COL_FG); } break; + case 0: { txt_drawf("A", x + 12, y + 7, col_fg); } break; + case 1: { txt_drawf("B", x + 12, y + 7, col_fg); } break; + case 2: { txt_drawf("A+B", x + 6, y + 7, col_fg); } break; } } @@ -593,26 +598,30 @@ draw_parameters_wave(ChannelWaveParams *params) { { size_t x = PARAMS_START_X + 140; size_t y = PARAMS_START_Y + PARAMS_H - 45; - draw_line(x, y + 7, x + 7, y + 7, COL_FG); - draw_line(x + 23, y + 7, x + 30, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 30, y + 8, x + 30, y + 19, COL_FG); - draw_line(x, y + 20, x + 30, y + 20, COL_FG); - txt_drawf_small("vol", x + 8, y + 3, COL_FG); + draw_line(x, y + 7, x + 7, y + 7, col_fg); + draw_line(x + 23, y + 7, x + 30, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 30, y + 8, x + 30, y + 19, col_fg); + draw_line(x, y + 20, x + 30, y + 20, col_fg); + txt_drawf_small("vol", x + 8, y + 3, col_fg); switch (params->wave_volume) { - case 0: { txt_drawf("0", x + 12, y + 10, COL_FG); } break; - case 1: { txt_drawf("25", x + 9, y + 10, COL_FG); } break; - case 2: { txt_drawf("50", x + 9, y + 10, COL_FG); } break; - case 3: { txt_drawf("75", x + 9, y + 10, COL_FG); } break; - case 4: { txt_drawf("100", x + 6, y + 10, COL_FG); } break; + case 0: { txt_drawf("0", x + 12, y + 10, col_fg); } break; + case 1: { txt_drawf("25", x + 9, y + 10, col_fg); } break; + case 2: { txt_drawf("50", x + 9, y + 10, col_fg); } break; + case 3: { txt_drawf("75", x + 9, y + 10, col_fg); } break; + case 4: { txt_drawf("100", x + 6, y + 10, col_fg); } break; } } } void -draw_parameters_square(ChannelSquareParams *params, bool sweep) { +draw_parameters_square(ChannelSquareParams *params, bool sweep, bool global) { size_t x_offset = sweep ? 0 : 30; + u8 col_fg = COL_FG; + if (global && input_handler == handle_channel_selection) { + col_fg = COL_GREY; + } // Duty cycle. { @@ -678,18 +687,18 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep) { { size_t x = PARAMS_START_X + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 2, y + 7, COL_FG); - draw_line(x + 22, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("duty", x + 3, y + 3, COL_FG); + draw_line(x, y + 7, x + 2, y + 7, col_fg); + draw_line(x + 22, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("duty", x + 3, y + 3, col_fg); switch (params->duty_cycle) { - case 0: { txt_drawf("12", x + 6, y + 10, COL_FG); } break; - case 1: { txt_drawf("25", x + 6, y + 10, COL_FG); } break; - case 2: { txt_drawf("50", x + 6, y + 10, COL_FG); } break; - case 3: { txt_drawf("75", x + 6, y + 10, COL_FG); } break; + case 0: { txt_drawf("12", x + 6, y + 10, col_fg); } break; + case 1: { txt_drawf("25", x + 6, y + 10, col_fg); } break; + case 2: { txt_drawf("50", x + 6, y + 10, col_fg); } break; + case 3: { txt_drawf("75", x + 6, y + 10, col_fg); } break; } } } @@ -729,30 +738,30 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep) { { size_t x = PARAMS_START_X + 31 + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 4, y + 7, COL_FG); - draw_line(x + 20, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("vol", x + 5, y + 3, COL_FG); + draw_line(x, y + 7, x + 4, y + 7, col_fg); + draw_line(x + 20, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("vol", x + 5, y + 3, col_fg); switch (params->env_volume) { - case 0: { txt_drawf("0", x + 9, y + 10, COL_FG); } break; - case 1: { txt_drawf("6", x + 9, y + 10, COL_FG); } break; - case 2: { txt_drawf("13", x + 6, y + 10, COL_FG); } break; - case 3: { txt_drawf("20", x + 6, y + 10, COL_FG); } break; - case 4: { txt_drawf("26", x + 6, y + 10, COL_FG); } break; - case 5: { txt_drawf("33", x + 6, y + 10, COL_FG); } break; - case 6: { txt_drawf("40", x + 6, y + 10, COL_FG); } break; - case 7: { txt_drawf("46", x + 6, y + 10, COL_FG); } break; - case 8: { txt_drawf("53", x + 6, y + 10, COL_FG); } break; - case 9: { txt_drawf("60", x + 6, y + 10, COL_FG); } break; - case 10: { txt_drawf("66", x + 6, y + 10, COL_FG); } break; - case 11: { txt_drawf("73", x + 6, y + 10, COL_FG); } break; - case 12: { txt_drawf("80", x + 6, y + 10, COL_FG); } break; - case 13: { txt_drawf("86", x + 6, y + 10, COL_FG); } break; - case 14: { txt_drawf("93", x + 6, y + 10, COL_FG); } break; - case 15: { txt_drawf("100", x + 3, y + 10, COL_FG); } break; + case 0: { txt_drawf("0", x + 9, y + 10, col_fg); } break; + case 1: { txt_drawf("6", x + 9, y + 10, col_fg); } break; + case 2: { txt_drawf("13", x + 6, y + 10, col_fg); } break; + case 3: { txt_drawf("20", x + 6, y + 10, col_fg); } break; + case 4: { txt_drawf("26", x + 6, y + 10, col_fg); } break; + case 5: { txt_drawf("33", x + 6, y + 10, col_fg); } break; + case 6: { txt_drawf("40", x + 6, y + 10, col_fg); } break; + case 7: { txt_drawf("46", x + 6, y + 10, col_fg); } break; + case 8: { txt_drawf("53", x + 6, y + 10, col_fg); } break; + case 9: { txt_drawf("60", x + 6, y + 10, col_fg); } break; + case 10: { txt_drawf("66", x + 6, y + 10, col_fg); } break; + case 11: { txt_drawf("73", x + 6, y + 10, col_fg); } break; + case 12: { txt_drawf("80", x + 6, y + 10, col_fg); } break; + case 13: { txt_drawf("86", x + 6, y + 10, col_fg); } break; + case 14: { txt_drawf("93", x + 6, y + 10, col_fg); } break; + case 15: { txt_drawf("100", x + 3, y + 10, col_fg); } break; } } @@ -760,18 +769,18 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep) { { size_t x = PARAMS_START_X + 59 + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 4, y + 7, COL_FG); - draw_line(x + 20, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("dir", x + 5, y + 3, COL_FG); + draw_line(x, y + 7, x + 4, y + 7, col_fg); + draw_line(x + 20, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("dir", x + 5, y + 3, col_fg); char arr_up[2] = { 0x19, 0 }; char arr_down[2] = { 0x18, 0 }; switch (params->env_direction) { - case 0: { txt_drawf(arr_up, x + 9, y + 11, COL_FG); } break; - case 1: { txt_drawf(arr_down, x + 9, y + 11, COL_FG); } break; + case 0: { txt_drawf(arr_up, x + 9, y + 11, col_fg); } break; + case 1: { txt_drawf(arr_down, x + 9, y + 11, col_fg); } break; } } @@ -779,22 +788,22 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep) { { size_t x = PARAMS_START_X + 87 + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 2, y + 7, COL_FG); - draw_line(x + 22, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("time", x + 3, y + 3, COL_FG); + draw_line(x, y + 7, x + 2, y + 7, col_fg); + draw_line(x + 22, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("time", x + 3, y + 3, col_fg); switch (params->env_time) { - case 0: { txt_drawf("0", x + 9, y + 10, COL_FG); } break; - case 1: { txt_drawf("14", x + 6, y + 10, COL_FG); } break; - case 2: { txt_drawf("28", x + 6, y + 10, COL_FG); } break; - case 3: { txt_drawf("42", x + 6, y + 10, COL_FG); } break; - case 4: { txt_drawf("57", x + 6, y + 10, COL_FG); } break; - case 5: { txt_drawf("71", x + 6, y + 10, COL_FG); } break; - case 6: { txt_drawf("85", x + 6, y + 10, COL_FG); } break; - case 7: { txt_drawf("100", x + 3, y + 10, COL_FG); } break; + case 0: { txt_drawf("0", x + 9, y + 10, col_fg); } break; + case 1: { txt_drawf("14", x + 6, y + 10, col_fg); } break; + case 2: { txt_drawf("28", x + 6, y + 10, col_fg); } break; + case 3: { txt_drawf("42", x + 6, y + 10, col_fg); } break; + case 4: { txt_drawf("57", x + 6, y + 10, col_fg); } break; + case 5: { txt_drawf("71", x + 6, y + 10, col_fg); } break; + case 6: { txt_drawf("85", x + 6, y + 10, col_fg); } break; + case 7: { txt_drawf("100", x + 3, y + 10, col_fg); } break; } } } @@ -803,22 +812,22 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep) { if (sweep) { size_t x = PARAMS_START_X + 118; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 4, y + 7, COL_FG); - draw_line(x + 20, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("num", x + 5, y + 3, COL_FG); + draw_line(x, y + 7, x + 4, y + 7, col_fg); + draw_line(x + 20, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("num", x + 5, y + 3, col_fg); switch (params->sweep_number) { - case 0: { txt_drawf("0", x + 9, y + 10, COL_FG); } break; - case 1: { txt_drawf("1", x + 9, y + 10, COL_FG); } break; - case 2: { txt_drawf("2", x + 9, y + 10, COL_FG); } break; - case 3: { txt_drawf("3", x + 9, y + 10, COL_FG); } break; - case 4: { txt_drawf("4", x + 9, y + 10, COL_FG); } break; - case 5: { txt_drawf("5", x + 9, y + 10, COL_FG); } break; - case 6: { txt_drawf("6", x + 9, y + 10, COL_FG); } break; - case 7: { txt_drawf("7", x + 9, y + 10, COL_FG); } break; + case 0: { txt_drawf("0", x + 9, y + 10, col_fg); } break; + case 1: { txt_drawf("1", x + 9, y + 10, col_fg); } break; + case 2: { txt_drawf("2", x + 9, y + 10, col_fg); } break; + case 3: { txt_drawf("3", x + 9, y + 10, col_fg); } break; + case 4: { txt_drawf("4", x + 9, y + 10, col_fg); } break; + case 5: { txt_drawf("5", x + 9, y + 10, col_fg); } break; + case 6: { txt_drawf("6", x + 9, y + 10, col_fg); } break; + case 7: { txt_drawf("7", x + 9, y + 10, col_fg); } break; } } @@ -826,22 +835,22 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep) { if (sweep) { size_t x = PARAMS_START_X + 146; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 2, y + 7, COL_FG); - draw_line(x + 22, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("time", x + 3, y + 3, COL_FG); + draw_line(x, y + 7, x + 2, y + 7, col_fg); + draw_line(x + 22, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("time", x + 3, y + 3, col_fg); switch (params->sweep_time) { - case 0: { txt_drawf("0", x + 9, y + 10, COL_FG); } break; - case 1: { txt_drawf("1", x + 9, y + 10, COL_FG); } break; - case 2: { txt_drawf("2", x + 9, y + 10, COL_FG); } break; - case 3: { txt_drawf("3", x + 9, y + 10, COL_FG); } break; - case 4: { txt_drawf("4", x + 9, y + 10, COL_FG); } break; - case 5: { txt_drawf("5", x + 9, y + 10, COL_FG); } break; - case 6: { txt_drawf("6", x + 9, y + 10, COL_FG); } break; - case 7: { txt_drawf("7", x + 9, y + 10, COL_FG); } break; + case 0: { txt_drawf("0", x + 9, y + 10, col_fg); } break; + case 1: { txt_drawf("1", x + 9, y + 10, col_fg); } break; + case 2: { txt_drawf("2", x + 9, y + 10, col_fg); } break; + case 3: { txt_drawf("3", x + 9, y + 10, col_fg); } break; + case 4: { txt_drawf("4", x + 9, y + 10, col_fg); } break; + case 5: { txt_drawf("5", x + 9, y + 10, col_fg); } break; + case 6: { txt_drawf("6", x + 9, y + 10, col_fg); } break; + case 7: { txt_drawf("7", x + 9, y + 10, col_fg); } break; } } @@ -849,18 +858,18 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep) { if (sweep) { size_t x = PARAMS_START_X + 132; size_t y = PARAMS_START_Y + PARAMS_H - 45; - draw_line(x, y + 7, x + 4, y + 7, COL_FG); - draw_line(x + 20, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("dir", x + 5, y + 3, COL_FG); + draw_line(x, y + 7, x + 4, y + 7, col_fg); + draw_line(x + 20, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("dir", x + 5, y + 3, col_fg); char arr_up[2] = { 0x19, 0 }; char arr_down[2] = { 0x18, 0 }; switch (params->sweep_direction) { - case 0: { txt_drawf(arr_up, x + 9, y + 11, COL_FG); } break; - case 1: { txt_drawf(arr_down, x + 9, y + 11, COL_FG); } break; + case 0: { txt_drawf(arr_up, x + 9, y + 11, col_fg); } break; + case 1: { txt_drawf(arr_down, x + 9, y + 11, col_fg); } break; } } @@ -868,17 +877,21 @@ draw_parameters_square(ChannelSquareParams *params, bool sweep) { { size_t x = PARAMS_START_X + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 45; - txt_drawf_small("shape", x + 1, y - 12, COL_FG); - txt_drawf_small("envelope", x + 54, y - 12, COL_FG); + txt_drawf_small("shape", x + 1, y - 12, col_fg); + txt_drawf_small("envelope", x + 54, y - 12, col_fg); if (sweep) { - txt_drawf_small("sweep", x + 133, y - 12, COL_FG); + txt_drawf_small("sweep", x + 133, y - 12, col_fg); } } } void -draw_parameters_noise(ChannelNoiseParams* params) { +draw_parameters_noise(ChannelNoiseParams* params, bool global) { size_t x_offset = 30; + u8 col_fg = COL_FG; + if (global && input_handler == handle_channel_selection) { + col_fg = COL_GREY; + } // Bit mode. { @@ -886,16 +899,16 @@ draw_parameters_noise(ChannelNoiseParams* params) { { size_t x = PARAMS_START_X + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 2, y + 7, COL_FG); - draw_line(x + 22, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("mode", x + 3, y + 3, COL_FG); + draw_line(x, y + 7, x + 2, y + 7, col_fg); + draw_line(x + 22, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("mode", x + 3, y + 3, col_fg); switch (params->bit_mode) { - case 0: { txt_drawf("A", x + 9, y + 10, COL_FG); } break; - case 1: { txt_drawf("B", x + 9, y + 10, COL_FG); } break; + case 0: { txt_drawf("A", x + 9, y + 10, col_fg); } break; + case 1: { txt_drawf("B", x + 9, y + 10, col_fg); } break; } } } @@ -935,30 +948,30 @@ draw_parameters_noise(ChannelNoiseParams* params) { { size_t x = PARAMS_START_X + 31 + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 4, y + 7, COL_FG); - draw_line(x + 20, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("vol", x + 5, y + 3, COL_FG); + draw_line(x, y + 7, x + 4, y + 7, col_fg); + draw_line(x + 20, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("vol", x + 5, y + 3, col_fg); switch (params->env_volume) { - case 0: { txt_drawf("0", x + 9, y + 10, COL_FG); } break; - case 1: { txt_drawf("6", x + 9, y + 10, COL_FG); } break; - case 2: { txt_drawf("13", x + 6, y + 10, COL_FG); } break; - case 3: { txt_drawf("20", x + 6, y + 10, COL_FG); } break; - case 4: { txt_drawf("26", x + 6, y + 10, COL_FG); } break; - case 5: { txt_drawf("33", x + 6, y + 10, COL_FG); } break; - case 6: { txt_drawf("40", x + 6, y + 10, COL_FG); } break; - case 7: { txt_drawf("46", x + 6, y + 10, COL_FG); } break; - case 8: { txt_drawf("53", x + 6, y + 10, COL_FG); } break; - case 9: { txt_drawf("60", x + 6, y + 10, COL_FG); } break; - case 10: { txt_drawf("66", x + 6, y + 10, COL_FG); } break; - case 11: { txt_drawf("73", x + 6, y + 10, COL_FG); } break; - case 12: { txt_drawf("80", x + 6, y + 10, COL_FG); } break; - case 13: { txt_drawf("86", x + 6, y + 10, COL_FG); } break; - case 14: { txt_drawf("93", x + 6, y + 10, COL_FG); } break; - case 15: { txt_drawf("100", x + 3, y + 10, COL_FG); } break; + case 0: { txt_drawf("0", x + 9, y + 10, col_fg); } break; + case 1: { txt_drawf("6", x + 9, y + 10, col_fg); } break; + case 2: { txt_drawf("13", x + 6, y + 10, col_fg); } break; + case 3: { txt_drawf("20", x + 6, y + 10, col_fg); } break; + case 4: { txt_drawf("26", x + 6, y + 10, col_fg); } break; + case 5: { txt_drawf("33", x + 6, y + 10, col_fg); } break; + case 6: { txt_drawf("40", x + 6, y + 10, col_fg); } break; + case 7: { txt_drawf("46", x + 6, y + 10, col_fg); } break; + case 8: { txt_drawf("53", x + 6, y + 10, col_fg); } break; + case 9: { txt_drawf("60", x + 6, y + 10, col_fg); } break; + case 10: { txt_drawf("66", x + 6, y + 10, col_fg); } break; + case 11: { txt_drawf("73", x + 6, y + 10, col_fg); } break; + case 12: { txt_drawf("80", x + 6, y + 10, col_fg); } break; + case 13: { txt_drawf("86", x + 6, y + 10, col_fg); } break; + case 14: { txt_drawf("93", x + 6, y + 10, col_fg); } break; + case 15: { txt_drawf("100", x + 3, y + 10, col_fg); } break; } } @@ -966,21 +979,21 @@ draw_parameters_noise(ChannelNoiseParams* params) { { size_t x = PARAMS_START_X + 59 + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 4, y + 7, COL_FG); - draw_line(x + 20, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("dir", x + 5, y + 3, COL_FG); + draw_line(x, y + 7, x + 4, y + 7, col_fg); + draw_line(x + 20, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("dir", x + 5, y + 3, col_fg); char arr_up[2] = { 0x19, 0 }; char arr_down[2] = { 0x18, 0 }; switch (params->env_direction) { case 0: { - txt_drawf(arr_up, x + 9, y + 11, COL_FG); + txt_drawf(arr_up, x + 9, y + 11, col_fg); } break; case 1: { - txt_drawf(arr_down, x + 9, y + 11, COL_FG); + txt_drawf(arr_down, x + 9, y + 11, col_fg); } break; } } @@ -989,22 +1002,22 @@ draw_parameters_noise(ChannelNoiseParams* params) { { size_t x = PARAMS_START_X + 87 + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 25; - draw_line(x, y + 7, x + 2, y + 7, COL_FG); - draw_line(x + 22, y + 7, x + 24, y + 7, COL_FG); - draw_line(x, y + 8, x, y + 19, COL_FG); - draw_line(x + 24, y + 8, x + 24, y + 19, COL_FG); - draw_line(x, y + 20, x + 24, y + 20, COL_FG); - txt_drawf_small("time", x + 3, y + 3, COL_FG); + draw_line(x, y + 7, x + 2, y + 7, col_fg); + draw_line(x + 22, y + 7, x + 24, y + 7, col_fg); + draw_line(x, y + 8, x, y + 19, col_fg); + draw_line(x + 24, y + 8, x + 24, y + 19, col_fg); + draw_line(x, y + 20, x + 24, y + 20, col_fg); + txt_drawf_small("time", x + 3, y + 3, col_fg); switch (params->env_time) { - case 0: { txt_drawf("0", x + 9, y + 10, COL_FG); } break; - case 1: { txt_drawf("14", x + 6, y + 10, COL_FG); } break; - case 2: { txt_drawf("28", x + 6, y + 10, COL_FG); } break; - case 3: { txt_drawf("42", x + 6, y + 10, COL_FG); } break; - case 4: { txt_drawf("57", x + 6, y + 10, COL_FG); } break; - case 5: { txt_drawf("71", x + 6, y + 10, COL_FG); } break; - case 6: { txt_drawf("85", x + 6, y + 10, COL_FG); } break; - case 7: { txt_drawf("100", x + 3, y + 10, COL_FG); } break; + case 0: { txt_drawf("0", x + 9, y + 10, col_fg); } break; + case 1: { txt_drawf("14", x + 6, y + 10, col_fg); } break; + case 2: { txt_drawf("28", x + 6, y + 10, col_fg); } break; + case 3: { txt_drawf("42", x + 6, y + 10, col_fg); } break; + case 4: { txt_drawf("57", x + 6, y + 10, col_fg); } break; + case 5: { txt_drawf("71", x + 6, y + 10, col_fg); } break; + case 6: { txt_drawf("85", x + 6, y + 10, col_fg); } break; + case 7: { txt_drawf("100", x + 3, y + 10, col_fg); } break; } } } @@ -1013,7 +1026,7 @@ draw_parameters_noise(ChannelNoiseParams* params) { { size_t x = PARAMS_START_X + x_offset; size_t y = PARAMS_START_Y + PARAMS_H - 45; - txt_drawf_small("envelope", x + 54, y - 12, COL_FG); + txt_drawf_small("envelope", x + 54, y - 12, col_fg); } } @@ -1027,10 +1040,10 @@ draw_parameters(void) { input_handler == handle_param_selection_wave || input_handler == handle_param_selection_noise) { switch (channel_selection_loc) { - case 0: { draw_parameters_square(&pat->ch1.params[trig_selection_loc], true); } break; - case 1: { draw_parameters_square(&pat->ch2.params[trig_selection_loc], false); } break; - case 2: { draw_parameters_wave(&pat->ch3.params[trig_selection_loc]); } break; - case 3: { draw_parameters_noise(&pat->ch4.params[trig_selection_loc]); } break; + case 0: { draw_parameters_square(&pat->ch1.params[trig_selection_loc], true, false); } break; + case 1: { draw_parameters_square(&pat->ch2.params[trig_selection_loc], false, false); } break; + case 2: { draw_parameters_wave(&pat->ch3.params[trig_selection_loc], false); } break; + case 3: { draw_parameters_noise(&pat->ch4.params[trig_selection_loc], false); } break; } return; } @@ -1040,10 +1053,10 @@ draw_parameters(void) { input_handler == handle_param_selection_ch3 || input_handler == handle_param_selection_ch4) { switch (channel_selection_loc) { - case 0: { draw_parameters_square(&ch1_params, true); } break; - case 1: { draw_parameters_square(&ch2_params, false); } break; - case 2: { draw_parameters_wave(&ch3_params); } break; - case 3: { draw_parameters_noise(&ch4_params); } break; + case 0: { draw_parameters_square(&ch1_params, true, true); } break; + case 1: { draw_parameters_square(&ch2_params, false, true); } break; + case 2: { draw_parameters_wave(&ch3_params, true); } break; + case 3: { draw_parameters_noise(&ch4_params, true); } break; } return; } -- cgit v1.2.1